%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /www/varak.net/wiki.varak.net/extensions/Mantle/tests/
Upload File :
Create Path :
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 );
	}
}

Zerion Mini Shell 1.0