You are here

public function BrandingGraphQLTest::testCommunityBrandingFieldsPresence in Open Social 10.3.x

Ensure the community branding fields are properly added to the endpoint.

File

modules/social_features/social_branding/tests/src/Kernel/GraphQL/BrandingGraphQLTest.php, line 60

Class

BrandingGraphQLTest
Base class for branding related GraphQL tests.

Namespace

Drupal\Tests\social_branding\Kernel\GraphQL

Code

public function testCommunityBrandingFieldsPresence() : void {
  $system_information = $this
    ->config('system.site');
  $system_theme = $this
    ->config('system.theme');
  $config = $this
    ->config('socialblue.settings');

  // Prepare logo url.
  $config
    ->set('logo.path', 'public://logo.png')
    ->save();
  $expected_logo_url = 'http://localhost/' . $this->siteDirectory . '/files/logo.png';

  // Set anonymous user.
  $this
    ->setUpCurrentUser();
  $this
    ->assertResults('
        query {
          about {
            name
          }
          branding {
            logoUrl
            colorScheme {
              primary {
                css
                hexRGB
                rgba {
                  red
                  green
                  blue
                  alpha
                }
              }
              secondary {
                css
                hexRGB
                rgba {
                  red
                  green
                  blue
                  alpha
                }
              }
              accentBackground {
                css
                hexRGB
                rgba {
                  red
                  green
                  blue
                  alpha
                }
              }
              accentText {
                css
                hexRGB
                rgba {
                  red
                  green
                  blue
                  alpha
                }
              }
              link {
                css
                hexRGB
                rgba {
                  red
                  green
                  blue
                  alpha
                }
              }
              navbarBackground {
                css
                hexRGB
                rgba {
                  red
                  green
                  blue
                  alpha
                }
              }
              navbarText {
                css
                hexRGB
                rgba {
                  red
                  green
                  blue
                  alpha
                }
              }
              navbarActiveBackground {
                css
                hexRGB
                rgba {
                  red
                  green
                  blue
                  alpha
                }
              }
              navbarActiveText {
                css
                hexRGB
                rgba {
                  red
                  green
                  blue
                  alpha
                }
              }
              navbarSecondaryBackground {
                css
                hexRGB
                rgba {
                  red
                  green
                  blue
                  alpha
                }
              }
              navbarSecondaryText {
                css
                hexRGB
                rgba {
                  red
                  green
                  blue
                  alpha
                }
              }
            }
          }
          preferredFeatures {
            machineName
          }
        }
      ', [], [
    'about' => [
      'name' => $system_information
        ->get('name'),
    ],
    'branding' => [
      'logoUrl' => $expected_logo_url,
      'colorScheme' => [
        'primary' => [
          'css' => $this
            ->getColor($config
            ->get('color_primary'))
            ->css(),
          'hexRGB' => $this
            ->getColor($config
            ->get('color_primary'))
            ->hexRgb(),
          'rgba' => [
            'red' => $this
              ->getColor($config
              ->get('color_primary'))
              ->red(),
            'green' => $this
              ->getColor($config
              ->get('color_primary'))
              ->green(),
            'blue' => $this
              ->getColor($config
              ->get('color_primary'))
              ->blue(),
            'alpha' => $this
              ->getColor($config
              ->get('color_primary'))
              ->alpha(),
          ],
        ],
        'secondary' => [
          'css' => $this
            ->getColor($config
            ->get('color_secondary'))
            ->css(),
          'hexRGB' => $this
            ->getColor($config
            ->get('color_secondary'))
            ->hexRgb(),
          'rgba' => [
            'red' => $this
              ->getColor($config
              ->get('color_secondary'))
              ->red(),
            'green' => $this
              ->getColor($config
              ->get('color_secondary'))
              ->green(),
            'blue' => $this
              ->getColor($config
              ->get('color_secondary'))
              ->blue(),
            'alpha' => $this
              ->getColor($config
              ->get('color_secondary'))
              ->alpha(),
          ],
        ],
        'accentBackground' => [
          'css' => $this
            ->getColor($config
            ->get('color_accent'))
            ->css(),
          'hexRGB' => $this
            ->getColor($config
            ->get('color_accent'))
            ->hexRgb(),
          'rgba' => [
            'red' => $this
              ->getColor($config
              ->get('color_accent'))
              ->red(),
            'green' => $this
              ->getColor($config
              ->get('color_accent'))
              ->green(),
            'blue' => $this
              ->getColor($config
              ->get('color_accent'))
              ->blue(),
            'alpha' => $this
              ->getColor($config
              ->get('color_accent'))
              ->alpha(),
          ],
        ],
        'accentText' => [
          'css' => $this
            ->getColor($config
            ->get('color_accent_text'))
            ->css(),
          'hexRGB' => $this
            ->getColor($config
            ->get('color_accent_text'))
            ->hexRgb(),
          'rgba' => [
            'red' => $this
              ->getColor($config
              ->get('color_accent_text'))
              ->red(),
            'green' => $this
              ->getColor($config
              ->get('color_accent_text'))
              ->green(),
            'blue' => $this
              ->getColor($config
              ->get('color_accent_text'))
              ->blue(),
            'alpha' => $this
              ->getColor($config
              ->get('color_accent_text'))
              ->alpha(),
          ],
        ],
        'link' => [
          'css' => $this
            ->getColor($config
            ->get('color_link'))
            ->css(),
          'hexRGB' => $this
            ->getColor($config
            ->get('color_link'))
            ->hexRgb(),
          'rgba' => [
            'red' => $this
              ->getColor($config
              ->get('color_link'))
              ->red(),
            'green' => $this
              ->getColor($config
              ->get('color_link'))
              ->green(),
            'blue' => $this
              ->getColor($config
              ->get('color_link'))
              ->blue(),
            'alpha' => $this
              ->getColor($config
              ->get('color_link'))
              ->alpha(),
          ],
        ],
        'navbarBackground' => [
          'css' => $this
            ->getColor($config
            ->get('color_navbar_bg'))
            ->css(),
          'hexRGB' => $this
            ->getColor($config
            ->get('color_navbar_bg'))
            ->hexRgb(),
          'rgba' => [
            'red' => $this
              ->getColor($config
              ->get('color_navbar_bg'))
              ->red(),
            'green' => $this
              ->getColor($config
              ->get('color_navbar_bg'))
              ->green(),
            'blue' => $this
              ->getColor($config
              ->get('color_navbar_bg'))
              ->blue(),
            'alpha' => $this
              ->getColor($config
              ->get('color_navbar_bg'))
              ->alpha(),
          ],
        ],
        'navbarText' => [
          'css' => $this
            ->getColor($config
            ->get('color_navbar_text'))
            ->css(),
          'hexRGB' => $this
            ->getColor($config
            ->get('color_navbar_text'))
            ->hexRgb(),
          'rgba' => [
            'red' => $this
              ->getColor($config
              ->get('color_navbar_text'))
              ->red(),
            'green' => $this
              ->getColor($config
              ->get('color_navbar_text'))
              ->green(),
            'blue' => $this
              ->getColor($config
              ->get('color_navbar_text'))
              ->blue(),
            'alpha' => $this
              ->getColor($config
              ->get('color_navbar_text'))
              ->alpha(),
          ],
        ],
        'navbarActiveBackground' => [
          'css' => $this
            ->getColor($config
            ->get("color_navbar_active_bg'"))
            ->css(),
          'hexRGB' => $this
            ->getColor($config
            ->get("color_navbar_active_bg'"))
            ->hexRgb(),
          'rgba' => [
            'red' => $this
              ->getColor($config
              ->get("color_navbar_active_bg'"))
              ->red(),
            'green' => $this
              ->getColor($config
              ->get("color_navbar_active_bg'"))
              ->green(),
            'blue' => $this
              ->getColor($config
              ->get("color_navbar_active_bg'"))
              ->blue(),
            'alpha' => $this
              ->getColor($config
              ->get("color_navbar_active_bg'"))
              ->alpha(),
          ],
        ],
        'navbarActiveText' => [
          'css' => $this
            ->getColor($config
            ->get("color_navbar_active_text'"))
            ->css(),
          'hexRGB' => $this
            ->getColor($config
            ->get("color_navbar_active_text'"))
            ->hexRgb(),
          'rgba' => [
            'red' => $this
              ->getColor($config
              ->get("color_navbar_active_text'"))
              ->red(),
            'green' => $this
              ->getColor($config
              ->get("color_navbar_active_text'"))
              ->green(),
            'blue' => $this
              ->getColor($config
              ->get("color_navbar_active_text'"))
              ->blue(),
            'alpha' => $this
              ->getColor($config
              ->get("color_navbar_active_text'"))
              ->alpha(),
          ],
        ],
        'navbarSecondaryBackground' => [
          'css' => $this
            ->getColor($config
            ->get("color_navbar_sec_bg'"))
            ->css(),
          'hexRGB' => $this
            ->getColor($config
            ->get("color_navbar_sec_bg'"))
            ->hexRgb(),
          'rgba' => [
            'red' => $this
              ->getColor($config
              ->get("color_navbar_sec_bg'"))
              ->red(),
            'green' => $this
              ->getColor($config
              ->get("color_navbar_sec_bg'"))
              ->green(),
            'blue' => $this
              ->getColor($config
              ->get("color_navbar_sec_bg'"))
              ->blue(),
            'alpha' => $this
              ->getColor($config
              ->get("color_navbar_sec_bg'"))
              ->alpha(),
          ],
        ],
        'navbarSecondaryText' => [
          'css' => $this
            ->getColor($config
            ->get("color_navbar_sec_text'"))
            ->css(),
          'hexRGB' => $this
            ->getColor($config
            ->get("color_navbar_sec_text'"))
            ->hexRgb(),
          'rgba' => [
            'red' => $this
              ->getColor($config
              ->get("color_navbar_sec_text'"))
              ->red(),
            'green' => $this
              ->getColor($config
              ->get("color_navbar_sec_text'"))
              ->green(),
            'blue' => $this
              ->getColor($config
              ->get("color_navbar_sec_text'"))
              ->blue(),
            'alpha' => $this
              ->getColor($config
              ->get("color_navbar_sec_text'"))
              ->alpha(),
          ],
        ],
      ],
    ],
    'preferredFeatures' => [
      [
        'machineName' => 'feature1',
      ],
      [
        'machineName' => 'feature2',
      ],
      [
        'machineName' => 'feature0',
      ],
    ],
  ], $this
    ->defaultCacheMetaData()
    ->addCacheableDependency($system_information)
    ->addCacheableDependency($system_theme)
    ->addCacheableDependency($config));
}