pageid), $this->revsexpected[0]); } /** * no nonexist.changes meta file available */ function test_changemetadatanotexists() { $rev1 = 1362526767; $rev2 = 1362527164; $max = 50; $id = 'nonexist'; $revsexpected = array(array(), array()); $pagelog = new PageChangeLog($id, $chunk_size = 8192); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); } /** * Surrounding revisions of rev1 and rev2 overlaps */ function test_request_overlapping() { $rev1 = 1362526767; $rev2 = 1362527164; $max = 10; $revsexpected = array( array_slice($this->revsexpected, 8, 11), array_slice($this->revsexpected, 5, 11) ); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); } /** * Surrounding revisions of rev1 and rev2 don't overlap. */ function test_request_non_overlapping() { $rev1 = 1362525899; $rev2 = 1368612599; $max = 10; $revsexpected = array( array_slice($this->revsexpected, 13, 11), array_slice($this->revsexpected, 0, 11) ); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); } /** * rev1 and rev2 are at start and end of the changelog. * Should return still a number of revisions equal to max */ function test_request_first_last() { $rev1 = 1360110636; $rev2 = 1374261194; $max = 10; $revsexpected = array( array_slice($this->revsexpected, 13, 11), array_slice($this->revsexpected, 0, 11) ); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); //todo: number of revisions on the left side is not (yet) completed until max number $revsexpected = array( array_slice($this->revsexpected, 18, 6), array_slice($this->revsexpected, 0, 11) ); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); } /** * Number of requested revisions is larger than available revisions, * so returns whole log */ function test_request_wholelog() { $rev1 = 1362525899; $rev2 = 1368612599; $max = 50; $revsexpected = array($this->revsexpected, $this->revsexpected); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); } /** * When rev1 > rev2, their order is changed */ function test_request_wrong_order_revs() { $rev1 = 1362527164; $rev2 = 1362526767; $max = 10; $revsexpected = array( array_slice($this->revsexpected, 8, 11), array_slice($this->revsexpected, 5, 11) ); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 8192); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 512); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); $pagelog = new PageChangeLog($this->pageid, $chunk_size = 20); $revs = $pagelog->getRevisionsAround($rev1, $rev2, $max); $this->assertEquals($revsexpected, $revs); } }