Make the debugger tolerate latin-1 characters in all fields, not just method payload
[plcapi.git] / tests / 1ParsingBugsTest.php
index 4bbccba..6a6a3f9 100644 (file)
@@ -9,17 +9,29 @@ class ParsingBugsTests extends PHPUnit_Framework_TestCase
 {
     public $args = array();
 
-    public function setUp()
+    protected function setUp()
     {
         $this->args = argParser::getArgs();
+        if ($this->args['DEBUG'] == 1)
+            ob_start();
+    }
+
+    protected function tearDown()
+    {
+        if ($this->args['DEBUG'] != 1)
+            return;
+        $out = ob_get_clean();
+        $status = $this->getStatus();
+        if ($status == PHPUnit_Runner_BaseTestRunner::STATUS_ERROR
+            || $status == PHPUnit_Runner_BaseTestRunner::STATUS_FAILURE) {
+            echo $out;
+        }
     }
 
     protected function newMsg($methodName, $params = array())
     {
         $msg = new xmlrpcmsg($methodName, $params);
-        if ($this->args['DEBUG']) {
-            $msg->setDebug($this->args['DEBUG']);
-        }
+        $msg->setDebug($this->args['DEBUG']);
         return $msg;
     }
 
@@ -439,7 +451,7 @@ and there they were.</value></member><member><name>postid</name><value>7414222</
         $v = $v['content'];
         $this->assertEquals($string, $v);
 
-        $f = '<?xml version="1.0" encoding="utf-8"?><methodResponse><params><param><value><struct><member><name>userid</name><value>311127</value></member>
+        $f = '<?xml version="1.0" encoding="UTF-8"?><methodResponse><params><param><value><struct><member><name>userid</name><value>311127</value></member>
 <member><name>dateCreated</name><value><dateTime.iso8601>20011126T09:17:52</dateTime.iso8601></value></member><member><name>content</name><value>' . utf8_encode($string) . '</value></member><member><name>postid</name><value>7414222</value></member></struct></value></param></params></methodResponse>
 ';
         $r = $s->parseResponse($f, false, 'phpvals');
@@ -466,7 +478,7 @@ and there they were.</value></member><member><name>postid</name><value>7414222</
         $v = $v['content'];
         $this->assertEquals($string, $v);
 
-        $f = '<?xml version="1.0" encoding="iso-8859-1"?><methodResponse><params><param><value><struct><member><name>userid</name><value>311127</value></member>
+        $f = '<?xml version="1.0" encoding="ISO-8859-1"?><methodResponse><params><param><value><struct><member><name>userid</name><value>311127</value></member>
 <member><name>dateCreated</name><value><dateTime.iso8601>20011126T09:17:52</dateTime.iso8601></value></member><member><name>content</name><value>' . $string . '</value></member><member><name>postid</name><value>7414222</value></member></struct></value></param></params></methodResponse>
 ';
         $r = $s->parseResponse($f, false, 'phpvals');