blob: a884d62849b1678becaf47ca366b752d83698764 [file] [log] [blame]
Greg Aker052b01d2011-04-21 14:38:03 -05001<?php
2
3require_once(BASEPATH.'helpers/string_helper.php');
4
Greg Akerb4d93db2011-04-21 14:42:33 -05005class String_helper_test extends CI_TestCase
Greg Aker052b01d2011-04-21 14:38:03 -05006{
tiyowan3fb5aa52012-03-16 19:08:34 +04007 public function test_strip_slashes()
8 {
9 $expected = array(
10 "Is your name O'reilly?",
11 "No, my name is O'connor."
12 );
13
14 $str = array(
15 "Is your name O\'reilly?",
16 "No, my name is O\'connor."
17 );
18
19 $this->assertEquals($expected, strip_slashes($str));
20 }
21
Eric Barnes68286a42011-04-21 22:00:33 -040022 public function test_trim_slashes()
Greg Aker052b01d2011-04-21 14:38:03 -050023 {
24 $strs = array(
25 '//Slashes//\/' => 'Slashes//\\',
26 '/var/www/html/' => 'var/www/html'
27 );
Eric Barnes78ec0602011-11-27 00:48:56 -050028
Greg Aker052b01d2011-04-21 14:38:03 -050029 foreach ($strs as $str => $expect)
30 {
31 $this->assertEquals($expect, trim_slashes($str));
32 }
33 }
Eric Barnes78ec0602011-11-27 00:48:56 -050034
35 // --------------------------------------------------------------------
Greg Aker052b01d2011-04-21 14:38:03 -050036
Eric Barnes68286a42011-04-21 22:00:33 -040037 public function test_strip_quotes()
Greg Aker052b01d2011-04-21 14:38:03 -050038 {
39 $strs = array(
40 '"me oh my!"' => 'me oh my!',
41 "it's a winner!" => 'its a winner!',
42 );
Eric Barnes78ec0602011-11-27 00:48:56 -050043
Greg Aker052b01d2011-04-21 14:38:03 -050044 foreach ($strs as $str => $expect)
45 {
46 $this->assertEquals($expect, strip_quotes($str));
47 }
48 }
49
Eric Barnes78ec0602011-11-27 00:48:56 -050050 // --------------------------------------------------------------------
51
Eric Barnes68286a42011-04-21 22:00:33 -040052 public function test_quotes_to_entities()
Greg Aker052b01d2011-04-21 14:38:03 -050053 {
54 $strs = array(
55 '"me oh my!"' => '&quot;me oh my!&quot;',
56 "it's a winner!" => 'it&#39;s a winner!',
57 );
Eric Barnes78ec0602011-11-27 00:48:56 -050058
Greg Aker052b01d2011-04-21 14:38:03 -050059 foreach ($strs as $str => $expect)
60 {
61 $this->assertEquals($expect, quotes_to_entities($str));
Eric Barnes78ec0602011-11-27 00:48:56 -050062 }
Greg Aker052b01d2011-04-21 14:38:03 -050063 }
64
Eric Barnes78ec0602011-11-27 00:48:56 -050065 // --------------------------------------------------------------------
66
Eric Barnes68286a42011-04-21 22:00:33 -040067 public function test_reduce_double_slashes()
Greg Aker052b01d2011-04-21 14:38:03 -050068 {
69 $strs = array(
70 'http://codeigniter.com' => 'http://codeigniter.com',
71 '//var/www/html/example.com/' => '/var/www/html/example.com/',
72 '/var/www/html//index.php' => '/var/www/html/index.php'
73 );
Eric Barnes78ec0602011-11-27 00:48:56 -050074
Greg Aker052b01d2011-04-21 14:38:03 -050075 foreach ($strs as $str => $expect)
76 {
77 $this->assertEquals($expect, reduce_double_slashes($str));
Eric Barnes78ec0602011-11-27 00:48:56 -050078 }
Greg Aker052b01d2011-04-21 14:38:03 -050079 }
80
Eric Barnes78ec0602011-11-27 00:48:56 -050081 // --------------------------------------------------------------------
82
Eric Barnes68286a42011-04-21 22:00:33 -040083 public function test_reduce_multiples()
Greg Aker052b01d2011-04-21 14:38:03 -050084 {
85 $strs = array(
86 'Fred, Bill,, Joe, Jimmy' => 'Fred, Bill, Joe, Jimmy',
87 'Ringo, John, Paul,,' => 'Ringo, John, Paul,'
88 );
Eric Barnes78ec0602011-11-27 00:48:56 -050089
Greg Aker052b01d2011-04-21 14:38:03 -050090 foreach ($strs as $str => $expect)
91 {
92 $this->assertEquals($expect, reduce_multiples($str));
93 }
Eric Barnes78ec0602011-11-27 00:48:56 -050094
Greg Aker052b01d2011-04-21 14:38:03 -050095 $strs = array(
96 'Fred, Bill,, Joe, Jimmy' => 'Fred, Bill, Joe, Jimmy',
97 'Ringo, John, Paul,,' => 'Ringo, John, Paul'
Eric Barnes78ec0602011-11-27 00:48:56 -050098 );
Greg Aker052b01d2011-04-21 14:38:03 -050099
100 foreach ($strs as $str => $expect)
101 {
102 $this->assertEquals($expect, reduce_multiples($str, ',', TRUE));
Eric Barnes78ec0602011-11-27 00:48:56 -0500103 }
Greg Aker052b01d2011-04-21 14:38:03 -0500104 }
Eric Barnes78ec0602011-11-27 00:48:56 -0500105
106 // --------------------------------------------------------------------
107
Eric Barnes68286a42011-04-21 22:00:33 -0400108 public function test_repeater()
Greg Aker052b01d2011-04-21 14:38:03 -0500109 {
110 $strs = array(
111 'a' => 'aaaaaaaaaa',
112 '&nbsp;' => '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',
113 '<br>' => '<br><br><br><br><br><br><br><br><br><br>'
Eric Barnes78ec0602011-11-27 00:48:56 -0500114
Greg Aker052b01d2011-04-21 14:38:03 -0500115 );
Eric Barnes78ec0602011-11-27 00:48:56 -0500116
Greg Aker052b01d2011-04-21 14:38:03 -0500117 foreach ($strs as $str => $expect)
118 {
119 $this->assertEquals($expect, repeater($str, 10));
120 }
Eric Barnes78ec0602011-11-27 00:48:56 -0500121 }
Greg Aker052b01d2011-04-21 14:38:03 -0500122
Eric Barnes78ec0602011-11-27 00:48:56 -0500123 // --------------------------------------------------------------------
Eric Barnes68286a42011-04-21 22:00:33 -0400124
125 public function test_random_string()
126 {
127 $this->assertEquals(16, strlen(random_string('alnum', 16)));
128 $this->assertEquals(32, strlen(random_string('unique', 16)));
129 $this->assertInternalType('string', random_string('numeric', 16));
130 }
Eric Barnes78ec0602011-11-27 00:48:56 -0500131
132 // --------------------------------------------------------------------
133
134 public function test_increment_string()
135 {
136 $this->assertEquals('my-test_1', increment_string('my-test'));
137 $this->assertEquals('my-test-1', increment_string('my-test', '-'));
138 $this->assertEquals('file_5', increment_string('file_4'));
139 $this->assertEquals('file-5', increment_string('file-4', '-'));
140 $this->assertEquals('file-5', increment_string('file-4', '-'));
141 $this->assertEquals('file-1', increment_string('file', '-', '1'));
142 $this->assertEquals(124, increment_string('123', ''));
143 }
Greg Aker052b01d2011-04-21 14:38:03 -0500144}