Files
2017-03-02 21:57:21 -06:00

264 lines
6.3 KiB
PHP

<?php
/*
* This file is part of the symfony package.
* (c) Fabien Potencier <fabien.potencier@symfony-project.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
$app = 'frontend';
if (!include(dirname(__FILE__).'/../bootstrap/functional.php'))
{
return;
}
class TestBrowser extends sfTestBrowser
{
public $events = array();
public function listen(sfEvent $event)
{
$this->events[] = $event;
}
}
$b = new TestBrowser();
$b->addListener('context.load_factories', array($b, 'listen'));
// listeners
$b->get('/');
$b->test()->is(count($b->events), 1, 'browser can connect to context.load_factories');
// exceptions
$b->
get('/exception/noException')->
with('request')->begin()->
isParameter('module', 'exception')->
isParameter('action', 'noException')->
end()->
with('response')->begin()->
isStatusCode(200)->
matches('/foo/')->
end()->
get('/exception/throwsException')->
with('request')->begin()->
isParameter('module', 'exception')->
isParameter('action', 'throwsException')->
end()->
with('response')->isStatusCode(500)->
throwsException('Exception')->
get('/exception/throwsException')->
with('request')->begin()->
isParameter('module', 'exception')->
isParameter('action', 'throwsException')->
end()->
with('response')->isStatusCode(500)->
throwsException('Exception', '/Exception message/')->
get('/exception/throwsException')->
with('request')->begin()->
isParameter('module', 'exception')->
isParameter('action', 'throwsException')->
end()->
with('response')->isStatusCode(500)->
throwsException('Exception', '/message/')->
get('/exception/throwsException')->
with('request')->begin()->
isParameter('module', 'exception')->
isParameter('action', 'throwsException')->
end()->
with('response')->isStatusCode(500)->
throwsException(null, '!/sfException/')->
get('/exception/throwsSfException')->
with('request')->begin()->
isParameter('module', 'exception')->
isParameter('action', 'throwsSfException')->
end()->
with('response')->isStatusCode(500)->
throwsException('sfException')->
get('/exception/throwsSfException')->
with('request')->begin()->
isParameter('module', 'exception')->
isParameter('action', 'throwsSfException')->
end()->
with('response')->isStatusCode(500)->
throwsException('sfException', 'sfException message')
;
$b->
get('/browser')->
with('response')->begin()->
matches('/html/')->
checkElement('h1', 'html')->
end()->
get('/browser/text')->
with('response')->begin()->
matches('/text/')->
end()
;
try
{
$b->with('response')->checkElement('h1', 'text');
$b->test()->fail('The DOM is not accessible if the response content type is not HTML');
}
catch (LogicException $e)
{
$b->test()->pass('The DOM is not accessible if the response content type is not HTML');
}
// check response headers
$b->
get('/browser/responseHeader')->
with('response')->begin()->
isStatusCode()->
isHeader('content-type', 'text/plain; charset=utf-8')->
isHeader('content-type', '#text/plain#')->
isHeader('content-type', '!#text/html#')->
isHeader('foo', 'bar')->
isHeader('foo', 'foobar')->
end()
;
// cookies
$b->
setCookie('foo', 'bar')->
setCookie('bar', 'foo')->
setCookie('foofoo', 'foo', time() - 10)->
get('/cookie')->
with('request')->begin()->
hasCookie('foofoo', false)->
hasCookie('foo')->
isCookie('foo', 'bar')->
isCookie('foo', '/a/')->
isCookie('foo', '!/z/')->
end()->
with('response')->checkElement('p', 'bar.foo-')->
get('/cookie')->
with('request')->begin()->
hasCookie('foo')->
isCookie('foo', 'bar')->
isCookie('foo', '/a/')->
isCookie('foo', '!/z/')->
end()->
with('response')->checkElement('p', 'bar.foo-')->
removeCookie('foo')->
get('/cookie')->
with('request')->begin()->
hasCookie('foo', false)->
hasCookie('bar')->
end()->
with('response')->checkElement('p', '.foo-')->
clearCookies()->
get('/cookie')->
with('request')->begin()->
hasCookie('foo', false)->
hasCookie('bar', false)->
end()->
with('response')->checkElement('p', '.-')
;
$b->
setCookie('foo', 'bar')->
setCookie('bar', 'foo')->
get('/cookie/setCookie')->
get('/cookie')->
with('request')->begin()->
hasCookie('foo')->
isCookie('foo', 'bar')->
isCookie('foo', '/a/')->
isCookie('foo', '!/z/')->
end()->
with('response')->checkElement('p', 'bar.foo-barfoo')->
get('/cookie')->
with('request')->begin()->
hasCookie('foo')->
isCookie('foo', 'bar')->
isCookie('foo', '/a/')->
isCookie('foo', '!/z/')->
end()->
with('response')->checkElement('p', 'bar.foo-barfoo')->
removeCookie('foo')->
get('/cookie')->
with('request')->begin()->
hasCookie('foo', false)->
hasCookie('bar')->
end()->
with('response')->checkElement('p', '.foo-barfoo')->
get('/cookie/removeCookie')->
get('/cookie')->
with('request')->begin()->
hasCookie('foo', false)->
hasCookie('bar')->
end()->
with('response')->checkElement('p', '.foo-')->
get('/cookie/setCookie')->
clearCookies()->
get('/cookie')->
with('request')->begin()->
hasCookie('foo', false)->
hasCookie('bar', false)->
end()->
with('response')->checkElement('p', '.-')
;
$b->
get('/browser')->
with('request')->isMethod('get')->
post('/browser')->
with('request')->isMethod('post')->
call('/browser', 'put')->
with('request')->isMethod('put')
;
// sfBrowser: clean the custom view templates
$b->
get('/browser/templateCustom')->
with('response')->checkElement('#test', 'template')->
get('/browser/templateCustom/custom/1')->
with('response')->checkElement('#test', 'template 1')->
get('/browser/templateCustom')->
with('response')->checkElement('#test', 'template')
;
$b
->getAndCheck('browser', 'redirect1', null, 302)
->followRedirect()
->with('request')->begin()
->isParameter('module', 'browser')
->isParameter('action', 'redirectTarget1')
->end()
->with('response')->isStatusCode(200)
->getAndCheck('browser', 'redirect2', null, 302)
->followRedirect()
->with('request')->begin()
->isParameter('module', 'browser')
->isParameter('action', 'redirectTarget2')
->end()
->with('response')->isStatusCode(200)
;