diff options
author | Tim Starling <tstarling@wikimedia.org> | 2022-05-06 19:09:56 +1000 |
---|---|---|
committer | Tim Starling <tstarling@wikimedia.org> | 2022-05-16 14:41:27 +1000 |
commit | e08ea8ccb9932f9924a613056afcb2d01c8c7b39 (patch) | |
tree | 6255aeccef4fe82e5cbf425aea42d6c891c55b7b /tests/phpunit/includes/ResourceLoader/LessVarFileModuleTest.php | |
parent | 5029306c80fa804fe09c27bf12b7b46599fdc556 (diff) | |
download | mediawikicore-e08ea8ccb9932f9924a613056afcb2d01c8c7b39.tar.gz mediawikicore-e08ea8ccb9932f9924a613056afcb2d01c8c7b39.zip |
ResourceLoader namespace
Move ResourceLoader classes to their own namespace. Strip the
"ResourceLoader" prefix from all except ResourceLoader and
ResourceLoaderContext.
Move the tests by analogy.
I used a namespace alias "RL" in some callers since RL\Module is less
ambiguous at the call site than just "Module".
I did not address DependencyStore which continues to have a non-standard
location and namespace.
Change-Id: I92998ae6a82e0b935c13e02a183e7c324fa410a3
Diffstat (limited to 'tests/phpunit/includes/ResourceLoader/LessVarFileModuleTest.php')
-rw-r--r-- | tests/phpunit/includes/ResourceLoader/LessVarFileModuleTest.php | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/tests/phpunit/includes/ResourceLoader/LessVarFileModuleTest.php b/tests/phpunit/includes/ResourceLoader/LessVarFileModuleTest.php new file mode 100644 index 000000000000..e025b49c5462 --- /dev/null +++ b/tests/phpunit/includes/ResourceLoader/LessVarFileModuleTest.php @@ -0,0 +1,79 @@ +<?php + +namespace MediaWiki\Tests\ResourceLoader; + +use MediaWiki\ResourceLoader\LessVarFileModule; +use ReflectionMethod; +use ResourceLoaderTestCase; + +/** + * @group ResourceLoader + * @covers \MediaWiki\ResourceLoader\LessVarFileModule + */ +class LessVarFileModuleTest extends ResourceLoaderTestCase { + + public static function providerWrapAndEscapeMessage() { + return [ + [ + "Foo", '"Foo"', + ], + [ + "Foo bananas", '"Foo bananas"', + ], + [ + "Who's that test? Who's that test? It's Jess!", + '"Who\\\'s that test? Who\\\'s that test? It\\\'s Jess!"', + ], + [ + 'Hello "he" said', + '"Hello \"he\" said"', + ], + [ + 'boo";-o-link:javascript:alert(1);color:red;content:"', + '"boo\";-o-link:javascript:alert(1);color:red;content:\""', + ], + [ + '"jon\'s"', + '"\"jon\\\'s\""' + ] + ]; + } + + /** + * @dataProvider providerWrapAndEscapeMessage + * @covers \MediaWiki\ResourceLoader\LessVarFileModule::wrapAndEscapeMessage + */ + public function testEscapeMessage( $msg, $expected ) { + $method = new ReflectionMethod( LessVarFileModule::class, 'wrapAndEscapeMessage' ); + $method->setAccessible( true ); + $this->assertEquals( $expected, $method->invoke( null, $msg ) ); + } + + public function testLessMessagesFound() { + $context = $this->getResourceLoaderContext( 'qqx' ); + $basePath = __DIR__ . '/../../data/less'; + $module = new LessVarFileModule( [ + 'localBasePath' => $basePath, + 'styles' => [ 'less-messages.less' ], + 'lessMessages' => [ 'pieday' ], + ] ); + $module->setMessageBlob( '{"pieday":"March 14"}', 'qqx' ); + + $styles = $module->getStyles( $context ); + $this->assertStringEqualsFile( $basePath . '/less-messages-exist.css', $styles['all'] ); + } + + public function testLessMessagesFailGraceful() { + $context = $this->getResourceLoaderContext( 'qqx' ); + $basePath = __DIR__ . '/../../data/less'; + $module = new LessVarFileModule( [ + 'localBasePath' => $basePath, + 'styles' => [ 'less-messages.less' ], + 'lessMessages' => [ 'pieday' ], + ] ); + $module->setMessageBlob( '{"something":"Else"}', 'qqx' ); + + $styles = $module->getStyles( $context ); + $this->assertStringEqualsFile( $basePath . '/less-messages-nonexist.css', $styles['all'] ); + } +} |