Location: PHPKode > scripts > SMTP E-mail sending class > smtp-e-mail-sending-class/test_smtp_prepare_data.php
<?php
/*
 * test_smtp_prepare_data.php
 *
 * @(#) $Header: /home/mlemos/cvsroot/smtp/test_smtp_prepare_data.php,v 1.1 2003/08/26 07:39:59 mlemos Exp $
 *
 */


	require("smtp.php");

Function ReferencePrepareData($data)
{
 	$length=strlen($data);
	for($output="",$position=0;$position<$length;)
	{
		$next_position=$length;
		for($current=$position;$current<$length;$current++)
		{
			switch($data[$current])
			{
				case "\n":
					$next_position=$current+1;
					break 2;
				case "\r":
					$next_position=$current+1;
					if($next_position<$length
					&& $data[$next_position]=="\n")
						$next_position++;
					break 2;
			}
		}
		if($data[$position]==".")
			$output.=".";
		$output.=substr($data,$position,$current-$position);
		if($current<$length)
			$output.="\r\n";
		$position=$next_position;
	}
	return($output);
}


	$smtp=new smtp_class;
	$test_data=array(
		"Empty    "=>"",
		"Dot      "=>".",
		"CR       "=>"\r",
		"LF       "=>"\n",
		"Double LF"=>"\n\n",
		"Double CR"=>"\r\r",
		"Triple LF"=>"\n\n\n",
		"Triple CR"=>"\r\r\r",
		"Four LF  "=>"\n\n\n\n",
		"Four CR  "=>"\r\r\r\r",
		"Complex  "=>"\n1\n\n2\r3\n4\n\r5\r\n.\n."
	);
	Reset($test_data);
	$end=(GetType($test=Key($test_data))!="string");
	for($passed=$failed=0,$failed_tests="";!$end;)
	{
		echo "Testing ",$test," ...";
		flush();
		$reference_prepared_data=ReferencePrepareData($test_data[$test]);
		$smtp->PrepareData($test_data[$test],$preg_prepared_data,1);
		$smtp->PrepareData($test_data[$test],$ereg_prepared_data,0);
		$preg_ok=!strcmp($reference_prepared_data,$preg_prepared_data);
		$ereg_ok=!strcmp($reference_prepared_data,$ereg_prepared_data);
		if($preg_ok && $ereg_ok)
		{
			echo " OK";
			$passed++;
		}
		else
		{
			if($failed)
				$failed_tests.=", ";
			$failed_tests.=trim($test);
			$failed++;
			echo " FAILED!\n";
			echo "Test data \"",str_replace("\r","\\r",str_replace("\n","\\n\n",$test_data[$test])),"\"\n";
			echo "Reference prepared data \"",str_replace("\r","\\r",str_replace("\n","\\n\n",$reference_prepared_data)),"\"\n";
			if(!$preg_ok)
				echo "preg prepared data \"",str_replace("\r","\\r",str_replace("\n","\\n\n",$preg_prepared_data)),"\"\n";
			if(!$ereg_ok)
				echo "ereg prepared data \"",str_replace("\r","\\r",str_replace("\n","\\n\n",$ereg_prepared_data)),"\"\n";
		}
		echo "\n";

		Next($test_data);
		$end=(GetType($test=Key($test_data))!="string");
	}
	if($failed==0)
		echo "All ",$passed," tests passed!\n";
	else
		echo "Passed ",$passed," tests, failed ",$failed,": ",$failed_tests,"!\n";

 ?>
Return current item: SMTP E-mail sending class