Add an inline template loader.

This loader is awesome for micro-frameworks such as Silex :)
This commit is contained in:
Justin Hileman
2013-01-21 10:03:57 -08:00
parent 59020c2e4f
commit b22d15a759
2 changed files with 177 additions and 0 deletions
@@ -0,0 +1,56 @@
<?php
/*
* This file is part of Mustache.php.
*
* (c) 2012 Justin Hileman
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
/**
* @group unit
*/
class Mustache_Test_Loader_InlineLoaderTest extends PHPUnit_Framework_TestCase
{
public function testLoadTemplates()
{
$loader = new Mustache_Loader_InlineLoader(__FILE__, __COMPILER_HALT_OFFSET__);
$this->assertEquals('{{ foo }}', $loader->load('foo'));
$this->assertEquals('{{#bar}}BAR{{/bar}}', $loader->load('bar'));
}
/**
* @expectedException Mustache_Exception_UnknownTemplateException
*/
public function testMissingTemplatesThrowExceptions()
{
$loader = new Mustache_Loader_InlineLoader(__FILE__, __COMPILER_HALT_OFFSET__);
$loader->load('not_a_real_template');
}
/**
* @expectedException Mustache_Exception_InvalidArgumentException
*/
public function testInvalidOffsetThrowsException()
{
$loader = new Mustache_Loader_InlineLoader(__FILE__, 'notanumber');
}
/**
* @expectedException Mustache_Exception_InvalidArgumentException
*/
public function testInvalidFileThrowsException()
{
$loader = new Mustache_Loader_InlineLoader('notarealfile', __COMPILER_HALT_OFFSET__);
}
}
__halt_compiler();
@@ foo
{{ foo }}
@@ bar
{{#bar}}BAR{{/bar}}