2016-07-07 16:44:38 +00:00
< ? php
namespace Drupal\FunctionalTests ;
2017-04-13 14:53:35 +00:00
use Behat\Mink\Exception\ElementNotFoundException ;
use Behat\Mink\Exception\ExpectationException ;
use Behat\Mink\Selector\Xpath\Escaper ;
2016-10-06 22:16:20 +00:00
use Drupal\Component\Render\FormattableMarkup ;
use Drupal\Component\Utility\Xss ;
2016-07-07 16:44:38 +00:00
use Drupal\KernelTests\AssertLegacyTrait as BaseAssertLegacyTrait ;
/**
* Provides convenience methods for assertions in browser tests .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0. Use the methods on
* \Drupal\Tests\WebAssert instead , for example
* @ code
* $this -> assertSession () -> statusCodeEquals ( 200 );
* @ endcode
*/
trait AssertLegacyTrait {
use BaseAssertLegacyTrait ;
/**
* Asserts that the element with the given CSS selector is present .
*
* @ param string $css_selector
* The CSS selector identifying the element to check .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> elementExists () instead .
*/
protected function assertElementPresent ( $css_selector ) {
$this -> assertSession () -> elementExists ( 'css' , $css_selector );
}
/**
* Asserts that the element with the given CSS selector is not present .
*
* @ param string $css_selector
* The CSS selector identifying the element to check .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> elementNotExists () instead .
*/
protected function assertElementNotPresent ( $css_selector ) {
$this -> assertSession () -> elementNotExists ( 'css' , $css_selector );
}
/**
* Passes if the page ( with HTML stripped ) contains the text .
*
* Note that stripping HTML tags also removes their attributes , such as
* the values of text fields .
*
* @ param string $text
* Plain text to look for .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
2016-10-06 22:16:20 +00:00
* Use instead :
* - $this -> assertSession () -> responseContains () for non - HTML responses ,
* like XML or Json .
* - $this -> assertSession () -> pageTextContains () for HTML responses . Unlike
* the deprecated assertText (), the passed text should be HTML decoded ,
* exactly as a human sees it in the browser .
2016-07-07 16:44:38 +00:00
*/
protected function assertText ( $text ) {
2016-10-06 22:16:20 +00:00
// Cast MarkupInterface to string.
$text = ( string ) $text ;
2016-07-07 16:44:38 +00:00
$content_type = $this -> getSession () -> getResponseHeader ( 'Content-type' );
// In case of a Non-HTML response (example: XML) check the original
// response.
if ( strpos ( $content_type , 'html' ) === FALSE ) {
$this -> assertSession () -> responseContains ( $text );
}
else {
2016-10-06 22:16:20 +00:00
$this -> assertTextHelper ( $text , FALSE );
2016-07-07 16:44:38 +00:00
}
}
/**
* Passes if the page ( with HTML stripped ) does not contains the text .
*
* Note that stripping HTML tags also removes their attributes , such as
* the values of text fields .
*
* @ param string $text
* Plain text to look for .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
2016-10-06 22:16:20 +00:00
* Use instead :
* - $this -> assertSession () -> responseNotContains () for non - HTML responses ,
* like XML or Json .
* - $this -> assertSession () -> pageTextNotContains () for HTML responses .
* Unlike the deprecated assertNoText (), the passed text should be HTML
* decoded , exactly as a human sees it in the browser .
2016-07-07 16:44:38 +00:00
*/
protected function assertNoText ( $text ) {
2016-10-06 22:16:20 +00:00
// Cast MarkupInterface to string.
$text = ( string ) $text ;
2016-07-07 16:44:38 +00:00
$content_type = $this -> getSession () -> getResponseHeader ( 'Content-type' );
// In case of a Non-HTML response (example: XML) check the original
// response.
if ( strpos ( $content_type , 'html' ) === FALSE ) {
$this -> assertSession () -> responseNotContains ( $text );
}
else {
2016-10-06 22:16:20 +00:00
$this -> assertTextHelper ( $text );
2016-07-07 16:44:38 +00:00
}
}
2016-10-06 22:16:20 +00:00
/**
* Helper for assertText and assertNoText .
*
* @ param string $text
* Plain text to look for .
* @ param bool $not_exists
* ( optional ) TRUE if this text should not exist , FALSE if it should .
* Defaults to TRUE .
*
* @ return bool
* TRUE on pass , FALSE on fail .
*/
protected function assertTextHelper ( $text , $not_exists = TRUE ) {
$args = [ '@text' => $text ];
$message = $not_exists ? new FormattableMarkup ( '"@text" not found' , $args ) : new FormattableMarkup ( '"@text" found' , $args );
$raw_content = $this -> getSession () -> getPage () -> getContent ();
// Trying to simulate what the user sees, given that it removes all text
// inside the head tags, removes inline Javascript, fix all HTML entities,
// removes dangerous protocols and filtering out all HTML tags, as they are
// not visible in a normal browser.
$raw_content = preg_replace ( '@<head>(.+?)</head>@si' , '' , $raw_content );
$page_text = Xss :: filter ( $raw_content , []);
$actual = $not_exists == ( strpos ( $page_text , ( string ) $text ) === FALSE );
$this -> assertTrue ( $actual , $message );
return $actual ;
}
2016-08-03 20:22:33 +00:00
/**
* Passes if the text is found ONLY ONCE on the text version of the page .
*
* The text version is the equivalent of what a user would see when viewing
* through a web browser . In other words the HTML has been filtered out of
* the contents .
*
* @ param string | \Drupal\Component\Render\MarkupInterface $text
* Plain text to look for .
* @ param string $message
* ( optional ) A message to display with the assertion . Do not translate
* messages with t () . If left blank , a default message will be displayed .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> getSession () -> getPage () -> getText () and substr_count () instead .
*/
protected function assertUniqueText ( $text , $message = NULL ) {
// Cast MarkupInterface objects to string.
$text = ( string ) $text ;
$message = $message ? : " ' $text ' found only once on the page " ;
$page_text = $this -> getSession () -> getPage () -> getText ();
$nr_found = substr_count ( $page_text , $text );
$this -> assertSame ( 1 , $nr_found , $message );
}
/**
* Passes if the text is found MORE THAN ONCE on the text version of the page .
*
* The text version is the equivalent of what a user would see when viewing
* through a web browser . In other words the HTML has been filtered out of
* the contents .
*
* @ param string | \Drupal\Component\Render\MarkupInterface $text
* Plain text to look for .
* @ param string $message
* ( optional ) A message to display with the assertion . Do not translate
* messages with t () . If left blank , a default message will be displayed .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> getSession () -> getPage () -> getText () and substr_count () instead .
*/
protected function assertNoUniqueText ( $text , $message = '' ) {
// Cast MarkupInterface objects to string.
$text = ( string ) $text ;
$message = $message ? : " ' $text ' found more than once on the page " ;
$page_text = $this -> getSession () -> getPage () -> getText ();
$nr_found = substr_count ( $page_text , $text );
$this -> assertGreaterThan ( 1 , $nr_found , $message );
}
2016-07-07 16:44:38 +00:00
/**
* Asserts the page responds with the specified response code .
*
* @ param int $code
* Response code . For example 200 is a successful page request . For a list
* of all codes see http :// www . w3 . org / Protocols / rfc2616 / rfc2616 - sec10 . html .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> statusCodeEquals () instead .
*/
protected function assertResponse ( $code ) {
$this -> assertSession () -> statusCodeEquals ( $code );
}
/**
* Asserts that a field exists with the given name and value .
*
* @ param string $name
* Name of field to assert .
* @ param string $value
* ( optional ) Value of the field to assert . You may pass in NULL ( default )
* to skip checking the actual value , while still checking that the field
* exists .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> fieldExists () or
* $this -> assertSession () -> fieldValueEquals () instead .
*/
protected function assertFieldByName ( $name , $value = NULL ) {
$this -> assertSession () -> fieldExists ( $name );
if ( $value !== NULL ) {
$this -> assertSession () -> fieldValueEquals ( $name , ( string ) $value );
}
}
2016-08-03 20:22:33 +00:00
/**
2017-04-13 14:53:35 +00:00
* Asserts that a field does not exist with the given name and value .
2016-08-03 20:22:33 +00:00
*
* @ param string $name
* Name of field to assert .
* @ param string $value
2017-04-13 14:53:35 +00:00
* ( optional ) Value for the field , to assert that the field ' s value on the
* page does not match it . You may pass in NULL to skip checking the
* value , while still checking that the field does not exist . However , the
* default value ( '' ) asserts that the field value is not an empty string .
2016-08-03 20:22:33 +00:00
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> fieldNotExists () or
* $this -> assertSession () -> fieldValueNotEquals () instead .
*/
2017-04-13 14:53:35 +00:00
protected function assertNoFieldByName ( $name , $value = '' ) {
if ( $this -> getSession () -> getPage () -> findField ( $name ) && isset ( $value )) {
2016-08-03 20:22:33 +00:00
$this -> assertSession () -> fieldValueNotEquals ( $name , ( string ) $value );
}
2017-04-13 14:53:35 +00:00
else {
$this -> assertSession () -> fieldNotExists ( $name );
}
2016-08-03 20:22:33 +00:00
}
2016-07-07 16:44:38 +00:00
/**
* Asserts that a field exists with the given ID and value .
*
* @ param string $id
* ID of field to assert .
* @ param string | \Drupal\Component\Render\MarkupInterface $value
* ( optional ) Value for the field to assert . You may pass in NULL to skip
* checking the value , while still checking that the field exists .
* However , the default value ( '' ) asserts that the field value is an empty
* string .
*
2017-04-13 14:53:35 +00:00
* @ throws \Behat\Mink\Exception\ElementNotFoundException
*
2016-07-07 16:44:38 +00:00
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> fieldExists () or
* $this -> assertSession () -> fieldValueEquals () instead .
*/
2017-04-13 14:53:35 +00:00
protected function assertFieldById ( $id , $value = '' ) {
$xpath = $this -> assertSession () -> buildXPathQuery ( '//textarea[@id=:value]|//input[@id=:value]|//select[@id=:value]' , [ ':value' => $id ]);
$field = $this -> getSession () -> getPage () -> find ( 'xpath' , $xpath );
if ( empty ( $field )) {
throw new ElementNotFoundException ( $this -> getSession () -> getDriver (), 'form field' , 'id' , $field );
}
if ( $value !== NULL ) {
$this -> assertEquals ( $value , $field -> getValue ());
}
2016-07-07 16:44:38 +00:00
}
/**
* Asserts that a field exists with the given name or ID .
*
* @ param string $field
* Name or ID of field to assert .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> fieldExists () instead .
*/
protected function assertField ( $field ) {
$this -> assertSession () -> fieldExists ( $field );
}
/**
* Asserts that a field exists with the given name or ID does NOT exist .
*
* @ param string $field
* Name or ID of field to assert .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> fieldNotExists () instead .
*/
protected function assertNoField ( $field ) {
$this -> assertSession () -> fieldNotExists ( $field );
}
/**
* Passes if the raw text IS found on the loaded page , fail otherwise .
*
* Raw text refers to the raw HTML that the page generated .
*
* @ param string $raw
* Raw ( HTML ) string to look for .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> responseContains () instead .
*/
protected function assertRaw ( $raw ) {
$this -> assertSession () -> responseContains ( $raw );
}
/**
* Passes if the raw text IS not found on the loaded page , fail otherwise .
*
* Raw text refers to the raw HTML that the page generated .
*
* @ param string $raw
* Raw ( HTML ) string to look for .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> responseNotContains () instead .
*/
protected function assertNoRaw ( $raw ) {
$this -> assertSession () -> responseNotContains ( $raw );
}
/**
* Pass if the page title is the given string .
*
* @ param string $expected_title
* The string the page title should be .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> titleEquals () instead .
*/
protected function assertTitle ( $expected_title ) {
// Cast MarkupInterface to string.
$expected_title = ( string ) $expected_title ;
return $this -> assertSession () -> titleEquals ( $expected_title );
}
/**
* Passes if a link with the specified label is found .
*
* An optional link index may be passed .
*
* @ param string | \Drupal\Component\Render\MarkupInterface $label
* Text between the anchor tags .
* @ param int $index
* Link position counting from zero .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> linkExists () instead .
*/
protected function assertLink ( $label , $index = 0 ) {
return $this -> assertSession () -> linkExists ( $label , $index );
}
/**
* Passes if a link with the specified label is not found .
*
* @ param string | \Drupal\Component\Render\MarkupInterface $label
* Text between the anchor tags .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> linkNotExists () instead .
*/
protected function assertNoLink ( $label ) {
return $this -> assertSession () -> linkNotExists ( $label );
}
/**
* Passes if a link containing a given href ( part ) is found .
*
* @ param string $href
* The full or partial value of the 'href' attribute of the anchor tag .
* @ param int $index
* Link position counting from zero .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
2017-04-13 14:53:35 +00:00
* Use $this -> assertSession () -> linkByHrefExists () instead .
2016-07-07 16:44:38 +00:00
*/
protected function assertLinkByHref ( $href , $index = 0 ) {
$this -> assertSession () -> linkByHrefExists ( $href , $index );
}
/**
* Passes if a link containing a given href ( part ) is not found .
*
* @ param string $href
* The full or partial value of the 'href' attribute of the anchor tag .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> linkByHrefNotExists () instead .
*/
protected function assertNoLinkByHref ( $href ) {
$this -> assertSession () -> linkByHrefNotExists ( $href );
}
/**
* Asserts that a field does not exist with the given ID and value .
*
* @ param string $id
* ID of field to assert .
* @ param string $value
* ( optional ) Value for the field , to assert that the field ' s value on the
* page doesn ' t match it . You may pass in NULL to skip checking the value ,
* while still checking that the field doesn ' t exist . However , the default
* value ( '' ) asserts that the field value is not an empty string .
*
2017-04-13 14:53:35 +00:00
* @ throws \Behat\Mink\Exception\ExpectationException
*
2016-07-07 16:44:38 +00:00
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> fieldNotExists () or
* $this -> assertSession () -> fieldValueNotEquals () instead .
*/
protected function assertNoFieldById ( $id , $value = '' ) {
2017-04-13 14:53:35 +00:00
$xpath = $this -> assertSession () -> buildXPathQuery ( '//textarea[@id=:value]|//input[@id=:value]|//select[@id=:value]' , [ ':value' => $id ]);
$field = $this -> getSession () -> getPage () -> find ( 'xpath' , $xpath );
// Return early if the field could not be found as expected.
if ( $field === NULL ) {
return ;
2016-07-07 16:44:38 +00:00
}
2017-04-13 14:53:35 +00:00
if ( ! isset ( $value )) {
throw new ExpectationException ( sprintf ( 'Id "%s" appears on this page, but it should not.' , $id ), $this -> getSession () -> getDriver ());
}
elseif ( $value === $field -> getValue ()) {
throw new ExpectationException ( sprintf ( 'Failed asserting that %s is not equal to %s' , $field -> getValue (), $value ), $this -> getSession () -> getDriver ());
2016-07-07 16:44:38 +00:00
}
}
/**
* Passes if the internal browser ' s URL matches the given path .
*
* @ param \Drupal\Core\Url | string $path
* The expected system path or URL .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> addressEquals () instead .
*/
protected function assertUrl ( $path ) {
$this -> assertSession () -> addressEquals ( $path );
}
/**
* Asserts that a select option in the current page exists .
*
* @ param string $id
* ID of select field to assert .
* @ param string $option
* Option to assert .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> optionExists () instead .
*/
protected function assertOption ( $id , $option ) {
return $this -> assertSession () -> optionExists ( $id , $option );
}
2017-04-13 14:53:35 +00:00
/**
* Asserts that a select option with the visible text exists .
*
* @ param string $id
* The ID of the select field to assert .
* @ param string $text
* The text for the option tag to assert .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> optionExists () instead .
*/
protected function assertOptionByText ( $id , $text ) {
return $this -> assertSession () -> optionExists ( $id , $text );
}
2016-07-07 16:44:38 +00:00
/**
* Asserts that a select option does NOT exist in the current page .
*
* @ param string $id
* ID of select field to assert .
* @ param string $option
* Option to assert .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> optionNotExists () instead .
*/
protected function assertNoOption ( $id , $option ) {
return $this -> assertSession () -> optionNotExists ( $id , $option );
}
2016-08-03 20:22:33 +00:00
/**
* Asserts that a select option in the current page is checked .
*
* @ param string $id
* ID of select field to assert .
* @ param string $option
* Option to assert .
* @ param string $message
* ( optional ) A message to display with the assertion . Do not translate
* messages with t () . If left blank , a default message will be displayed .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> optionExists () instead and check the
* " selected " attribute yourself .
*/
protected function assertOptionSelected ( $id , $option , $message = NULL ) {
$option_field = $this -> assertSession () -> optionExists ( $id , $option );
$message = $message ? : " Option $option for field $id is selected. " ;
$this -> assertTrue ( $option_field -> hasAttribute ( 'selected' ), $message );
}
/**
* Asserts that a checkbox field in the current page is checked .
*
* @ param string $id
* ID of field to assert .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> checkboxChecked () instead .
*/
protected function assertFieldChecked ( $id ) {
$this -> assertSession () -> checkboxChecked ( $id );
}
/**
* Asserts that a checkbox field in the current page is not checked .
*
* @ param string $id
* ID of field to assert .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> checkboxNotChecked () instead .
*/
protected function assertNoFieldChecked ( $id ) {
$this -> assertSession () -> checkboxNotChecked ( $id );
}
2017-04-13 14:53:35 +00:00
/**
* Asserts that a field exists in the current page by the given XPath .
*
* @ param string $xpath
* XPath used to find the field .
* @ param string $value
* ( optional ) Value of the field to assert . You may pass in NULL ( default )
* to skip checking the actual value , while still checking that the field
* exists .
* @ param string $message
* ( optional ) A message to display with the assertion . Do not translate
* messages with t () .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> xpath () instead and check the values directly in the test .
*/
protected function assertFieldByXPath ( $xpath , $value = NULL , $message = '' ) {
$fields = $this -> xpath ( $xpath );
$this -> assertFieldsByValue ( $fields , $value , $message );
}
/**
* Asserts that a field does not exist or its value does not match , by XPath .
*
* @ param string $xpath
* XPath used to find the field .
* @ param string $value
* ( optional ) Value of the field , to assert that the field ' s value on the
* page does not match it .
* @ param string $message
* ( optional ) A message to display with the assertion . Do not translate
* messages with t () .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> xpath () instead and assert that the result is empty .
*/
protected function assertNoFieldByXPath ( $xpath , $value = NULL , $message = '' ) {
$fields = $this -> xpath ( $xpath );
// If value specified then check array for match.
$found = TRUE ;
if ( isset ( $value )) {
$found = FALSE ;
if ( $fields ) {
foreach ( $fields as $field ) {
if ( $field -> getAttribute ( 'value' ) == $value ) {
$found = TRUE ;
}
}
}
}
return $this -> assertFalse ( $fields && $found , $message );
}
/**
* Asserts that a field exists in the current page with a given Xpath result .
*
* @ param \Behat\Mink\Element\NodeElement [] $fields
* Xml elements .
* @ param string $value
* ( optional ) Value of the field to assert . You may pass in NULL ( default ) to skip
* checking the actual value , while still checking that the field exists .
* @ param string $message
* ( optional ) A message to display with the assertion . Do not translate
* messages with t () .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Iterate over the fields yourself instead and directly check the values in
* the test .
*/
protected function assertFieldsByValue ( $fields , $value = NULL , $message = '' ) {
// If value specified then check array for match.
$found = TRUE ;
if ( isset ( $value )) {
$found = FALSE ;
if ( $fields ) {
foreach ( $fields as $field ) {
if ( $field -> getAttribute ( 'value' ) == $value ) {
// Input element with correct value.
$found = TRUE ;
}
elseif ( $field -> find ( 'xpath' , '//option[@value = ' . ( new Escaper ()) -> escapeLiteral ( $value ) . ' and @selected = "selected"]' )) {
// Select element with an option.
$found = TRUE ;
}
elseif ( $field -> getText () == $value ) {
// Text area with correct text.
$found = TRUE ;
}
}
}
}
$this -> assertTrue ( $fields && $found , $message );
}
2016-07-07 16:44:38 +00:00
/**
* Passes if the raw text IS found escaped on the loaded page , fail otherwise .
*
* Raw text refers to the raw HTML that the page generated .
*
* @ param string $raw
* Raw ( HTML ) string to look for .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> assertEscaped () instead .
*/
protected function assertEscaped ( $raw ) {
$this -> assertSession () -> assertEscaped ( $raw );
}
/**
* Passes if the raw text is not found escaped on the loaded page .
*
* Raw text refers to the raw HTML that the page generated .
*
* @ param string $raw
* Raw ( HTML ) string to look for .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> assertNoEscaped () instead .
*/
protected function assertNoEscaped ( $raw ) {
$this -> assertSession () -> assertNoEscaped ( $raw );
}
2016-08-03 20:22:33 +00:00
/**
* Triggers a pass if the Perl regex pattern is found in the raw content .
*
* @ param string $pattern
* Perl regex to look for including the regex delimiters .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> responseMatches () instead .
*/
protected function assertPattern ( $pattern ) {
$this -> assertSession () -> responseMatches ( $pattern );
}
2017-04-13 14:53:35 +00:00
/**
* Triggers a pass if the Perl regex pattern is not found in the raw content .
*
* @ param string $pattern
* Perl regex to look for including the regex delimiters .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> responseNotMatches () instead .
*
* @ see https :// www . drupal . org / node / 2864262
*/
protected function assertNoPattern ( $pattern ) {
@ trigger_error ( 'assertNoPattern() is deprecated and scheduled for removal in Drupal 9.0.0. Use $this->assertSession()->responseNotMatches($pattern) instead. See https://www.drupal.org/node/2864262.' , E_USER_DEPRECATED );
$this -> assertSession () -> responseNotMatches ( $pattern );
}
2016-07-07 16:44:38 +00:00
/**
* Asserts whether an expected cache tag was present in the last response .
*
* @ param string $expected_cache_tag
* The expected cache tag .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> responseHeaderContains () instead .
*/
protected function assertCacheTag ( $expected_cache_tag ) {
$this -> assertSession () -> responseHeaderContains ( 'X-Drupal-Cache-Tags' , $expected_cache_tag );
}
2017-04-13 14:53:35 +00:00
/**
* Checks that current response header equals value .
*
* @ param string $name
* Name of header to assert .
* @ param string $value
* Value of the header to assert
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> responseHeaderEquals () instead .
*/
protected function assertHeader ( $name , $value ) {
$this -> assertSession () -> responseHeaderEquals ( $name , $value );
}
2016-07-07 16:44:38 +00:00
/**
* Returns WebAssert object .
*
* @ param string $name
* ( optional ) Name of the session . Defaults to the active session .
*
* @ return \Drupal\Tests\WebAssert
* A new web - assert option for asserting the presence of elements with .
*/
abstract public function assertSession ( $name = NULL );
/**
* Builds an XPath query .
*
* Builds an XPath query by replacing placeholders in the query by the value
* of the arguments .
*
* XPath 1.0 ( the version supported by libxml2 , the underlying XML library
* used by PHP ) doesn ' t support any form of quotation . This function
* simplifies the building of XPath expression .
*
* @ param string $xpath
* An XPath query , possibly with placeholders in the form ':name' .
* @ param array $args
* An array of arguments with keys in the form ':name' matching the
* placeholders in the query . The values may be either strings or numeric
* values .
*
* @ return string
* An XPath query with arguments replaced .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> assertSession () -> buildXPathQuery () instead .
*/
2017-04-13 14:53:35 +00:00
protected function buildXPathQuery ( $xpath , array $args = []) {
2016-07-07 16:44:38 +00:00
return $this -> assertSession () -> buildXPathQuery ( $xpath , $args );
}
2017-04-13 14:53:35 +00:00
/**
* Gets the current raw content .
*
* @ deprecated Scheduled for removal in Drupal 9.0 . 0.
* Use $this -> getSession () -> getPage () -> getContent () instead .
*/
protected function getRawContent () {
@ trigger_error ( 'AssertLegacyTrait::getRawContent() is scheduled for removal in Drupal 9.0.0. Use $this->getSession()->getPage()->getContent() instead.' , E_USER_DEPRECATED );
return $this -> getSession () -> getPage () -> getContent ();
}
2016-07-07 16:44:38 +00:00
}