diff options
-rw-r--r-- | build/integration/features/bootstrap/BasicStructure.php | 8 | ||||
-rw-r--r-- | build/integration/features/ocs-v1.feature | 24 | ||||
-rw-r--r-- | lib/private/AppFramework/OCS/BaseResponse.php | 10 |
3 files changed, 42 insertions, 0 deletions
diff --git a/build/integration/features/bootstrap/BasicStructure.php b/build/integration/features/bootstrap/BasicStructure.php index e6da74601ba..df46d0b1983 100644 --- a/build/integration/features/bootstrap/BasicStructure.php +++ b/build/integration/features/bootstrap/BasicStructure.php @@ -202,6 +202,14 @@ trait BasicStructure { } /** + * @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 */ private function extracRequestTokenFromResponse(ResponseInterface $response) { diff --git a/build/integration/features/ocs-v1.feature b/build/integration/features/ocs-v1.feature new file mode 100644 index 00000000000..6075189ddb4 --- /dev/null +++ b/build/integration/features/ocs-v1.feature @@ -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" diff --git a/lib/private/AppFramework/OCS/BaseResponse.php b/lib/private/AppFramework/OCS/BaseResponse.php index c9295a26779..fa22498ac0f 100644 --- a/lib/private/AppFramework/OCS/BaseResponse.php +++ b/lib/private/AppFramework/OCS/BaseResponse.php @@ -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' + ); + } } /** |