summaryrefslogtreecommitdiff
path: root/ext/recode
diff options
context:
space:
mode:
authorDaniel Persson <daniel.persson@textalk.se>2015-09-01 21:53:09 +0200
committerChristoph M. Becker <cmb@php.net>2015-09-02 00:11:45 +0200
commitc98b88aafe9d71839274f978e3e62e2a76a49e04 (patch)
treea4956b8d770970cf92086ab92789f4aca98b3a57 /ext/recode
parent874dcd8f737349551f8549ed3a142f557fd3d847 (diff)
downloadphp-git-c98b88aafe9d71839274f978e3e62e2a76a49e04.tar.gz
Added two tests to check the main functionallity of recode extension
Diffstat (limited to 'ext/recode')
-rw-r--r--ext/recode/tests/001.phpt38
-rw-r--r--ext/recode/tests/002.phpt32
-rw-r--r--ext/recode/tests/html.raw1
3 files changed, 71 insertions, 0 deletions
diff --git a/ext/recode/tests/001.phpt b/ext/recode/tests/001.phpt
new file mode 100644
index 0000000000..c03b44a811
--- /dev/null
+++ b/ext/recode/tests/001.phpt
@@ -0,0 +1,38 @@
+--TEST--
+recode_string() function - Testing string conversions between latin1, UTF-8 and html
+--SKIPIF--
+<?php if (!extension_loaded("recode")) print "skip"; ?>
+--FILE--
+<?php
+function ascii2hex($ascii) {
+ $hex = '';
+ for ($i = 0; $i < strlen($ascii); $i++) {
+ $byte = dechex(ord($ascii{$i}));
+ $byte = str_repeat('0', 2 - strlen($byte)).$byte;
+ $hex .= $byte . " ";
+ }
+ return $hex;
+}
+
+function hex2ascii($hex){
+ $ascii='';
+ $hex=str_replace(" ", "", $hex);
+ for($i=0; $i<strlen($hex); $i=$i+2) {
+ $ascii .= chr(hexdec(substr($hex, $i, 2)));
+ }
+ return($ascii);
+}
+
+$lat1_hex_org = '31 32 33 e5 e4 f6 61 62 63';
+$utf8_hex = ascii2hex(recode_string('lat1..utf-8', hex2ascii($lat1_hex_org)));
+$html = recode_string('utf-8..html', hex2ascii($utf8_hex));
+$lat1_hex = ascii2hex(recode_string('html..lat1', $html));
+
+echo "#" . $utf8_hex . "#\n";
+echo "#" . $html . "#\n";
+echo "#" . $lat1_hex . "#\n";
+?>
+--EXPECT--
+#31 32 33 c3 a5 c3 a4 c3 b6 61 62 63 #
+#123&aring;&auml;&ouml;abc#
+#31 32 33 e5 e4 f6 61 62 63 # \ No newline at end of file
diff --git a/ext/recode/tests/002.phpt b/ext/recode/tests/002.phpt
new file mode 100644
index 0000000000..fb9f286422
--- /dev/null
+++ b/ext/recode/tests/002.phpt
@@ -0,0 +1,32 @@
+--TEST--
+recode_string() function - Testing string conversions between latin1, UTF-8 and html
+--SKIPIF--
+<?php if (!extension_loaded("recode")) print "skip"; ?>
+--FILE--
+<?php
+function ascii2hex($ascii) {
+ $hex = '';
+ for ($i = 0; $i < strlen($ascii); $i++) {
+ $byte = dechex(ord($ascii{$i}));
+ $byte = str_repeat('0', 2 - strlen($byte)).$byte;
+ $hex .= $byte . " ";
+ }
+ return $hex;
+}
+
+$html_file = fopen(realpath(dirname(__FILE__)) . '/html.raw', 'r');
+$utf_8_filepath = realpath(dirname(__FILE__)) . '/utf8.raw';
+$utf_8_file = fopen($utf_8_filepath, 'w+');
+
+recode_file('html..utf8', $html_file, $utf_8_file);
+
+rewind($utf_8_file);
+echo '#' . ascii2hex(fread($utf_8_file, filesize($utf_8_filepath))) . "#\n";
+
+fclose($html_file);
+fclose($utf_8_file);
+
+unlink($utf_8_filepath);
+?>
+--EXPECT--
+#31 32 33 c3 a5 c3 a4 c3 b6 61 62 63 #
diff --git a/ext/recode/tests/html.raw b/ext/recode/tests/html.raw
new file mode 100644
index 0000000000..64ecf1331f
--- /dev/null
+++ b/ext/recode/tests/html.raw
@@ -0,0 +1 @@
+123&aring;&auml;&ouml;abc \ No newline at end of file