- less custom macro cruft
[m6w6/ext-http] / phpunit / MessageBodyTest.php
index bc07401fa2526b9b3f0e731f96ccfbe5abf0959e..1764ef6027b89128915420ce2667676fbb27ab3c 100644 (file)
@@ -29,9 +29,9 @@ class MessageBodyTest extends PHPUnit_Framework_TestCase {
         $this->assertEquals(3, $this->temp->append("yes"));
     }
 
-    function testAdd() {
+    function testAddForm() {
         $this->assertTrue( 
-            $this->temp->add(
+            $this->temp->addForm(
                 array(
                     "foo" => "bar",
                     "more" => array(
@@ -67,7 +67,7 @@ class MessageBodyTest extends PHPUnit_Framework_TestCase {
             "\r\n".
             "fuz\r\n".
             "--%x.%x\r\n".
-            "Content-Disposition: attachment; name=\"upload\"; filename=\"MessageBodyTest.php\"\r\n".
+            "Content-Disposition: form-data; name=\"upload\"; filename=\"MessageBodyTest.php\"\r\n".
             "Content-Transfer-Encoding: binary\r\n".
             "Content-Type: text/plain\r\n".
             "\r\n".
@@ -78,6 +78,20 @@ class MessageBodyTest extends PHPUnit_Framework_TestCase {
         );
     }
 
+    function testAddPart() {
+        $this->temp->addPart(new http\Message("This: is a header\n\nand this is the data\n"));
+        $this->assertStringMatchesFormat(
+            "--%x.%x\r\n".
+            "This: is a header\r\n".
+            "Content-Length: 21\r\n".
+            "\r\n".
+            "and this is the data\n\r\n".
+            "--%x.%x--\r\n".
+            "",
+            str_replace("\r", "", $this->temp)
+        );
+    }
+
     function testEtag() {
         $s = stat(__FILE__);
         $this->assertEquals(
@@ -87,7 +101,7 @@ class MessageBodyTest extends PHPUnit_Framework_TestCase {
             ),
             $this->file->etag()
         );
-        $this->assertEquals(md5(""), $this->temp->etag());
+        $this->assertEquals(crc32(""), $this->temp->etag());
     }
 
     function testToStream() {
@@ -106,4 +120,15 @@ class MessageBodyTest extends PHPUnit_Framework_TestCase {
         );
         $this->assertEquals($s, (string) $this->file);
     }
+
+    function testClone() {
+        $this->assertEquals((string) $this->file, (string) clone $this->file);
+    }
+    
+    function testGetResource() {
+       $stream = $this->file->getResource();
+       $this->assertTrue(is_resource($stream));
+       $stat = fstat($stream);
+       $this->assertEquals(filesize(__FILE__), $stat["size"]);
+    }
 }