<?php /* * test_quoted_printable.php * * @(#) $Id: test_quoted_printable.php,v 1.8 2012/08/25 10:01:39 mlemos Exp $ * */
require("email_message.php");
Function test_quoting(&$message, $test_values, $cs, $quote, $email_header, &$tests, &$failed) { Reset($test_values); $end=(GetType($value=Key($test_values))!="string"); for(;!$end;$tests++) { echo "Test value \"",$value,"\"..."; flush(); $encoded=($quote ? $message->QuoteText($value) : $message->QuotedPrintableEncode($value, $cs, 1, $email_header)); if(strcmp($encoded,$test_values[$value])) { echo "\tFAIL: returned \"",$encoded,"\" and not \"",$test_values[$value],"\" as expected!\n"; $failed++; } else echo "\tOK!\n"; Next($test_values); $end=(GetType($value=Key($test_values))!="string"); } }
$message=new email_message_class;
$failed=$tests=0;
echo "Testing header q-encoding...\n\n"; $cs=$message->default_charset; $test_values=array( ""=>"", "Coffee"=>"Coffee", "Coffee?"=>"=?".$cs."?q?Coffee=3F?=", "More coffee?"=>"More =?".$cs."?q?coffee=3F?=", "More coffee, Sir?"=>"More =?".$cs."?q?coffee=2C_Sir=3F?=", "?"=>"=?".$cs."?q?=3F?=", " ?"=>" =?".$cs."?q?=3F?=", " ? "=>" =?".$cs."?q?=3F_?=", "\n.Dot.ted"=>"\n\t.Dot.ted", "\nFrom line\nfrom line"=>"\n\tFrom line\n\tfrom line", "More\ncoffee,\nSir?"=>"=?".$cs."?q?More\n\tcoffee=2C\n\tSir=3F?=", "Café?"=>"=?ISO-8859-1?q?Caf=E9=3F?=", ); test_quoting($message, $test_values, $cs, 0, 1, $tests, $failed);
echo "Testing header q-encoding for non-email address headers...\n\n"; $cs=$message->default_charset; $test_values=array( ""=>"", "Coffee"=>"Coffee", "Coffee?"=>"Coffee?", "More coffee?"=>"More coffee?", "More coffee, Sir?"=>"More coffee, Sir?", "?"=>"?", " ?"=>" ?", " ? "=>" ? ", "\n.Dot.ted"=>"\n\t.Dot.ted", "\nFrom line\nfrom line"=>"\n\tFrom line\n\tfrom line", "More\ncoffee,\nSir?"=>"More\n\tcoffee,\n\tSir?", "Café?"=>"=?ISO-8859-1?q?Caf=E9=3F?=", ); test_quoting($message, $test_values, $cs, 0, 0, $tests, $failed);
echo "\nTesting quoted-printable encoding...\n\n"; $test_values=array( ""=>"", "Coffee"=>"Coffee", "Coffee?"=>"Coffee?", "Café"=>"Caf=E9", "Café\nau lait"=>"Caf=E9\nau lait", "Lait, lait, lait, lait, lait, lait, lait, lait, lait, lait, lait, lait, lait"=> "Lait, lait, lait, lait, lait, lait, lait, lait, lait, lait, lait, lait, lai=\nt", "Lait, lait, lait, lait, lait, lait, lait,\nlait, lait, lait, lait, lait, lait"=> "Lait, lait, lait, lait, lait, lait, lait,\nlait, lait, lait, lait, lait, lait", "Café, Café, Café, Café, Café, Café, Café,\nCafé, Café, Café, Café, Café, Café"=> "Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9,\nCaf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9", "Café, Café, Café, Café, Café, Café, Café, Café, Café Cafe, Café, Café, Café"=> "Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9 Cafe=\n, Caf=E9, Caf=E9, Caf=E9", "Café, Café, Café, Café, Café, Café, Café, Café, Café, Café, Café, Café, Café"=> "Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=E9, Caf=\n=E9, Caf=E9, Caf=E9, Caf=E9", "Dummy line\n.Dotted.line\n."=> "Dummy line\n=2EDotted.line\n=2E", "From line\nfrom line\n"=> "=46rom line\n=66rom line\n", "Very.very.very.very.very.very.very.very.very.very.very.very.very.very.long..text"=> "Very.very.very.very.very.very.very.very.very.very.very.very.very.very.long.=\n=2Etext", "Café?"=>"Caf=E9?", ); test_quoting($message, $test_values, '', 0, 1, $tests, $failed);
$test_values=array( "S XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"=>"> S > XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX > XXXXXXXXXXXXXXXXXXXXXXXXX ", ); echo "\nTesting quoting text ...\n\n"; test_quoting($message, $test_values, '', 1, 1, $tests, $failed);
echo "\nPerformed ",$tests," tests: ",($failed ? $failed." failed, ".($tests-$failed)." succeeded" : "all succeeded"),"!\n"; ?>
|