class ParserOutputTest extends MediaWikiTestCase {
public static function provideIsLinkInternal() {
- return array(
+ return [
// Different domains
- array( false, 'http://example.org', 'http://mediawiki.org' ),
+ [ false, 'http://example.org', 'http://mediawiki.org' ],
// Same domains
- array( true, 'http://example.org', 'http://example.org' ),
- array( true, 'https://example.org', 'https://example.org' ),
- array( true, '//example.org', '//example.org' ),
+ [ true, 'http://example.org', 'http://example.org' ],
+ [ true, 'https://example.org', 'https://example.org' ],
+ [ true, '//example.org', '//example.org' ],
// Same domain different cases
- array( true, 'http://example.org', 'http://EXAMPLE.ORG' ),
+ [ true, 'http://example.org', 'http://EXAMPLE.ORG' ],
// Paths, queries, and fragments are not relevant
- array( true, 'http://example.org', 'http://example.org/wiki/Main_Page' ),
- array( true, 'http://example.org', 'http://example.org?my=query' ),
- array( true, 'http://example.org', 'http://example.org#its-a-fragment' ),
+ [ true, 'http://example.org', 'http://example.org/wiki/Main_Page' ],
+ [ true, 'http://example.org', 'http://example.org?my=query' ],
+ [ true, 'http://example.org', 'http://example.org#its-a-fragment' ],
// Different protocols
- array( false, 'http://example.org', 'https://example.org' ),
- array( false, 'https://example.org', 'http://example.org' ),
+ [ false, 'http://example.org', 'https://example.org' ],
+ [ false, 'https://example.org', 'http://example.org' ],
// Protocol relative servers always match http and https links
- array( true, '//example.org', 'http://example.org' ),
- array( true, '//example.org', 'https://example.org' ),
+ [ true, '//example.org', 'http://example.org' ],
+ [ true, '//example.org', 'https://example.org' ],
// But they don't match strange things like this
- array( false, '//example.org', 'irc://example.org' ),
- );
+ [ false, '//example.org', 'irc://example.org' ],
+ ];
}
/**
$this->assertArrayNotHasKey( 'foo', $properties );
}
- /**
- * @covers ParserOutput::hasCustomDataUpdates
- * @covers ParserOutput::addSecondaryDataUpdate
- */
- public function testHasCustomDataUpdates() {
- $po = new ParserOutput();
- $this->assertFalse( $po->hasCustomDataUpdates() );
-
- $dataUpdate = $this->getMock( 'DataUpdate' );
- $po->addSecondaryDataUpdate( $dataUpdate );
- $this->assertTrue( $po->hasCustomDataUpdates() );
- }
-
- /**
- * @covers ParserOutput::getSecondaryDataUpdate
- * @covers ParserOutput::addSecondaryDataUpdate
- */
- public function testGetSecondaryDataUpdates() {
- // NOTE: getSecondaryDataUpdates always returns a LinksUpdate object
- // in addition to the DataUpdates registered via addSecondaryDataUpdate().
-
- $title = Title::makeTitle( NS_MAIN, 'Dummy' );
- $title->resetArticleID( 7777777 );
-
- $po = new ParserOutput();
- $this->assertCount( 1, $po->getSecondaryDataUpdates( $title ) );
-
- $dataUpdate = $this->getMock( 'DataUpdate' );
- $po->addSecondaryDataUpdate( $dataUpdate );
- $this->assertCount( 2, $po->getSecondaryDataUpdates( $title ) );
-
- // Test Fallback to getTitleText
- $this->insertPage( 'Project:ParserOutputTestDummyPage' );
- $po->setTitleText( 'Project:ParserOutputTestDummyPage' );
- $this->assertCount( 2, $po->getSecondaryDataUpdates() );
- }
-
- /**
- * @covers ParserOutput::getSecondaryDataUpdate
- * @covers ParserOutput::__sleep
- */
- public function testGetSecondaryDataUpdates_serialization() {
- $title = Title::makeTitle( NS_MAIN, 'Dummy' );
- $title->resetArticleID( 7777777 );
-
- $po = new ParserOutput();
-
- // Serializing is fine with no custom DataUpdates.
- $po = unserialize( serialize( $po ) );
- $this->assertCount( 1, $po->getSecondaryDataUpdates( $title ) );
-
- // If there are custom DataUpdates, getSecondaryDataUpdates
- // should fail after serialization.
- $dataUpdate = $this->getMock( 'DataUpdate' );
- $po->addSecondaryDataUpdate( $dataUpdate );
- $po = unserialize( serialize( $po ) );
-
- $this->setExpectedException( 'MWException' );
- $po->getSecondaryDataUpdates( $title );
- }
-
}