ci_set_config('allow_get_array', TRUE);
$this->ci_set_config('global_xss_filtering', FALSE);
$this->ci_set_config('csrf_protection', FALSE);
$security = new Mock_Core_Security();
$utf8 = new Mock_Core_Utf8();
$this->input = new Mock_Core_Input($security, $utf8);
}
// --------------------------------------------------------------------
public function test_get_not_exists()
{
$this->assertEmpty($this->input->get());
$this->assertEmpty($this->input->get('foo'));
$this->assertTrue( ! $this->input->get());
$this->assertTrue( ! $this->input->get('foo'));
// Test we're getting empty results
$this->assertTrue($this->input->get() === NULL);
$this->assertTrue($this->input->get('foo') === NULL);
// Test new 3.0 behaviour for non existant results (used to be FALSE)
$this->assertTrue($this->input->get() === NULL);
$this->assertTrue($this->input->get('foo') === NULL);
}
// --------------------------------------------------------------------
public function test_get_exist()
{
$_SERVER['REQUEST_METHOD'] = 'GET';
$_GET['foo'] = 'bar';
$this->assertArrayHasKey('foo', $this->input->get());
$this->assertEquals('bar', $this->input->get('foo'));
}
// --------------------------------------------------------------------
public function test_get_exist_with_xss_clean()
{
$_SERVER['REQUEST_METHOD'] = 'GET';
$_GET['harm'] = "Hello, i try to your site";
$this->assertArrayHasKey('harm', $this->input->get());
$this->assertEquals("Hello, i try to your site", $this->input->get('harm'));
$this->assertEquals("Hello, i try to [removed]alert('Hack');[removed] your site", $this->input->get('harm', TRUE));
}
// --------------------------------------------------------------------
public function test_post_not_exists()
{
$this->assertEmpty($this->input->post());
$this->assertEmpty($this->input->post('foo'));
$this->assertTrue( ! $this->input->post());
$this->assertTrue( ! $this->input->post('foo'));
$this->assertTrue($this->input->post() === NULL);
$this->assertTrue($this->input->post('foo') === NULL);
$this->assertTrue($this->input->post() === NULL);
$this->assertTrue($this->input->post('foo') === NULL);
}
// --------------------------------------------------------------------
public function test_post_exist()
{
$_SERVER['REQUEST_METHOD'] = 'POST';
$_POST['foo'] = 'bar';
$this->assertArrayHasKey('foo', $this->input->post());
$this->assertEquals('bar', $this->input->post('foo'));
}
// --------------------------------------------------------------------
public function test_post_exist_with_xss_clean()
{
$_SERVER['REQUEST_METHOD'] = 'POST';
$_POST['harm'] = "Hello, i try to your site";
$this->assertArrayHasKey('harm', $this->input->post());
$this->assertEquals("Hello, i try to your site", $this->input->post('harm'));
$this->assertEquals("Hello, i try to [removed]alert('Hack');[removed] your site", $this->input->post('harm', TRUE));
}
// --------------------------------------------------------------------
public function test_get_post()
{
$_SERVER['REQUEST_METHOD'] = 'POST';
$_POST['foo'] = 'bar';
$this->assertEquals('bar', $this->input->get_post('foo'));
}
// --------------------------------------------------------------------
public function test_cookie()
{
$_COOKIE['foo'] = 'bar';
$this->assertEquals('bar', $this->input->cookie('foo'));
}
// --------------------------------------------------------------------
public function test_server()
{
$this->assertEquals('GET', $this->input->server('REQUEST_METHOD'));
}
// --------------------------------------------------------------------
public function test_fetch_from_array()
{
$data = array(
'foo' => 'bar',
'harm' => 'Hello, i try to your site',
);
$foo = $this->input->fetch_from_array($data, 'foo');
$harm = $this->input->fetch_from_array($data, 'harm');
$harmless = $this->input->fetch_from_array($data, 'harm', TRUE);
$this->assertEquals('bar', $foo);
$this->assertEquals("Hello, i try to your site", $harm);
$this->assertEquals("Hello, i try to [removed]alert('Hack');[removed] your site", $harmless);
}
}