%PDF- %PDF-
| Direktori : /www/varak.net/wiki.varak.net/extensions/Mantle/tests/ |
| Current File : //www/varak.net/wiki.varak.net/extensions/Mantle/tests/ResourceLoaderTemplateModuleTest.php |
<?php
/**
* @group Mantle
*/
class ResourceLoaderTemplateModuleTest extends MediaWikiTestCase {
private $modules = array(
array(
'messages' => array( 'foo', 'bar' ),
),
array(
'messages' => array(
'foo',
'mobile-frontend-photo-license' => array( 'parse' ),
),
),
array(
'messages' => array(
'foo',
'mobile-frontend-photo-license' => array( 'unknown' ),
),
),
'templateModule' => array(
'templates' => array(
'template.html', 'template2.html',
)
),
'dependenciesTemplatesModule' => array(
'templates' => array( 'foo' ),
'dependencies' => array( 'dependency1', 'dependency2' )
),
'dependenciesModule' => array(
'dependencies' => array( 'dependency1', 'dependency2' )
),
'templateModuleHandlebars' => array(
'templates' => array(
'template_awesome.handlebars',
),
),
);
// providers
public function providerGetMessages() {
return array(
array(
$this->modules[0],
array( 'foo', 'bar' ),
),
array(
$this->modules[1],
array( 'foo' ),
),
array(
$this->modules[2],
array( 'foo' ),
),
);
}
public function providerAddParsedMessages() {
$msg = wfMessage( 'mobile-frontend-photo-license' )->parse();
$expected = "\n" . Xml::encodeJsCall( 'mw.messages.set',
array( 'mobile-frontend-photo-license', $msg ) );
return array(
// test case 1
array(
$this->modules[0],
// expected value
"\n"
),
// test case 2
array(
$this->modules[1],
// expected value 2
$expected
),
// test case 3
array(
$this->modules[2],
// expected value 2
"\n"
),
);
}
public function providerGetTemplateNames() {
return array(
array(
$this->modules[0], array(),
),
array(
$this->modules['templateModule'],
array(
'template.html',
'template2.html',
),
)
);
}
/**
* @FIXME update template tests
*/
public function providerGetTemplateScript() {
$module = $this->modules['templateModule'];
$moduleHandlebars = $this->modules['templateModuleHandlebars'];
$dir = realpath( dirname( __FILE__ ) . '/templates/' );
$module['localTemplateBasePath'] = $dir;
$moduleHandlebars['localTemplateBasePath'] = $dir;
return array(
array(
$this->modules[0], ''
),
array(
$moduleHandlebars,
'mw.mantle.template.add("template_awesome.handlebars","wow\n");',
),
array(
$module,
'mw.mantle.template.add("template.html","hello\n");' .
'mw.mantle.template.add("template2.html","goodbye\n");'
)
);
}
public function providerGetModifiedTimeTemplates() {
$module = $this->modules['templateModule'];
$module['localTemplateBasePath'] = '/tmp/templates';
return array(
// Check the default value when no templates present in module is 1
array( $module, 1 ),
);
}
// tests
/**
* @dataProvider providerAddParsedMessages
*/
public function testAddParsedMessages( $module, $expectedJavascript ) {
$rl = new ResourceLoaderTemplateModule( $module );
$js = $rl->addParsedMessages();
$this->assertEquals( $js, $expectedJavascript );
}
/**
* @dataProvider providerGetMessages
*/
public function testGetMessages( $module, $expectedMessages ) {
$rl = new ResourceLoaderTemplateModule( $module );
$msgs = $rl->getMessages();
$this->assertEquals( $msgs, $expectedMessages );
}
/**
* @dataProvider providerGetTemplateNames
*/
public function testGetTemplateNames( $module, $expected ) {
$rl = new ResourceLoaderTemplateModule( $module );
$names = $rl->getTemplateNames();
$this->assertEquals( $names, $expected );
}
/**
* @dataProvider providerGetTemplateScript
*/
public function testGetTemplateScript( $module, $expected ) {
$rl = new ResourceLoaderTemplateModule( $module );
$js = $rl->getTemplateScript();
$this->assertEquals( $js, $expected );
}
/**
* @dataProvider providerGetModifiedTimeTemplates
*/
public function testGetModifiedTimeTemplates( $module, $expected ) {
$rl = new ResourceLoaderTemplateModule( $module );
$ts = $rl->getModifiedTimeTemplates( new ResourceLoaderContext(
new ResourceLoader, new WebRequest() ) );
$this->assertEquals( $ts, $expected );
}
}