resourceloader: Call setName() in test suite before calling getStyles()
authorTimo Tijhof <krinklemail@gmail.com>
Fri, 6 Mar 2015 02:26:44 +0000 (03:26 +0100)
committerTimo Tijhof <krinklemail@gmail.com>
Fri, 6 Mar 2015 02:26:44 +0000 (03:26 +0100)
This caused a database error due to NULL being inserted as name, which is illegal.

> Function: DatabaseSqlite::replace/single-row
> NOT NULL constraint failed: unittest_module_deps.md_module
> Stack trace:
> #3 includes/resourceloader/ResourceLoaderFileModule.php(420): DatabaseSqlite->replace()
> #4 tests/phpunit/includes/resourceloader/ResourceLoaderTest.php(88): ResourceLoaderFileModule->getStyles()
> #5 (): ResourceLoaderTest->testLessFileCompilation()

This test shouldn't be trigggering database updates, but that's for
a later change to stub out or refactor.

Bug: T91567
Change-Id: Ic451bd41e2ffc188d2efd6b7ce61b03b9de61296

tests/phpunit/includes/resourceloader/ResourceLoaderTest.php

index 4fc7378..5d83239 100644 (file)
@@ -85,6 +85,7 @@ class ResourceLoaderTest extends ResourceLoaderTestCase {
                        'localBasePath' => $basePath,
                        'styles' => array( 'styles.less' ),
                ) );
+               $module->setName( 'test.less' );
                $styles = $module->getStyles( $context );
                $this->assertStringEqualsFile( $basePath . '/styles.css', $styles['all'] );
        }