added tests to main repository.
This commit is contained in:
151
tests/suite/InputTest.php
Normal file
151
tests/suite/InputTest.php
Normal file
@@ -0,0 +1,151 @@
|
||||
<?php
|
||||
|
||||
class InputTest extends PHPUnit_Framework_TestCase {
|
||||
|
||||
public static function setUpBeforeClass()
|
||||
{
|
||||
System\Input::$input = null;
|
||||
}
|
||||
|
||||
public static function tearDownAfterClass()
|
||||
{
|
||||
System\Config::set('session.driver', '');
|
||||
System\Session::$session = array();
|
||||
}
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$_SERVER['REQUEST_METHOD'] = 'GET';
|
||||
}
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
System\Input::$input = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider inputByMethodProvider
|
||||
*/
|
||||
public function testInputShouldHydrateBasedOnRequestMethod($method, $data)
|
||||
{
|
||||
$_SERVER['REQUEST_METHOD'] = $method;
|
||||
|
||||
$_GET = $data;
|
||||
$_POST = $data;
|
||||
|
||||
$this->assertEquals(System\Input::get(), $data);
|
||||
}
|
||||
|
||||
public function inputByMethodProvider()
|
||||
{
|
||||
return array(
|
||||
array('GET', array('method' => 'GET')),
|
||||
array('POST', array('method' => 'POST')),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider inputBySpoofedMethodProvider
|
||||
*/
|
||||
public function testInputShouldHydrateBasedOnSpoofedRequestMethod($method, $data)
|
||||
{
|
||||
$_SERVER['REQUEST_METHOD'] = 'POST';
|
||||
$_POST = $data;
|
||||
|
||||
$this->assertEquals(System\Input::get(), $data);
|
||||
}
|
||||
|
||||
public function inputBySpoofedMethodProvider()
|
||||
{
|
||||
return array(
|
||||
array('PUT', array('request_method' => 'PUT', 'method' => 'PUT')),
|
||||
array('DELETE', array('request_method' => 'DELETE', 'method' => 'DELETE')),
|
||||
);
|
||||
}
|
||||
|
||||
public function testHasMethodReturnsTrueIfItemIsPresentInInputData()
|
||||
{
|
||||
System\Input::$input = array('name' => 'taylor');
|
||||
$this->assertTrue(System\Input::has('name'));
|
||||
}
|
||||
|
||||
public function testHasMethodReturnsFalseIfItemIsNotPresentInInputData()
|
||||
{
|
||||
System\Input::$input = array();
|
||||
$this->assertFalse(System\Input::has('name'));
|
||||
}
|
||||
|
||||
public function testGetMethodReturnsItemByInputKey()
|
||||
{
|
||||
System\Input::$input = array('name' => 'taylor');
|
||||
$this->assertEquals(System\Input::get('name'), 'taylor');
|
||||
}
|
||||
|
||||
public function testGetMethodReturnsDefaultValueWhenItemDoesntExist()
|
||||
{
|
||||
System\Input::$input = array();
|
||||
|
||||
$this->assertNull(System\Input::get('name'));
|
||||
$this->assertEquals(System\Input::get('name', 'test'), 'test');
|
||||
$this->assertTrue(is_array(System\Input::get()) and count(System\Input::get()) == 0);
|
||||
}
|
||||
|
||||
public function testGetMethodReturnsEntireInputArrayWhenNoKeyGiven()
|
||||
{
|
||||
System\Input::$input = array('name' => 'taylor', 'age' => 25);
|
||||
$this->assertEquals(System\Input::get(), System\Input::$input);
|
||||
}
|
||||
|
||||
public function testFileMethodReturnsItemFromGlobalFilesArray()
|
||||
{
|
||||
$_FILES['test'] = array('name' => 'taylor');
|
||||
$this->assertEquals(System\Input::file('test'), $_FILES['test']);
|
||||
}
|
||||
|
||||
public function testFileMethodReturnsSpecificItemFromFileArrayWhenSpecified()
|
||||
{
|
||||
$_FILES['test'] = array('size' => 500);
|
||||
$this->assertEquals(System\Input::file('test.size'), 500);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Exception
|
||||
*/
|
||||
public function testOldMethodShouldThrowExceptionWhenSessionsArentEnabled()
|
||||
{
|
||||
System\Input::old();
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException Exception
|
||||
*/
|
||||
public function testHadMethodShouldThrowExceptionWhenSessionsArentEnabled()
|
||||
{
|
||||
System\Input::has();
|
||||
}
|
||||
|
||||
public function testOldMethodShouldReturnOldInputDataFromSession()
|
||||
{
|
||||
System\Config::set('session.driver', 'test');
|
||||
System\Session::$session['data']['laravel_old_input'] = array('name' => 'taylor');
|
||||
|
||||
$this->assertEquals(System\Input::old('name'), 'taylor');
|
||||
}
|
||||
|
||||
public function testHadMethodReturnsTrueIfItemIsPresentInOldInputData()
|
||||
{
|
||||
System\Config::set('session.driver', 'test');
|
||||
System\Session::$session['data']['laravel_old_input'] = array('name' => 'taylor');
|
||||
|
||||
$this->assertTrue(System\Input::had('name'));
|
||||
}
|
||||
|
||||
public function testHadMethodReturnsFalseIfItemIsNotPresentInOldInputData()
|
||||
{
|
||||
System\Config::set('session.driver', 'test');
|
||||
System\Session::$session['data']['laravel_old_input'] = array();
|
||||
|
||||
$this->assertFalse(System\Input::had('name'));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user