class DrupalMinkClientTest
Test \Drupal\BuildTests\Framework\DrupalMinkClient.
This test is adapted from \Symfony\Component\BrowserKit\Tests\ClientTest.
@coversDefaultClass \Drupal\BuildTests\Framework\DrupalMinkClient
@group Build
Hierarchy
- class \Drupal\BuildTests\Framework\Tests\DrupalMinkClientTest extends \PHPUnit\Framework\TestCase
Expanded class hierarchy of DrupalMinkClientTest
File
-
core/
tests/ Drupal/ BuildTests/ Framework/ Tests/ DrupalMinkClientTest.php, line 18
Namespace
Drupal\BuildTests\Framework\TestsView source
class DrupalMinkClientTest extends TestCase {
/**
* @dataProvider getTestsForMetaRefresh
* @covers ::getMetaRefreshUrl
*/
public function testFollowMetaRefresh(string $content, string $expectedEndingUrl, bool $followMetaRefresh = TRUE) {
$client = new TestClient();
$client->followMetaRefresh($followMetaRefresh);
$client->setNextResponse(new Response($content));
$client->request('GET', 'http://www.example.com/foo/foobar');
$this->assertEquals($expectedEndingUrl, $client->getRequest()
->getUri());
}
public function getTestsForMetaRefresh() {
return [
[
'<html><head><meta http-equiv="Refresh" content="4" /><meta http-equiv="refresh" content="0; URL=http://www.example.com/redirected"/></head></html>',
'http://www.example.com/redirected',
],
[
'<html><head><meta http-equiv="refresh" content="0;URL=http://www.example.com/redirected"/></head></html>',
'http://www.example.com/redirected',
],
[
'<html><head><meta http-equiv="refresh" content="0;URL=\'http://www.example.com/redirected\'"/></head></html>',
'http://www.example.com/redirected',
],
[
'<html><head><meta http-equiv="refresh" content=\'0;URL="http://www.example.com/redirected"\'/></head></html>',
'http://www.example.com/redirected',
],
[
'<html><head><meta http-equiv="refresh" content="0; URL = http://www.example.com/redirected"/></head></html>',
'http://www.example.com/redirected',
],
[
'<html><head><meta http-equiv="refresh" content="0;URL= http://www.example.com/redirected "/></head></html>',
'http://www.example.com/redirected',
],
[
'<html><head><meta http-equiv="refresh" content="0;url=http://www.example.com/redirected "/></head></html>',
'http://www.example.com/redirected',
],
[
'<html><head><noscript><meta http-equiv="refresh" content="0;URL=http://www.example.com/redirected"/></noscript></head></head></html>',
'http://www.example.com/redirected',
],
// Non-zero timeout should not result in a redirect.
[
'<html><head><meta http-equiv="refresh" content="4; URL=http://www.example.com/redirected"/></head></html>',
'http://www.example.com/foo/foobar',
],
[
'<html><body></body></html>',
'http://www.example.com/foo/foobar',
],
// HTML 5 allows the meta tag to be placed in head or body.
[
'<html><body><meta http-equiv="refresh" content="0;url=http://www.example.com/redirected"/></body></html>',
'http://www.example.com/redirected',
],
// Valid meta refresh should not be followed if disabled.
[
'<html><head><meta http-equiv="refresh" content="0;URL=http://www.example.com/redirected"/></head></html>',
'http://www.example.com/foo/foobar',
FALSE,
],
'drupal-1' => [
'<html><head><meta http-equiv="Refresh" content="0; URL=/update.php/start?id=2&op=do_nojs" /></body></html>',
'http://www.example.com/update.php/start?id=2&op=do_nojs',
],
'drupal-2' => [
'<html><head><noscript><meta http-equiv="Refresh" content="0; URL=/update.php/start?id=2&op=do_nojs" /></noscript></body></html>',
'http://www.example.com/update.php/start?id=2&op=do_nojs',
],
];
}
/**
* @covers ::request
*/
public function testBackForwardMetaRefresh() {
$client = new TestClient();
$client->followMetaRefresh();
// First request.
$client->request('GET', 'http://www.example.com/first-page');
$content = '<html><head><meta http-equiv="Refresh" content="0; URL=/refreshed" /></body></html>';
$client->setNextResponse(new Response($content, 200));
$client->request('GET', 'http://www.example.com/refresh-from-here');
$this->assertEquals('http://www.example.com/refreshed', $client->getRequest()
->getUri());
$client->back();
$this->assertEquals('http://www.example.com/first-page', $client->getRequest()
->getUri());
$client->forward();
$this->assertEquals('http://www.example.com/refreshed', $client->getRequest()
->getUri());
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
DrupalMinkClientTest::getTestsForMetaRefresh | public | function | |
DrupalMinkClientTest::testBackForwardMetaRefresh | public | function | @covers ::request |
DrupalMinkClientTest::testFollowMetaRefresh | public | function | @dataProvider getTestsForMetaRefresh @covers ::getMetaRefreshUrl |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.