protected static $repl = [];
- protected function setUp() {
- parent::setUp();
-
- // Set $wgExternalDiffEngine to something bogus to try to force use of
- // the PHP engine rather than wikidiff2.
- $this->setMwGlobals( [
- 'wgExternalDiffEngine' => '/dev/null',
- ] );
- }
-
protected function addPage( $page, $text, $model = CONTENT_MODEL_WIKITEXT ) {
$title = Title::newFromText( 'ApiComparePagesTest ' . $page );
$content = ContentHandler::makeContent( $text, $title, $model );
self::$repl['revA2'] = $this->addPage( 'A', 'A 2' );
self::$repl['revA3'] = $this->addPage( 'A', 'A 3' );
self::$repl['revA4'] = $this->addPage( 'A', 'A 4' );
- self::$repl['pageA'] = Title::newFromText( 'ApiComparePagesTest A' )->getArticleId();
+ self::$repl['pageA'] = Title::newFromText( 'ApiComparePagesTest A' )->getArticleID();
self::$repl['revB1'] = $this->addPage( 'B', 'B 1' );
self::$repl['revB2'] = $this->addPage( 'B', 'B 2' );
self::$repl['revB3'] = $this->addPage( 'B', 'B 3' );
self::$repl['revB4'] = $this->addPage( 'B', 'B 4' );
- self::$repl['pageB'] = Title::newFromText( 'ApiComparePagesTest B' )->getArticleId();
+ self::$repl['pageB'] = Title::newFromText( 'ApiComparePagesTest B' )->getArticleID();
self::$repl['revC1'] = $this->addPage( 'C', 'C 1' );
self::$repl['revC2'] = $this->addPage( 'C', 'C 2' );
self::$repl['revC3'] = $this->addPage( 'C', 'C 3' );
- self::$repl['pageC'] = Title::newFromText( 'ApiComparePagesTest C' )->getArticleId();
+ self::$repl['pageC'] = Title::newFromText( 'ApiComparePagesTest C' )->getArticleID();
$id = $this->addPage( 'D', 'D 1' );
- self::$repl['pageD'] = Title::newFromText( 'ApiComparePagesTest D' )->getArticleId();
+ self::$repl['pageD'] = Title::newFromText( 'ApiComparePagesTest D' )->getArticleID();
wfGetDB( DB_MASTER )->delete( 'revision', [ 'rev_id' => $id ] );
self::$repl['revE1'] = $this->addPage( 'E', 'E 1' );
self::$repl['revE2'] = $this->addPage( 'E', 'E 2' );
self::$repl['revE3'] = $this->addPage( 'E', 'E 3' );
self::$repl['revE4'] = $this->addPage( 'E', 'E 4' );
- self::$repl['pageE'] = Title::newFromText( 'ApiComparePagesTest E' )->getArticleId();
+ self::$repl['pageE'] = Title::newFromText( 'ApiComparePagesTest E' )->getArticleID();
wfGetDB( DB_MASTER )->update(
'page', [ 'page_latest' => 0 ], [ 'page_id' => self::$repl['pageE'] ]
);
self::$repl['revF1'] = $this->addPage( 'F', "== Section 1 ==\nF 1.1\n\n== Section 2 ==\nF 1.2" );
- self::$repl['pageF'] = Title::newFromText( 'ApiComparePagesTest F' )->getArticleId();
+ self::$repl['pageF'] = Title::newFromText( 'ApiComparePagesTest F' )->getArticleID();
self::$repl['revG1'] = $this->addPage( 'G', "== Section 1 ==\nG 1.1", CONTENT_MODEL_TEXT );
- self::$repl['pageG'] = Title::newFromText( 'ApiComparePagesTest G' )->getArticleId();
+ self::$repl['pageG'] = Title::newFromText( 'ApiComparePagesTest G' )->getArticleID();
WikiPage::factory( Title::newFromText( 'ApiComparePagesTest C' ) )
->doDeleteArticleReal( 'Test for ApiComparePagesTest' );
* @dataProvider provideDiff
*/
public function testDiff( $params, $expect, $exceptionCode = false, $sysop = false ) {
+ $this->setMwGlobals( [ 'wgDiffEngine' => 'php' ] );
+
$this->doReplacements( $params );
$params += [
]
],
],
+ 'Relative diff, no prev' => [
+ [
+ 'fromrev' => '{{REPL:revA1}}',
+ 'torelative' => 'prev',
+ 'prop' => 'ids|rel|diff|title|user|comment',
+ ],
+ [
+ 'warnings' => [
+ [
+ 'code' => 'compare-no-prev',
+ 'module' => 'compare',
+ ],
+ ],
+ 'compare' => [
+ 'toid' => '{{REPL:pageA}}',
+ 'torevid' => '{{REPL:revA1}}',
+ 'tons' => 0,
+ 'totitle' => 'ApiComparePagesTest A',
+ 'touser' => '{{REPL:creator}}',
+ 'touserid' => '{{REPL:creatorid}}',
+ 'tocomment' => 'Test for ApiComparePagesTest: A 1',
+ 'toparsedcomment' => 'Test for ApiComparePagesTest: A 1',
+ 'next' => '{{REPL:revA2}}',
+ 'body' => '<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Line 1:</td>' . "\n"
+ . '<td colspan="2" class="diff-lineno">Line 1:</td></tr>' . "\n"
+ . '<tr><td class=\'diff-marker\'>−</td><td class=\'diff-deletedline\'><div> </div></td><td class=\'diff-marker\'>+</td><td class=\'diff-addedline\'><div><ins class="diffchange diffchange-inline">A 1</ins></div></td></tr>' . "\n",
+ ],
+ ],
+ ],
+ 'Relative diff, no next' => [
+ [
+ 'fromrev' => '{{REPL:revA4}}',
+ 'torelative' => 'next',
+ 'prop' => 'ids|rel|diff|title|user|comment',
+ ],
+ [
+ 'warnings' => [
+ [
+ 'code' => 'compare-no-next',
+ 'module' => 'compare',
+ ],
+ ],
+ 'compare' => [
+ 'fromid' => '{{REPL:pageA}}',
+ 'fromrevid' => '{{REPL:revA4}}',
+ 'fromns' => 0,
+ 'fromtitle' => 'ApiComparePagesTest A',
+ 'fromuser' => '{{REPL:creator}}',
+ 'fromuserid' => '{{REPL:creatorid}}',
+ 'fromcomment' => 'Test for ApiComparePagesTest: A 4',
+ 'fromparsedcomment' => 'Test for ApiComparePagesTest: A 4',
+ 'prev' => '{{REPL:revA3}}',
+ 'body' => '',
+ ],
+ ],
+ ],
'Diff for specific slots' => [
// @todo Use a page with multiple slots here
[
[],
'missingcontent'
],
- 'Error, Relative diff, no prev' => [
- [
- 'fromrev' => '{{REPL:revA1}}',
- 'torelative' => 'prev',
- 'prop' => 'ids',
- ],
- [],
- 'baddiff'
- ],
- 'Error, Relative diff, no next' => [
- [
- 'fromrev' => '{{REPL:revA4}}',
- 'torelative' => 'next',
- 'prop' => 'ids',
- ],
- [],
- 'baddiff'
- ],
'Error, section diff with no revision' => [
[
'fromtitle' => 'ApiComparePagesTest F',