Tagged 0.7.5
[scuttle] / includes / utf8 / tests / cases / utf8_substr.test.php
diff --git a/includes/utf8/tests/cases/utf8_substr.test.php b/includes/utf8/tests/cases/utf8_substr.test.php
new file mode 100644 (file)
index 0000000..3b5b1a4
--- /dev/null
@@ -0,0 +1,104 @@
+<?php
+/**
+* @version $Id: utf8_substr.test.php,v 1.5 2006/09/30 22:51:00 harryf Exp $
+* @package utf8
+* @subpackage Tests
+*/
+
+//--------------------------------------------------------------------
+/**
+* Includes
+* @package utf8
+* @subpackage Tests
+*/
+require_once(dirname(__FILE__).'/../config.php');
+
+//--------------------------------------------------------------------
+/**
+* @package utf8
+* @subpackage Tests
+*/
+class test_utf8_substr extends UnitTestCase {
+
+    function test_utf8_substr() {
+        $this->UnitTestCase('utf8_substr()');
+    }
+    
+    function testUtf8() {
+        $str = 'Iñtërnâtiônàlizætiøn';
+        $this->assertEqual(utf8_substr($str,0,2),'Iñ');
+    }
+    
+    function testUtf8Two() {
+        $str = 'Iñtërnâtiônàlizætiøn';
+        $this->assertEqual(utf8_substr($str,2,2),'të');
+    }
+    
+    function testUtf8Zero() {
+        $str = 'Iñtërnâtiônàlizætiøn';
+        $this->assertEqual(utf8_substr($str,0),'Iñtërnâtiônàlizætiøn');
+    }
+    
+    function testUtf8ZeroZero() {
+        $str = 'Iñtërnâtiônàlizætiøn';
+        $this->assertEqual(utf8_substr($str,0,0),'');
+    }
+    
+    function testStartGreatThanLength() {
+        $str = 'Iñt';
+        $this->assertFalse(utf8_substr($str,4));
+    }
+    
+    function testCompareStartGreatThanLength() {
+        $str = 'abc';
+        $this->assertEqual(utf8_substr($str,4),substr($str,4));
+    }
+    
+    function testLengthBeyondString() {
+        $str = 'Iñt';
+        $this->assertEqual(utf8_substr($str,1,5),'ñt');
+    }
+    
+    function testCompareLengthBeyondString() {
+        $str = 'abc';
+        $this->assertEqual(utf8_substr($str,1,5),substr($str,1,5));
+    }
+    
+    function testStartNegative() {
+        $str = 'Iñtërnâtiônàlizætiøn';
+        $this->assertEqual(utf8_substr($str,-4), 'tiøn');
+    }
+    
+    function testLengthNegative() {
+        $str = 'Iñtërnâtiônàlizætiøn';
+        $this->assertEqual(utf8_substr($str,10,-2), 'nàlizæti');
+    }
+    
+    function testStartLengthNegative() {
+        $str = 'Iñtërnâtiônàlizætiøn';
+        $this->assertEqual(utf8_substr($str,-4,-2), 'ti');
+    }
+    
+    function testLinefeed() {
+        $str = "Iñ\ntërnâtiônàlizætiøn";
+        $this->assertEqual(utf8_substr($str,1,5),"ñ\ntër");
+    }
+    
+    function testLongLength() {
+        $str = 'Iñtërnâtiônàlizætiøn';
+        $this->assertEqual(utf8_substr($str,0,15536),'Iñtërnâtiônàlizætiøn');
+    }
+    
+}
+
+//--------------------------------------------------------------------
+/**
+* @package utf8
+* @subpackage Tests
+*/
+if (!defined('TEST_RUNNING')) {
+    define('TEST_RUNNING', true);
+    $test = & new test_utf8_substr();
+    $reporter = & getTestReporter();
+    $test->run($reporter);
+}

Benjamin Mako Hill || Want to submit a patch?