diff --git a/core/modules/block/src/Tests/BlockTestBase.php b/core/modules/block/src/Tests/BlockTestBase.php
deleted file mode 100644
index 71f0ae6..0000000
--- a/core/modules/block/src/Tests/BlockTestBase.php
+++ /dev/null
@@ -1,71 +0,0 @@
-config('system.site')->set('page.front', '/test-page')->save();
-
- // Create Full HTML text format.
- $full_html_format = FilterFormat::create([
- 'format' => 'full_html',
- 'name' => 'Full HTML',
- ]);
- $full_html_format->save();
-
- // Create and log in an administrative user having access to the Full HTML
- // text format.
- $this->adminUser = $this->drupalCreateUser([
- 'administer blocks',
- $full_html_format->getPermissionName(),
- 'access administration pages',
- ]);
- $this->drupalLogin($this->adminUser);
-
- // Define the existing regions.
- $this->regions = [
- 'header',
- 'sidebar_first',
- 'content',
- 'sidebar_second',
- 'footer',
- ];
- $block_storage = $this->container->get('entity_type.manager')->getStorage('block');
- $blocks = $block_storage->loadByProperties(['theme' => $this->config('system.theme')->get('default')]);
- foreach ($blocks as $block) {
- $block->delete();
- }
- }
-
-}
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/tests/src/Functional/BlockCacheTest.php b/core/modules/block/tests/src/Functional/BlockCacheTest.php
index e5bb360..c747ae4 100644
--- a/core/modules/block/tests/src/Functional/BlockCacheTest.php
+++ b/core/modules/block/tests/src/Functional/BlockCacheTest.php
@@ -3,6 +3,7 @@
namespace Drupal\Tests\block\Functional;
use Drupal\Core\Cache\Cache;
+use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
use Drupal\Tests\BrowserTestBase;
/**
@@ -10,7 +11,7 @@
*
* @group block
*/
-class BlockCacheTest extends BrowserTestBase {
+class BlockCacheTest extends JavascriptTestBase {
/**
* Modules to install.
diff --git a/core/modules/block/tests/src/Functional/BlockLanguageCacheTest.php b/core/modules/block/tests/src/Functional/BlockLanguageCacheTest.php
index 9d49fdf..b9c7c90 100644
--- a/core/modules/block/tests/src/Functional/BlockLanguageCacheTest.php
+++ b/core/modules/block/tests/src/Functional/BlockLanguageCacheTest.php
@@ -57,7 +57,7 @@ public function testBlockLinks() {
// Create the block cache for all languages.
foreach ($this->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/tests/src/Functional/BlockSystemBrandingTest.php b/core/modules/block/tests/src/Functional/BlockSystemBrandingTest.php
index b641df0..3f19214 100644
--- a/core/modules/block/tests/src/Functional/BlockSystemBrandingTest.php
+++ b/core/modules/block/tests/src/Functional/BlockSystemBrandingTest.php
@@ -43,9 +43,9 @@ public function testSystemBrandingSettings() {
$site_name_element = $this->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/tests/src/Functional/BlockTest.php b/core/modules/block/tests/src/Functional/BlockTest.php
index e571698..505c7fa 100644
--- a/core/modules/block/tests/src/Functional/BlockTest.php
+++ b/core/modules/block/tests/src/Functional/BlockTest.php
@@ -150,9 +150,9 @@ public function testAddBlockFromLibraryWithWeight() {
]);
$links = $this->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/tests/src/Functional/BlockTestBase.php b/core/modules/block/tests/src/Functional/BlockTestBase.php
index 5bc7b6e..f8cdf62 100644
--- a/core/modules/block/tests/src/Functional/BlockTestBase.php
+++ b/core/modules/block/tests/src/Functional/BlockTestBase.php
@@ -3,12 +3,13 @@
namespace Drupal\Tests\block\Functional;
use Drupal\filter\Entity\FilterFormat;
+use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
use Drupal\Tests\BrowserTestBase;
/**
* Provides setup and helper methods for block module tests.
*/
-abstract class BlockTestBase extends BrowserTestBase {
+abstract class BlockTestBase extends JavascriptTestBase {
/**
* Modules to install.
diff --git a/core/modules/block/tests/src/Functional/BlockUiTest.php b/core/modules/block/tests/src/Functional/BlockUiTest.php
index 23d4d1e..e97c106 100644
--- a/core/modules/block/tests/src/Functional/BlockUiTest.php
+++ b/core/modules/block/tests/src/Functional/BlockUiTest.php
@@ -99,13 +99,13 @@ public function testBlockAdminUiPage() {
$this->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/tests/src/Functional/BlockXssTest.php b/core/modules/block/tests/src/Functional/BlockXssTest.php
index 8665aee..3e661d7 100644
--- a/core/modules/block/tests/src/Functional/BlockXssTest.php
+++ b/core/modules/block/tests/src/Functional/BlockXssTest.php
@@ -29,7 +29,7 @@ class BlockXssTest extends BrowserTestBase {
public function testNoUnexpectedEscaping() {
$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->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('<', '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/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