<?php
class Twig_Tests_Loader_FilesystemTest extends PHPUnit_Framework_TestCase {
public function testSecurity($template) {
$loader = new Twig_Loader_Filesystem(array(
dirname(__FILE__) . '/../Fixtures',
));
try {
$loader
->getCacheKey($template);
$this
->fail();
} catch (Twig_Error_Loader $e) {
$this
->assertNotContains('Unable to find template', $e
->getMessage());
}
}
public function getSecurityTests() {
return array(
array(
"AutoloaderTest\0.php",
),
array(
'..\\AutoloaderTest.php',
),
array(
'..\\\\\\AutoloaderTest.php',
),
array(
'../AutoloaderTest.php',
),
array(
'..////AutoloaderTest.php',
),
array(
'./../AutoloaderTest.php',
),
array(
'.\\..\\AutoloaderTest.php',
),
array(
'././././././../AutoloaderTest.php',
),
array(
'.\\./.\\./.\\./../AutoloaderTest.php',
),
array(
'foo/../../AutoloaderTest.php',
),
array(
'foo\\..\\..\\AutoloaderTest.php',
),
array(
'foo/../bar/../../AutoloaderTest.php',
),
array(
'foo/bar/../../../AutoloaderTest.php',
),
array(
'filters/../../AutoloaderTest.php',
),
array(
'filters//..//..//AutoloaderTest.php',
),
array(
'filters\\..\\..\\AutoloaderTest.php',
),
array(
'filters\\\\..\\\\..\\\\AutoloaderTest.php',
),
array(
'filters\\//../\\/\\..\\AutoloaderTest.php',
),
);
}
}