wiki.techinc.nl/tests/phpunit/includes/resourceloader/ResourceLoaderImageModuleTest.php
Bartosz Dziewoński a3e6df1690 ResourceLoaderImage: Allow shorthand syntax
array( "en,de,fr" => "foo.svg" ) now means the same as
array( "en" => "foo.svg", "de" => "foo.svg", "fr" => "foo.svg" ).

Bug: T76539
Change-Id: I0bf82e06be3c5f94b6ac88bbc0437b5229ceb284
2015-04-02 21:27:06 +02:00

162 lines
3.2 KiB
PHP

<?php
/**
* @group ResourceLoader
*/
class ResourceLoaderImageModuleTest extends ResourceLoaderTestCase {
public static $commonImageData = array(
'add' => 'add.gif',
'remove' => array(
'file' => 'remove.svg',
'variants' => array( 'destructive' ),
),
'next' => array(
'file' => array(
'ltr' => 'next.svg',
'rtl' => 'prev.svg'
),
),
'help' => array(
'file' => array(
'ltr' => 'help-ltr.svg',
'rtl' => 'help-rtl.svg',
'lang' => array(
'he' => 'help-ltr.svg',
)
),
),
'bold' => array(
'file' => array(
'default' => 'bold-a.svg',
'lang' => array(
'en' => 'bold-b.svg',
'ar,de' => 'bold-f.svg',
)
),
)
);
public static $commonImageVariants = array(
'invert' => array(
'color' => '#FFFFFF',
'global' => true,
),
'primary' => array(
'color' => '#598AD1',
),
'constructive' => array(
'color' => '#00C697',
),
'destructive' => array(
'color' => '#E81915',
),
);
public static function providerGetModules() {
return array(
array(
array(
'class' => 'ResourceLoaderImageModule',
'prefix' => 'oo-ui-icon',
'variants' => self::$commonImageVariants,
'images' => self::$commonImageData,
),
'.oo-ui-icon-add {
...
}
.oo-ui-icon-add-invert {
...
}
.oo-ui-icon-remove {
...
}
.oo-ui-icon-remove-invert {
...
}
.oo-ui-icon-remove-destructive {
...
}
.oo-ui-icon-next {
...
}
.oo-ui-icon-next-invert {
...
}
.oo-ui-icon-help {
...
}
.oo-ui-icon-help-invert {
...
}
.oo-ui-icon-bold {
...
}
.oo-ui-icon-bold-invert {
...
}',
),
array(
array(
'class' => 'ResourceLoaderImageModule',
'selectorWithoutVariant' => '.mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
'selectorWithVariant' => '.mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
'variants' => self::$commonImageVariants,
'images' => self::$commonImageData,
),
'.mw-ui-icon-add:after, .mw-ui-icon-add:before {
...
}
.mw-ui-icon-add-invert:after, .mw-ui-icon-add-invert:before {
...
}
.mw-ui-icon-remove:after, .mw-ui-icon-remove:before {
...
}
.mw-ui-icon-remove-invert:after, .mw-ui-icon-remove-invert:before {
...
}
.mw-ui-icon-remove-destructive:after, .mw-ui-icon-remove-destructive:before {
...
}
.mw-ui-icon-next:after, .mw-ui-icon-next:before {
...
}
.mw-ui-icon-next-invert:after, .mw-ui-icon-next-invert:before {
...
}
.mw-ui-icon-help:after, .mw-ui-icon-help:before {
...
}
.mw-ui-icon-help-invert:after, .mw-ui-icon-help-invert:before {
...
}
.mw-ui-icon-bold:after, .mw-ui-icon-bold:before {
...
}
.mw-ui-icon-bold-invert:after, .mw-ui-icon-bold-invert:before {
...
}',
),
);
}
/**
* @dataProvider providerGetModules
* @covers ResourceLoaderImageModule::getStyles
*/
public function testGetStyles( $module, $expected ) {
$module = new ResourceLoaderImageModuleTestable( $module, __DIR__ . '/../../data/resourceloader' );
$styles = $module->getStyles( $this->getResourceLoaderContext() );
$this->assertEquals( $expected, $styles['all'] );
}
}
class ResourceLoaderImageModuleTestable extends ResourceLoaderImageModule {
/**
* Replace with a stub to make test cases easier to write.
*/
protected function getCssDeclarations( $primary, $fallback ) {
return array( '...' );
}
}