}
public static function provideMakeResourceLoaderLink() {
+ // @codingStandardsIgnoreStart Generic.Files.LineLength
return array(
// Load module script only
array(
array( 'test.foo', ResourceLoaderModule::TYPE_SCRIPTS ),
- "<script>window.RLQ = window.RLQ || []; window.RLQ.push( function () {\n"
+ "<script>(window.RLQ = window.RLQ || []).push(function () {\n"
. 'mw.loader.load("http://127.0.0.1:8080/w/load.php?debug=false\u0026lang=en\u0026modules=test.foo\u0026only=scripts\u0026skin=fallback");'
. "\n} );</script>"
),
// Load private module (only=scripts)
array(
array( 'test.quux', ResourceLoaderModule::TYPE_SCRIPTS ),
- "<script>window.RLQ = window.RLQ || []; window.RLQ.push( function () {\n"
+ "<script>(window.RLQ = window.RLQ || []).push(function () {\n"
. "mw.test.baz({token:123});mw.loader.state({\"test.quux\":\"ready\"});\n"
. "} );</script>"
),
// Load private module (combined)
array(
array( 'test.quux', ResourceLoaderModule::TYPE_COMBINED ),
- "<script>window.RLQ = window.RLQ || []; window.RLQ.push( function () {\n"
+ "<script>(window.RLQ = window.RLQ || []).push(function () {\n"
. "mw.loader.implement(\"test.quux\",function($,jQuery){"
. "mw.test.baz({token:123});},{\"css\":[\".mw-icon{transition:none}"
. "\"]});\n} );</script>"
// Load two modules in separate groups
array(
array( array( 'test.group.foo', 'test.group.bar' ), ResourceLoaderModule::TYPE_COMBINED ),
- "<script>window.RLQ = window.RLQ || []; window.RLQ.push( function () {\n"
+ "<script>(window.RLQ = window.RLQ || []).push(function () {\n"
. 'mw.loader.load("http://127.0.0.1:8080/w/load.php?debug=false\u0026lang=en\u0026modules=test.group.bar\u0026skin=fallback");'
. "\n} );</script>\n"
- . "<script>window.RLQ = window.RLQ || []; window.RLQ.push( function () {\n"
+ . "<script>(window.RLQ = window.RLQ || []).push(function () {\n"
. 'mw.loader.load("http://127.0.0.1:8080/w/load.php?debug=false\u0026lang=en\u0026modules=test.group.foo\u0026skin=fallback");'
. "\n} );</script>"
),
);
+ // @codingStandardsIgnoreEnd
}
/**
* @dataProvider provideVaryHeaders
* @covers OutputPage::addVaryHeader
* @covers OutputPage::getVaryHeader
- * @covers OutputPage::getXVO
+ * @covers OutputPage::getKeyHeader
*/
- public function testVaryHeaders( $calls, $vary, $xvo ) {
+ public function testVaryHeaders( $calls, $vary, $key ) {
// get rid of default Vary fields
$outputPage = $this->getMockBuilder( 'OutputPage' )
->setConstructorArgs( array( new RequestContext() ) )
call_user_func_array( array( $outputPage, 'addVaryHeader' ), $call );
}
$this->assertEquals( $vary, $outputPage->getVaryHeader(), 'Vary:' );
- $this->assertEquals( $xvo, $outputPage->getXVO(), 'X-Vary-Options:' );
+ $this->assertEquals( $key, $outputPage->getKeyHeader(), 'Key:' );
}
public function provideVaryHeaders() {
- // note: getXVO() automatically adds Vary: Cookie
+ // note: getKeyHeader() automatically adds Vary: Cookie
return array(
array( // single header
array(
array( 'Cookie' ),
),
'Vary: Cookie',
- 'X-Vary-Options: Cookie',
+ 'Key: Cookie',
),
array( // non-unique headers
array(
array( 'Cookie' ),
),
'Vary: Cookie, Accept-Language',
- 'X-Vary-Options: Cookie,Accept-Language',
+ 'Key: Cookie,Accept-Language',
),
array( // two headers with single options
array(
- array( 'Cookie', array( 'string-contains=phpsessid' ) ),
- array( 'Accept-Language', array( 'string-contains=en' ) ),
+ array( 'Cookie', array( 'param=phpsessid' ) ),
+ array( 'Accept-Language', array( 'substr=en' ) ),
),
'Vary: Cookie, Accept-Language',
- 'X-Vary-Options: Cookie;string-contains=phpsessid,Accept-Language;string-contains=en',
+ 'Key: Cookie;param=phpsessid,Accept-Language;substr=en',
),
array( // one header with multiple options
array(
- array( 'Cookie', array( 'string-contains=phpsessid', 'string-contains=userId' ) ),
+ array( 'Cookie', array( 'param=phpsessid', 'param=userId' ) ),
),
'Vary: Cookie',
- 'X-Vary-Options: Cookie;string-contains=phpsessid;string-contains=userId',
+ 'Key: Cookie;param=phpsessid;param=userId',
),
array( // Duplicate option
array(
- array( 'Cookie', array( 'string-contains=phpsessid' ) ),
- array( 'Cookie', array( 'string-contains=phpsessid' ) ),
- array( 'Accept-Language', array( 'string-contains=en', 'string-contains=en' ) ),
+ array( 'Cookie', array( 'param=phpsessid' ) ),
+ array( 'Cookie', array( 'param=phpsessid' ) ),
+ array( 'Accept-Language', array( 'substr=en', 'substr=en' ) ),
),
'Vary: Cookie, Accept-Language',
- 'X-Vary-Options: Cookie;string-contains=phpsessid,Accept-Language;string-contains=en',
+ 'Key: Cookie;param=phpsessid,Accept-Language;substr=en',
),
array( // Same header, different options
array(
- array( 'Cookie', array( 'string-contains=phpsessid' ) ),
- array( 'Cookie', array( 'string-contains=userId' ) ),
+ array( 'Cookie', array( 'param=phpsessid' ) ),
+ array( 'Cookie', array( 'param=userId' ) ),
),
'Vary: Cookie',
- 'X-Vary-Options: Cookie;string-contains=phpsessid;string-contains=userId',
+ 'Key: Cookie;param=phpsessid;param=userId',
),
);
}
+
+ /**
+ * @covers OutputPage::haveCacheVaryCookies
+ */
+ function testHaveCacheVaryCookies() {
+ $request = new FauxRequest();
+ $context = new RequestContext();
+ $context->setRequest( $request );
+ $outputPage = new OutputPage( $context );
+
+ // No cookies are set.
+ $this->assertFalse( $outputPage->haveCacheVaryCookies() );
+
+ // 'Token' is present but empty, so it shouldn't count.
+ $request->setCookie( 'Token', '' );
+ $this->assertFalse( $outputPage->haveCacheVaryCookies() );
+
+ // 'Token' present and nonempty.
+ $request->setCookie( 'Token', '123' );
+ $this->assertTrue( $outputPage->haveCacheVaryCookies() );
+ }
}
/**
}
public function updateModule( $name, ResourceLoaderModule $module, $lang ) {
- return;
}
public function updateMessage( $key ) {