public function getContentModel() {
if ( !$this->mContentModel ) {
$linkCache = LinkCache::singleton();
- $linkCache->addLinkObj( $this );
$this->mContentModel = $linkCache->getGoodLinkFieldObj( $this, 'model' );
}
* @return Bool
*/
public function isRedirect( $flags = 0 ) {
- if ( !( $flags & Title::GAID_FOR_UPDATE ) && !is_null( $this->mRedirect ) ) {
+ if ( !is_null( $this->mRedirect ) ) {
return $this->mRedirect;
}
-
+ # Calling getArticleID() loads the field from cache as needed
if ( !$this->getArticleID( $flags ) ) {
return $this->mRedirect = false;
}
$linkCache = LinkCache::singleton();
- $linkCache->addLinkObj( $this );
$cached = $linkCache->getGoodLinkFieldObj( $this, 'redirect' );
-
if ( $cached === null ) {
- // Should not happen
- throw new MWException( "LinkCache doesn't know redirect status of this title: " . $this->getPrefixedDBkey() );
+ // TODO: check the assumption that the cache actually knows about this title
+ // and handle this, such as get the title from the database.
+ // See https://bugzilla.wikimedia.org/show_bug.cgi?id=37209
+ wfDebug( "LinkCache doesn't currently know about this title: " . $this->getPrefixedDBkey() );
+ wfDebug( wfBacktrace() );
}
$this->mRedirect = (bool)$cached;
* @return Int
*/
public function getLength( $flags = 0 ) {
- if ( !( $flags & Title::GAID_FOR_UPDATE ) && $this->mLength != -1 ) {
+ if ( $this->mLength != -1 ) {
return $this->mLength;
}
-
+ # Calling getArticleID() loads the field from cache as needed
if ( !$this->getArticleID( $flags ) ) {
return $this->mLength = 0;
}
-
$linkCache = LinkCache::singleton();
- $linkCache->addLinkObj( $this );
$cached = $linkCache->getGoodLinkFieldObj( $this, 'length' );
-
- if ( $cached === null ) {
- // Should not happen
- throw new MWException( "LinkCache doesn't know redirect status of this title: " . $this->getPrefixedDBkey() );
+ if ( $cached === null ) { # check the assumption that the cache actually knows about this title
+ # XXX: this does apparently happen, see https://bugzilla.wikimedia.org/show_bug.cgi?id=37209
+ # as a stop gap, perhaps log this, but don't throw an exception?
+ wfDebug( "LinkCache doesn't currently know about this title: " . $this->getPrefixedDBkey() );
+ wfDebug( wfBacktrace() );
}
$this->mLength = intval( $cached );
if ( !( $flags & Title::GAID_FOR_UPDATE ) && $this->mLatestID !== false ) {
return intval( $this->mLatestID );
}
-
+ # Calling getArticleID() loads the field from cache as needed
if ( !$this->getArticleID( $flags ) ) {
return $this->mLatestID = 0;
}
-
$linkCache = LinkCache::singleton();
$linkCache->addLinkObj( $this );
$cached = $linkCache->getGoodLinkFieldObj( $this, 'revision' );
-
- if ( $cached === null ) {
- // Should not happen
- throw new MWException( "LinkCache doesn't know latest revision ID of this title: " . $this->getPrefixedDBkey() );
+ if ( $cached === null ) { # check the assumption that the cache actually knows about this title
+ # XXX: this does apparently happen, see https://bugzilla.wikimedia.org/show_bug.cgi?id=37209
+ # as a stop gap, perhaps log this, but don't throw an exception?
+ throw new MWException( "LinkCache doesn't currently know about this title: " . $this->getPrefixedDBkey() );
}
$this->mLatestID = intval( $cached );
MagicWord::clearCache();
}
- /**
- * Bug 8689 - Long numeric lines kill the parser
- *
- * @group Database
- */
+ // Bug 8689 - Long numeric lines kill the parser
function testBug8689() {
global $wgUser;
$longLine = '1.' . str_repeat( '1234567890', 100000 ) . "\n";
$this->parser->parse( $longLine, $t, $options )->getText() );
}
- /**
- * Test the parser entry points
- *
- * @group Database
- */
+ /* Test the parser entry points */
function testParse() {
$title = Title::newFromText( __FUNCTION__ );
$parserOutput = $this->parser->parse( "Test\n{{Foo}}\n{{Bar}}", $title, $this->options );
$this->assertEquals( "<p>Test\nContent of <i>Template:Foo</i>\nContent of <i>Template:Bar</i>\n</p>", $parserOutput->getText() );
}
- /**
- * @group Database
- */
function testPreSaveTransform() {
global $wgUser;
$title = Title::newFromText( __FUNCTION__ );
$this->assertEquals( "Test\nContent of ''Template:Foo''\n{{Bar}}", $outputText );
}
- /**
- * @group Database
- */
function testPreprocess() {
$title = Title::newFromText( __FUNCTION__ );
$outputText = $this->parser->preprocess( "Test\n{{Foo}}\n{{Bar}}", $title, $this->options );
# day
- /**
- * @dataProvider MediaWikiProvide::Days
- * @group Database
- */
+ /** @dataProvider MediaWikiProvide::Days */
function testCurrentdayIsUnPadded( $day ) {
$this->assertUnPadded( 'currentday', $day );
}
- /**
- * @dataProvider MediaWikiProvide::Days
- * @group Database
- */
+ /** @dataProvider MediaWikiProvide::Days */
function testCurrentdaytwoIsZeroPadded( $day ) {
$this->assertZeroPadded( 'currentday2', $day );
}
- /**
- * @dataProvider MediaWikiProvide::Days
- * @group Database
- */
+ /** @dataProvider MediaWikiProvide::Days */
function testLocaldayIsUnPadded( $day ) {
$this->assertUnPadded( 'localday', $day );
}
- /**
- * @dataProvider MediaWikiProvide::Days
- * @group Database
- */
+ /** @dataProvider MediaWikiProvide::Days */
function testLocaldaytwoIsZeroPadded( $day ) {
$this->assertZeroPadded( 'localday2', $day );
}
# month
- /**
- * @dataProvider MediaWikiProvide::Months
- * @group Database
- */
+ /** @dataProvider MediaWikiProvide::Months */
function testCurrentmonthIsZeroPadded( $month ) {
$this->assertZeroPadded( 'currentmonth', $month );
}
- /**
- * @dataProvider MediaWikiProvide::Months
- * @group Database
- */
+ /** @dataProvider MediaWikiProvide::Months */
function testCurrentmonthoneIsUnPadded( $month ) {
$this->assertUnPadded( 'currentmonth1', $month );
}
- /**
- * @dataProvider MediaWikiProvide::Months
- * @group Database
- */
+ /** @dataProvider MediaWikiProvide::Months */
function testLocalmonthIsZeroPadded( $month ) {
$this->assertZeroPadded( 'localmonth', $month );
}
- /**
- * @dataProvider MediaWikiProvide::Months
- * @group Database
- */
+ /** @dataProvider MediaWikiProvide::Months */
function testLocalmonthoneIsUnPadded( $month ) {
$this->assertUnPadded( 'localmonth1', $month );
}
# revision day
- /**
- * @dataProvider MediaWikiProvide::Days
- * @group Database
- */
+ /** @dataProvider MediaWikiProvide::Days */
function testRevisiondayIsUnPadded( $day ) {
$this->assertUnPadded( 'revisionday', $day );
}
- /**
- * @dataProvider MediaWikiProvide::Days
- * @group Database
- */
+ /** @dataProvider MediaWikiProvide::Days */
function testRevisiondaytwoIsZeroPadded( $day ) {
$this->assertZeroPadded( 'revisionday2', $day );
}
# revision month
- /**
- * @dataProvider MediaWikiProvide::Months
- * @group Database
- */
+ /** @dataProvider MediaWikiProvide::Months */
function testRevisionmonthIsZeroPadded( $month ) {
$this->assertZeroPadded( 'revisionmonth', $month );
}
- /**
- * @dataProvider MediaWikiProvide::Months
- * @group Database
- */
+ /** @dataProvider MediaWikiProvide::Months */
function testRevisionmonthoneIsUnPadded( $month ) {
$this->assertUnPadded( 'revisionmonth1', $month );
}
/**
* @dataProvider provideValidNames
- * @group Database
*/
function testTagHooks( $tag ) {
global $wgParserConf, $wgContLang;
/**
* @dataProvider provideValidNames
- * @group Database
*/
function testFunctionTagHooks( $tag ) {
global $wgParserConf, $wgContLang;