X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2Fpage%2FWikiPageTest.php;h=556a34813c8e2041f7f495b39e6e6a4354f96bb2;hb=f7e1770fb832aa77bf4e16ce8cc815f2b24dd10d;hp=6885ca36c894555c4e5005121dfbcc61542118bd;hpb=9ac29c74edda2f457814a1ed634a19f9a44fd0a5;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/includes/page/WikiPageTest.php b/tests/phpunit/includes/page/WikiPageTest.php index 6885ca36c8..556a34813c 100644 --- a/tests/phpunit/includes/page/WikiPageTest.php +++ b/tests/phpunit/includes/page/WikiPageTest.php @@ -155,60 +155,6 @@ class WikiPageTest extends MediaWikiLangTestCase { $this->assertEquals( 2, $n, 'pagelinks should contain two links from the page' ); } - /** - * @covers WikiPage::doEdit - * @deprecated since 1.21. Should be removed when WikiPage::doEdit() gets removed - */ - public function testDoEdit() { - $this->hideDeprecated( "WikiPage::doEdit" ); - $this->hideDeprecated( "Revision::getText" ); - - // NOTE: assume help namespace will default to wikitext - $title = Title::newFromText( "Help:WikiPageTest_testDoEdit" ); - - $page = $this->newPage( $title ); - - $text = "[[Lorem ipsum]] dolor sit amet, consetetur sadipscing elitr, sed diam " - . " nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat."; - - $page->doEdit( $text, "[[testing]] 1" ); - - $this->assertTrue( $title->getArticleID() > 0, "Title object should have new page id" ); - $this->assertTrue( $page->getId() > 0, "WikiPage should have new page id" ); - $this->assertTrue( $title->exists(), "Title object should indicate that the page now exists" ); - $this->assertTrue( $page->exists(), "WikiPage object should indicate that the page now exists" ); - - $id = $page->getId(); - - # ------------------------ - $dbr = wfGetDB( DB_SLAVE ); - $res = $dbr->select( 'pagelinks', '*', [ 'pl_from' => $id ] ); - $n = $res->numRows(); - $res->free(); - - $this->assertEquals( 1, $n, 'pagelinks should contain one link from the page' ); - - # ------------------------ - $text = "At vero eos et accusam et justo duo [[dolores]] et ea rebum. " - . "Stet clita kasd [[gubergren]], no sea takimata sanctus est."; - - $page->doEdit( $text, "testing 2" ); - - # ------------------------ - $page = new WikiPage( $title ); - - $retrieved = $page->getContent()->getNativeData(); - $this->assertEquals( $text, $retrieved, 'retrieved text doesn\'t equal original' ); - - # ------------------------ - $dbr = wfGetDB( DB_SLAVE ); - $res = $dbr->select( 'pagelinks', '*', [ 'pl_from' => $id ] ); - $n = $res->numRows(); - $res->free(); - - $this->assertEquals( 2, $n, 'pagelinks should contain two links from the page' ); - } - /** * @covers WikiPage::doDeleteArticle */ @@ -603,7 +549,11 @@ class WikiPageTest extends MediaWikiLangTestCase { public static function provideGetParserOutput() { return [ - [ CONTENT_MODEL_WIKITEXT, "hello ''world''\n", "

hello world

" ], + [ + CONTENT_MODEL_WIKITEXT, + "hello ''world''\n", + "

hello world

" + ], // @todo more...? ]; } @@ -620,7 +570,7 @@ class WikiPageTest extends MediaWikiLangTestCase { $text = $po->getText(); $text = trim( preg_replace( '//sm', '', $text ) ); # strip injected comments - $text = preg_replace( '!\s*(

)!sm', '\1', $text ); # don't let tidy confuse us + $text = preg_replace( '!\s*(

|)!sm', '\1', $text ); # don't let tidy confuse us $this->assertEquals( $expectedHtml, $text ); @@ -806,6 +756,47 @@ more stuff } */ + /** + * @covers WikiPage::getOldestRevision + */ + public function testGetOldestRevision() { + $page = $this->newPage( "WikiPageTest_testGetOldestRevision" ); + $page->doEditContent( + new WikitextContent( 'one' ), + "first edit", + EDIT_NEW + ); + $rev1 = $page->getRevision(); + + $page = new WikiPage( $page->getTitle() ); + $page->doEditContent( + new WikitextContent( 'two' ), + "second edit", + EDIT_UPDATE + ); + + $page = new WikiPage( $page->getTitle() ); + $page->doEditContent( + new WikitextContent( 'three' ), + "third edit", + EDIT_UPDATE + ); + + // sanity check + $this->assertNotEquals( + $rev1->getId(), + $page->getRevision()->getId(), + '$page->getRevision()->getId()' + ); + + // actual test + $this->assertEquals( + $rev1->getId(), + $page->getOldestRevision()->getId(), + '$page->getOldestRevision()->getId()' + ); + } + /** * @todo FIXME: this is a better rollback test than the one below, but it * keeps failing in jenkins for some reason. @@ -850,6 +841,7 @@ more stuff $this->assertEquals( 'Admin', $rev1->getUserText() ); # now, try the actual rollback + $admin->addToDatabase(); $admin->addGroup( "sysop" ); # XXX: make the test user a sysop... $token = $admin->getEditToken( [ $page->getTitle()->getPrefixedText(), $user2->getName() ], @@ -882,6 +874,7 @@ more stuff public function testDoRollback() { $admin = new User(); $admin->setName( "Admin" ); + $admin->addToDatabase(); $text = "one"; $page = $this->newPage( "WikiPageTest_testDoRollback" ); @@ -908,10 +901,7 @@ more stuff # now, try the rollback $admin->addGroup( "sysop" ); # XXX: make the test user a sysop... - $token = $admin->getEditToken( - [ $page->getTitle()->getPrefixedText(), $user1->getName() ], - null - ); + $token = $admin->getEditToken( 'rollback' ); $errors = $page->doRollback( $user1->getName(), "testing revert", @@ -938,6 +928,7 @@ more stuff public function testDoRollbackFailureSameContent() { $admin = new User(); $admin->setName( "Admin" ); + $admin->addToDatabase(); $admin->addGroup( "sysop" ); # XXX: make the test user a sysop... $text = "one"; @@ -953,6 +944,7 @@ more stuff $user1 = new User(); $user1->setName( "127.0.1.11" ); + $user1->addToDatabase(); $user1->addGroup( "sysop" ); # XXX: make the test user a sysop... $text .= "\n\ntwo"; $page = new WikiPage( $page->getTitle() ); @@ -966,10 +958,7 @@ more stuff # now, do a the rollback from the same user was doing the edit before $resultDetails = []; - $token = $user1->getEditToken( - [ $page->getTitle()->getPrefixedText(), $user1->getName() ], - null - ); + $token = $user1->getEditToken( 'rollback' ); $errors = $page->doRollback( $user1->getName(), "testing revert same user", @@ -983,10 +972,7 @@ more stuff # now, try the rollback $resultDetails = []; - $token = $admin->getEditToken( - [ $page->getTitle()->getPrefixedText(), $user1->getName() ], - null - ); + $token = $admin->getEditToken( 'rollback' ); $errors = $page->doRollback( $user1->getName(), "testing revert",