] );
}
+ public static function provideCdnCacheEpoch() {
+ $base = [
+ 'pageTime' => '2011-04-01T12:00:00+00:00',
+ 'maxAge' => 24 * 3600,
+ ];
+ return [
+ 'after 1s' => [ $base + [
+ 'reqTime' => '2011-04-01T12:00:01+00:00',
+ 'expect' => '2011-04-01T12:00:00+00:00',
+ ] ],
+ 'after 23h' => [ $base + [
+ 'reqTime' => '2011-04-02T11:00:00+00:00',
+ 'expect' => '2011-04-01T12:00:00+00:00',
+ ] ],
+ 'after 24h and a bit' => [ $base + [
+ 'reqTime' => '2011-04-02T12:34:56+00:00',
+ 'expect' => '2011-04-01T12:34:56+00:00',
+ ] ],
+ 'after a year' => [ $base + [
+ 'reqTime' => '2012-05-06T00:12:07+00:00',
+ 'expect' => '2012-05-05T00:12:07+00:00',
+ ] ],
+ ];
+ }
+
+ /**
+ * @dataProvider provideCdnCacheEpoch
+ */
+ public function testCdnCacheEpoch( $params ) {
+ $out = TestingAccessWrapper::newFromObject( $this->newInstance() );
+ $reqTime = strtotime( $params['reqTime'] );
+ $pageTime = strtotime( $params['pageTime'] );
+ $actual = max( $pageTime, $out->getCdnCacheEpoch( $reqTime, $params['maxAge'] ) );
+
+ $this->assertEquals(
+ $params['expect'],
+ gmdate( DateTime::ATOM, $actual ),
+ 'cdn epoch'
+ );
+ }
+
/**
* Tests screen requests, without either query parameter set
* @covers OutputPage::transformCssMedia
$ctx->setLanguage( 'en' );
$outputPage = $this->getMockBuilder( OutputPage::class )
->setConstructorArgs( [ $ctx ] )
- ->setMethods( [ 'isUserCssPreview', 'buildCssLinksArray' ] )
+ ->setMethods( [ 'buildCssLinksArray' ] )
->getMock();
- $outputPage->expects( $this->any() )
- ->method( 'isUserCssPreview' )
- ->willReturn( false );
$outputPage->expects( $this->any() )
->method( 'buildCssLinksArray' )
->willReturn( [] );
$context->setConfig( new HashConfig( $config + [
'AppleTouchIcon' => false,
'DisableLangConversion' => true,
- 'EnableAPI' => false,
'EnableCanonicalServerLink' => false,
'Favicon' => false,
'Feed' => false,