|
@ -0,0 +1,119 @@ |
|
|
|
|
|
<?php |
|
|
|
|
|
class UtilsTest extends PHPUnit_Framework_TestCase { |
|
|
|
|
|
|
|
|
|
|
|
public function testRandomString() { |
|
|
|
|
|
$str1 = p3k\random_string(20); |
|
|
|
|
|
$this->assertEquals(20, strlen($str1)); |
|
|
|
|
|
$str2 = p3k\random_string(20); |
|
|
|
|
|
$this->assertEquals(20, strlen($str2)); |
|
|
|
|
|
$this->assertNotEquals($str1, $str2); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testEndsWith() { |
|
|
|
|
|
$this->assertFalse(p3k\str_ends_with('abcdefg', '')); |
|
|
|
|
|
$this->assertFalse(p3k\str_ends_with('', 'abcdefg')); |
|
|
|
|
|
$this->assertTrue(p3k\str_ends_with('abcdefg', 'efg')); |
|
|
|
|
|
$this->assertTrue(p3k\str_ends_with('abcdefg', 'abcdefg')); |
|
|
|
|
|
$this->assertTrue(p3k\str_ends_with('abcdefg', 'g')); |
|
|
|
|
|
$this->assertFalse(p3k\str_ends_with('abcdefg', 'abc')); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testSessionSetupNoCreate() { |
|
|
|
|
|
// no session already, so this should not create one
|
|
|
|
|
|
p3k\session_setup(); |
|
|
|
|
|
$this->assertFalse(isset($_SESSION)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testSessionSetupCreateFromCookie() { |
|
|
|
|
|
// there is a session cookie, so this should initialize the session
|
|
|
|
|
|
$_COOKIE[session_name()] = '12345'; |
|
|
|
|
|
p3k\session_setup(); |
|
|
|
|
|
$this->assertTrue(isset($_SESSION)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testSessionAccess() { |
|
|
|
|
|
$_SESSION = []; |
|
|
|
|
|
$this->assertNull(p3k\session('foo')); |
|
|
|
|
|
$_SESSION = []; |
|
|
|
|
|
$this->assertEquals('default', p3k\session('foo', 'default')); |
|
|
|
|
|
$_SESSION = ['foo'=>'bar']; |
|
|
|
|
|
$this->assertEquals('bar', p3k\session('foo')); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testFlash() { |
|
|
|
|
|
$_SESSION = []; |
|
|
|
|
|
$this->assertNull(p3k\flash('foo')); |
|
|
|
|
|
$_SESSION = ['foo'=>'bar']; |
|
|
|
|
|
$this->assertEquals('bar', p3k\flash('foo')); |
|
|
|
|
|
$this->assertNull(p3k\flash('foo')); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testE() { |
|
|
|
|
|
$html = p3k\e('<b>test</b>'); |
|
|
|
|
|
$this->assertEquals('<b>test</b>', $html); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testK() { |
|
|
|
|
|
$this->assertEquals('b', p3k\k(['a'=>'b'], 'a')); |
|
|
|
|
|
$this->assertEquals('default', p3k\k(['a'=>'b'], 'z', 'default')); |
|
|
|
|
|
$obj = new StdClass; |
|
|
|
|
|
$obj->a = 'b'; |
|
|
|
|
|
$this->assertEquals('b', p3k\k($obj, 'a')); |
|
|
|
|
|
$this->assertEquals('default', p3k\k($obj, 'z', 'default')); |
|
|
|
|
|
|
|
|
|
|
|
$keys = ['a','b','c']; |
|
|
|
|
|
$values = ['a'=>true, 'b'=>true, 'c'=>true]; |
|
|
|
|
|
$this->assertTrue(p3k\k($values, $keys)); |
|
|
|
|
|
|
|
|
|
|
|
$keys = ['a','b','c']; |
|
|
|
|
|
$values = ['a'=>true, 'c'=>true]; |
|
|
|
|
|
$this->assertFalse(p3k\k($values, $keys)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testHTTPHeaderCase() { |
|
|
|
|
|
$name = p3k\http_header_case('header-name'); |
|
|
|
|
|
$this->assertEquals('Header-Name', $name); |
|
|
|
|
|
$name = p3k\http_header_case('HEADER-NAME'); |
|
|
|
|
|
$this->assertEquals('Header-Name', $name); |
|
|
|
|
|
$name = p3k\http_header_case('hEaDeR-nAmE'); |
|
|
|
|
|
$this->assertEquals('Header-Name', $name); |
|
|
|
|
|
$name = p3k\http_header_case('host'); |
|
|
|
|
|
$this->assertEquals('Host', $name); |
|
|
|
|
|
$name = p3k\http_header_case('x-header-name'); |
|
|
|
|
|
$this->assertEquals('X-Header-Name', $name); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testHTMLToDomDocument() { |
|
|
|
|
|
$doc = p3k\html_to_dom_document('<html><head><title>Title</title></head><body>Hello World</body></html>'); |
|
|
|
|
|
$this->assertEquals('DOMDocument', get_class($doc)); |
|
|
|
|
|
$this->assertEmpty(libxml_get_errors()); |
|
|
|
|
|
$doc = p3k\html_to_dom_document("\0this is not HTML"); |
|
|
|
|
|
$this->assertEquals('DOMDocument', get_class($doc)); |
|
|
|
|
|
$this->assertEmpty(libxml_get_errors()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testXMLToDomDocument() { |
|
|
|
|
|
$doc = p3k\xml_to_dom_document('<html><head><title>Title</title></head><body>Hello World</body></html>'); |
|
|
|
|
|
$this->assertEquals('DOMDocument', get_class($doc)); |
|
|
|
|
|
$this->assertEmpty(libxml_get_errors()); |
|
|
|
|
|
$doc = p3k\xml_to_dom_document('<html><title>Title</title></head><body>Hello World</html>'); |
|
|
|
|
|
$this->assertEquals('DOMDocument', get_class($doc)); |
|
|
|
|
|
$this->assertEmpty(libxml_get_errors()); |
|
|
|
|
|
$doc = p3k\xml_to_dom_document("\0this is not XML"); |
|
|
|
|
|
$this->assertEquals('DOMDocument', get_class($doc)); |
|
|
|
|
|
$this->assertEmpty(libxml_get_errors()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testBase60() { |
|
|
|
|
|
$this->assertEquals('BBBB', p3k\b10to60(p3k\b60to10('BBBB'))); |
|
|
|
|
|
$this->assertEquals('ABCD_efg', p3k\b10to60(p3k\b60to10('ABCD_efg'))); |
|
|
|
|
|
$this->assertEquals('Z111000', p3k\b10to60(p3k\b60to10('ZIl1O0O'))); |
|
|
|
|
|
$this->assertEquals('0', p3k\b10to60(p3k\b60to10(',<.'))); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function testCreatesRedis() { |
|
|
|
|
|
p3k\redis(); |
|
|
|
|
|
$this->assertEquals('Predis\Client', get_class(p3k\redis())); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |