'https://graph.facebook.com/v7.12/998899/photos?pretty=0&limit=25&after=foo_after_cursor', 'previous' => 'https://graph.facebook.com/v7.12/998899/photos?pretty=0&limit=25&before=foo_before_cursor', ]; protected $cursorPagination = [ 'cursors' => [ 'after' => 'bar_after_cursor', 'before' => 'bar_before_cursor', ], ]; public function setUp() { $app = new FacebookApp('123', 'foo_app_secret'); $this->request = new FacebookRequest( $app, 'foo_token', 'GET', '/me/photos?keep=me', ['foo' => 'bar'], 'foo_eTag', 'v1337' ); } /** * @expectedException \Facebook\Exceptions\FacebookSDKException */ public function testNonGetRequestsWillThrow() { $this->request->setMethod('POST'); $graphEdge = new GraphEdge($this->request); $graphEdge->validateForPagination(); } public function testCanReturnGraphGeneratedPaginationEndpoints() { $graphEdge = new GraphEdge( $this->request, [], ['paging' => $this->basePagination] ); $nextPage = $graphEdge->getPaginationUrl('next'); $prevPage = $graphEdge->getPaginationUrl('previous'); $this->assertEquals('/998899/photos?pretty=0&limit=25&after=foo_after_cursor', $nextPage); $this->assertEquals('/998899/photos?pretty=0&limit=25&before=foo_before_cursor', $prevPage); } public function testCanGeneratePaginationEndpointsFromACursor() { $graphEdge = new GraphEdge( $this->request, [], ['paging' => $this->cursorPagination], '/1234567890/likes' ); $nextPage = $graphEdge->getPaginationUrl('next'); $prevPage = $graphEdge->getPaginationUrl('previous'); $this->assertEquals('/1234567890/likes?access_token=foo_token&after=bar_after_cursor&appsecret_proof=857d5f035a894f16b4180f19966e055cdeab92d4d53017b13dccd6d43b6497af&foo=bar&keep=me', $nextPage); $this->assertEquals('/1234567890/likes?access_token=foo_token&appsecret_proof=857d5f035a894f16b4180f19966e055cdeab92d4d53017b13dccd6d43b6497af&before=bar_before_cursor&foo=bar&keep=me', $prevPage); } public function testCanInstantiateNewPaginationRequest() { $graphEdge = new GraphEdge( $this->request, [], ['paging' => $this->cursorPagination], '/1234567890/likes' ); $nextPage = $graphEdge->getNextPageRequest(); $prevPage = $graphEdge->getPreviousPageRequest(); $this->assertInstanceOf('Facebook\FacebookRequest', $nextPage); $this->assertInstanceOf('Facebook\FacebookRequest', $prevPage); $this->assertNotSame($this->request, $nextPage); $this->assertNotSame($this->request, $prevPage); $this->assertEquals('/v1337/1234567890/likes?access_token=foo_token&after=bar_after_cursor&appsecret_proof=857d5f035a894f16b4180f19966e055cdeab92d4d53017b13dccd6d43b6497af&foo=bar&keep=me', $nextPage->getUrl()); $this->assertEquals('/v1337/1234567890/likes?access_token=foo_token&appsecret_proof=857d5f035a894f16b4180f19966e055cdeab92d4d53017b13dccd6d43b6497af&before=bar_before_cursor&foo=bar&keep=me', $prevPage->getUrl()); } }