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";