class WebAssertTest
Same name and namespace in other branches
- 11.x core/tests/Drupal/Tests/Core/Test/WebAssertTest.php \Drupal\Tests\Core\Test\WebAssertTest
- 10 core/tests/Drupal/Tests/Core/Test/WebAssertTest.php \Drupal\Tests\Core\Test\WebAssertTest
Tests WebAssert functionality.
@group browsertestbase
@coversDefaultClass \Drupal\Tests\WebAssert
Hierarchy
- class \Drupal\Tests\BrowserTestBase uses \Drupal\Core\Test\FunctionalTestSetupTrait, \Drupal\Tests\UiHelperTrait, \Drupal\Core\Test\TestSetupTrait, \Drupal\Tests\block\Traits\BlockCreationTrait, \Drupal\FunctionalTests\AssertLegacyTrait, \Drupal\Tests\RandomGeneratorTrait, \Drupal\Tests\node\Traits\NodeCreationTrait, \Drupal\Tests\node\Traits\ContentTypeCreationTrait, \Drupal\Tests\ConfigTestTrait, \Drupal\Tests\TestRequirementsTrait, \Drupal\Tests\user\Traits\UserCreationTrait, \Drupal\Tests\XdebugRequestTrait, \Drupal\Tests\Traits\PhpUnitWarnings, \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait, \Drupal\Tests\ExtensionListTestTrait extends \PHPUnit\Framework\TestCase
- class \Drupal\FunctionalTests\WebAssertTest extends \Drupal\Tests\BrowserTestBase
Expanded class hierarchy of WebAssertTest
File
-
core/
tests/ Drupal/ FunctionalTests/ WebAssertTest.php, line 17
Namespace
Drupal\FunctionalTestsView source
class WebAssertTest extends BrowserTestBase {
/**
* {@inheritdoc}
*/
protected static $modules = [
'test_page_test',
];
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* Tests WebAssert::responseHeaderExists().
*
* @covers ::responseHeaderExists
*/
public function testResponseHeaderExists() {
$this->drupalGet('test-null-header');
$this->assertSession()
->responseHeaderExists('Null-Header');
$this->expectException(AssertionFailedError::class);
$this->expectExceptionMessage("Failed asserting that the response has a 'does-not-exist' header.");
$this->assertSession()
->responseHeaderExists('does-not-exist');
}
/**
* Tests WebAssert::responseHeaderDoesNotExist().
*
* @covers ::responseHeaderDoesNotExist
*/
public function testResponseHeaderDoesNotExist() {
$this->drupalGet('test-null-header');
$this->assertSession()
->responseHeaderDoesNotExist('does-not-exist');
$this->expectException(AssertionFailedError::class);
$this->expectExceptionMessage("Failed asserting that the response does not have a 'Null-Header' header.");
$this->assertSession()
->responseHeaderDoesNotExist('Null-Header');
}
/**
* @covers ::pageTextMatchesCount
*/
public function testPageTextMatchesCount() {
$this->drupalLogin($this->drupalCreateUser());
// Visit a Drupal page that requires login.
$this->drupalGet('test-page');
$this->assertSession()
->pageTextMatchesCount(1, '/Test page text\\./');
$this->expectException(AssertionFailedError::class);
$this->expectExceptionMessage("Failed asserting that the page matches the pattern '/does-not-exist/' 1 time(s), 0 found.");
$this->assertSession()
->pageTextMatchesCount(1, '/does-not-exist/');
}
/**
* @covers ::pageTextContainsOnce
*/
public function testPageTextContainsOnce() {
$this->drupalLogin($this->drupalCreateUser());
// Visit a Drupal page that requires login.
$this->drupalGet('test-page');
$this->assertSession()
->pageTextContainsOnce('Test page text.');
$this->expectException(ResponseTextException::class);
$this->expectExceptionMessage("Failed asserting that the page matches the pattern '/does\\-not\\-exist/ui' 1 time(s), 0 found.");
$this->assertSession()
->pageTextContainsOnce('does-not-exist');
}
/**
* @covers ::elementTextEquals
*/
public function testElementTextEquals() : void {
$this->drupalGet('test-page');
$this->assertSession()
->elementTextEquals('xpath', '//h1', 'Test page');
$this->expectException(AssertionFailedError::class);
$this->expectExceptionMessage("Failed asserting that the text of the element identified by '//h1' equals 'Foo page'.");
$this->assertSession()
->elementTextEquals('xpath', '//h1', 'Foo page');
}
/**
* @covers ::addressEquals
*/
public function testAddressEquals() : void {
$this->drupalGet('test-page');
$this->assertSession()
->addressEquals('test-page');
$this->assertSession()
->addressEquals('test-page?');
$this->assertSession()
->addressNotEquals('test-page?a=b');
$this->assertSession()
->addressNotEquals('other-page');
$this->drupalGet('test-page', [
'query' => [
'a' => 'b',
'c' => 'd',
],
]);
$this->assertSession()
->addressEquals('test-page');
$this->assertSession()
->addressEquals('test-page?a=b&c=d');
$this->assertSession()
->addressEquals(Url::fromRoute('test_page_test.test_page', [], [
'query' => [
'a' => 'b',
'c' => 'd',
],
]));
$this->assertSession()
->addressNotEquals('test-page?c=d&a=b');
$this->assertSession()
->addressNotEquals('test-page?a=b');
$this->assertSession()
->addressNotEquals('test-page?a=b&c=d&e=f');
$this->assertSession()
->addressNotEquals('other-page');
$this->assertSession()
->addressNotEquals('other-page?a=b&c=d');
$this->expectException(ExpectationException::class);
$this->expectExceptionMessage('Current page is "/test-page?a=b&c=d", but "/test-page?a=b&c=e" expected.');
$this->assertSession()
->addressEquals('test-page?a=b&c=e');
}
/**
* @covers ::addressNotEquals
*/
public function testAddressNotEqualsException() : void {
$this->drupalGet('test-page', [
'query' => [
'a' => 'b',
'c' => 'd',
],
]);
$this->expectException(ExpectationException::class);
$this->expectExceptionMessage('Current page is "/test-page?a=b&c=d", but should not be.');
$this->assertSession()
->addressNotEquals('test-page?a=b&c=d');
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.