This repository has been archived on 2018-10-11. You can view files and clone it, but cannot push or open issues or pull requests.
sleepy/tests/Core/InputTest.php
2014-05-07 14:05:13 -04:00

189 lines
3.9 KiB
PHP
Executable File

<?php
require_once(BASEPATH . 'core/Input.php');
class InputTest extends Sleepy_TestCase {
public function setUp()
{
parent::setUp();
// Set some http headers as test items
$_SERVER['HTTP_USER_AGENT'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 OPR/18.0.1284.49';
$_SERVER['HTTP_ACCEPT'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$_SERVER['HTTP_COOKIE'] = 'thp_tcms_session_id=9h4nvk15tjjegbeg8uvejncc9blkd81m';
$_SERVER['HTTP_HOST'] = 'www.example.com';
$_SERVER['HTTP_FOO'] = 'foo,bar';
// Set test $_COOKIE array
$_COOKIE = [
'thp_tcms_session_id' => '9h4nvk15tjjegbeg8uvejncc9blkd81m'
];
// Set test $_GET array
$_GET = [
'foo' => 'bar',
'baz' => 'foobar'
];
// Set test $_POST array
$_POST = [
'this' => 'that',
'tisket' => 'tasket'
];
$this->input = new Sleepy\core\Input();
}
public function dataTestHeader()
{
return [
'all' => [
'index' => NULL,
'expected' => [
'user_agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 OPR/18.0.1284.49',
'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'cookie' => 'thp_tcms_session_id=9h4nvk15tjjegbeg8uvejncc9blkd81m',
'host' => 'www.example.com',
'foo' => 'foo,bar'
]
],
'index' => [
'index' => 'cookie',
'expected' => 'thp_tcms_session_id=9h4nvk15tjjegbeg8uvejncc9blkd81m'
],
'invalid' => [
'index' => 'boo',
'expected' => NULL
]
];
}
public function dataHeaderArray()
{
return [
'all' => [
'index' => NULL,
'expected' => [
'user_agent' => [
'versions' => [
'Mozilla' => '5.0',
'AppleWebKit' => '537.36',
'Chrome' => '31.0.1650.57',
'Safari' => '537.36',
'OPR' => '18.0.1284.49',
],
'os' => [
'Macintosh',
'Intel Mac OS X 10_9_0',
],
'misc' => 'KHTML, like Gecko'
],
'accept' => [
'text/html',
'application/xhtml+xml',
['application/xml', 'q=0.9'],
['*/*', 'q=0.8']
],
'cookie' => [
'thp_tcms_session_id' => '9h4nvk15tjjegbeg8uvejncc9blkd81m'
],
'host' => 'www.example.com',
'foo' => [
'foo',
'bar'
]
]
],
'index' => [
'index' => 'cookie',
'expected' => [
'thp_tcms_session_id' => '9h4nvk15tjjegbeg8uvejncc9blkd81m'
]
],
'invalid' => [
'index' => 'red',
'expected' => NULL
]
];
}
public function dataTestPost()
{
return [
'all' => [
'index' => NULL,
'expected' => [
'this' => 'that',
'tisket' => 'tasket'
]
],
'index' => [
'index' => 'this',
'expected' => 'that'
],
'invalid' => [
'index' => 'puppies',
'expected' => NULL
]
];
}
public function dataTestGet()
{
return [
'all' => [
'index' => NULL,
'expected' => [
'foo' => 'bar',
'baz' => 'foobar'
]
],
'index' => [
'index' => 'foo',
'expected' => 'bar'
],
'invalid' => [
'index' => 'applesauce',
'expected' => NULL
]
];
}
/**
* @dataProvider dataTestHeader
*/
public function testHeader($index, $expected)
{
$res = $this->input->header($index);
$this->assertEquals($expected, $res);
}
/**
* @dataProvider dataHeaderArray
*/
public function testHeaderArray($index, $expected)
{
$result = $this->input->header_array($index);
$this->assertEquals($expected, $result);
}
/**
* @dataProvider dataTestPost
*/
public function testPost($index, $expected)
{
$result = $this->input->post($index);
$this->assertEquals($expected, $result);
}
/**
* @dataProvider dataTestGet
*/
public function testGet($index, $expected)
{
$result = $this->input->get($index);
$this->assertEquals($expected, $result);
}
}
// End of InputTest.php