102 lines
4.3 KiB
PHP
102 lines
4.3 KiB
PHP
<?php
|
|
require_once(dirname(__FILE__)."/Test.class.php");
|
|
require_once(dirname(dirname(__FILE__))."/src/ForceUTF8/Encoding.php");
|
|
|
|
use \ForceUTF8\Encoding;
|
|
|
|
// Test the testing class itself.
|
|
Test::is("'yes' is true", 'yes', true);
|
|
Test::not("1 is not false", 1, false);
|
|
Test::identical("true is identical to true", true, true);
|
|
Test::true("1 is true", 1);
|
|
|
|
// ForceUTF8 tests.
|
|
Test::not("Source files must not use the same encoding before conversion.",
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
file_get_contents(dirname(__FILE__)."/data/test1Latin.txt"));
|
|
|
|
Test::identical("Simple Encoding works.",
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
Encoding::toUTF8(file_get_contents(dirname(__FILE__)."/data/test1Latin.txt")));
|
|
|
|
function test_arrays_are_different(){
|
|
$arr1 = array(
|
|
file_get_contents(dirname(__FILE__)."/data/test1Latin.txt"),
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
file_get_contents(dirname(__FILE__)."/data/test1Latin.txt"));
|
|
$arr2 = array(
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"));
|
|
return $arr1 != $arr2;
|
|
}
|
|
|
|
function test_encoding_of_arrays(){
|
|
$arr1 = array(
|
|
file_get_contents(dirname(__FILE__)."/data/test1Latin.txt"),
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
file_get_contents(dirname(__FILE__)."/data/test1Latin.txt"));
|
|
$arr2 = array(
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"));
|
|
return Encoding::toUTF8($arr1) == $arr2;
|
|
}
|
|
|
|
Test::true("Source arrays are different.", test_arrays_are_different());
|
|
Test::true("Encoding of array works.", test_encoding_of_arrays());
|
|
|
|
Test::identical("fixUTF8() maintains UTF-8 string.",
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
Encoding::fixUTF8(file_get_contents(dirname(__FILE__)."/data/test1.txt")));
|
|
|
|
Test::not("An UTF-8 double encoded string differs from a correct UTF-8 string.",
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
utf8_encode(file_get_contents(dirname(__FILE__)."/data/test1.txt")));
|
|
|
|
Test::identical("fixUTF8() reverts to UTF-8 a double encoded string.",
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
Encoding::fixUTF8(utf8_encode(file_get_contents(dirname(__FILE__)."/data/test1.txt"))));
|
|
|
|
function test_double_encoded_arrays_are_different(){
|
|
$arr1 = array(
|
|
utf8_encode(file_get_contents(dirname(__FILE__)."/data/test1Latin.txt")),
|
|
utf8_encode(file_get_contents(dirname(__FILE__)."/data/test1.txt")),
|
|
utf8_encode(file_get_contents(dirname(__FILE__)."/data/test1Latin.txt")));
|
|
$arr2 = array(
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"));
|
|
return $arr1 != $arr2;
|
|
}
|
|
|
|
function test_double_encoded_arrays_fix(){
|
|
$arr1 = array(
|
|
utf8_encode(file_get_contents(dirname(__FILE__)."/data/test1Latin.txt")),
|
|
utf8_encode(file_get_contents(dirname(__FILE__)."/data/test1.txt")),
|
|
utf8_encode(file_get_contents(dirname(__FILE__)."/data/test1Latin.txt")));
|
|
$arr2 = array(
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"),
|
|
file_get_contents(dirname(__FILE__)."/data/test1.txt"));
|
|
return Encoding::fixUTF8($arr1) == $arr2;
|
|
}
|
|
|
|
Test::true("Source arrays are different (fixUTF8).", test_double_encoded_arrays_are_different());
|
|
Test::true("Fixing of double encoded array works.", test_double_encoded_arrays_fix());
|
|
|
|
Test::identical("fixUTF8() Example 1 still working.",
|
|
Encoding::fixUTF8("Fédération Camerounaise de Football\n"),
|
|
"Fédération Camerounaise de Football\n");
|
|
Test::identical("fixUTF8() Example 2 still working.",
|
|
Encoding::fixUTF8("Fédération Camerounaise de Football\n"),
|
|
"Fédération Camerounaise de Football\n");
|
|
Test::identical("fixUTF8() Example 3 still working.",
|
|
Encoding::fixUTF8("Fédération Camerounaise de Football\n"),
|
|
"Fédération Camerounaise de Football\n");
|
|
Test::identical("fixUTF8() Example 4 still working.",
|
|
Encoding::fixUTF8("Fédération Camerounaise de Football\n"),
|
|
"Fédération Camerounaise de Football\n");
|
|
|
|
Test::totals();
|