Login   Register  
PHP Classes
elePHPant
Icontem

File: test_quoted_printable.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Manuel Lemos  >  MIME E-mail message sending  >  test_quoted_printable.php  >  Download  
File: test_quoted_printable.php
Role: Unit test script
Content type: text/plain
Description: Test suite for verifying the quoted printable encoding support.
Class: MIME E-mail message sending
PHP mailer to compose and send MIME messages
Author: By
Last change: Made the line length limit be 76 characters.
Avoided using an additional line break after each multipart body data.
Date: 2 years ago
Size: 4,030 bytes
 

Contents

Class file image Download
<?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$cs1$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$cs01$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$cs00$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''01$tests$failed);

    
$test_values=array(
        
"S XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"=>"> S
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> XXXXXXXXXXXXXXXXXXXXXXXXX
"
,
    );
    echo 
"\nTesting quoting text ...\n\n";
    
test_quoting($message$test_values''11$tests$failed);

    echo 
"\nPerformed ",$tests," tests: ",($failed $failed." failed, ".($tests-$failed)." succeeded" "all succeeded"),"!\n";
    
?>