Open Journal Systems  3.3.0
HistoryPluginTest.php
1 <?php
2 
4 
10 
15 {
24  protected function addRequests(HistoryPlugin $h, $num)
25  {
26  $requests = array();
27  $client = new Client('http://127.0.0.1/');
28  for ($i = 0; $i < $num; $i++) {
29  $requests[$i] = $client->get();
30  $requests[$i]->setResponse(new Response(200), true);
31  $requests[$i]->send();
32  $h->add($requests[$i]);
33  }
34 
35  return $requests;
36  }
37 
39  {
40  $this->assertInternalType('array', HistoryPlugin::getSubscribedEvents());
41  }
42 
43  public function testMaintainsLimitValue()
44  {
45  $h = new HistoryPlugin();
46  $this->assertSame($h, $h->setLimit(10));
47  $this->assertEquals(10, $h->getLimit());
48  }
49 
50  public function testAddsRequests()
51  {
52  $h = new HistoryPlugin();
53  $requests = $this->addRequests($h, 1);
54  $this->assertEquals(1, count($h));
55  $i = $h->getIterator();
56  $this->assertEquals(1, count($i));
57  $this->assertEquals($requests[0], $i[0]);
58  }
59 
63  public function testMaintainsLimit()
64  {
65  $h = new HistoryPlugin();
66  $h->setLimit(2);
67  $requests = $this->addRequests($h, 3);
68  $this->assertEquals(2, count($h));
69  $i = 0;
70  foreach ($h as $request) {
71  if ($i > 0) {
72  $this->assertSame($requests[$i], $request);
73  }
74  }
75  }
76 
77  public function testReturnsLastRequest()
78  {
79  $h = new HistoryPlugin();
80  $requests = $this->addRequests($h, 5);
81  $this->assertSame(end($requests), $h->getLastRequest());
82  }
83 
84  public function testReturnsLastResponse()
85  {
86  $h = new HistoryPlugin();
87  $requests = $this->addRequests($h, 5);
88  $this->assertSame(end($requests)->getResponse(), $h->getLastResponse());
89  }
90 
91  public function testClearsHistory()
92  {
93  $h = new HistoryPlugin();
94  $requests = $this->addRequests($h, 5);
95  $this->assertEquals(5, count($h));
96  $h->clear();
97  $this->assertEquals(0, count($h));
98  }
99 
103  public function testUpdatesAddRequests()
104  {
105  $h = new HistoryPlugin();
106  $client = new Client('http://127.0.0.1/');
107  $client->getEventDispatcher()->addSubscriber($h);
108 
109  $request = $client->get();
110  $request->setResponse(new Response(200), true);
111  $request->send();
112 
113  $this->assertSame($request, $h->getLastRequest());
114  }
115 
116  public function testCanCastToString()
117  {
118  $client = new Client('http://127.0.0.1/');
119  $h = new HistoryPlugin();
120  $client->getEventDispatcher()->addSubscriber($h);
121 
122  $mock = new MockPlugin(array(
123  new Response(301, array('Location' => '/redirect1', 'Content-Length' => 0)),
124  new Response(307, array('Location' => '/redirect2', 'Content-Length' => 0)),
125  new Response(200, array('Content-Length' => '2'), 'HI')
126  ));
127 
128  $client->getEventDispatcher()->addSubscriber($mock);
129  $request = $client->get();
130  $request->send();
131  $this->assertEquals(3, count($h));
132  $this->assertEquals(3, count($mock->getReceivedRequests()));
133 
134  $h = str_replace("\r", '', $h);
135  $this->assertContains("> GET / HTTP/1.1\nHost: 127.0.0.1\nUser-Agent:", $h);
136  $this->assertContains("< HTTP/1.1 301 Moved Permanently\nLocation: /redirect1", $h);
137  $this->assertContains("< HTTP/1.1 307 Temporary Redirect\nLocation: /redirect2", $h);
138  $this->assertContains("< HTTP/1.1 200 OK\nContent-Length: 2\n\nHI", $h);
139  }
140 }
Guzzle\Tests\Plugin\History\HistoryPluginTest\testUpdatesAddRequests
testUpdatesAddRequests()
Definition: HistoryPluginTest.php:103
Guzzle\Plugin\History\HistoryPlugin
Definition: HistoryPlugin.php:13
Guzzle\Tests\GuzzleTestCase
Definition: GuzzleTestCase.php:22
Guzzle\Http\Message\Response
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Response.php:17
Guzzle\Tests\Plugin\History\HistoryPluginTest\testCanCastToString
testCanCastToString()
Definition: HistoryPluginTest.php:116
Guzzle\Tests\Plugin\History\HistoryPluginTest\testMaintainsLimitValue
testMaintainsLimitValue()
Definition: HistoryPluginTest.php:43
Guzzle\Tests\Plugin\History\HistoryPluginTest\testReturnsLastResponse
testReturnsLastResponse()
Definition: HistoryPluginTest.php:84
Guzzle\Tests\Plugin\History
Definition: HistoryPluginTest.php:3
Guzzle\Http\Message\Request
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Request.php:25
Guzzle\Tests\Plugin\History\HistoryPluginTest\testDescribesSubscribedEvents
testDescribesSubscribedEvents()
Definition: HistoryPluginTest.php:38
Guzzle\Tests\Plugin\History\HistoryPluginTest\testAddsRequests
testAddsRequests()
Definition: HistoryPluginTest.php:50
Guzzle\Http\Client
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Http/Client.php:24
Guzzle\Plugin\Mock\MockPlugin
Definition: MockPlugin.php:17
Guzzle\Tests\Plugin\History\HistoryPluginTest\testMaintainsLimit
testMaintainsLimit()
Definition: HistoryPluginTest.php:63
Guzzle\Tests\Plugin\History\HistoryPluginTest\testClearsHistory
testClearsHistory()
Definition: HistoryPluginTest.php:91
Guzzle\Tests\Plugin\History\HistoryPluginTest\addRequests
addRequests(HistoryPlugin $h, $num)
Definition: HistoryPluginTest.php:24
Guzzle\Plugin\History\HistoryPlugin\getSubscribedEvents
static getSubscribedEvents()
Definition: HistoryPlugin.php:27
Guzzle\Tests\Plugin\History\HistoryPluginTest\testReturnsLastRequest
testReturnsLastRequest()
Definition: HistoryPluginTest.php:77
Guzzle\Plugin\History\HistoryPlugin\add
add(RequestInterface $request, Response $response=null)
Definition: HistoryPlugin.php:56
Guzzle\Tests\Plugin\History\HistoryPluginTest
Definition: HistoryPluginTest.php:14