103 lines
3.7 KiB
PHP
103 lines
3.7 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the Symfony package.
|
|
*
|
|
* (c) Fabien Potencier <fabien@symfony.com>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Symfony\Component\BrowserKit\Tests;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
use Symfony\Component\BrowserKit\History;
|
|
use Symfony\Component\BrowserKit\Request;
|
|
|
|
class HistoryTest extends TestCase
|
|
{
|
|
public function testAdd()
|
|
{
|
|
$history = new History();
|
|
$history->add(new Request('http://www.example1.com/', 'get'));
|
|
$this->assertSame('http://www.example1.com/', $history->current()->getUri(), '->add() adds a request to the history');
|
|
|
|
$history->add(new Request('http://www.example2.com/', 'get'));
|
|
$this->assertSame('http://www.example2.com/', $history->current()->getUri(), '->add() adds a request to the history');
|
|
|
|
$history->add(new Request('http://www.example3.com/', 'get'));
|
|
$history->back();
|
|
$history->add(new Request('http://www.example4.com/', 'get'));
|
|
$this->assertSame('http://www.example4.com/', $history->current()->getUri(), '->add() adds a request to the history');
|
|
|
|
$history->back();
|
|
$this->assertSame('http://www.example2.com/', $history->current()->getUri(), '->add() adds a request to the history');
|
|
}
|
|
|
|
public function testClearIsEmpty()
|
|
{
|
|
$history = new History();
|
|
$history->add(new Request('http://www.example.com/', 'get'));
|
|
|
|
$this->assertFalse($history->isEmpty(), '->isEmpty() returns false if the history is not empty');
|
|
|
|
$history->clear();
|
|
|
|
$this->assertTrue($history->isEmpty(), '->isEmpty() true if the history is empty');
|
|
}
|
|
|
|
public function testCurrent()
|
|
{
|
|
$history = new History();
|
|
|
|
try {
|
|
$history->current();
|
|
$this->fail('->current() throws a \LogicException if the history is empty');
|
|
} catch (\Exception $e) {
|
|
$this->assertInstanceOf('LogicException', $e, '->current() throws a \LogicException if the history is empty');
|
|
}
|
|
|
|
$history->add(new Request('http://www.example.com/', 'get'));
|
|
|
|
$this->assertSame('http://www.example.com/', $history->current()->getUri(), '->current() returns the current request in the history');
|
|
}
|
|
|
|
public function testBack()
|
|
{
|
|
$history = new History();
|
|
$history->add(new Request('http://www.example.com/', 'get'));
|
|
|
|
try {
|
|
$history->back();
|
|
$this->fail('->back() throws a \LogicException if the history is already on the first page');
|
|
} catch (\Exception $e) {
|
|
$this->assertInstanceOf('LogicException', $e, '->current() throws a \LogicException if the history is already on the first page');
|
|
}
|
|
|
|
$history->add(new Request('http://www.example1.com/', 'get'));
|
|
$history->back();
|
|
|
|
$this->assertSame('http://www.example.com/', $history->current()->getUri(), '->back() returns the previous request in the history');
|
|
}
|
|
|
|
public function testForward()
|
|
{
|
|
$history = new History();
|
|
$history->add(new Request('http://www.example.com/', 'get'));
|
|
$history->add(new Request('http://www.example1.com/', 'get'));
|
|
|
|
try {
|
|
$history->forward();
|
|
$this->fail('->forward() throws a \LogicException if the history is already on the last page');
|
|
} catch (\Exception $e) {
|
|
$this->assertInstanceOf('LogicException', $e, '->forward() throws a \LogicException if the history is already on the last page');
|
|
}
|
|
|
|
$history->back();
|
|
$history->forward();
|
|
|
|
$this->assertSame('http://www.example1.com/', $history->current()->getUri(), '->forward() returns the next request in the history');
|
|
}
|
|
}
|