home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 August / PCWorld_2001-08_cd.bin / Komunikace / phptriad / phptriadsetup2-11.exe / php / pear / XML / tests / 005.phpt < prev    next >
Text File  |  2000-12-06  |  2KB  |  71 lines

  1. --TEST--
  2. XML Parser: mixing character encodings
  3. --FILE--
  4. <?php // -*- C++ -*-
  5. //
  6. // Test for: XML/Parser.php
  7. // Parts tested: - mixing character encodings
  8. //
  9. // This is what we test:
  10. // 1 UTF-8      -> ISO-8859-1
  11. // 2 UTF-8      -> US-ASCII
  12. // 3 ISO-8859-1 -> UTF-8
  13. // 4 ISO-8859-1 -> US-ASCII
  14. // 5 US-ASCII   -> UTF-8
  15. // 6 US-ASCII   -> ISO-8859-1
  16. //
  17.  
  18. require_once "XML/Parser.php";
  19.  
  20. $xml = "<?xml version='1.0' ?>";
  21. $input = array(
  22.     "UTF-8"      => "<a>abc├ª├╕├Ñ</a>",
  23.     "ISO-8859-1" => "<a>abcµ°σ</a>",
  24.     "US-ASCII"   => "<a>abcaoa</a>"
  25. );
  26.  
  27. $encodings = array_keys($input);
  28. for ($i = 0; $i < sizeof($encodings); $i++) {
  29.     for ($j = 0; $j < sizeof($encodings); $j++) {
  30.     if ($i == $j) {
  31.         continue;
  32.     }
  33.     print "Testing $encodings[$i] -> $encodings[$j]: ";
  34.     $p = new __TestEncodings1("UTF-8", "ISO-8859-1");
  35.     $snippet = $input[$encodings[$i]];
  36.     $e = $p->test($input[$encodings[$i]]);
  37.     if (PEAR::isError($e)) {
  38.         printf("OOPS: %s\n", $e->getMessage());
  39.     } else {
  40.         var_dump($e);
  41.     }
  42.     }
  43. }
  44.  
  45. class __TestEncodings1 extends XML_Parser {
  46.     var $output = '';
  47.  
  48.     function __TestEncodings1($to, $from) {
  49.     $this->XML_Parser(array('input_encoding' => $from,
  50.                 'output_encoding' => $to,
  51.                 'case_folding' => false));
  52.     }
  53.     function startHandler($xp, $elem, $attribs) {
  54.     $this->output .= "<$elem>";
  55.     }
  56.     function endHandler($xp, $elem) {
  57.     $this->output .= "</$elem>";
  58.     }
  59.     function cdataHandler($xp, $data) {
  60.     $this->output .= $data;
  61.     }
  62.     function test($data) {
  63.     $this->output = '';
  64.     $this->parseString($data, true);
  65.     return $this->output;
  66.     }
  67. }
  68.  
  69. ?>
  70. --EXPECT--
  71.