] ]
];
}
+
/**
* @covers ResourceLoaderStartUpModule::getModuleRegistrations
* @dataProvider provideRegistrations
$version1 = $module->getVersionHash( $context );
$module = new ResourceLoaderStartupModule();
$version2 = $module->getVersionHash( $context );
+
$this->setMwGlobals( 'wgArticlePath', '/w3' );
$module = new ResourceLoaderStartupModule();
$version3 = $module->getVersionHash( $context );
);
}
+ /**
+ * @covers ResourceLoaderStartupModule
+ */
+ public function testGetVersionHash_varyModule() {
+ $context1 = $this->getResourceLoaderContext();
+ $rl1 = $context1->getResourceLoader();
+ $rl1->register( [
+ 'test.a' => new ResourceLoaderTestModule(),
+ 'test.b' => new ResourceLoaderTestModule(),
+ ] );
+ $module = new ResourceLoaderStartupModule();
+ $version1 = $module->getVersionHash( $context1 );
+
+ $context2 = $this->getResourceLoaderContext();
+ $rl2 = $context2->getResourceLoader();
+ $rl2->register( [
+ 'test.b' => new ResourceLoaderTestModule(),
+ 'test.c' => new ResourceLoaderTestModule(),
+ ] );
+ $module = new ResourceLoaderStartupModule();
+ $version2 = $module->getVersionHash( $context2 );
+
+ $context3 = $this->getResourceLoaderContext();
+ $rl3 = $context3->getResourceLoader();
+ $rl3->register( [
+ 'test.a' => new ResourceLoaderTestModule(),
+ 'test.b' => new ResourceLoaderTestModule( [ 'script' => 'different' ] ),
+ ] );
+ $module = new ResourceLoaderStartupModule();
+ $version3 = $module->getVersionHash( $context3 );
+
+ // Module name *is* significant (T201686)
+ $this->assertNotEquals(
+ $version1,
+ $version2,
+ 'Module name is significant'
+ );
+
+ $this->assertNotEquals(
+ $version1,
+ $version3,
+ 'Hash change of any module impacts startup hash'
+ );
+ }
+
+ /**
+ * @covers ResourceLoaderStartupModule
+ */
+ public function testGetVersionHash_varyDeps() {
+ $context = $this->getResourceLoaderContext();
+ $rl = $context->getResourceLoader();
+ $rl->register( [
+ 'test.a' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'x', 'y' ] ] ),
+ ] );
+ $module = new ResourceLoaderStartupModule();
+ $version1 = $module->getVersionHash( $context );
+
+ $context = $this->getResourceLoaderContext();
+ $rl = $context->getResourceLoader();
+ $rl->register( [
+ 'test.a' => new ResourceLoaderTestModule( [ 'dependencies' => [ 'x', 'z' ] ] ),
+ ] );
+ $module = new ResourceLoaderStartupModule();
+ $version2 = $module->getVersionHash( $context );
+
+ // Dependencies *are* significant (T201686)
+ $this->assertNotEquals(
+ $version1,
+ $version2,
+ 'Dependencies are significant'
+ );
+ }
+
}