diff --git a/core/modules/block/tests/modules/block_test/src/Plugin/Block/TestAccessBlock.php b/core/modules/block/tests/modules/block_test/src/Plugin/Block/TestAccessBlock.php index e558bcb..c416d17 100644 --- a/core/modules/block/tests/modules/block_test/src/Plugin/Block/TestAccessBlock.php +++ b/core/modules/block/tests/modules/block_test/src/Plugin/Block/TestAccessBlock.php @@ -20,6 +20,8 @@ */ class TestAccessBlock extends BlockBase implements ContainerFactoryPluginInterface { + protected $state; + /** * Tests the test access block. * diff --git a/core/modules/block/src/Tests/BlockAdminThemeTest.php b/core/modules/block/tests/src/Functional/BlockAdminThemeTest.php similarity index 94% rename from core/modules/block/src/Tests/BlockAdminThemeTest.php rename to core/modules/block/tests/src/Functional/BlockAdminThemeTest.php index 8773f03..88f35e4 100644 --- a/core/modules/block/src/Tests/BlockAdminThemeTest.php +++ b/core/modules/block/tests/src/Functional/BlockAdminThemeTest.php @@ -1,15 +1,15 @@ langcodes as $langcode) { $this->drupalGet('admin/structure/block', ['language' => $langcode]); - $this->clickLinkPartialName('Place block'); + $this->clickLink('Place block'); } // Create a menu in the default language. @@ -69,7 +69,7 @@ public function testBlockLinks() { // Check that the block is listed for all languages. foreach ($this->langcodes as $langcode) { $this->drupalGet('admin/structure/block', ['language' => $langcode]); - $this->clickLinkPartialName('Place block'); + $this->clickLink('Place block'); $this->assertText($edit['label']); } } diff --git a/core/modules/block/src/Tests/BlockRenderOrderTest.php b/core/modules/block/tests/src/Functional/BlockRenderOrderTest.php similarity index 94% rename from core/modules/block/src/Tests/BlockRenderOrderTest.php rename to core/modules/block/tests/src/Functional/BlockRenderOrderTest.php index a7e26de..2fd1ab8 100644 --- a/core/modules/block/src/Tests/BlockRenderOrderTest.php +++ b/core/modules/block/tests/src/Functional/BlockRenderOrderTest.php @@ -1,16 +1,16 @@ xpath($site_name_xpath); $site_slogan_element = $this->xpath($site_slogan_xpath); // Test that all branding elements are displayed. - $this->assertTrue(!empty($site_logo_element), 'The branding block logo was found.'); - $this->assertTrue(!empty($site_name_element), 'The branding block site name was found.'); - $this->assertTrue(!empty($site_slogan_element), 'The branding block slogan was found.'); + $this->assertNotEmpty($site_logo_element, 'The branding block logo was found.'); + $this->assertNotEmpty($site_name_element, 'The branding block site name was found.'); + $this->assertNotEmpty($site_slogan_element, 'The branding block slogan was found.'); $this->assertCacheTag('config:system.site'); // Be sure the slogan is XSS-filtered. @@ -54,7 +54,7 @@ public function testSystemBrandingSettings() { ->save(); $this->drupalGet(''); $site_slogan_element = $this->xpath($site_slogan_xpath); - $this->assertEqual($site_slogan_element[0], 'alert("Community carpentry");', 'The site slogan was XSS-filtered.'); + $this->assertEqual($site_slogan_element[0]->getText(), 'alert("Community carpentry");', 'The site slogan was XSS-filtered.'); // Turn just the logo off. $this->config('block.block.site-branding') @@ -65,9 +65,9 @@ public function testSystemBrandingSettings() { $site_name_element = $this->xpath($site_name_xpath); $site_slogan_element = $this->xpath($site_slogan_xpath); // Re-test all branding elements. - $this->assertTrue(empty($site_logo_element), 'The branding block logo was disabled.'); - $this->assertTrue(!empty($site_name_element), 'The branding block site name was found.'); - $this->assertTrue(!empty($site_slogan_element), 'The branding block slogan was found.'); + $this->assertEmpty($site_logo_element, 'The branding block logo was disabled.'); + $this->assertNotEmpty($site_name_element, 'The branding block site name was found.'); + $this->assertNotEmpty($site_slogan_element, 'The branding block slogan was found.'); $this->assertCacheTag('config:system.site'); // Turn just the site name off. @@ -80,9 +80,9 @@ public function testSystemBrandingSettings() { $site_name_element = $this->xpath($site_name_xpath); $site_slogan_element = $this->xpath($site_slogan_xpath); // Re-test all branding elements. - $this->assertTrue(!empty($site_logo_element), 'The branding block logo was found.'); - $this->assertTrue(empty($site_name_element), 'The branding block site name was disabled.'); - $this->assertTrue(!empty($site_slogan_element), 'The branding block slogan was found.'); + $this->assertNotEmpty($site_logo_element, 'The branding block logo was found.'); + $this->assertEmpty($site_name_element, 'The branding block site name was disabled.'); + $this->assertNotEmpty($site_slogan_element, 'The branding block slogan was found.'); $this->assertCacheTag('config:system.site'); // Turn just the site slogan off. @@ -95,9 +95,9 @@ public function testSystemBrandingSettings() { $site_name_element = $this->xpath($site_name_xpath); $site_slogan_element = $this->xpath($site_slogan_xpath); // Re-test all branding elements. - $this->assertTrue(!empty($site_logo_element), 'The branding block logo was found.'); - $this->assertTrue(!empty($site_name_element), 'The branding block site name was found.'); - $this->assertTrue(empty($site_slogan_element), 'The branding block slogan was disabled.'); + $this->assertNotEmpty($site_logo_element, 'The branding block logo was found.'); + $this->assertNotEmpty($site_name_element, 'The branding block site name was found.'); + $this->assertEmpty($site_slogan_element, 'The branding block slogan was disabled.'); $this->assertCacheTag('config:system.site'); // Turn the site name and the site slogan off. @@ -110,9 +110,9 @@ public function testSystemBrandingSettings() { $site_name_element = $this->xpath($site_name_xpath); $site_slogan_element = $this->xpath($site_slogan_xpath); // Re-test all branding elements. - $this->assertTrue(!empty($site_logo_element), 'The branding block logo was found.'); - $this->assertTrue(empty($site_name_element), 'The branding block site name was disabled.'); - $this->assertTrue(empty($site_slogan_element), 'The branding block slogan was disabled.'); + $this->assertNotEmpty($site_logo_element, 'The branding block logo was found.'); + $this->assertEmpty($site_name_element, 'The branding block site name was disabled.'); + $this->assertEmpty($site_slogan_element, 'The branding block slogan was disabled.'); $this->assertCacheTag('config:system.site'); } diff --git a/core/modules/block/src/Tests/BlockTest.php b/core/modules/block/tests/src/Functional/BlockTest.php similarity index 98% rename from core/modules/block/src/Tests/BlockTest.php rename to core/modules/block/tests/src/Functional/BlockTest.php index 5910d47..505c7fa 100644 --- a/core/modules/block/src/Tests/BlockTest.php +++ b/core/modules/block/tests/src/Functional/BlockTest.php @@ -1,6 +1,6 @@ xpath('//a[contains(@href, :href)]', [':href' => $add_url->toString()]); $this->assertEqual(1, count($links), 'Found one matching link.'); - $this->assertEqual(t('Place block'), (string) $links[0], 'Found the expected link text.'); + $this->assertEqual(t('Place block'), $links[0]->getText(), 'Found the expected link text.'); - list($path, $query_string) = explode('?', $links[0]['href'], 2); + list($path, $query_string) = explode('?', $links[0]->getAttribute('href'), 2); parse_str($query_string, $query_parts); $this->assertEqual($weight, $query_parts['weight'], 'Found the expected weight query string.'); @@ -164,7 +164,7 @@ public function testAddBlockFromLibraryWithWeight() { 'settings[label]' => $title, ]; // Create the block using the link parsed from the library page. - $this->drupalPostForm($this->getAbsoluteUrl($links[0]['href']), $edit, t('Save block')); + $this->drupalPostForm($this->getAbsoluteUrl($links[0]->getAttribute('href')), $edit, t('Save block')); // Ensure that the block was created with the expected weight. /** @var \Drupal\block\BlockInterface $block */ @@ -261,7 +261,7 @@ public function testBlockThemeSelector() { $theme_settings->set('default', $theme)->save(); $this->drupalGet(''); $elements = $this->xpath('//div[@id = :id]', [':id' => Html::getUniqueId('block-' . $block['id'])]); - $this->assertTrue(!empty($elements), 'The block was found.'); + $this->assertNotEmpty($elements, 'The block was found.'); } } diff --git a/core/modules/block/src/Tests/BlockTestBase.php b/core/modules/block/tests/src/Functional/BlockTestBase.php similarity index 89% rename from core/modules/block/src/Tests/BlockTestBase.php rename to core/modules/block/tests/src/Functional/BlockTestBase.php index 71f0ae6..f8cdf62 100644 --- a/core/modules/block/src/Tests/BlockTestBase.php +++ b/core/modules/block/tests/src/Functional/BlockTestBase.php @@ -1,14 +1,15 @@ drupalGet('admin/structure/block'); // Look for the blocks table. $blocks_table = $this->xpath("//table[@id='blocks']"); - $this->assertTrue(!empty($blocks_table), 'The blocks table is being rendered.'); + $this->assertNotEmpty($blocks_table, 'The blocks table is being rendered.'); // Look for test blocks in the table. foreach ($this->blockValues as $delta => $values) { $block = $this->blocks[$delta]; $label = $block->label(); $element = $this->xpath('//*[@id="blocks"]/tbody/tr[' . $values['tr'] . ']/td[1]/text()'); - $this->assertTrue((string) $element[0] == $label, 'The "' . $label . '" block title is set inside the ' . $values['settings']['region'] . ' region.'); + $this->assertEquals($element[0]->getText(), $label, 'The "' . $label . '" block title is set inside the ' . $values['settings']['region'] . ' region.'); // Look for a test block region select form element. $this->assertField('blocks[' . $values['settings']['id'] . '][region]', 'The block "' . $values['label'] . '" has a region assignment field.'); // Move the test block to the header region. @@ -134,7 +134,7 @@ public function testBlockAdminUiPage() { $this->drupalPlaceBlock('system_powered_by_block', ['region' => 'header', 'id' => 'header']); $this->drupalGet('admin/structure/block'); $element = $this->xpath('//tr[contains(@class, :class)]', [':class' => 'region-title-header']); - $this->assertTrue(!empty($element)); + $this->assertNotEmpty($element); // Ensure hidden themes do not appear in the UI. Enable another non base // theme and place the local tasks block. @@ -171,19 +171,19 @@ public function testCandidateBlockList() { $pattern = '//tr[.//td/div[text()=:title] and .//td[text()=:category] and .//td//a[contains(@href, :href)]]'; $this->drupalGet('admin/structure/block'); - $this->clickLinkPartialName('Place block'); + $this->clickLink('Place block'); $elements = $this->xpath($pattern, $arguments); - $this->assertTrue(!empty($elements), 'The test block appears in the category for its module.'); + $this->assertNotEmpty($elements, 'The test block appears in the category for its module.'); // Trigger the custom category addition in block_test_block_alter(). $this->container->get('state')->set('block_test_info_alter', TRUE); $this->container->get('plugin.manager.block')->clearCachedDefinitions(); $this->drupalGet('admin/structure/block'); - $this->clickLinkPartialName('Place block'); + $this->clickLink('Place block'); $arguments[':category'] = 'Custom category'; $elements = $this->xpath($pattern, $arguments); - $this->assertTrue(!empty($elements), 'The test block appears in a custom category controlled by block_test_block_alter().'); + $this->assertNotEmpty($elements, 'The test block appears in a custom category controlled by block_test_block_alter().'); } /** @@ -197,12 +197,12 @@ public function testContextAwareUnsatisfiedBlocks() { ]; $this->drupalGet('admin/structure/block'); - $this->clickLinkPartialName('Place block'); + $this->clickLink('Place block'); $elements = $this->xpath('//tr[.//td/div[text()=:text] and .//td[text()=:category] and .//td//a[contains(@href, :href)]]', $arguments); - $this->assertTrue(empty($elements), 'The context-aware test block does not appear.'); + $this->assertEmpty($elements, 'The context-aware test block does not appear.'); $definition = \Drupal::service('plugin.manager.block')->getDefinition('test_context_aware_unsatisfied'); - $this->assertTrue(!empty($definition), 'The context-aware test block does not exist.'); + $this->assertNotEmpty($definition, 'The context-aware test block does not exist.'); } /** @@ -223,11 +223,11 @@ public function testContextAwareBlocks() { $pattern = '//tr[.//td/div[text()=:title] and .//td[text()=:category] and .//td//a[contains(@href, :href)]]'; $this->drupalGet('admin/structure/block'); - $this->clickLinkPartialName('Place block'); + $this->clickLink('Place block'); $elements = $this->xpath($pattern, $arguments); - $this->assertTrue(!empty($elements), 'The context-aware test block appears.'); + $this->assertNotEmpty($elements, 'The context-aware test block appears.'); $definition = \Drupal::service('plugin.manager.block')->getDefinition('test_context_aware'); - $this->assertTrue(!empty($definition), 'The context-aware test block exists.'); + $this->assertNotEmpty($definition, 'The context-aware test block exists.'); $edit = [ 'region' => 'content', 'settings[context_mapping][user]' => '@block_test.multiple_static_context:userB', diff --git a/core/modules/block/src/Tests/BlockXssTest.php b/core/modules/block/tests/src/Functional/BlockXssTest.php similarity index 93% rename from core/modules/block/src/Tests/BlockXssTest.php rename to core/modules/block/tests/src/Functional/BlockXssTest.php index b37f4cd..3e661d7 100644 --- a/core/modules/block/src/Tests/BlockXssTest.php +++ b/core/modules/block/tests/src/Functional/BlockXssTest.php @@ -1,12 +1,12 @@ drupalLogin($this->drupalCreateUser(['administer blocks', 'access administration pages'])); $this->drupalGet(Url::fromRoute('block.admin_display')); - $this->clickLinkPartialName('Place block'); + $this->clickLink('Place block'); $this->assertNoEscaped('<'); } @@ -58,7 +58,7 @@ public function testXssInCategory() { $this->drupalPlaceBlock('test_xss_title'); $this->drupalLogin($this->drupalCreateUser(['administer blocks', 'access administration pages'])); $this->drupalGet(Url::fromRoute('block.admin_display')); - $this->clickLinkPartialName('Place block'); + $this->clickLink('Place block'); $this->assertNoRaw(""); } @@ -73,7 +73,7 @@ public function testBlockXss() { $this->doBlockContentTest(); $this->drupalGet(Url::fromRoute('block.admin_display')); - $this->clickLinkPartialName('Place block'); + $this->clickLink('Place block'); $this->assertNoRaw('&lt;', 'The page does not have double escaped HTML tags.'); } @@ -101,7 +101,7 @@ protected function doViewTest() { $view->save(); $this->drupalGet(Url::fromRoute('block.admin_display')); - $this->clickLinkPartialName('Place block'); + $this->clickLink('Place block'); // \Drupal\views\Plugin\Derivative\ViewsBlock::getDerivativeDefinitions() // has a different code path for an admin label based only on the View @@ -137,7 +137,7 @@ protected function doMenuTest() { ])->save(); $this->drupalGet(Url::fromRoute('block.admin_display')); - $this->clickLinkPartialName('Place block'); + $this->clickLink('Place block'); $this->assertEscaped(''); $this->assertNoRaw(''); @@ -158,7 +158,7 @@ protected function doBlockContentTest() { ])->save(); $this->drupalGet(Url::fromRoute('block.admin_display')); - $this->clickLinkPartialName('Place block'); + $this->clickLink('Place block'); $this->assertEscaped(''); $this->assertNoRaw(''); diff --git a/core/modules/block/src/Tests/NonDefaultBlockAdminTest.php b/core/modules/block/tests/src/Functional/NonDefaultBlockAdminTest.php similarity index 86% rename from core/modules/block/src/Tests/NonDefaultBlockAdminTest.php rename to core/modules/block/tests/src/Functional/NonDefaultBlockAdminTest.php index fc2f33c..7b7927d 100644 --- a/core/modules/block/src/Tests/NonDefaultBlockAdminTest.php +++ b/core/modules/block/tests/src/Functional/NonDefaultBlockAdminTest.php @@ -1,15 +1,15 @@ array( - * 'Drupal\block\Tests\BlockTest' => array( - * 'name' => 'Drupal\block\Tests\BlockTest', + * 'Drupal\Tests\block\Functional\BlockTest' => array( + * 'name' => 'Drupal\Tests\block\Functional\BlockTest', * 'description' => 'Tests block UI CRUD functionality.', * 'group' => 'block', * ), diff --git a/core/tests/Drupal/FunctionalTests/AssertLegacyTrait.php b/core/tests/Drupal/FunctionalTests/AssertLegacyTrait.php index c88949d..d684ae7 100644 --- a/core/tests/Drupal/FunctionalTests/AssertLegacyTrait.php +++ b/core/tests/Drupal/FunctionalTests/AssertLegacyTrait.php @@ -720,6 +720,19 @@ protected function assertCacheTag($expected_cache_tag) { } /** + * Asserts whether an expected cache tag was absent in the last response. + * + * @param string $cache_tag + * The expected cache tag. + * + * @deprecated Scheduled for removal in Drupal 9.0.0. + * Use $this->assertSession()->responseHeaderNotContains() instead. + */ + protected function assertNoCacheTag($cache_tag) { + $this->assertSession()->responseHeaderNotContains('X-Drupal-Cache-Tags', $cache_tag); + } + + /** * Checks that current response header equals value. * * @param string $name