<?php
+
use Wikimedia\TestingAccessWrapper;
/**
];
}
+ public function tearDown() {
+ MWTimestamp::setFakeTime( false );
+
+ parent::tearDown();
+ }
+
/**
* Test to make sure ParserOutput::isLinkInternal behaves properly
* @dataProvider provideIsLinkInternal
$a->addHeadItem( '<foo1>' );
$a->addHeadItem( '<bar1>', 'bar' );
$a->addModules( 'test-module-a' );
- $a->addModuleScripts( 'test-module-script-a' );
$a->addModuleStyles( 'test-module-styles-a' );
$b->addJsConfigVars( 'test-config-var-a', 'a' );
$b->addHeadItem( '<foo2>' );
$b->addHeadItem( '<bar2>', 'bar' );
$b->addModules( 'test-module-b' );
- $b->addModuleScripts( 'test-module-script-b' );
$b->addModuleStyles( 'test-module-styles-b' );
$b->addJsConfigVars( 'test-config-var-b', 'b' );
$b->addJsConfigVars( 'test-config-var-a', 'X' );
'test-module-a',
'test-module-b',
],
- 'getModuleScripts' => [
- 'test-module-script-a',
- 'test-module-script-b',
- ],
'getModuleStyles' => [
'test-module-styles-a',
'test-module-styles-b',
$this->assertFieldValues( $a, $expected );
}
+ /**
+ * @covers ParserOutput::mergeInternalMetaDataFrom
+ * @covers ParserOutput::getTimes
+ * @covers ParserOutput::resetParseStartTime
+ */
public function testMergeInternalMetaDataFrom_parseStartTime() {
/** @var object $a */
$a = new ParserOutput();
$bClocks = $b->mParseStartTime;
- $a->mergeInternalMetaDataFrom( $b->object, 'b' );
+ $a->mergeInternalMetaDataFrom( $b->object );
$mergedClocks = $a->mParseStartTime;
foreach ( $mergedClocks as $clock => $timestamp ) {
$a->resetParseStartTime();
$aClocks = $a->mParseStartTime;
- $a->mergeInternalMetaDataFrom( $b->object, 'b' );
+ $a->mergeInternalMetaDataFrom( $b->object );
$mergedClocks = $a->mParseStartTime;
foreach ( $mergedClocks as $clock => $timestamp ) {
$a = new ParserOutput();
$a = TestingAccessWrapper::newFromObject( $a );
- $a->mergeInternalMetaDataFrom( $b->object, 'b' );
+ $a->mergeInternalMetaDataFrom( $b->object );
$mergedClocks = $a->mParseStartTime;
foreach ( $mergedClocks as $clock => $timestamp ) {
}
}
+ /**
+ * @covers ParserOutput::getCacheTime
+ * @covers ParserOutput::setCacheTime
+ */
+ public function testGetCacheTime() {
+ $clock = MWTimestamp::convert( TS_UNIX, '20100101000000' );
+ MWTimestamp::setFakeTime( function () use ( &$clock ) {
+ return $clock++;
+ } );
+
+ $po = new ParserOutput();
+ $time = $po->getCacheTime();
+
+ // Use current (fake) time per default. Ignore the last digit.
+ // Subsequent calls must yield the exact same timestamp as the first.
+ $this->assertStringStartsWith( '2010010100000', $time );
+ $this->assertSame( $time, $po->getCacheTime() );
+
+ // After setting, the getter must return the time that was set.
+ $time = '20110606112233';
+ $po->setCacheTime( $time );
+ $this->assertSame( $time, $po->getCacheTime() );
+
+ // support -1 as a marker for "not cacheable"
+ $time = -1;
+ $po->setCacheTime( $time );
+ $this->assertSame( $time, $po->getCacheTime() );
+ }
+
}