* * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE * License as published by the Free Software Foundation; either * version 3 of the License, or any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU AFFERO GENERAL PUBLIC LICENSE for more details. * * You should have received a copy of the GNU Affero General Public * License along with this library. If not, see . * */ namespace Test\AppFramework\Controller; use OC\AppFramework\Http\Request; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\OCSController; class ChildOCSController extends OCSController {} class OCSControllerTest extends \Test\TestCase { public function testCors() { $request = new Request( [ 'server' => [ 'HTTP_ORIGIN' => 'test', ], ], $this->getMockBuilder('\OCP\Security\ISecureRandom') ->disableOriginalConstructor() ->getMock(), $this->getMockBuilder('\OCP\IConfig') ->disableOriginalConstructor() ->getMock() ); $controller = new ChildOCSController('app', $request, 'verbs', 'headers', 100); $response = $controller->preflightedCors(); $headers = $response->getHeaders(); $this->assertEquals('test', $headers['Access-Control-Allow-Origin']); $this->assertEquals('verbs', $headers['Access-Control-Allow-Methods']); $this->assertEquals('headers', $headers['Access-Control-Allow-Headers']); $this->assertEquals('false', $headers['Access-Control-Allow-Credentials']); $this->assertEquals(100, $headers['Access-Control-Max-Age']); } public function testXML() { $controller = new ChildOCSController('app', new Request( [], $this->getMockBuilder('\OCP\Security\ISecureRandom') ->disableOriginalConstructor() ->getMock(), $this->getMockBuilder('\OCP\IConfig') ->disableOriginalConstructor() ->getMock() )); $expected = "\n" . "\n" . " \n" . " failure\n" . " 400\n" . " OK\n" . " \n" . " \n" . " \n" . " \n" . " hi\n" . " \n" . "\n"; $params = [ 'data' => [ 'test' => 'hi' ], 'statuscode' => 400 ]; $out = $controller->buildResponse($params, 'xml')->render(); $this->assertEquals($expected, $out); } public function testXMLDataResponse() { $controller = new ChildOCSController('app', new Request( [], $this->getMockBuilder('\OCP\Security\ISecureRandom') ->disableOriginalConstructor() ->getMock(), $this->getMockBuilder('\OCP\IConfig') ->disableOriginalConstructor() ->getMock() )); $expected = "\n" . "\n" . " \n" . " failure\n" . " 400\n" . " OK\n" . " \n" . " \n" . " \n" . " \n" . " hi\n" . " \n" . "\n"; $params = new DataResponse([ 'data' => [ 'test' => 'hi' ], 'statuscode' => 400 ]); $out = $controller->buildResponse($params, 'xml')->render(); $this->assertEquals($expected, $out); } public function testJSON() { $controller = new ChildOCSController('app', new Request( [], $this->getMockBuilder('\OCP\Security\ISecureRandom') ->disableOriginalConstructor() ->getMock(), $this->getMockBuilder('\OCP\IConfig') ->disableOriginalConstructor() ->getMock() )); $expected = '{"ocs":{"meta":{"status":"failure","statuscode":400,"message":"OK",' . '"totalitems":"","itemsperpage":""},"data":{"test":"hi"}}}'; $params = [ 'data' => [ 'test' => 'hi' ], 'statuscode' => 400 ]; $out = $controller->buildResponse($params, 'json')->render(); $this->assertEquals($expected, $out); } }