Merge pull request #1300 from nextcloud/fix_ocs_content_type

Set proper content type on OCS responses
This commit is contained in:
Morris Jobke 2016-09-07 14:21:52 +02:00 committed by GitHub
commit c8ec237cbe
3 changed files with 42 additions and 0 deletions

View File

@ -201,6 +201,14 @@ trait BasicStructure {
PHPUnit_Framework_Assert::assertEquals($statusCode, $this->response->getStatusCode());
}
/**
* @Then /^the Content-Type should be "([^"]*)"$/
* @param string $contentType
*/
public function theContentTypeShouldbe($contentType) {
PHPUnit_Framework_Assert::assertEquals($contentType, $this->response->getHeader('Content-Type'));
}
/**
* @param ResponseInterface $response
*/

View File

@ -0,0 +1,24 @@
Feature: ocs
Background:
Given using api version "1"
Scenario: Default output is xml
Given user "user0" exists
And As an "user0"
When sending "GET" to "/cloud/config"
And the HTTP status code should be "200"
And the Content-Type should be "text/xml; charset=UTF-8"
Scenario: Get XML when requesting XML
Given user "user0" exists
And As an "user0"
When sending "GET" to "/cloud/config?format=xml"
And the HTTP status code should be "200"
And the Content-Type should be "text/xml; charset=UTF-8"
Scenario: Get JSON when requesting JSON
Given user "user0" exists
And As an "user0"
When sending "GET" to "/cloud/config?format=json"
And the HTTP status code should be "200"
And the Content-Type should be "application/json; charset=utf-8"

View File

@ -68,6 +68,16 @@ abstract class BaseResponse extends Response {
$this->setLastModified($dataResponse->getLastModified());
$this->setCookies($dataResponse->getCookies());
$this->setContentSecurityPolicy($dataResponse->getContentSecurityPolicy());
if ($format === 'json') {
$this->addHeader(
'Content-Type', 'application/json; charset=utf-8'
);
} else {
$this->addHeader(
'Content-Type', 'application/xml; charset=utf-8'
);
}
}
/**