Protocol-based test with a protocol other than "file://"
This commit is contained in:
committed by
Justin Hileman
parent
fee4544785
commit
eeee916433
@@ -34,7 +34,7 @@ class Mustache_Test_Loader_FilesystemLoaderTest extends PHPUnit_Framework_TestCa
|
|||||||
{
|
{
|
||||||
$baseDir = realpath(dirname(__FILE__) . '/../../../fixtures/templates');
|
$baseDir = realpath(dirname(__FILE__) . '/../../../fixtures/templates');
|
||||||
|
|
||||||
$loader = new Mustache_Loader_FilesystemLoader('file://' . $baseDir, array('extension' => '.ms'));
|
$loader = new Mustache_Loader_FilesystemLoader('test://' . $baseDir, array('extension' => '.ms'));
|
||||||
$this->assertEquals('alpha contents', $loader->load('alpha'));
|
$this->assertEquals('alpha contents', $loader->load('alpha'));
|
||||||
$this->assertEquals('beta contents', $loader->load('beta.ms'));
|
$this->assertEquals('beta contents', $loader->load('beta.ms'));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,3 +15,73 @@ Mustache_Autoloader::register();
|
|||||||
Mustache_Autoloader::register(dirname(__FILE__) . '/../test');
|
Mustache_Autoloader::register(dirname(__FILE__) . '/../test');
|
||||||
|
|
||||||
require dirname(__FILE__) . '/../vendor/yaml/lib/sfYamlParser.php';
|
require dirname(__FILE__) . '/../vendor/yaml/lib/sfYamlParser.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Minimal stream wrapper to test protocol-based access to templates
|
||||||
|
*/
|
||||||
|
class TestStream
|
||||||
|
{
|
||||||
|
private $filehandle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Always returns false
|
||||||
|
*
|
||||||
|
* @param string $path
|
||||||
|
* @param int $flags
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function url_stat($path, $flags)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Open the file
|
||||||
|
*
|
||||||
|
* @param string $path
|
||||||
|
* @param string $mode
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function stream_open($path, $mode)
|
||||||
|
{
|
||||||
|
$path = preg_replace('-^test://-', '', $path);
|
||||||
|
$this->filehandle = fopen($path, $mode);
|
||||||
|
return $this->filehandle !== false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function stream_stat()
|
||||||
|
{
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $count
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function stream_read($count)
|
||||||
|
{
|
||||||
|
return fgets($this->filehandle, $count);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function stream_eof()
|
||||||
|
{
|
||||||
|
return feof($this->filehandle);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function stream_close()
|
||||||
|
{
|
||||||
|
return fclose($this->filehandle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stream_wrapper_register('test', TestStream::class)
|
||||||
|
|| die('Failed to register protocol');
|
||||||
|
|||||||
Reference in New Issue
Block a user