pickles/tests/classes/SecurityTest.php
Joshua Sherman 6120933fce More tests and cleaned up some ancient code
It actually referenced the INI file, lolno.
2014-01-12 21:53:05 -05:00

99 lines
2.1 KiB
PHP

<?php
class SecurityTest extends PHPUnit_Framework_TestCase
{
public function testGenerateHashWithDefaultSalts()
{
$this->assertEquals(
'4940e793006aa897db22751bba80dff4cb6a3e08',
Security::generateHash('source')
);
}
public function testGenerateHashWithCustomSalts()
{
$config = Config::getInstance();
$config->data['security']['salt'] = 'salt';
$this->assertEquals(
'4eac88c934c33cfa9a80c0b2eb322f23ac3b13c5',
Security::generateHash('source')
);
}
public function testGenerateSHA256Hash()
{
$this->assertEquals(
'3d04f805aff4838ecaf98c7260a813fffd2b7a8a7f957add8018908a1bbdad04',
Security::generateSHA256Hash('source', 'salt')
);
}
public function testLogin()
{
$this->assertTrue(Security::login(1, 10, 'USER'));
$this->assertTrue(isset($_SESSION['__pickles']['security']));
}
public function testLoginNoSession()
{
session_destroy();
$this->assertFalse(Security::login(1, 10, 'USER'));
}
public function testLogout()
{
session_start();
Security::login(1, 10, 'USER');
$this->assertTrue(Security::logout());
$this->assertFalse(isset($_SESSION['__pickles']['security']));
}
public function testIsLevel()
{
Security::login(1, 10, 'USER');
$this->assertTrue(Security::isLevel(SECURITY_LEVEL_USER));
}
public function testIsLevelArray()
{
Security::login(1, 10, 'USER');
$this->assertTrue(Security::isLevel([SECURITY_LEVEL_USER, SECURITY_LEVEL_ADMIN]));
}
public function testHasLevel()
{
Security::login(1, 10, 'USER');
$this->assertTrue(Security::hasLevel(SECURITY_LEVEL_USER));
}
public function testHasLevelArray()
{
Security::login(1, 10, 'USER');
$this->assertTrue(Security::hasLevel([SECURITY_LEVEL_USER, SECURITY_LEVEL_ADMIN]));
}
public function testBetweenLevel()
{
Security::login(1, 10, 'USER');
$this->assertTrue(Security::betweenLevel(SECURITY_LEVEL_USER, SECURITY_LEVEL_ADMIN));
}
public function testTokenMismatch()
{
Security::login(1, 10, 'USER');
$_SESSION['__pickles']['security']['token'] = 'foo';
$_COOKIE['pickles_security_token'] = 'bar';
$this->assertFalse(Security::isLevel(SECURITY_LEVEL_USER));
}
}
?>