|
|
|
@ -44,64 +44,64 @@ class TwigTweakTest extends BrowserTestBase {
|
|
|
|
|
$xpath = '//div[@class = "tt-view-default"]'; |
|
|
|
|
$xpath .= '//div[contains(@class, "view-twig-tweak-test") and contains(@class, "view-display-id-default")]'; |
|
|
|
|
$xpath .= '/div[@class = "view-content"]//ul[count(./li) = 3]/li'; |
|
|
|
|
$this->assertByXpath($xpath . '//a[contains(@href, "/node/1") and . = "Alpha"]'); |
|
|
|
|
$this->assertByXpath($xpath . '//a[contains(@href, "/node/2") and . = "Beta"]'); |
|
|
|
|
$this->assertByXpath($xpath . '//a[contains(@href, "/node/3") and . = "Gamma"]'); |
|
|
|
|
$this->assertByXpath($xpath . '//a[contains(@href, "/node/1") and text() = "Alpha"]'); |
|
|
|
|
$this->assertByXpath($xpath . '//a[contains(@href, "/node/2") and text() = "Beta"]'); |
|
|
|
|
$this->assertByXpath($xpath . '//a[contains(@href, "/node/3") and text() = "Gamma"]'); |
|
|
|
|
|
|
|
|
|
// Test page_1 view display. |
|
|
|
|
$xpath = '//div[@class = "tt-view-page_1"]'; |
|
|
|
|
$xpath .= '//div[contains(@class, "view-twig-tweak-test") and contains(@class, "view-display-id-page_1")]'; |
|
|
|
|
$xpath .= '/div[@class = "view-content"]//ul[count(./li) = 3]/li'; |
|
|
|
|
$this->assertByXpath($xpath . '//a[contains(@href, "/node/1") and . = "Alpha"]'); |
|
|
|
|
$this->assertByXpath($xpath . '//a[contains(@href, "/node/2") and . = "Beta"]'); |
|
|
|
|
$this->assertByXpath($xpath . '//a[contains(@href, "/node/3") and . = "Gamma"]'); |
|
|
|
|
$this->assertByXpath($xpath . '//a[contains(@href, "/node/1") and text() = "Alpha"]'); |
|
|
|
|
$this->assertByXpath($xpath . '//a[contains(@href, "/node/2") and text() = "Beta"]'); |
|
|
|
|
$this->assertByXpath($xpath . '//a[contains(@href, "/node/3") and text() = "Gamma"]'); |
|
|
|
|
|
|
|
|
|
// Test view argument. |
|
|
|
|
$xpath = '//div[@class = "tt-view-page_1-with-argument"]'; |
|
|
|
|
$xpath .= '//div[contains(@class, "view-twig-tweak-test")]'; |
|
|
|
|
$xpath .= '/div[@class = "view-content"]//ul[count(./li) = 1]/li'; |
|
|
|
|
$this->assertByXpath($xpath . '//a[contains(@href, "/node/1") and . = "Alpha"]'); |
|
|
|
|
$this->assertByXpath($xpath . '//a[contains(@href, "/node/1") and text() = "Alpha"]'); |
|
|
|
|
|
|
|
|
|
// Test entity default view mode. |
|
|
|
|
$xpath = '//div[@class = "tt-entity-default"]'; |
|
|
|
|
$xpath .= '/article[contains(@class, "node") and not(contains(@class, "node--view-mode-teaser"))]'; |
|
|
|
|
$xpath .= '/h2/a/span[. = "Alpha"]'; |
|
|
|
|
$xpath .= '/h2/a/span[text() = "Alpha"]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
|
|
|
|
|
// Test entity teaser view mode. |
|
|
|
|
$xpath = '//div[@class = "tt-entity-teaser"]'; |
|
|
|
|
$xpath .= '/article[contains(@class, "node") and contains(@class, "node--view-mode-teaser")]'; |
|
|
|
|
$xpath .= '/h2/a/span[. = "Alpha"]'; |
|
|
|
|
$xpath .= '/h2/a/span[text() = "Alpha"]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
|
|
|
|
|
// Test loading entity from url. |
|
|
|
|
$xpath = '//div[@class = "tt-entity-from-url" and . = ""]'; |
|
|
|
|
$xpath = '//div[@class = "tt-entity-from-url" and not(text())]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
$this->drupalGet('/node/2'); |
|
|
|
|
$xpath = '//div[@class = "tt-entity-from-url"]'; |
|
|
|
|
$xpath .= '/article[contains(@class, "node")]'; |
|
|
|
|
$xpath .= '/h2/a/span[. = "Beta"]'; |
|
|
|
|
$xpath .= '/h2/a/span[text() = "Beta"]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
|
|
|
|
|
// Test field. |
|
|
|
|
$xpath = '//div[@class = "tt-field"]/div[contains(@class, "field--name-body")]/p[. != ""]'; |
|
|
|
|
$xpath = '//div[@class = "tt-field"]/div[contains(@class, "field--name-body")]/p[text() != ""]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
|
|
|
|
|
// Test menu (default). |
|
|
|
|
$xpath = '//div[@class = "tt-menu-default"]/ul[@class = "menu"]/li/a[. = "Link 1"]/../ul[@class = "menu"]/li/ul[@class = "menu"]/li/a[. = "Link 3"]'; |
|
|
|
|
$xpath = '//div[@class = "tt-menu-default"]/ul[@class = "menu"]/li/a[text() = "Link 1"]/../ul[@class = "menu"]/li/ul[@class = "menu"]/li/a[text() = "Link 3"]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
|
|
|
|
|
// Test menu (level). |
|
|
|
|
$xpath = '//div[@class = "tt-menu-level"]/ul[@class = "menu"]/li/a[. = "Link 2"]/../ul[@class = "menu"]/li/a[. = "Link 3"]'; |
|
|
|
|
$xpath = '//div[@class = "tt-menu-level"]/ul[@class = "menu"]/li/a[text() = "Link 2"]/../ul[@class = "menu"]/li/a[text() = "Link 3"]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
|
|
|
|
|
// Test menu (depth). |
|
|
|
|
$xpath = '//div[@class = "tt-menu-depth"]/ul[@class = "menu"]/li[not(ul)]/a[. = "Link 1"]'; |
|
|
|
|
$xpath = '//div[@class = "tt-menu-depth"]/ul[@class = "menu"]/li[not(ul)]/a[text() = "Link 1"]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
|
|
|
|
|
// Test region. |
|
|
|
|
$xpath = '//div[@class = "tt-region"]'; |
|
|
|
|
$xpath .= '/div[contains(@class, "block-page-title-block") and h1[@class="page-title" and . = "Beta"]]'; |
|
|
|
|
$xpath .= '/div[contains(@class, "block-page-title-block") and h1[@class="page-title" and text() = "Beta"]]'; |
|
|
|
|
$xpath .= '/following-sibling::div[@class="messages messages--warning" and contains(., "Hi!")]'; |
|
|
|
|
$xpath .= '/following-sibling::div[contains(@class, "block-system-powered-by-block")]/span[. = "Powered by Drupal"]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
@ -112,15 +112,15 @@ class TwigTweakTest extends BrowserTestBase {
|
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
|
|
|
|
|
// Test token. |
|
|
|
|
$xpath = '//div[@class = "tt-token" and . = "Drupal"]'; |
|
|
|
|
$xpath = '//div[@class = "tt-token" and text() = "Drupal"]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
|
|
|
|
|
// Test token with context. |
|
|
|
|
$xpath = '//div[@class = "tt-token-data" and . = "Beta"]'; |
|
|
|
|
$xpath = '//div[@class = "tt-token-data" and text() = "Beta"]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
|
|
|
|
|
// Test config. |
|
|
|
|
$xpath = '//div[@class = "tt-config" and . = "Anonymous"]'; |
|
|
|
|
$xpath = '//div[@class = "tt-config" and text() = "Anonymous"]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
|
|
|
|
|
// Test status message. |
|
|
|
@ -128,15 +128,15 @@ class TwigTweakTest extends BrowserTestBase {
|
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
|
|
|
|
|
// Test token replacement. |
|
|
|
|
$xpath = '//div[@class = "tt-token-replace" and . = "Site name: Drupal"]'; |
|
|
|
|
$xpath = '//div[@class = "tt-token-replace" and text() = "Site name: Drupal"]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
|
|
|
|
|
// Test preg replacement. |
|
|
|
|
$xpath = '//div[@class = "tt-preg-replace" and . = "foo-bar"]'; |
|
|
|
|
$xpath = '//div[@class = "tt-preg-replace" and text() = "foo-bar"]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
|
|
|
|
|
// Test image style. |
|
|
|
|
$xpath = '//div[@class = "tt-image-style" and contains(., "styles/thumbnail/public/images/ocean.jpg")]'; |
|
|
|
|
$xpath = '//div[@class = "tt-image-style" and contains(text(), "styles/thumbnail/public/images/ocean.jpg")]'; |
|
|
|
|
$this->assertByXpath($xpath); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|