}
public function getScript( ResourceLoaderContext $context ) {
- return $this->script;
+ return $this->validateScriptFile( 'input', $this->script );
}
public function getStyles( ResourceLoaderContext $context ) {
'Class is significant'
);
}
+
+ /**
+ * @covers ResourceLoaderModule::validateScriptFile
+ */
+ public function testValidateScriptFile() {
+ $context = $this->getResourceLoaderContext();
+
+ $module = new ResourceLoaderTestModule( array(
+ 'script' => "var a = 'this is';\n {\ninvalid"
+ ) );
+ $this->assertEquals(
+ $module->getScript( $context ),
+ 'mw.log.error("JavaScript parse error: Parse error: Unexpected token; token } expected in file \'input\' on line 3");',
+ 'Replace invalid syntax with error logging'
+ );
+
+ $module = new ResourceLoaderTestModule( array(
+ 'script' => "\n'valid';"
+ ) );
+ $this->assertEquals(
+ $module->getScript( $context ),
+ "\n'valid';",
+ 'Leave valid scripts as-is'
+ );
+ }
}