Open Journal Systems  3.3.0
CallbackCanCacheStrategyTest.php
1 <?php
2 
4 
5 use Doctrine\Common\Cache\ArrayCache;
12 
17 {
22  {
23  $p = new CallbackCanCacheStrategy(new \stdClass());
24  }
25 
26  public function testUsesCallback()
27  {
28  $c = new CallbackCanCacheStrategy(function ($request) { return true; });
29  $this->assertTrue($c->canCacheRequest(new Request('DELETE', 'http://www.foo.com')));
30  }
31 
37  {
38  $c = new CallbackCanCacheStrategy(
39  function ($request) { return true; },
40  function ($response) { return true; }
41  );
42 
43  // Make a request and response that have no business being cached
44  $request = new Request('DELETE', 'http://www.foo.com');
45  $response = Response::fromMessage(
46  "HTTP/1.1 200 OK\r\n"
47  . "Expires: Mon, 26 Jul 1997 05:00:00 GMT\r\n"
48  . "Last-Modified: Wed, 09 Jan 2013 08:48:53 GMT\r\n"
49  . "Content-Length: 2\r\n"
50  . "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0\r\n\r\n"
51  . "hi"
52  );
53 
54  $this->assertTrue($c->canCacheRequest($request));
55  $this->assertTrue($c->canCacheResponse($response));
56 
57  $s = $this->getMockBuilder('Guzzle\Plugin\Cache\DefaultCacheStorage')
58  ->setConstructorArgs(array(new DoctrineCacheAdapter(new ArrayCache())))
59  ->setMethods(array('fetch'))
60  ->getMockForAbstractClass();
61 
62  $s->expects($this->once())
63  ->method('fetch')
64  ->will($this->returnValue($response));
65 
66  $plugin = new CachePlugin(array('can_cache' => $c, 'storage' => $s));
67  $plugin->onRequestBeforeSend(new Event(array('request' => $request)));
68 
69  $this->assertEquals(200, $request->getResponse()->getStatusCode());
70  $this->assertEquals('hi', $request->getResponse()->getBody(true));
71  }
72 }
Guzzle\Tests\Plugin\Cache
Definition: CachePluginTest.php:3
Guzzle\Tests\Plugin\Cache\CallbackCanCacheStrategyTest\testConstructorEnsuresCallbackIsCallable
testConstructorEnsuresCallbackIsCallable()
Definition: CallbackCanCacheStrategyTest.php:21
Guzzle\Tests\Plugin\Cache\CallbackCanCacheStrategyTest\testIntegrationWithCachePlugin
testIntegrationWithCachePlugin()
Definition: CallbackCanCacheStrategyTest.php:36
Guzzle\Tests\GuzzleTestCase
Definition: GuzzleTestCase.php:22
Guzzle\Tests\Plugin\Cache\CallbackCanCacheStrategyTest
Definition: CallbackCanCacheStrategyTest.php:16
Guzzle\Tests\Plugin\Cache\CallbackCanCacheStrategyTest\testUsesCallback
testUsesCallback()
Definition: CallbackCanCacheStrategyTest.php:26
Guzzle\Http\Message\Response
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Response.php:17
Guzzle\Http\Message\Response\fromMessage
static fromMessage($message)
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Response.php:123
Guzzle\Cache\DoctrineCacheAdapter
Definition: DoctrineCacheAdapter.php:12
Guzzle\Common\Event
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Common/Event.php:10
Guzzle\Http\Message\Request
Definition: lib/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Request.php:25
Guzzle\Plugin\Cache\CallbackCanCacheStrategy
Definition: CallbackCanCacheStrategy.php:12
Guzzle\Plugin\Cache\CachePlugin
Definition: CachePlugin.php:27