mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-17 14:57:23 +08:00
Method "AssetController::adjustCssUrl()" has been created as blank
This commit is contained in:
@@ -527,6 +527,23 @@ EOD
|
|||||||
file_put_contents($outputFile, $content);
|
file_put_contents($outputFile, $content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adjusts CSS content allowing URL references pointing to the original resources.
|
||||||
|
* @param string $cssContent source CSS content.
|
||||||
|
* @param string $inputFilePath input CSS file name.
|
||||||
|
* @param string $outputFilePath output CSS file name.
|
||||||
|
* @return string adjusted CSS content.
|
||||||
|
*/
|
||||||
|
protected function adjustCssUrl($cssContent, $inputFilePath, $outputFilePath)
|
||||||
|
{
|
||||||
|
$callback = function($matches) use ($inputFilePath, $outputFilePath) {
|
||||||
|
return $matches[0];
|
||||||
|
};
|
||||||
|
$cssContent = preg_replace_callback('/[\w\-]:\s*url\("(.*)"\)+/is', $callback, $cssContent);
|
||||||
|
|
||||||
|
return $cssContent;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates template of configuration file for [[actionCompress]].
|
* Creates template of configuration file for [[actionCompress]].
|
||||||
* @param string $configFile output file name.
|
* @param string $configFile output file name.
|
||||||
|
|||||||
@@ -169,6 +169,23 @@ class AssetControllerTest extends TestCase
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invokes the asset controller method even if it is protected.
|
||||||
|
* @param string $methodName name of the method to be invoked.
|
||||||
|
* @param array $args method arguments.
|
||||||
|
* @return mixed method invoke result.
|
||||||
|
*/
|
||||||
|
protected function invokeAssetControllerMethod($methodName, array $args = array())
|
||||||
|
{
|
||||||
|
$controller = $this->createAssetController();
|
||||||
|
$controllerClassReflection = new ReflectionClass(get_class($controller));
|
||||||
|
$methodReflection = $controllerClassReflection->getMethod($methodName);
|
||||||
|
$methodReflection->setAccessible(true);
|
||||||
|
$result = $methodReflection->invokeArgs($controller, $args);
|
||||||
|
$methodReflection->setAccessible(false);
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
// Tests :
|
// Tests :
|
||||||
|
|
||||||
public function testActionTemplate()
|
public function testActionTemplate()
|
||||||
@@ -237,4 +254,41 @@ class AssetControllerTest extends TestCase
|
|||||||
$this->assertContains($content, $compressedJsFileContent, "Source of '{$name}' is missing in combined file!");
|
$this->assertContains($content, $compressedJsFileContent, "Source of '{$name}' is missing in combined file!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data provider for [[testAdjustCssUrl()]].
|
||||||
|
* @return array test data.
|
||||||
|
*/
|
||||||
|
public function adjustCssUrlDataProvider()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array(
|
||||||
|
'.test-class {background-image: url("test.png");}',
|
||||||
|
'/test/base/path/assets/input',
|
||||||
|
'/test/base/path/assets/output',
|
||||||
|
'.test-class {background-image: url("../input/test.png");}',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'.test-class {background-image: url("../img/test.png");}',
|
||||||
|
'/test/base/path/assets/input',
|
||||||
|
'/test/base/path/assets/output',
|
||||||
|
'.test-class {background-image: url("../input/img/test.png");}',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider adjustCssUrlDataProvider
|
||||||
|
*
|
||||||
|
* @param $cssContent
|
||||||
|
* @param $inputFilePath
|
||||||
|
* @param $outputFilePath
|
||||||
|
* @param $expectedCssContent
|
||||||
|
*/
|
||||||
|
public function testAdjustCssUrl($cssContent, $inputFilePath, $outputFilePath, $expectedCssContent)
|
||||||
|
{
|
||||||
|
$adjustedCssContent = $this->invokeAssetControllerMethod('adjustCssUrl', array($cssContent, $inputFilePath, $outputFilePath));
|
||||||
|
|
||||||
|
$this->assertEquals($expectedCssContent, $adjustedCssContent, 'Unable to adjust CSS correctly!');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user