ソースを参照

Fix up mistake in Http\FormData

Before poking at the 0'th element make sure it exists.
Mark Story 11 年 前
コミット
3ec7fe15b3

+ 1 - 1
src/Network/Http/FormData.php

@@ -81,7 +81,7 @@ class FormData implements \Countable {
 			$this->addRecursive($name, $value);
 		} elseif (is_resource($value)) {
 			$this->_parts[] = $this->addFile($name, $value);
-		} elseif (is_string($value) && $value[0] === '@') {
+		} elseif (is_string($value) && strlen($value) && $value[0] === '@') {
 			$this->_parts[] = $this->addFile($name, $value);
 		} else {
 			$this->_parts[] = $this->newPart($name, $value);

+ 6 - 1
tests/TestCase/Network/Http/FormDataTest.php

@@ -55,10 +55,11 @@ class FormDataTest extends TestCase {
 	public function testAddSimple() {
 		$data = new FormData();
 		$data->add('test', 'value')
+			->add('empty', '')
 			->add('int', 1)
 			->add('float', 2.3);
 
-		$this->assertCount(3, $data);
+		$this->assertCount(4, $data);
 		$boundary = $data->boundary();
 		$result = (string)$data;
 		$expected = array(
@@ -67,6 +68,10 @@ class FormDataTest extends TestCase {
 			'',
 			'value',
 			'--' . $boundary,
+			'Content-Disposition: form-data; name="empty"',
+			'',
+			'',
+			'--' . $boundary,
 			'Content-Disposition: form-data; name="int"',
 			'',
 			'1',