[MCR] Use RevisionStore::getArchiveQueryInfo in PageArchive
[lhc/web/wiklou.git] / tests / phpunit / includes / PageArchiveTest.php
index 6420c39..ffafe3a 100644 (file)
@@ -11,8 +11,9 @@
  * ^--- important, causes tests not to fail with timeout
  */
 class PageArchiveTest extends MediaWikiTestCase {
+
        /**
-        * @var WikiPage $archivedPage
+        * @var PageArchive $archivedPage
         */
        private $archivedPage;
 
@@ -78,6 +79,7 @@ class PageArchiveTest extends MediaWikiTestCase {
 
        /**
         * @covers PageArchive::undelete
+        * @covers PageArchive::undeleteRevisions
         */
        public function testUndeleteRevisions() {
                // First make sure old revisions are archived
@@ -107,4 +109,73 @@ class PageArchiveTest extends MediaWikiTestCase {
                $row = $res->fetchObject();
                $this->assertEquals( IP::toHex( $this->ipEditor ), $row->ipc_hex );
        }
+
+       /**
+        * @covers PageArchive::listRevisions
+        */
+       public function testListRevisions() {
+               $revisions = $this->archivedPage->listRevisions();
+               $this->assertEquals( 2, $revisions->numRows() );
+
+               // Get the rows as arrays
+               $row1 = (array)$revisions->current();
+               $row2 = (array)$revisions->next();
+               // Unset the timestamps (we assume they will be right...
+               $this->assertInternalType( 'string', $row1['ar_timestamp'] );
+               $this->assertInternalType( 'string', $row2['ar_timestamp'] );
+               unset( $row1['ar_timestamp'] );
+               unset( $row2['ar_timestamp'] );
+
+               $this->assertEquals(
+                       [
+                               'ar_minor_edit' => '0',
+                               'ar_user' => '0',
+                               'ar_user_text' => '2600:387:ed7:947e:8c16:a1ad:dd34:1dd7',
+                               'ar_len' => '11',
+                               'ar_deleted' => '0',
+                               'ar_rev_id' => '3',
+                               'ar_sha1' => '0qdrpxl537ivfnx4gcpnzz0285yxryy',
+                               'ar_page_id' => '2',
+                               'ar_comment_text' => 'just a test',
+                               'ar_comment_data' => null,
+                               'ar_comment_cid' => null,
+                               'ar_content_format' => null,
+                               'ar_content_model' => null,
+                               'ts_tags' => null,
+                               'ar_id' => '2',
+                               'ar_namespace' => '0',
+                               'ar_title' => 'PageArchiveTest_thePage',
+                               'ar_text' => '',
+                               'ar_text_id' => '3',
+                               'ar_parent_id' => '2',
+                       ],
+                       $row1
+               );
+               $this->assertEquals(
+                       [
+                               'ar_minor_edit' => '0',
+                               'ar_user' => '0',
+                               'ar_user_text' => '127.0.0.1',
+                               'ar_len' => '7',
+                               'ar_deleted' => '0',
+                               'ar_rev_id' => '2',
+                               'ar_sha1' => 'pr0s8e18148pxhgjfa0gjrvpy8fiyxc',
+                               'ar_page_id' => '2',
+                               'ar_comment_text' => 'testing',
+                               'ar_comment_data' => null,
+                               'ar_comment_cid' => null,
+                               'ar_content_format' => null,
+                               'ar_content_model' => null,
+                               'ts_tags' => null,
+                               'ar_id' => '1',
+                               'ar_namespace' => '0',
+                               'ar_title' => 'PageArchiveTest_thePage',
+                               'ar_text' => '',
+                               'ar_text_id' => '2',
+                               'ar_parent_id' => '0',
+                       ],
+                       $row2
+               );
+       }
+
 }