Permalink
Browse files

Controller data is now set to an array instead of Xml object if reque…

…st content type is 'application/xml'
  • Loading branch information...
1 parent 41e6fdf commit 5f987a4996ac83b0db58d308493af36f8e145fe9 @ADmad ADmad committed Dec 31, 2009
@@ -219,10 +219,10 @@ function startup(&$controller) {
}
$xml = new Xml(trim(file_get_contents('php://input')));
- if (is_object($xml->child('data')) && count($xml->children) == 1) {
- $controller->data = $xml->child('data');
+ if (count($xml->children) == 1 && is_object($dataNode = $xml->child('data'))) {
+ $controller->data = $dataNode->toArray();
} else {
- $controller->data = $xml;
+ $controller->data = $xml->toArray();
}
}
}
@@ -241,8 +241,8 @@ function testStartupCallback() {
$_SERVER['REQUEST_METHOD'] = 'PUT';
$_SERVER['CONTENT_TYPE'] = 'application/xml';
$this->RequestHandler->startup($this->Controller);
- $this->assertTrue(is_object($this->Controller->data));
- $this->assertEqual(strtolower(get_class($this->Controller->data)), 'xml');
+ $this->assertTrue(is_array($this->Controller->data));
+ $this->assertFalse(is_object($this->Controller->data));
}
/**
@@ -254,8 +254,8 @@ function testStartupCallbackCharset() {
$_SERVER['REQUEST_METHOD'] = 'PUT';
$_SERVER['CONTENT_TYPE'] = 'application/xml; charset=UTF-8';
$this->RequestHandler->startup($this->Controller);
- $this->assertTrue(is_object($this->Controller->data));
- $this->assertEqual(strtolower(get_class($this->Controller->data)), 'xml');
+ $this->assertTrue(is_array($this->Controller->data));
+ $this->assertFalse(is_object($this->Controller->data));
}
/**

0 comments on commit 5f987a4

Please sign in to comment.