You are here

class MetaInformationTest in Thunder 8.5

Same name and namespace in other branches
  1. 8.2 tests/src/FunctionalJavascript/MetaInformationTest.php \Drupal\Tests\thunder\FunctionalJavascript\MetaInformationTest
  2. 8.3 tests/src/FunctionalJavascript/MetaInformationTest.php \Drupal\Tests\thunder\FunctionalJavascript\MetaInformationTest
  3. 8.4 tests/src/FunctionalJavascript/MetaInformationTest.php \Drupal\Tests\thunder\FunctionalJavascript\MetaInformationTest
  4. 6.2.x tests/src/FunctionalJavascript/MetaInformationTest.php \Drupal\Tests\thunder\FunctionalJavascript\MetaInformationTest
  5. 6.0.x tests/src/FunctionalJavascript/MetaInformationTest.php \Drupal\Tests\thunder\FunctionalJavascript\MetaInformationTest
  6. 6.1.x tests/src/FunctionalJavascript/MetaInformationTest.php \Drupal\Tests\thunder\FunctionalJavascript\MetaInformationTest

Testing of Meta Information.

@group Thunder

@package Drupal\Tests\thunder\FunctionalJavascript

Hierarchy

Expanded class hierarchy of MetaInformationTest

File

tests/src/FunctionalJavascript/MetaInformationTest.php, line 12

Namespace

Drupal\Tests\thunder\FunctionalJavascript
View source
class MetaInformationTest extends ThunderJavascriptTestBase {
  use ThunderArticleTestTrait;
  use ThunderMetaTagTrait;

  /**
   * Default user login role used for testing.
   *
   * @var string
   */
  protected static $defaultUserRole = 'administrator';

  /**
   * Meta tag configuration that will be set for Global meta tags.
   *
   * @var array
   */
  protected static $globalMetaTags = [
    'basic title' => 'Global Title',
    'basic keywords' => 'Thunder,CMS,Burda',
    'basic abstract' => '[random]',
    'basic description' => '[random]',
  ];

  /**
   * Meta tag configuration that will be set for Content meta tags.
   *
   * @var array
   */
  protected static $contentMetaTags = [
    'basic title' => '[node:title]',
    'basic abstract' => '[random]',
  ];

  /**
   * Meta tag configuration that will be set for Content->Article meta tags.
   *
   * @var array
   */
  protected static $articleMetaTags = [
    'basic title' => 'Test [node:field_teaser_text]',
    'basic description' => '[random]',
    'advanced robots' => 'index, follow, noydir',
    'advanced referrer' => 'no-referrer-when-downgrade',
    // OpenGraph Meta Tags.
    'open_graph og:image' => '[node:field_teaser_media:entity:field_image:facebook]',
    'open_graph og:image:type' => '[node:field_teaser_media:entity:field_image:facebook:mimetype]',
    'open_graph og:image:height' => '[node:field_teaser_media:entity:field_image:facebook:height]',
    'open_graph og:image:width' => '[node:field_teaser_media:entity:field_image:facebook:width]',
    'open_graph og:description' => '[node:field_teaser_text]',
    'open_graph og:title' => '[node:field_seo_title]',
    'open_graph og:site_name' => '[node:title]',
    'open_graph og:type' => 'article',
  ];

  /**
   * Custom meta tag configuration that will be set for Article meta tags.
   *
   * @var array
   */
  protected static $customMetaTags = [
    'basic title' => 'Custom [node:field_teaser_text]',
    'basic description' => '[random]',
    'advanced robots' => 'follow',
    'advanced referrer' => 'no-referrer',
  ];

  /**
   * List of Tokens that will be replaced with values.
   *
   * @var array
   */
  protected static $tokens = [
    '[node:field_seo_title]' => 'Test SEO Title',
    '[node:field_teaser_text]' => 'Test Teaser Text',
    '[node:title]' => 'Test Note Title',
    // For testing Media:1 is used for teaser.
    '[node:field_teaser_media:entity:field_image:facebook]' => 'LIKE:/files/styles/facebook/public/2016-05/thunder.jpg?',
    '[node:field_teaser_media:entity:field_image:facebook:mimetype]' => 'image/jpeg',
    '[node:field_teaser_media:entity:field_image:facebook:height]' => '630',
    '[node:field_teaser_media:entity:field_image:facebook:width]' => '1200',
  ];

  /**
   * Simple sitemap generator.
   *
   * @var \Drupal\simple_sitemap\Simplesitemap
   */
  protected $sitemapGenerator;

  /**
   * {@inheritdoc}
   */
  protected function setUp() {
    parent::setUp();
    $this->sitemapGenerator = $this->container
      ->get('simple_sitemap.generator');
  }

  /**
   * Set meta tag configuration for administration url.
   *
   * @param string $pageUrl
   *   Url to page where configuration should be set.
   * @param array $configuration
   *   List of configuration what will be set for meta tag.
   */
  protected function setMetaTagConfigurationForUrl($pageUrl, array $configuration) {
    $this
      ->drupalGet($pageUrl);
    $page = $this
      ->getSession()
      ->getPage();
    $this
      ->expandAllTabs();
    $this
      ->setFieldValues($page, $this
      ->generateMetaTagFieldValues($configuration));
    $this
      ->scrollElementInView('[name="op"]');
    $page
      ->find('xpath', '//input[@name="op"]')
      ->click();
  }

  /**
   * Create simple article for meta tag testing.
   *
   * @param array $fieldValues
   *   Custom meta tag configuration for article.
   */
  protected function createArticleWithFields(array $fieldValues = []) {
    $fieldValues += [
      'field_channel' => 1,
      'title[0][value]' => static::$tokens['[node:title]'],
      'field_seo_title[0][value]' => static::$tokens['[node:field_seo_title]'],
      'field_teaser_text[0][value]' => static::$tokens['[node:field_teaser_text]'],
    ];
    $this
      ->articleFillNew($fieldValues);
    $this
      ->selectMedia('field_teaser_media', 'image_browser', [
      'media:1',
    ]);
    $this
      ->clickSave();
  }

  /**
   * Check saved configuration on meta tag overview page.
   *
   * @param string $configurationUrl
   *   Url to page where configuration should be set.
   * @param array $configuration
   *   List of configuration what will be set for meta tag.
   */
  protected function checkSavedConfiguration($configurationUrl, array $configuration) {
    $this
      ->drupalGet('admin/config/search/metatag');
    $page = $this
      ->getSession()
      ->getPage();
    $this
      ->expandAllTabs();
    foreach ($configuration as $metaTagName => $metaTagValue) {
      $metaTag = explode(' ', $metaTagName);
      $fieldName = $this
        ->getMetaTagFieldName($metaTag[1]);
      $this
        ->assertNotEquals(NULL, $page
        ->find('xpath', '//tr[.//a[contains(@href, "/' . $configurationUrl . '")]]/td[1]//table//tr[./td[text()="' . $fieldName . ':"] and ./td[text()="' . $metaTagValue . '"]]'));
    }
  }

  /**
   * Test Meta Tag default configuration and custom configuration for article.
   */
  public function testArticleMetaTags() {
    $globalConfigs = $this
      ->generateMetaTagConfiguration([
      static::$globalMetaTags,
    ]);
    $contentConfigs = $this
      ->generateMetaTagConfiguration([
      static::$contentMetaTags,
    ]);
    $articleConfigs = $this
      ->generateMetaTagConfiguration([
      static::$articleMetaTags,
    ]);
    $customConfigs = $this
      ->generateMetaTagConfiguration([
      static::$customMetaTags,
    ]);

    // Generate check configuration for default configuration.
    $checkArticleConfigs = $this
      ->generateMetaTagConfiguration([
      $globalConfigs,
      $contentConfigs,
      $articleConfigs,
    ]);
    $checkArticleMetaTags = $this
      ->replaceTokens($checkArticleConfigs, static::$tokens);

    // Generate check configuration for custom configuration.
    $checkCustomConfigs = $this
      ->generateMetaTagConfiguration([
      $checkArticleConfigs,
      $customConfigs,
    ]);
    $checkCustomMetaTags = $this
      ->replaceTokens($checkCustomConfigs, static::$tokens);

    // Edit Global configuration.
    $configurationUrl = 'admin/config/search/metatag/global';
    $this
      ->setMetaTagConfigurationForUrl($configurationUrl, $globalConfigs);
    $this
      ->checkSavedConfiguration($configurationUrl, $globalConfigs);

    // Edit Content configuration.
    $configurationUrl = 'admin/config/search/metatag/node';
    $this
      ->setMetaTagConfigurationForUrl($configurationUrl, $contentConfigs);
    $this
      ->checkSavedConfiguration($configurationUrl, $contentConfigs);

    // Edit Article configuration.
    $configurationUrl = 'admin/config/search/metatag/node__article';
    $this
      ->setMetaTagConfigurationForUrl($configurationUrl, $articleConfigs);
    $this
      ->checkSavedConfiguration($configurationUrl, $articleConfigs);

    // Create Article with default meta tags and check it.
    $this
      ->createArticleWithFields();
    $this
      ->checkMetaTags($checkArticleMetaTags);

    // Create Article with custom meta tags and check it.
    $this
      ->createArticleWithFields($this
      ->generateMetaTagFieldValues($checkCustomConfigs, 'field_meta_tags[0]'));
    $this
      ->checkMetaTags($checkCustomMetaTags);
  }

  /**
   * Test Scheduling of Article.
   */
  public function testArticleScheduling() {
    $articleId = 10;

    // Create article with published 2 days ago, unpublish tomorrow.
    $startTimestamp = strtotime('-2 days');
    $endTimestamp = strtotime('+1 day');
    $fieldValues = [
      'publish_on[0][value][date]' => date('Y-m-d', $startTimestamp),
      'publish_on[0][value][time]' => date('H:i:s', $startTimestamp),
      'unpublish_on[0][value][date]' => date('Y-m-d', $endTimestamp),
      'unpublish_on[0][value][time]' => date('H:i:s', $endTimestamp),
      'publish_state[0]' => 'published',
      'unpublish_state[0]' => 'unpublished',
    ];
    $this
      ->createArticleWithFields($fieldValues);

    // Check that Article is unpublished.
    $this
      ->drupalGet('node/' . $articleId);
    $this
      ->assertSession()
      ->elementExists('xpath', '//div[@class="content"]/article[contains(@class, "node--unpublished")]');
    $this
      ->runCron();

    // Check that Article is published.
    $this
      ->drupalGet('node/' . $articleId);
    $this
      ->assertSession()
      ->elementNotExists('xpath', '//div[@class="content"]/article[contains(@class, "node--unpublished")]');

    // Check that Article is published.
    $this
      ->drupalGet('node/' . $articleId . '/edit');
    $page = $this
      ->getSession()
      ->getPage();

    // Edit article and set un-publish date same as publish date.
    $unPublishDiffSeconds = 5;
    $unPublishTimestamp = strtotime("+{$unPublishDiffSeconds} seconds");
    $unPublishFieldValues = [
      'unpublish_on[0][value][date]' => date('Y-m-d', $unPublishTimestamp),
      'unpublish_on[0][value][time]' => date('H:i:s', $unPublishTimestamp),
      'unpublish_state[0]' => 'unpublished',
    ];
    $this
      ->expandAllTabs();
    $this
      ->setFieldValues($page, $unPublishFieldValues);
    $this
      ->clickSave();

    // Check that Article is published.
    $this
      ->drupalGet('node/' . $articleId);
    $this
      ->assertSession()
      ->elementNotExists('xpath', '//div[@class="content"]/article[contains(@class, "node--unpublished")]');

    // Wait sufficient time before cron is executed.
    sleep($unPublishDiffSeconds + 2);
    $this
      ->runCron();

    // Check that Article is unpublished.
    $this
      ->drupalGet('node/' . $articleId);
    $this
      ->assertSession()
      ->elementExists('xpath', '//div[@class="content"]/article[contains(@class, "node--unpublished")]');
  }

  /**
   * Get SiteMap dom elements by XPath.
   *
   * @param string $content
   *   XML string content of Site Map.
   * @param string $xpathQuery
   *   XPath to fetch elements from Site Map.
   *
   * @return \DOMNodeList
   *   Returns list of elements matching provided XPath.
   */
  public function getSiteMapDomElements($content, $xpathQuery) {
    $domDoc = new \DOMDocument();
    $domDoc
      ->loadXML($content);
    $xpath = new \DOMXpath($domDoc);
    $xpath
      ->registerNamespace('sm', 'http://www.sitemaps.org/schemas/sitemap/0.9');
    $elements = $xpath
      ->query($xpathQuery);
    return $elements;
  }

  /**
   * Test Site Map for Article.
   */
  public function testSiteMap() {
    $articleId = 10;
    $articleUrl = 'test-sitemap-seo-title';
    $customFields = [
      'field_seo_title[0][value]' => $articleUrl,
    ];
    $this
      ->createArticleWithFields($customFields);
    $this
      ->drupalGet('node/' . $articleId . '/edit');

    // Publish article.
    $this
      ->setModerationState('published');
    $this
      ->clickSave();

    // Do not add html transformation information to prevent rendering of the
    // sitemap in html.
    $this->sitemapGenerator
      ->saveSetting('xsl', FALSE);
    $this->sitemapGenerator
      ->generateSitemap('backend');
    $this
      ->drupalGet('sitemap.xml');
    $content = $this
      ->getSession()
      ->getPage()
      ->getContent();
    $domElements = $this
      ->getSiteMapDomElements($content, '//sm:loc[contains(text(),"/' . $articleUrl . '")]/parent::sm:url/sm:priority');
    $this
      ->assertEquals(1, $domElements->length);
    $this
      ->assertEquals('0.5', $domElements
      ->item(0)->nodeValue);

    // After sitemap.xml -> we have to open page without setting cookie before.
    $this
      ->getSession()
      ->visit($this
      ->buildUrl('node/' . $articleId . '/edit'));
    $page = $this
      ->getSession()
      ->getPage();
    $this
      ->expandAllTabs();
    $this
      ->setFieldValues($page, [
      'priority_default_node_settings' => '0.9',
    ]);
    $this
      ->clickSave();
    $this->sitemapGenerator
      ->generateSitemap('backend');
    $this
      ->drupalGet('sitemap.xml');
    $content = $this
      ->getSession()
      ->getPage()
      ->getContent();
    $domElements = $this
      ->getSiteMapDomElements($content, '//sm:loc[contains(text(),"/' . $articleUrl . '")]/parent::sm:url/sm:priority');
    $this
      ->assertEquals(1, $domElements->length);
    $this
      ->assertEquals('0.9', $domElements
      ->item(0)->nodeValue);

    // After sitemap.xml -> we have to open page without setting cookie before.
    $this->container
      ->get('config.factory')
      ->getEditable('simple_sitemap.settings')
      ->set('max_links', 2)
      ->save();
    $this->sitemapGenerator
      ->generateSitemap('backend');

    // Check loc, that it's pointing to sitemap.xml file.
    $this
      ->drupalGet('sitemap.xml');
    $content = $this
      ->getSession()
      ->getPage()
      ->getContent();
    $domElements = $this
      ->getSiteMapDomElements($content, '(//sm:loc)[last()]');
    $lastSiteMapUrl = $domElements
      ->item(0)->nodeValue;
    $this
      ->assertStringEndsWith('/sitemap.xml?page=7', $lastSiteMapUrl);

    // Get 3rd sitemap.xml file and check that link exits there.
    $urlOptions = [
      'query' => [
        'page' => 3,
      ],
    ];
    $this
      ->getSession()
      ->visit($this
      ->buildUrl('sitemap.xml', $urlOptions));
    $content = $this
      ->getSession()
      ->getPage()
      ->getContent();
    $domElements = $this
      ->getSiteMapDomElements($content, '//sm:loc[contains(text(),"/' . $articleUrl . '")]/parent::sm:url/sm:priority');
    $this
      ->assertEquals(1, $domElements->length);
    $this
      ->assertEquals('0.9', $domElements
      ->item(0)->nodeValue);

    // After sitemap.xml -> we have to open page without setting cookie before.
    $this
      ->getSession()
      ->visit($this
      ->buildUrl('node/' . $articleId . '/edit'));
    $page = $this
      ->getSession()
      ->getPage();
    $this
      ->expandAllTabs();
    $this
      ->setFieldValues($page, [
      'index_default_node_settings' => '0',
    ]);
    $this
      ->clickSave();
    $this->sitemapGenerator
      ->generateSitemap('backend');
    $this
      ->drupalGet('sitemap.xml', $urlOptions);
    $content = $this
      ->getSession()
      ->getPage()
      ->getContent();
    $domElements = $this
      ->getSiteMapDomElements($content, '//sm:loc[contains(text(),"/' . $articleUrl . '")]');
    $this
      ->assertEquals(0, $domElements->length);
    $this
      ->getSession()
      ->visit($this
      ->buildUrl('node/' . $articleId . '/edit'));
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AssertHelperTrait::castSafeStrings protected static function Casts MarkupInterface objects into strings.
AssertLegacyTrait::assert protected function Deprecated Scheduled for removal in Drupal 10.0.0. Use self::assertTrue() instead.
AssertLegacyTrait::assertCacheTag protected function Asserts whether an expected cache tag was present in the last response.
AssertLegacyTrait::assertElementNotPresent protected function Asserts that the element with the given CSS selector is not present.
AssertLegacyTrait::assertElementPresent protected function Asserts that the element with the given CSS selector is present.
AssertLegacyTrait::assertEqual protected function Deprecated Scheduled for removal in Drupal 10.0.0. Use self::assertEquals() instead.
AssertLegacyTrait::assertEscaped protected function Passes if the raw text IS found escaped on the loaded page, fail otherwise.
AssertLegacyTrait::assertField protected function Asserts that a field exists with the given name or ID.
AssertLegacyTrait::assertFieldById protected function Asserts that a field exists with the given ID and value.
AssertLegacyTrait::assertFieldByName protected function Asserts that a field exists with the given name and value.
AssertLegacyTrait::assertFieldByXPath protected function Asserts that a field exists in the current page by the given XPath.
AssertLegacyTrait::assertFieldChecked protected function Asserts that a checkbox field in the current page is checked.
AssertLegacyTrait::assertFieldsByValue protected function Asserts that a field exists in the current page with a given Xpath result.
AssertLegacyTrait::assertHeader protected function Checks that current response header equals value.
AssertLegacyTrait::assertIdentical protected function Deprecated Scheduled for removal in Drupal 10.0.0. Use self::assertSame() instead.
AssertLegacyTrait::assertIdenticalObject protected function Deprecated Scheduled for removal in Drupal 10.0.0. Use self::assertEquals() instead.
AssertLegacyTrait::assertLink protected function Passes if a link with the specified label is found.
AssertLegacyTrait::assertLinkByHref protected function Passes if a link containing a given href (part) is found.
AssertLegacyTrait::assertNoCacheTag protected function Asserts whether an expected cache tag was absent in the last response.
AssertLegacyTrait::assertNoEscaped protected function Passes if the raw text is not found escaped on the loaded page.
AssertLegacyTrait::assertNoField protected function Asserts that a field does NOT exist with the given name or ID.
AssertLegacyTrait::assertNoFieldById protected function Asserts that a field does not exist with the given ID and value.
AssertLegacyTrait::assertNoFieldByName protected function Asserts that a field does not exist with the given name and value.
AssertLegacyTrait::assertNoFieldByXPath protected function Asserts that a field does not exist or its value does not match, by XPath.
AssertLegacyTrait::assertNoFieldChecked protected function Asserts that a checkbox field in the current page is not checked.
AssertLegacyTrait::assertNoLink protected function Passes if a link with the specified label is not found.
AssertLegacyTrait::assertNoLinkByHref protected function Passes if a link containing a given href (part) is not found.
AssertLegacyTrait::assertNoOption protected function Asserts that a select option does NOT exist in the current page.
AssertLegacyTrait::assertNoPattern protected function Triggers a pass if the Perl regex pattern is not found in the raw content.
AssertLegacyTrait::assertNoRaw protected function Passes if the raw text IS not found on the loaded page, fail otherwise. 1
AssertLegacyTrait::assertNotEqual protected function Deprecated Scheduled for removal in Drupal 10.0.0. Use self::assertNotEquals() instead.
AssertLegacyTrait::assertNoText protected function Passes if the page (with HTML stripped) does not contains the text. 1
AssertLegacyTrait::assertNotIdentical protected function Deprecated Scheduled for removal in Drupal 10.0.0. Use self::assertNotSame() instead.
AssertLegacyTrait::assertNoUniqueText protected function Passes if the text is found MORE THAN ONCE on the text version of the page.
AssertLegacyTrait::assertOption protected function Asserts that a select option in the current page exists.
AssertLegacyTrait::assertOptionByText protected function Asserts that a select option with the visible text exists.
AssertLegacyTrait::assertOptionSelected protected function Asserts that a select option in the current page is checked.
AssertLegacyTrait::assertPattern protected function Triggers a pass if the Perl regex pattern is found in the raw content.
AssertLegacyTrait::assertRaw protected function Passes if the raw text IS found on the loaded page, fail otherwise. 1
AssertLegacyTrait::assertResponse protected function Asserts the page responds with the specified response code. 1
AssertLegacyTrait::assertText protected function Passes if the page (with HTML stripped) contains the text. 1
AssertLegacyTrait::assertTextHelper protected function Helper for assertText and assertNoText.
AssertLegacyTrait::assertTitle protected function Pass if the page title is the given string.
AssertLegacyTrait::assertUniqueText protected function Passes if the text is found ONLY ONCE on the text version of the page.
AssertLegacyTrait::assertUrl protected function Passes if the internal browser's URL matches the given path.
AssertLegacyTrait::buildXPathQuery protected function Builds an XPath query.
AssertLegacyTrait::constructFieldXpath protected function Helper: Constructs an XPath for the given set of attributes and value.
AssertLegacyTrait::getAllOptions protected function Get all option elements, including nested options, in a select.
AssertLegacyTrait::getRawContent protected function Gets the current raw content.
AssertLegacyTrait::pass protected function Deprecated Scheduled for removal in Drupal 10.0.0. Use self::assertTrue() instead.
AssertLegacyTrait::verbose protected function
BlockCreationTrait::placeBlock protected function Creates a block instance based on default settings. Aliased as: drupalPlaceBlock
BrowserHtmlDebugTrait::$htmlOutputBaseUrl protected property The Base URI to use for links to the output files.
BrowserHtmlDebugTrait::$htmlOutputClassName protected property Class name for HTML output logging.
BrowserHtmlDebugTrait::$htmlOutputCounter protected property Counter for HTML output logging.
BrowserHtmlDebugTrait::$htmlOutputCounterStorage protected property Counter storage for HTML output logging.
BrowserHtmlDebugTrait::$htmlOutputDirectory protected property Directory name for HTML output logging.
BrowserHtmlDebugTrait::$htmlOutputEnabled protected property HTML output output enabled.
BrowserHtmlDebugTrait::$htmlOutputFile protected property The file name to write the list of URLs to.
BrowserHtmlDebugTrait::$htmlOutputTestId protected property HTML output test ID.
BrowserHtmlDebugTrait::formatHtmlOutputHeaders protected function Formats HTTP headers as string for HTML output logging.
BrowserHtmlDebugTrait::htmlOutput protected function Logs a HTML output message in a text file.
BrowserHtmlDebugTrait::initBrowserOutputFile protected function Creates the directory to store browser output.
BrowserTestBase::$baseUrl protected property The base URL.
BrowserTestBase::$configImporter protected property The config importer that can be used in a test.
BrowserTestBase::$customTranslations protected property An array of custom translations suitable for drupal_rewrite_settings().
BrowserTestBase::$databasePrefix protected property The database prefix of this test run.
BrowserTestBase::$defaultTheme protected property The theme to install as the default for testing. 1,597
BrowserTestBase::$mink protected property Mink session manager.
BrowserTestBase::$minkDefaultDriverArgs protected property
BrowserTestBase::$originalContainer protected property The original container.
BrowserTestBase::$originalShutdownCallbacks protected property The original array of shutdown function callbacks.
BrowserTestBase::$preserveGlobalState protected property
BrowserTestBase::$root protected property The app root.
BrowserTestBase::$runTestInSeparateProcess protected property Browser tests are run in separate processes to prevent collisions between code that may be loaded by tests.
BrowserTestBase::$timeLimit protected property Time limit in seconds for the test.
BrowserTestBase::$translationFilesDirectory protected property The translation file directory for the test environment.
BrowserTestBase::cleanupEnvironment protected function Clean up the Simpletest environment.
BrowserTestBase::config protected function Configuration accessor for tests. Returns non-overridden configuration.
BrowserTestBase::cssSelectToXpath protected function Translates a CSS expression to its XPath equivalent.
BrowserTestBase::drupalGetHeader protected function Gets the value of an HTTP response header.
BrowserTestBase::drupalGetHeaders Deprecated protected function Returns all response headers.
BrowserTestBase::filePreDeleteCallback public static function Ensures test files are deletable.
BrowserTestBase::getDefaultDriverInstance protected function Gets an instance of the default Mink driver.
BrowserTestBase::getHttpClient protected function Obtain the HTTP client for the system under test.
BrowserTestBase::getOptions protected function Helper function to get the options of select field.
BrowserTestBase::getResponseLogHandler protected function Provides a Guzzle middleware handler to log every response received. Overrides BrowserHtmlDebugTrait::getResponseLogHandler
BrowserTestBase::getSession public function Returns Mink session.
BrowserTestBase::getSessionCookies protected function Get session cookies from current session.
BrowserTestBase::getTestMethodCaller protected function Retrieves the current calling line in the class under test. Overrides BrowserHtmlDebugTrait::getTestMethodCaller
BrowserTestBase::registerSessions protected function Registers additional Mink sessions.
BrowserTestBase::translatePostValues protected function Transforms a nested array into a flat array suitable for drupalPostForm().
BrowserTestBase::xpath protected function Performs an xpath search on the contents of the internal browser.
BrowserTestBase::__construct public function 1
BrowserTestBase::__sleep public function Prevents serializing any properties.
ConfigTestTrait::configImporter protected function Returns a ConfigImporter object to import test configuration.
ConfigTestTrait::copyConfig protected function Copies configuration objects from source storage to target storage.
ContentTypeCreationTrait::createContentType protected function Creates a custom content type based on default settings. Aliased as: drupalCreateContentType 1
FunctionalTestSetupTrait::$apcuEnsureUniquePrefix protected property The flag to set 'apcu_ensure_unique_prefix' setting. 1
FunctionalTestSetupTrait::$classLoader protected property The class loader to use for installation and initialization of setup.
FunctionalTestSetupTrait::$configDirectories Deprecated protected property The config directories used in this test.
FunctionalTestSetupTrait::$rootUser protected property The "#1" admin user.
FunctionalTestSetupTrait::getDatabaseTypes protected function Returns all supported database driver installer objects.
FunctionalTestSetupTrait::initConfig protected function Initialize various configurations post-installation. 2
FunctionalTestSetupTrait::initKernel protected function Initializes the kernel after installation.
FunctionalTestSetupTrait::initSettings protected function Initialize settings created during install.
FunctionalTestSetupTrait::initUserSession protected function Initializes user 1 for the site to be installed.
FunctionalTestSetupTrait::installDefaultThemeFromClassProperty protected function Installs the default theme defined by `static::$defaultTheme` when needed.
FunctionalTestSetupTrait::prepareEnvironment protected function Prepares the current environment for running the test. 23
FunctionalTestSetupTrait::prepareRequestForGenerator protected function Creates a mock request and sets it on the generator.
FunctionalTestSetupTrait::rebuildAll protected function Resets and rebuilds the environment after setup.
FunctionalTestSetupTrait::rebuildContainer protected function Rebuilds \Drupal::getContainer().
FunctionalTestSetupTrait::resetAll protected function Resets all data structures after having enabled new modules.
FunctionalTestSetupTrait::setContainerParameter protected function Changes parameters in the services.yml file.
FunctionalTestSetupTrait::setupBaseUrl protected function Sets up the base URL based upon the environment variable.
FunctionalTestSetupTrait::writeSettings protected function Rewrites the settings.php file of the test site.
MetaInformationTest::$articleMetaTags protected static property Meta tag configuration that will be set for Content->Article meta tags.
MetaInformationTest::$contentMetaTags protected static property Meta tag configuration that will be set for Content meta tags.
MetaInformationTest::$customMetaTags protected static property Custom meta tag configuration that will be set for Article meta tags.
MetaInformationTest::$defaultUserRole protected static property Default user login role used for testing. Overrides ThunderJavascriptTestBase::$defaultUserRole
MetaInformationTest::$globalMetaTags protected static property Meta tag configuration that will be set for Global meta tags.
MetaInformationTest::$sitemapGenerator protected property Simple sitemap generator.
MetaInformationTest::$tokens protected static property List of Tokens that will be replaced with values.
MetaInformationTest::checkSavedConfiguration protected function Check saved configuration on meta tag overview page.
MetaInformationTest::createArticleWithFields protected function Create simple article for meta tag testing.
MetaInformationTest::getSiteMapDomElements public function Get SiteMap dom elements by XPath.
MetaInformationTest::setMetaTagConfigurationForUrl protected function Set meta tag configuration for administration url.
MetaInformationTest::setUp protected function Overrides ThunderJavascriptTestBase::setUp
MetaInformationTest::testArticleMetaTags public function Test Meta Tag default configuration and custom configuration for article.
MetaInformationTest::testArticleScheduling public function Test Scheduling of Article.
MetaInformationTest::testSiteMap public function Test Site Map for Article.
NodeCreationTrait::createNode protected function Creates a node based on default settings. Aliased as: drupalCreateNode
NodeCreationTrait::getNodeByTitle public function Get a node from the database based on its title. Aliased as: drupalGetNodeByTitle
PhpunitCompatibilityTrait::getMock Deprecated public function Returns a mock object for the specified class using the available method.
PhpunitCompatibilityTrait::setExpectedException Deprecated public function Compatibility layer for PHPUnit 6 to support PHPUnit 4 code.
RandomGeneratorTrait::$randomGenerator protected property The random generator.
RandomGeneratorTrait::getRandomGenerator protected function Gets the random generator for the utility methods.
RandomGeneratorTrait::randomMachineName protected function Generates a unique random string containing letters and numbers. 1
RandomGeneratorTrait::randomObject public function Generates a random PHP object.
RandomGeneratorTrait::randomString public function Generates a pseudo-random string of ASCII characters of codes 32 to 126.
RandomGeneratorTrait::randomStringValidate public function Callback for random string validation.
RefreshVariablesTrait::refreshVariables protected function Refreshes in-memory configuration and state information. 3
SessionTestTrait::$sessionName protected property The name of the session cookie.
SessionTestTrait::generateSessionName protected function Generates a session cookie name.
SessionTestTrait::getSessionName protected function Returns the session name in use on the child site.
StorageCopyTrait::replaceStorageContents protected static function Copy the configuration from one storage to another and remove stale items.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
TestRequirementsTrait::checkModuleRequirements private function Checks missing module requirements.
TestRequirementsTrait::checkRequirements protected function Check module requirements for the Drupal use case. 1
TestRequirementsTrait::getDrupalRoot protected static function Returns the Drupal root directory.
TestSetupTrait::$configSchemaCheckerExclusions protected static property An array of config object names that are excluded from schema checking.
TestSetupTrait::$container protected property The dependency injection container used in the test.
TestSetupTrait::$kernel protected property The DrupalKernel instance used in the test.
TestSetupTrait::$originalSite protected property The site directory of the original parent site.
TestSetupTrait::$privateFilesDirectory protected property The private file directory for the test environment.
TestSetupTrait::$publicFilesDirectory protected property The public file directory for the test environment.
TestSetupTrait::$siteDirectory protected property The site directory of this test run.
TestSetupTrait::$strictConfigSchema protected property Set to TRUE to strict check all configuration saved. 2
TestSetupTrait::$tempFilesDirectory protected property The temporary file directory for the test environment.
TestSetupTrait::$testId protected property The test run ID.
TestSetupTrait::changeDatabasePrefix protected function Changes the database connection to the prefixed one.
TestSetupTrait::getConfigSchemaExclusions protected function Gets the config schema exclusions for this test.
TestSetupTrait::getDatabaseConnection public static function Returns the database connection to the site running Simpletest.
TestSetupTrait::prepareDatabasePrefix protected function Generates a database prefix for running tests. 2
ThunderArticleTestTrait::articleFillNew public function Pre-fill defined article fields for new article.
ThunderFormFieldTestTrait::setCheckbox protected function Set value for group of checkboxes.
ThunderFormFieldTestTrait::setFieldValue public function Set value for defined field name on current page.
ThunderFormFieldTestTrait::setFieldValues public function Set fields on current page.
ThunderJavascriptTestBase::$disableCssAnimations protected property Keep CSS animations enabled for JavaScript tests. Overrides WebDriverTestBase::$disableCssAnimations
ThunderJavascriptTestBase::$modules protected static property Modules to enable. Overrides BrowserTestBase::$modules 2
ThunderJavascriptTestBase::$profile protected property The profile to install as a basis for testing. Overrides BrowserTestBase::$profile
ThunderJavascriptTestBase::$screenshotDirectory protected property Directory path for saving screenshots.
ThunderJavascriptTestBase::assertCkEditorContent public function Assert that CKEditor instance contains correct data.
ThunderJavascriptTestBase::assertPageTitle protected function Assert page title.
ThunderJavascriptTestBase::clickAjaxButtonCssSelector public function Click on Ajax Button based on CSS selector.
ThunderJavascriptTestBase::clickButtonCssSelector public function Click on Button based on Drupal selector (data-drupal-selector).
ThunderJavascriptTestBase::clickButtonDrupalSelector public function Click on Button based on Drupal selector (data-drupal-selector).
ThunderJavascriptTestBase::clickDropButton protected function Click a button within a dropdown button field.
ThunderJavascriptTestBase::clickSave protected function Click article save.
ThunderJavascriptTestBase::expandAllTabs public function Expand all tabs on page.
ThunderJavascriptTestBase::fillCkEditor public function Fill CKEditor field.
ThunderJavascriptTestBase::getCkEditorId protected function Get CKEditor id from css selector.
ThunderJavascriptTestBase::getScreenshotFolder protected function Get directory for saving of screenshots.
ThunderJavascriptTestBase::getWindowSize protected function Get base window size.
ThunderJavascriptTestBase::initFrontPage protected function Visits the front page when initializing Mink. Overrides WebDriverTestBase::initFrontPage
ThunderJavascriptTestBase::isForkPullRequest protected function Checks if pull request is from fork.
ThunderJavascriptTestBase::runCron public function Execute Cron over UI.
ThunderJavascriptTestBase::scrollElementInView public function Scroll element with defined css selector in middle of browser view.
ThunderJavascriptTestBase::selectCkEditorElement public function Select CKEditor element.
ThunderJavascriptTestBase::setModerationState protected function Set moderation state.
ThunderJavascriptTestBase::setPublishedStatus protected function Set entity status.
ThunderJavascriptTestBase::setRawFieldValue public function Set value directly to field value, without formatting applied.
ThunderJavascriptTestBase::waitForImages public function Wait for images to load.
ThunderJavascriptTestBase::waitUntilVisible public function Waits and asserts that a given element is visible.
ThunderMediaTestTrait::createGallery public function Create gallery with selected medias.
ThunderMediaTestTrait::selectMedia public function Select Medias for field.
ThunderMetaTagTrait::checkMetaTag protected function Check single meta tag on page.
ThunderMetaTagTrait::checkMetaTags public function Verify that meta tag values defined in configuration are properly set.
ThunderMetaTagTrait::generateMetaTagConfiguration public function Generate meta tag configuration.
ThunderMetaTagTrait::generateMetaTagFieldValues public function Generate field name and field value mappings for meta tag configuration.
ThunderMetaTagTrait::getMetaTagFieldName protected function Get field name for meta tag.
ThunderMetaTagTrait::replaceTokens public function Replace tokens inside meta tag configuration.
ThunderTestTrait::doInstall protected function
ThunderTestTrait::installDrupal public function
ThunderTestTrait::installParameters protected function
ThunderTestTrait::logWithRole protected function LogIn with defined role assigned to user.
ThunderTestTrait::prepareSettings protected function
ThunderTestTrait::replaceUser1 protected function Replace User 1 with the user created here.
ThunderTestTrait::tearDown protected function
UiHelperTrait::$loggedInUser protected property The current user logged in using the Mink controlled browser.
UiHelperTrait::$maximumMetaRefreshCount protected property The number of meta refresh redirects to follow, or NULL if unlimited.
UiHelperTrait::$metaRefreshCount protected property The number of meta refresh redirects followed during ::drupalGet().
UiHelperTrait::buildUrl protected function Builds an a absolute URL from a system path or a URL object.
UiHelperTrait::checkForMetaRefresh protected function Checks for meta refresh tag and if found call drupalGet() recursively.
UiHelperTrait::click protected function Clicks the element with the given CSS selector.
UiHelperTrait::clickLink protected function Follows a link by complete name.
UiHelperTrait::cssSelect protected function Searches elements using a CSS selector in the raw content.
UiHelperTrait::drupalGet protected function Retrieves a Drupal path or an absolute path. 3
UiHelperTrait::drupalLogin protected function Logs in a user using the Mink controlled browser.
UiHelperTrait::drupalLogout protected function Logs a user out of the Mink controlled browser and confirms.
UiHelperTrait::drupalPostForm protected function Executes a form submission.
UiHelperTrait::drupalUserIsLoggedIn protected function Returns whether a given user account is logged in.
UiHelperTrait::getAbsoluteUrl protected function Takes a path and returns an absolute path.
UiHelperTrait::getTextContent protected function Retrieves the plain-text content from the current page.
UiHelperTrait::getUrl protected function Get the current URL from the browser.
UiHelperTrait::prepareRequest protected function Prepare for a request to testing site. 1
UiHelperTrait::submitForm protected function Fills and submits a form.
UserCreationTrait::checkPermissions protected function Checks whether a given list of permission names is valid.
UserCreationTrait::createAdminRole protected function Creates an administrative role.
UserCreationTrait::createRole protected function Creates a role with specified permissions. Aliased as: drupalCreateRole
UserCreationTrait::createUser protected function Create a user with a given set of permissions. Aliased as: drupalCreateUser
UserCreationTrait::grantPermissions protected function Grant permissions to a user role.
UserCreationTrait::setCurrentUser protected function Switch the current logged in user.
UserCreationTrait::setUpCurrentUser protected function Creates a random user account and sets it as current user.
WebDriverTestBase::$minkDefaultDriverClass protected property To use a legacy phantomjs based approach, please use PhantomJSDriver::class. Overrides BrowserTestBase::$minkDefaultDriverClass 2
WebDriverTestBase::assertElementNotVisible Deprecated protected function Asserts that the element with the given CSS selector is not visible.
WebDriverTestBase::assertElementVisible Deprecated protected function Asserts that the element with the given CSS selector is visible.
WebDriverTestBase::assertJsCondition protected function Waits for the given time or until the given JS condition becomes TRUE.
WebDriverTestBase::assertSession public function Returns WebAssert object. Overrides UiHelperTrait::assertSession 1
WebDriverTestBase::createScreenshot protected function Creates a screenshot.
WebDriverTestBase::getDrupalSettings protected function Gets the current Drupal javascript settings and parses into an array. Overrides BrowserTestBase::getDrupalSettings
WebDriverTestBase::getHtmlOutputHeaders protected function Returns headers in HTML output format. Overrides BrowserHtmlDebugTrait::getHtmlOutputHeaders
WebDriverTestBase::getMinkDriverArgs protected function Get the Mink driver args from an environment variable, if it is set. Can be overridden in a derived class so it is possible to use a different value for a subset of tests, e.g. the JavaScript tests. Overrides BrowserTestBase::getMinkDriverArgs
WebDriverTestBase::initMink protected function Initializes Mink sessions. Overrides BrowserTestBase::initMink 1
WebDriverTestBase::installModulesFromClassProperty protected function Install modules defined by `static::$modules`. Overrides FunctionalTestSetupTrait::installModulesFromClassProperty
XdebugRequestTrait::extractCookiesFromRequest protected function Adds xdebug cookies, from request setup.