Commit 974ff302 authored by Taylor Otwell's avatar Taylor Otwell

adding some view tests and fixing a few bugs.

parent c9eb7bdf
<?php namespace Laravel; <?php namespace Laravel;
if (Config::get('application.key') === '')
{
throw new \Exception("An application key is required to use sessions.");
}
class Session { class Session {
/** /**
...@@ -29,6 +24,11 @@ class Session { ...@@ -29,6 +24,11 @@ class Session {
*/ */
public static function start($driver) 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)); static::$instance = new Session\Payload(static::factory($driver));
} }
......
...@@ -21,7 +21,7 @@ class View implements ArrayAccess { ...@@ -21,7 +21,7 @@ class View implements ArrayAccess {
* *
* @var string * @var string
*/ */
protected $path; public $path;
/** /**
* All of the shared view data. * All of the shared view data.
...@@ -68,12 +68,16 @@ class View implements ArrayAccess { ...@@ -68,12 +68,16 @@ class View implements ArrayAccess {
// This makes error display in the view extremely convenient, since the // This makes error display in the view extremely convenient, since the
// developer can always assume they have a message container instance // developer can always assume they have a message container instance
// available to them in the view. // 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;
}
} }
} }
......
<?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']);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment