diff options
Diffstat (limited to 'tests/codeigniter/helpers')
-rw-r--r-- | tests/codeigniter/helpers/array_helper_test.php | 49 | ||||
-rw-r--r-- | tests/codeigniter/helpers/email_helper_test.php | 16 | ||||
-rw-r--r-- | tests/codeigniter/helpers/file_helper_test.php | 157 | ||||
-rw-r--r-- | tests/codeigniter/helpers/html_helper_test.php | 78 | ||||
-rw-r--r-- | tests/codeigniter/helpers/inflector_helper_test.php | 91 | ||||
-rw-r--r-- | tests/codeigniter/helpers/number_helper_test.php | 13 | ||||
-rw-r--r-- | tests/codeigniter/helpers/string_helper_test.php | 118 | ||||
-rw-r--r-- | tests/codeigniter/helpers/text_helper_test.php | 159 | ||||
-rw-r--r-- | tests/codeigniter/helpers/xml_helper_test.php | 13 |
9 files changed, 694 insertions, 0 deletions
diff --git a/tests/codeigniter/helpers/array_helper_test.php b/tests/codeigniter/helpers/array_helper_test.php new file mode 100644 index 000000000..62559de83 --- /dev/null +++ b/tests/codeigniter/helpers/array_helper_test.php @@ -0,0 +1,49 @@ +<?php + +// OLD TEST FORMAT: DO NOT COPY + +require_once(BASEPATH.'helpers/array_helper.php'); + +class Array_helper_test extends CI_TestCase +{ + public function set_up() + { + $this->my_array = array( + 'foo' => 'bar', + 'sally' => 'jim', + 'maggie' => 'bessie', + 'herb' => 'cook' + ); + } + + // ------------------------------------------------------------------------ + + public function test_element_with_existing_item() + { + $this->assertEquals(FALSE, element('testing', $this->my_array)); + + $this->assertEquals('not set', element('testing', $this->my_array, 'not set')); + + $this->assertEquals('bar', element('foo', $this->my_array)); + } + + // ------------------------------------------------------------------------ + + public function test_random_element() + { + // Send a string, not an array to random_element + $this->assertEquals('my string', random_element('my string')); + + // Test sending an array + $this->assertEquals(TRUE, in_array(random_element($this->my_array), $this->my_array)); + } + + // ------------------------------------------------------------------------ + + public function test_elements() + { + $this->assertEquals(TRUE, is_array(elements('test', $this->my_array))); + $this->assertEquals(TRUE, is_array(elements('foo', $this->my_array))); + } + +}
\ No newline at end of file diff --git a/tests/codeigniter/helpers/email_helper_test.php b/tests/codeigniter/helpers/email_helper_test.php new file mode 100644 index 000000000..7324e8109 --- /dev/null +++ b/tests/codeigniter/helpers/email_helper_test.php @@ -0,0 +1,16 @@ +<?php + +require_once(BASEPATH.'helpers/email_helper.php'); + +class Email_helper_test extends CI_TestCase +{ + + public function test_valid_email() + { + $this->assertEquals(FALSE, valid_email('test')); + $this->assertEquals(FALSE, valid_email('test@test@test.com')); + $this->assertEquals(TRUE, valid_email('test@test.com')); + $this->assertEquals(TRUE, valid_email('my.test@test.com')); + } + +}
\ No newline at end of file diff --git a/tests/codeigniter/helpers/file_helper_test.php b/tests/codeigniter/helpers/file_helper_test.php new file mode 100644 index 000000000..a596a0375 --- /dev/null +++ b/tests/codeigniter/helpers/file_helper_test.php @@ -0,0 +1,157 @@ +<?php + +require_once 'vfsStream/vfsStream.php'; +require BASEPATH.'helpers/file_helper.php'; + +class File_helper_Test extends CI_TestCase +{ + public function set_up() + { + vfsStreamWrapper::register(); + vfsStreamWrapper::setRoot(new vfsStreamDirectory('testDir')); + + $this->_test_dir = vfsStreamWrapper::getRoot(); + } + + // -------------------------------------------------------------------- + + public function test_read_file() + { + $this->assertFalse(read_file('does_not_exist')); + + $content = 'Jack and Jill went up the mountain to fight a billy goat.'; + + $file = vfsStream::newFile('my_file.txt')->withContent($content) + ->at($this->_test_dir); + + $this->assertEquals($content, read_file(vfsStream::url('my_file.txt'))); + } + + // -------------------------------------------------------------------- + + public function test_octal_permissions() + { + $content = 'Jack and Jill went up the mountain to fight a billy goat.'; + + $file = vfsStream::newFile('my_file.txt', 0777)->withContent($content) + ->lastModified(time() - 86400) + ->at($this->_test_dir); + + $this->assertEquals('777', octal_permissions($file->getPermissions())); + } + + // -------------------------------------------------------------------- + + /** + * More tests should happen here, since I'm not hitting the whole function. + */ + public function test_symbolic_permissions() + { + $content = 'Jack and Jill went up the mountain to fight a billy goat.'; + + $file = vfsStream::newFile('my_file.txt', 0777)->withContent($content) + ->lastModified(time() - 86400) + ->at($this->_test_dir); + + $this->assertEquals('urwxrwxrwx', symbolic_permissions($file->getPermissions())); + } + + // -------------------------------------------------------------------- + + public function test_get_mime_by_extension() + { + $content = 'Jack and Jill went up the mountain to fight a billy goat.'; + + $file = vfsStream::newFile('my_file.txt', 0777)->withContent($content) + ->lastModified(time() - 86400) + ->at($this->_test_dir); + + $this->assertEquals('text/plain', + get_mime_by_extension(vfsStream::url('my_file.txt'))); + + // Test a mime with an array, such as png + $file = vfsStream::newFile('foo.png')->at($this->_test_dir); + + $this->assertEquals('image/png', get_mime_by_extension(vfsStream::url('foo.png'))); + + // Test a file not in the mimes array + $file = vfsStream::newFile('foo.blarfengar')->at($this->_test_dir); + + $this->assertFalse(get_mime_by_extension(vfsStream::url('foo.blarfengar'))); + } + + // -------------------------------------------------------------------- + + public function test_get_file_info() + { + // Test Bad File + $this->assertFalse(get_file_info('i_am_bad_boo')); + + // Test the rest + + // First pass in an array + $vals = array( + 'name', 'server_path', 'size', 'date', + 'readable', 'writable', 'executable', 'fileperms' + ); + + $this->_test_get_file_info($vals); + + // Test passing in vals as a string. + $vals = 'name, server_path, size, date, readable, writable, executable, fileperms'; + $this->_test_get_file_info($vals); + } + + private function _test_get_file_info($vals) + { + $content = 'Jack and Jill went up the mountain to fight a billy goat.'; + $last_modified = time() - 86400; + + $file = vfsStream::newFile('my_file.txt', 0777)->withContent($content) + ->lastModified($last_modified) + ->at($this->_test_dir); + + $ret_values = array( + 'name' => 'my_file.txt', + 'server_path' => 'vfs://my_file.txt', + 'size' => 57, + 'date' => $last_modified, + 'readable' => TRUE, + 'writable' => TRUE, + 'executable' => TRUE, + 'fileperms' => 33279 + ); + + $info = get_file_info(vfsStream::url('my_file.txt'), $vals); + + foreach ($info as $k => $v) + { + $this->assertEquals($ret_values[$k], $v); + } + } + + // -------------------------------------------------------------------- + + // Skipping for now, as it's not implemented in vfsStreamWrapper + // flock(): vfsStreamWrapper::stream_lock is not implemented! + + // public function test_write_file() + // { + // if ( ! defined('FOPEN_WRITE_CREATE_DESTRUCTIVE')) + // { + // define('FOPEN_WRITE_CREATE_DESTRUCTIVE', 'wb'); + // } + // + // $content = 'Jack and Jill went up the mountain to fight a billy goat.'; + // + // $file = vfsStream::newFile('write.txt', 0777)->withContent('') + // ->lastModified(time() - 86400) + // ->at($this->_test_dir); + // + // $this->assertTrue(write_file(vfsStream::url('write.txt'), $content)); + // + // } + + // -------------------------------------------------------------------- + +}
\ No newline at end of file diff --git a/tests/codeigniter/helpers/html_helper_test.php b/tests/codeigniter/helpers/html_helper_test.php new file mode 100644 index 000000000..706874f9e --- /dev/null +++ b/tests/codeigniter/helpers/html_helper_test.php @@ -0,0 +1,78 @@ +<?php + +require_once(BASEPATH.'helpers/html_helper.php'); + +class Html_helper_test extends CI_TestCase +{ + + // ------------------------------------------------------------------------ + + public function test_br() + { + $this->assertEquals('<br /><br />', br(2)); + } + + // ------------------------------------------------------------------------ + + public function test_heading() + { + $this->assertEquals('<h1>foobar</h1>', heading('foobar')); + $this->assertEquals('<h2 class="bar">foobar</h2>', heading('foobar', 2, 'class="bar"')); + } + + // ------------------------------------------------------------------------ + + public function test_Ul() + { + $expect = <<<EOH +<ul> + <li>foo</li> + <li>bar</li> +</ul> + +EOH; + + $expect = ltrim($expect); + + $list = array('foo', 'bar'); + + $this->assertEquals($expect, ul($list)); + + + $expect = <<<EOH +<ul class="test"> + <li>foo</li> + <li>bar</li> +</ul> + +EOH; + + $expect = ltrim($expect); + + $list = array('foo', 'bar'); + + $this->assertEquals($expect, ul($list, ' class="test"')); + + $this->assertEquals($expect, ul($list, array('class' => 'test'))); + } + + // ------------------------------------------------------------------------ + + public function test_NBS() + { + $this->assertEquals(' ', nbs(3)); + } + + // ------------------------------------------------------------------------ + + public function test_meta() + { + $this->assertEquals("<meta name=\"test\" content=\"foo\" />\n", meta('test', 'foo')); + + $expect = "<meta name=\"foo\" content=\"\" />\n"; + + $this->assertEquals($expect, meta(array('name' => 'foo'))); + + } + +}
\ No newline at end of file diff --git a/tests/codeigniter/helpers/inflector_helper_test.php b/tests/codeigniter/helpers/inflector_helper_test.php new file mode 100644 index 000000000..34bc34ebb --- /dev/null +++ b/tests/codeigniter/helpers/inflector_helper_test.php @@ -0,0 +1,91 @@ +<?php + +require_once(BASEPATH.'helpers/inflector_helper.php'); + +class Inflector_helper_test extends CI_TestCase { + + + public function test_singular() + { + $strs = array( + 'tellies' => 'telly', + 'smellies' => 'smelly', + 'abjectnesses' => 'abjectness', + 'smells' => 'smell' + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, singular($str)); + } + } + + // -------------------------------------------------------------------- + + public function test_plural() + { + $strs = array( + 'telly' => 'tellies', + 'smelly' => 'smellies', + 'abjectness' => 'abjectness', + 'smell' => 'smells', + 'witch' => 'witches' + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, plural($str)); + } + } + + // -------------------------------------------------------------------- + + public function test_camelize() + { + $strs = array( + 'this is the string' => 'thisIsTheString', + 'this is another one' => 'thisIsAnotherOne', + 'i-am-playing-a-trick' => 'i-am-playing-a-trick', + 'what_do_you_think-yo?' => 'whatDoYouThink-yo?', + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, camelize($str)); + } + } + + // -------------------------------------------------------------------- + + public function test_underscore() + { + $strs = array( + 'this is the string' => 'this_is_the_string', + 'this is another one' => 'this_is_another_one', + 'i-am-playing-a-trick' => 'i-am-playing-a-trick', + 'what_do_you_think-yo?' => 'what_do_you_think-yo?', + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, underscore($str)); + } + } + + // -------------------------------------------------------------------- + + public function test_humanize() + { + $strs = array( + 'this_is_the_string' => 'This Is The String', + 'this_is_another_one' => 'This Is Another One', + 'i-am-playing-a-trick' => 'I-am-playing-a-trick', + 'what_do_you_think-yo?' => 'What Do You Think-yo?', + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, humanize($str)); + } + } +}
\ No newline at end of file diff --git a/tests/codeigniter/helpers/number_helper_test.php b/tests/codeigniter/helpers/number_helper_test.php new file mode 100644 index 000000000..02fc49c3d --- /dev/null +++ b/tests/codeigniter/helpers/number_helper_test.php @@ -0,0 +1,13 @@ +<?php + +require_once(BASEPATH.'helpers/number_helper.php'); + +class Number_helper_test extends CI_TestCase +{ + + public function test_byte_format() + { + // $this->assertEquals('456 Bytes', byte_format(456)); + } + +}
\ No newline at end of file diff --git a/tests/codeigniter/helpers/string_helper_test.php b/tests/codeigniter/helpers/string_helper_test.php new file mode 100644 index 000000000..5e0ee45de --- /dev/null +++ b/tests/codeigniter/helpers/string_helper_test.php @@ -0,0 +1,118 @@ +<?php + +require_once(BASEPATH.'helpers/string_helper.php'); + +class String_helper_test extends CI_TestCase +{ + public function test_trim_slashes() + { + $strs = array( + '//Slashes//\/' => 'Slashes//\\', + '/var/www/html/' => 'var/www/html' + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, trim_slashes($str)); + } + } + + // -------------------------------------------------------------------- + + public function test_strip_quotes() + { + $strs = array( + '"me oh my!"' => 'me oh my!', + "it's a winner!" => 'its a winner!', + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, strip_quotes($str)); + } + } + + // -------------------------------------------------------------------- + + public function test_quotes_to_entities() + { + $strs = array( + '"me oh my!"' => '"me oh my!"', + "it's a winner!" => 'it's a winner!', + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, quotes_to_entities($str)); + } + } + + // -------------------------------------------------------------------- + + public function test_reduce_double_slashes() + { + $strs = array( + 'http://codeigniter.com' => 'http://codeigniter.com', + '//var/www/html/example.com/' => '/var/www/html/example.com/', + '/var/www/html//index.php' => '/var/www/html/index.php' + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, reduce_double_slashes($str)); + } + } + + // -------------------------------------------------------------------- + + public function test_reduce_multiples() + { + $strs = array( + 'Fred, Bill,, Joe, Jimmy' => 'Fred, Bill, Joe, Jimmy', + 'Ringo, John, Paul,,' => 'Ringo, John, Paul,' + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, reduce_multiples($str)); + } + + $strs = array( + 'Fred, Bill,, Joe, Jimmy' => 'Fred, Bill, Joe, Jimmy', + 'Ringo, John, Paul,,' => 'Ringo, John, Paul' + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, reduce_multiples($str, ',', TRUE)); + } + } + + // -------------------------------------------------------------------- + + public function test_repeater() + { + $strs = array( + 'a' => 'aaaaaaaaaa', + ' ' => ' ', + '<br>' => '<br><br><br><br><br><br><br><br><br><br>' + + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, repeater($str, 10)); + } + } + + // -------------------------------------------------------------------- + + + public function test_random_string() + { + $this->assertEquals(16, strlen(random_string('alnum', 16))); + $this->assertEquals(32, strlen(random_string('unique', 16))); + $this->assertInternalType('string', random_string('numeric', 16)); + } + +}
\ No newline at end of file diff --git a/tests/codeigniter/helpers/text_helper_test.php b/tests/codeigniter/helpers/text_helper_test.php new file mode 100644 index 000000000..a0866e638 --- /dev/null +++ b/tests/codeigniter/helpers/text_helper_test.php @@ -0,0 +1,159 @@ +<?php + +require_once(BASEPATH.'helpers/text_helper.php'); + +class Text_helper_test extends CI_TestCase +{ + private $_long_string; + + public function set_up() + { + $this->_long_string = 'Once upon a time, a framework had no tests. It sad. So some nice people began to write tests. The more time that went on, the happier it became. Everyone was happy.'; + } + + // ------------------------------------------------------------------------ + + public function test_word_limiter() + { + $this->assertEquals('Once upon a time,…', word_limiter($this->_long_string, 4)); + $this->assertEquals('Once upon a time,…', word_limiter($this->_long_string, 4, '…')); + $this->assertEquals('', word_limiter('', 4)); + } + + // ------------------------------------------------------------------------ + + public function test_character_limiter() + { + $this->assertEquals('Once upon a time, a…', character_limiter($this->_long_string, 20)); + $this->assertEquals('Once upon a time, a…', character_limiter($this->_long_string, 20, '…')); + $this->assertEquals('Short', character_limiter('Short', 20)); + $this->assertEquals('Short', character_limiter('Short', 5)); + } + + // ------------------------------------------------------------------------ + + public function test_ascii_to_entities() + { + $strs = array( + '“‘ “test”' => '“‘ “test”', + '†¥¨ˆøåß∂ƒ©˙∆˚¬' => '†¥¨ˆøåß∂ƒ©˙∆˚¬' + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, ascii_to_entities($str)); + } + } + + // ------------------------------------------------------------------------ + + public function test_entities_to_ascii() + { + $strs = array( + '“‘ “test”' => '“‘ “test”', + '†¥¨ˆøåß∂ƒ©˙∆˚¬' => '†¥¨ˆøåß∂ƒ©˙∆˚¬' + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, entities_to_ascii($str)); + } + } + + // ------------------------------------------------------------------------ + + function test_convert_accented_characters() + { + $this->assertEquals('AAAeEEEIIOOEUUUeY', convert_accented_characters('ÀÂÄÈÊËÎÏÔŒÙÛÜŸ')); + $this->assertEquals('a e i o u n ue', convert_accented_characters('á é í ó ú ñ ü')); + } + + // ------------------------------------------------------------------------ + + public function test_censored_words() + { + $censored = array('boob', 'nerd', 'ass', 'fart'); + + $strs = array( + 'Ted bobbled the ball' => 'Ted bobbled the ball', + 'Jake is a nerdo' => 'Jake is a nerdo', + 'The borg will assimilate you' => 'The borg will assimilate you', + 'Did Mary Fart?' => 'Did Mary $*#?', + 'Jake is really a boob' => 'Jake is really a $*#' + ); + + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, word_censor($str, $censored, '$*#')); + } + + // test censored words being sent as a string + $this->assertEquals('test', word_censor('test', 'test')); + } + + // ------------------------------------------------------------------------ + + public function test_highlight_code() + { + $code = '<?php var_dump($this); ?>'; + $expect = "<code><span style=\"color: #000000\">\n<span style=\"color: #0000BB\"><?php var_dump</span><span style=\"color: #007700\">(</span><span style=\"color: #0000BB\">\$this</span><span style=\"color: #007700\">); </span><span style=\"color: #0000BB\">?> </span>\n</span>\n</code>"; + + $this->assertEquals($expect, highlight_code($code)); + } + + // ------------------------------------------------------------------------ + + public function test_highlight_phrase() + { + $strs = array( + 'this is a phrase' => '<strong>this is</strong> a phrase', + 'this is another' => '<strong>this is</strong> another', + 'Gimme a test, Sally' => 'Gimme a test, Sally', + 'Or tell me what this is' => 'Or tell me what <strong>this is</strong>', + '' => '' + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, highlight_phrase($str, 'this is')); + } + } + + // ------------------------------------------------------------------------ + + public function test_ellipsizing() + { + $strs = array( + '0' => array( + 'this is my string' => '… my string', + "here's another one" => '…nother one', + 'this one is just a bit longer' => '…bit longer', + 'short' => 'short' + ), + '.5' => array( + 'this is my string' => 'this …tring', + "here's another one" => "here'…r one", + 'this one is just a bit longer' => 'this …onger', + 'short' => 'short' + ), + '1' => array( + 'this is my string' => 'this is my…', + "here's another one" => "here's ano…", + 'this one is just a bit longer' => 'this one i…', + 'short' => 'short' + ), + ); + + foreach ($strs as $pos => $s) + { + foreach ($s as $str => $expect) + { + $this->assertEquals($expect, ellipsize($str, 10, $pos)); + } + } + } + + // ------------------------------------------------------------------------ + +}
\ No newline at end of file diff --git a/tests/codeigniter/helpers/xml_helper_test.php b/tests/codeigniter/helpers/xml_helper_test.php new file mode 100644 index 000000000..49f49e166 --- /dev/null +++ b/tests/codeigniter/helpers/xml_helper_test.php @@ -0,0 +1,13 @@ +<?php + +require_once(BASEPATH.'helpers/xml_helper.php'); + +class Xml_helper_test extends CI_TestCase +{ + + public function test_xml_convert() + { + $this->assertEquals('<tag>my & test - </tag>', xml_convert('<tag>my & test - </tag>')); + } + +}
\ No newline at end of file |