From 542319714d620e82177b477f25dd1eb4260416bf Mon Sep 17 00:00:00 2001 From: Chi Date: Sat, 18 Mar 2017 19:11:41 +0300 Subject: [PATCH] Code cleanup. --- README.txt | 9 ++-- src/TwigExtension.php | 7 ++- tests/src/Functional/TwigTweakTest.php | 44 +++++++++---------- .../templates/twig-tweak-test.html.twig | 19 +++++++- .../twig_tweak_test.links.menu.yml | 0 twig_tweak.info.yml | 3 +- 6 files changed, 52 insertions(+), 30 deletions(-) rename twig_tweak.links.menu.yml => tests/twig_tweak_test/twig_tweak_test.links.menu.yml (100%) diff --git a/README.txt b/README.txt index f533c5a..7c57093 100644 --- a/README.txt +++ b/README.txt @@ -1,6 +1,9 @@ -- SUMMARY -- -Twig Tweak module provides developers a Twig extension with some addition -functions and filters. +Twig Tweak module provides a Twig extension with some useful functions and +filters. See src/TwigExtension.php for details. -See src/TwigExtension.php for details. +-- LINKS -- +Project page: https://www.drupal.org/project/twig_tweak +Twig home page: http://twig.sensiolabs.org +Drupal 8 Twig documentation: https://www.drupal.org/docs/8/theming/twig diff --git a/src/TwigExtension.php b/src/TwigExtension.php index 953da88..e636e13 100644 --- a/src/TwigExtension.php +++ b/src/TwigExtension.php @@ -145,7 +145,7 @@ class TwigExtension extends \Twig_Extension { * The region to build. * @param string $theme * (Optional) The name of the theme to load the region. If it is not - * provided default site theme will be used. + * provided then default theme will be used. * * @return array * A render array to display the region content. @@ -395,7 +395,10 @@ class TwigExtension extends \Twig_Extension { * (optional) The message's type. Defaults to 'status'. * @param bool $repeat * (optional) If this is FALSE and the message is already set, then the - * message won't be repeated. Defaults to FALSE. + * message will not be repeated. Defaults to FALSE. + * + * @return array + * A render array to disable caching. * * @see drupal_set_message() */ diff --git a/tests/src/Functional/TwigTweakTest.php b/tests/src/Functional/TwigTweakTest.php index 3cfe1f8..6ddb989 100644 --- a/tests/src/Functional/TwigTweakTest.php +++ b/tests/src/Functional/TwigTweakTest.php @@ -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); } diff --git a/tests/twig_tweak_test/templates/twig-tweak-test.html.twig b/tests/twig_tweak_test/templates/twig-tweak-test.html.twig index b16f453..aa4a0b1 100644 --- a/tests/twig_tweak_test/templates/twig-tweak-test.html.twig +++ b/tests/twig_tweak_test/templates/twig-tweak-test.html.twig @@ -1,4 +1,21 @@ -
+ +
{{ drupal_view('twig_tweak_test') }}
{{ drupal_view('twig_tweak_test', 'page_1') }}
{{ drupal_view('twig_tweak_test', 'page_1', 1) }}
diff --git a/twig_tweak.links.menu.yml b/tests/twig_tweak_test/twig_tweak_test.links.menu.yml similarity index 100% rename from twig_tweak.links.menu.yml rename to tests/twig_tweak_test/twig_tweak_test.links.menu.yml diff --git a/twig_tweak.info.yml b/twig_tweak.info.yml index f771d6c..3aa30a5 100644 --- a/twig_tweak.info.yml +++ b/twig_tweak.info.yml @@ -1,5 +1,4 @@ name: Twig tweak type: module -description: Provides some extra twig functions. -package: custom +description: Provides some extra Twig functions and filters. core: 8.x