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",
+ ""
+ ],
// @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",