adding some view tests and fixing a few bugs.

This commit is contained in:
Taylor Otwell 2012-01-25 08:37:04 -06:00
parent c9eb7bdf35
commit 974ff302ef
3 changed files with 67 additions and 10 deletions

View File

@ -1,10 +1,5 @@
<?php namespace Laravel;
if (Config::get('application.key') === '')
{
throw new \Exception("An application key is required to use sessions.");
}
class Session {
/**
@ -29,6 +24,11 @@ class Session {
*/
public static function start($driver)
{
if (Config::get('application.key') === '')
{
throw new \Exception("An application key is required to use sessions.");
}
static::$instance = new Session\Payload(static::factory($driver));
}

View File

@ -21,7 +21,7 @@ class View implements ArrayAccess {
*
* @var string
*/
protected $path;
public $path;
/**
* All of the shared view data.
@ -68,12 +68,16 @@ public function __construct($view, $data = array())
// This makes error display in the view extremely convenient, since the
// developer can always assume they have a message container instance
// available to them in the view.
if (Config::get('session.driver') !== '' and Session::started() and ! isset($this['errors']))
if ( ! isset($this->data['errors']))
{
$this->data['errors'] = Session::get('errors', function()
if (Session::started() and Session::has('errors'))
{
return new Messages;
});
$this->data['errors'] = Session::get('errors');
}
else
{
$this->data['errors'] = new Messages;
}
}
}

View File

@ -0,0 +1,53 @@
<?php
class ViewTest extends PHPUnit_Framework_TestCase {
/**
* Test the View class constructor.
*
* @group laravel
*/
public function testViewNameIsSetByConstrutor()
{
$view = new View('home.index');
$this->assertEquals('home.index', $view->view);
}
/**
* Test the View class constructor.
*
* @group laravel
*/
public function testViewIsCreatedWithCorrectPath()
{
$view = new View('home.index');
$this->assertEquals(APP_PATH.'views/home/index.php', $view->path);
}
/**
* Test the View class constructor.
*
* @group laravel
*/
public function testDataIsSetOnViewByConstructor()
{
$view = new View('home.index', array('name' => 'Taylor'));
$this->assertEquals('Taylor', $view->data['name']);
}
/**
* Test the View class constructor.
*
* @group laravel
*/
public function testEmptyMessageContainerSetOnViewWhenNoErrorsInSession()
{
$view = new View('home.index');
$this->assertInstanceOf('Laravel\\Messages', $view->data['errors']);
}
}