Tagged 0.7.5
[scuttle] / includes / utf8 / tests / cases / utf8_validation.test.php
1 <?php
2 /**
3 * @version $Id: utf8_validation.test.php,v 1.6 2006/02/26 13:39:37 harryf Exp $
4 * @package utf8
5 * @subpackage Tests
6 */
7
8 //--------------------------------------------------------------------
9 /**
10 * Includes
11 * @package utf8
12 * @subpackage Tests
13 */
14 require_once(dirname(__FILE__).'/../config.php');
15 require_once UTF8 . '/utils/validation.php';
16
17 //--------------------------------------------------------------------
18 /**
19 * @package utf8
20 * @subpackage Tests
21 */
22 class test_utf8_is_valid extends UnitTestCase {
23
24     function test_utf8_is_valid() {
25         $this->UnitTestCase('utf8_is_valid()');
26     }
27     
28     function testValidUtf8() {
29         $str = 'Iñtërnâtiônàlizætiøn';
30         $this->assertTrue(utf8_is_valid($str));
31     }
32     
33     function testValidUtf8Ascii() {
34         $str = 'ABC 123';
35         $this->assertTrue(utf8_is_valid($str));
36     }
37     
38     function testInvalidUtf8() {
39         $str = "Iñtërnâtiôn\xe9àlizætiøn";
40         $this->assertFalse(utf8_is_valid($str));
41     }
42     
43     function testInvalidUtf8Ascii() {
44         $str = "this is an invalid char '\xe9' here";
45         $this->assertFalse(utf8_is_valid($str));
46     }
47     
48     function testEmptyString() {
49         $str = '';
50         $this->assertTrue(utf8_is_valid($str));
51     }
52     
53     function testValidTwoOctetId() {
54         $str = "\xc3\xb1";
55         $this->assertTrue(utf8_is_valid($str));
56     }
57     
58     function testInvalidTwoOctetSequence() {
59         $str = "Iñtërnâtiônàlizætiøn \xc3\x28 Iñtërnâtiônàlizætiøn";
60         $this->assertFalse(utf8_is_valid($str));
61     }
62     
63     function testInvalidIdBetweenTwoAndThree() {
64         $str = "Iñtërnâtiônàlizætiøn\xa0\xa1Iñtërnâtiônàlizætiøn";
65         $this->assertFalse(utf8_is_valid($str));
66     }
67     
68     function testValidThreeOctetId() {
69         $str = "Iñtërnâtiônàlizætiøn\xe2\x82\xa1Iñtërnâtiônàlizætiøn";
70         $this->assertTrue(utf8_is_valid($str));
71     }
72     
73     function testInvalidThreeOctetSequenceSecond() {
74         $str = "Iñtërnâtiônàlizætiøn\xe2\x28\xa1Iñtërnâtiônàlizætiøn";
75         $this->assertFalse(utf8_is_valid($str));
76     }
77     
78     function testInvalidThreeOctetSequenceThird() {
79         $str = "Iñtërnâtiônàlizætiøn\xe2\x82\x28Iñtërnâtiônàlizætiøn";
80         $this->assertFalse(utf8_is_valid($str));
81     }
82     
83     function testValidFourOctetId() {
84         $str = "Iñtërnâtiônàlizætiøn\xf0\x90\x8c\xbcIñtërnâtiônàlizætiøn";
85         $this->assertTrue(utf8_is_valid($str));
86     }
87     
88     function testInvalidFourOctetSequence() {
89         $str = "Iñtërnâtiônàlizætiøn\xf0\x28\x8c\xbcIñtërnâtiônàlizætiøn";
90         $this->assertFalse(utf8_is_valid($str));
91     }
92     
93     function testInvalidFiveOctetSequence() {
94         $str = "Iñtërnâtiônàlizætiøn\xf8\xa1\xa1\xa1\xa1Iñtërnâtiônàlizætiøn";
95         $this->assertFalse(utf8_is_valid($str));
96     }
97     
98     function testInvalidSixOctetSequence() {
99         $str = "Iñtërnâtiônàlizætiøn\xfc\xa1\xa1\xa1\xa1\xa1Iñtërnâtiônàlizætiøn";
100         $this->assertFalse(utf8_is_valid($str));
101     }
102     
103 }
104
105 //--------------------------------------------------------------------
106 /**
107 * @package utf8
108 * @subpackage Tests
109 */
110 class test_utf8_compliant extends UnitTestCase {
111
112     function test_utf8_compliant() {
113         $this->UnitTestCase('utf8_compliant()');
114     }
115     
116     function testValidUtf8() {
117         $str = 'Iñtërnâtiônàlizætiøn';
118         $this->assertTrue(utf8_compliant($str));
119     }
120     
121     function testValidUtf8Ascii() {
122         $str = 'ABC 123';
123         $this->assertTrue(utf8_compliant($str));
124     }
125     
126     function testInvalidUtf8() {
127         $str = "Iñtërnâtiôn\xe9àlizætiøn";
128         $this->assertFalse(utf8_compliant($str));
129     }
130     
131     function testInvalidUtf8Ascii() {
132         $str = "this is an invalid char '\xe9' here";
133         $this->assertFalse(utf8_compliant($str));
134     }
135     
136     function testEmptyString() {
137         $str = '';
138         $this->assertTrue(utf8_compliant($str));
139     }
140     
141     function testValidTwoOctetId() {
142         $str = "\xc3\xb1";
143         $this->assertTrue(utf8_compliant($str));
144     }
145     
146     function testInvalidTwoOctetSequence() {
147         $str = "Iñtërnâtiônàlizætiøn \xc3\x28 Iñtërnâtiônàlizætiøn";
148         $this->assertFalse(utf8_compliant($str));
149     }
150     
151     function testInvalidIdBetweenTwoAndThree() {
152         $str = "Iñtërnâtiônàlizætiøn\xa0\xa1Iñtërnâtiônàlizætiøn";
153         $this->assertFalse(utf8_compliant($str));
154     }
155     
156     function testValidThreeOctetId() {
157         $str = "Iñtërnâtiônàlizætiøn\xe2\x82\xa1Iñtërnâtiônàlizætiøn";
158         $this->assertTrue(utf8_compliant($str));
159     }
160     
161     function testInvalidThreeOctetSequenceSecond() {
162         $str = "Iñtërnâtiônàlizætiøn\xe2\x28\xa1Iñtërnâtiônàlizætiøn";
163         $this->assertFalse(utf8_compliant($str));
164     }
165     
166     function testInvalidThreeOctetSequenceThird() {
167         $str = "Iñtërnâtiônàlizætiøn\xe2\x82\x28Iñtërnâtiônàlizætiøn";
168         $this->assertFalse(utf8_compliant($str));
169     }
170     
171     function testValidFourOctetId() {
172         $str = "Iñtërnâtiônàlizætiøn\xf0\x90\x8c\xbcIñtërnâtiônàlizætiøn";
173         $this->assertTrue(utf8_compliant($str));
174     }
175     
176     function testInvalidFourOctetSequence() {
177         $str = "Iñtërnâtiônàlizætiøn\xf0\x28\x8c\xbcIñtërnâtiônàlizætiøn";
178         $this->assertFalse(utf8_compliant($str));
179     }
180     
181     function testInvalidFiveOctetSequence() {
182         $str = "Iñtërnâtiônàlizætiøn\xf8\xa1\xa1\xa1\xa1Iñtërnâtiônàlizætiøn";
183         $this->assertTrue(utf8_compliant($str));
184     }
185     
186     function testInvalidSixOctetSequence() {
187         $str = "Iñtërnâtiônàlizætiøn\xfc\xa1\xa1\xa1\xa1\xa1Iñtërnâtiônàlizætiøn";
188         $this->assertTrue(utf8_compliant($str));
189     }
190     
191 }
192
193 //--------------------------------------------------------------------
194 /**
195 * @package utf8
196 * @subpackage Tests
197 */
198 if (!defined('TEST_RUNNING')) {
199     define('TEST_RUNNING', true);
200     $test = &new GroupTest('utf8_validation');
201     $test->addTestCase(new test_utf8_is_valid());
202     $test->addTestCase(new test_utf8_compliant());
203     $reporter = & getTestReporter();
204     $test->run($reporter);
205 }

Benjamin Mako Hill || Want to submit a patch?