summaryrefslogtreecommitdiff
path: root/tests/phpunit/LessFileCompilationTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/phpunit/LessFileCompilationTest.php')
-rw-r--r--tests/phpunit/LessFileCompilationTest.php60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/phpunit/LessFileCompilationTest.php b/tests/phpunit/LessFileCompilationTest.php
new file mode 100644
index 00000000..71e0f4b2
--- /dev/null
+++ b/tests/phpunit/LessFileCompilationTest.php
@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * Modelled on Sebastian Bergmann's PHPUnit_Extensions_PhptTestCase class.
+ *
+ * @see https://github.com/sebastianbergmann/phpunit/blob/master/src/Extensions/PhptTestCase.php
+ * @author Sam Smith <samsmith@wikimedia.org>
+ */
+class LessFileCompilationTest extends ResourceLoaderTestCase {
+
+ /**
+ * @var string $file
+ */
+ protected $file;
+
+ /**
+ * @var ResourceLoaderModule The ResourceLoader module that contains
+ * the file
+ */
+ protected $module;
+
+ /**
+ * @param string $file
+ * @param ResourceLoaderModule $module The ResourceLoader module that
+ * contains the file
+ */
+ public function __construct( $file, ResourceLoaderModule $module ) {
+ parent::__construct( 'testLessFileCompilation' );
+
+ $this->file = $file;
+ $this->module = $module;
+ }
+
+ public function testLessFileCompilation() {
+ $thisString = $this->toString();
+ $this->assertTrue(
+ is_string( $this->file ) && is_file( $this->file ) && is_readable( $this->file ),
+ "$thisString must refer to a readable file"
+ );
+
+ $rlContext = static::getResourceLoaderContext();
+
+ // Bleh
+ $method = new ReflectionMethod( $this->module, 'getLessCompiler' );
+ $method->setAccessible( true );
+ $compiler = $method->invoke( $this->module, $rlContext );
+
+ $this->assertNotNull( $compiler->compileFile( $this->file ) );
+ }
+
+ public function getName( $withDataSet = true ) {
+ return $this->toString();
+ }
+
+ public function toString() {
+ $moduleName = $this->module->getName();
+
+ return "{$this->file} in the \"{$moduleName}\" module";
+ }
+}