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

199 lines
4.0 KiB
PHP
Executable File

<?php
use Sleepy\Core\Input;
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 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' => [
'0.8' => '*/*',
'0.9' => 'application/xml',
1 => 'application/xhtml+xml',
2 => 'text/html'
],
'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);
}
public function testBadVar()
{
try {
$foo = $this->input->applesauce();
}
catch (DomainException $e) {
$this->assertTrue(true);
}
}
}
// End of InputTest.php