+++ /dev/null
-<?php
-
-class MessageBodyTest extends PHPUnit_Framework_TestCase {
- protected $file, $temp;
-
- function setUp() {
- $this->file = new http\Message\Body(fopen(__FILE__, "r"));
- $this->temp = new http\Message\Body();
- }
-
- function testStat() {
- $this->assertEquals(filesize(__FILE__), $this->file->stat("size"));
- $this->assertEquals(filemtime(__FILE__), $this->file->stat("mtime"));
- $this->assertEquals(fileatime(__FILE__), $this->file->stat("atime"));
- $this->assertEquals(filectime(__FILE__), $this->file->stat("ctime"));
- $this->assertEquals(
- (object) array(
- "size" => 0,
- "mtime" => 0,
- "atime" => 0,
- "ctime" => 0,
- ),
- $this->temp->stat()
- );
- }
-
- function testAppendError() {
- $this->setExpectedException("http\Exception\RuntimeException");
- $this->file->append("nope");
- }
- function testAppend() {
- $this->temp->append("yes");
- }
-
- function testAddForm() {
- $this->temp->addForm(
- array(
- "foo" => "bar",
- "more" => array(
- "bah", "baz", "fuz"
- ),
- ),
- array(
- array(
- "file" => __FILE__,
- "name" => "upload",
- "type" => "text/plain",
- )
- )
- );
-
- $file = str_replace("%", "%c", file_get_contents(__FILE__));
- $this->assertStringMatchesFormat(
- "--%x.%x\r\n".
- "Content-Disposition: form-data; name=\"foo\"\r\n".
- "\r\n".
- "bar\r\n".
- "--%x.%x\r\n".
- "Content-Disposition: form-data; name=\"more[0]\"\r\n".
- "\r\n".
- "bah\r\n".
- "--%x.%x\r\n".
- "Content-Disposition: form-data; name=\"more[1]\"\r\n".
- "\r\n".
- "baz\r\n".
- "--%x.%x\r\n".
- "Content-Disposition: form-data; name=\"more[2]\"\r\n".
- "\r\n".
- "fuz\r\n".
- "--%x.%x\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".
- "{$file}\r\n".
- "--%x.%x--\r\n".
- "",
- str_replace("\r", "", $this->temp) // phpunit replaces \r\n with \n
- );
- }
-
- 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(
- sprintf(
- "%lx-%lx-%lx",
- $s["ino"],$s["mtime"],$s["size"]
- ),
- $this->file->etag()
- );
- $this->assertEquals(crc32(""), $this->temp->etag());
- }
-
- function testToStream() {
- $this->file->toStream($f = fopen("php://temp", "w"));
- fseek($f, 0, SEEK_SET);
- $this->assertEquals(
- file_get_contents(__FILE__),
- fread($f, filesize(__FILE__))
- );
- }
-
- function testToCallback() {
- $s = "";
- $this->file->toCallback(
- function($body, $string) use (&$s) { $s.=$string; }
- );
- $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"]);
- }
-}
--- /dev/null
+--TEST--
+message body add form
+--SKIPIF--
+<?php
+include "skipif.inc";
+?>
+--FILE--
+<?php
+echo "Test\n";
+
+$temp = new http\Message\Body;
+$temp->addForm(
+ array(
+ "foo" => "bar",
+ "more" => array(
+ "bah", "baz", "fuz"
+ ),
+ ),
+ array(
+ array(
+ "file" => __FILE__,
+ "name" => "upload",
+ "type" => "text/plain",
+ )
+ )
+);
+
+echo $temp;
+
+?>
+DONE
+--EXPECTF--
+Test
+--%x.%x
+Content-Disposition: form-data; name="foo"
+
+bar
+--%x.%x
+Content-Disposition: form-data; name="more[0]"
+
+bah
+--%x.%x
+Content-Disposition: form-data; name="more[1]"
+
+baz
+--%x.%x
+Content-Disposition: form-data; name="more[2]"
+
+fuz
+--%x.%x
+Content-Disposition: form-data; name="upload"; filename="%s"
+Content-Transfer-Encoding: binary
+Content-Type: text/plain
+
+<?php
+echo "Test\n";
+
+$temp = new http\Message\Body;
+$temp->addForm(
+ array(
+ "foo" => "bar",
+ "more" => array(
+ "bah", "baz", "fuz"
+ ),
+ ),
+ array(
+ array(
+ "file" => __FILE__,
+ "name" => "upload",
+ "type" => "text/plain",
+ )
+ )
+);
+
+echo $temp;
+
+?>
+DONE
+
+--%x.%x--
+DONE