public function testPHPFileCaching() { $this->markTestSkipped('Feature noch nicht implementiert'); /* Schön wäre hier, das RequestBundle mit einem Cache zu füttern, der direkt Objekte abspeichern kann. Quasi der PermanentObjectCache dieser Cache müsste dann können, dass man die Objekte serialisiert oder einfach selbst erstellt (so mit setState und so) NOCH schöner wäre hier eine zweiten PermanentCache zu übergeben und dann ein PermanentCachedRequestBundle zu haben welches einfach nur url + content + headers in dem permanent cache speichert und dann selbst die objekte instanziiert */ /* FileCache erstellen und laden */ $file = $this->newFile('storage.phpfile.php'); $file->delete(); $cache = new PHPFileCache($file); /* CachedRequest im Cache abspeichern (unter der URL) */ $cachedRequest = new CachedRequest('http://www.google.de'); $cachedRequest->setCachedResponse(new Response('ich bin gecached http://www.google.de', new HTTP\Header())); $cache->store(array('http://www.google.de'), $cachedRequest); $this->assertTrue($cache->hit(array('http://www.google.de'))); $bundle = new RequestBundle(0, $cache); $googleReq = $bundle->createRequest('http://www.google.de'); $this->assertInstanceOf('Psc\\URL\\CachedRequest', $googleReq); $this->assertEquals($cachedRequest, $googleReq); $this->assertEquals('ich bin gecached http://www.google.de', $googleReq->init()->process()); $this->assertEquals('ich bin gecached http://www.google.de', $googleReq->getResponse()->getRaw()); }
public function testCached() { $req = new CachedRequest('http://www.google.de/'); $req->setCachedResponse(new Response('ich bin auf jeden Fall nicht Google', new HTTP\Header())); $this->assertEquals('ich bin auf jeden Fall nicht Google', $req->init()->process()); $this->assertInstanceOf('Psc\\URL\\Response', $req->getResponse()); $this->assertEquals('ich bin auf jeden Fall nicht Google', $req->getResponse()->getRaw()); }
/** * Bei processed fügt das bundle den Request alse Cache-Request hinzu */ public function trigger(Event $event) { $request = $event->getTarget(); $cachedRequest = new CachedRequest($request->getURL()); $cachedRequest->setCachedResponse($event->getData()->response); $cachedRequest->setHeaders($event->getData()->headers); $this->addCachedRequest($cachedRequest); }
protected function createRequestBundle() { $bundle = $this->getMock('Psc\\URL\\RequestBundle', array('trigger'), array(30 * 60)); $bundle->expects($this->never())->method('trigger'); // keine requests die live sind ausführen foreach (array('http://serienjunkies.org/serie/californication/' => 'index.californication.htm', 'http://serienjunkies.org/serie/how-i-met-your-mother/' => 'himym.index.htm', 'http://serienjunkies.org/?cat=0&showall' => 'index.htm', 'http://serienjunkies.org/californication/californication-staffel-3-dvdripweb-dl-xvid720pdvd9dvdr/' => 'staffel3.californication.htm', 'http://serienjunkies.org/serie/firefly/' => 'index.firefly.htm', 'http://serienjunkies.org/firefly/firefly-season-1-hdtv720p-x264/' => 'staffel1.firefly.htm') as $url => $file) { $savedHTML = $this->getFile($file); $request = new CachedRequest($url); $request->setCachedResponse(new Response($savedHTML->getContents(), new HTTPHeader())); $bundle->addCachedRequest($request); } return $bundle; }