summaryrefslogtreecommitdiffstats
path: root/tests/lib/AppFramework
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2016-09-05 21:00:53 +0200
committerRoeland Jago Douma <roeland@famdouma.nl>2016-09-06 11:57:39 +0200
commit3c55fe6bab73dabfb92e95e26f205fbb7b5781ec (patch)
tree4ee9ae8be1e3046cb98b0bd92e800853fdd5eaa8 /tests/lib/AppFramework
parent314afcecf9080c78f485039852e30efee2e112c6 (diff)
downloadnextcloud-server-3c55fe6bab73dabfb92e95e26f205fbb7b5781ec.tar.gz
nextcloud-server-3c55fe6bab73dabfb92e95e26f205fbb7b5781ec.zip
Split OCS version handling
This cleans up a bit the OCSController/Middleware. Since the 2 versions of OCS differ a bit. Moved a lot of stuff internal since it is of no concern to the outside.
Diffstat (limited to 'tests/lib/AppFramework')
-rw-r--r--tests/lib/AppFramework/Controller/OCSControllerTest.php63
-rw-r--r--tests/lib/AppFramework/Middleware/OCSMiddlewareTest.php50
2 files changed, 85 insertions, 28 deletions
diff --git a/tests/lib/AppFramework/Controller/OCSControllerTest.php b/tests/lib/AppFramework/Controller/OCSControllerTest.php
index 9c9214181a4..c1f8e4a6574 100644
--- a/tests/lib/AppFramework/Controller/OCSControllerTest.php
+++ b/tests/lib/AppFramework/Controller/OCSControllerTest.php
@@ -27,6 +27,8 @@ namespace Test\AppFramework\Controller;
use OC\AppFramework\Http\Request;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCSController;
+use OCP\IConfig;
+use OCP\Security\ISecureRandom;
class ChildOCSController extends OCSController {}
@@ -40,10 +42,10 @@ class OCSControllerTest extends \Test\TestCase {
'HTTP_ORIGIN' => 'test',
],
],
- $this->getMockBuilder('\OCP\Security\ISecureRandom')
+ $this->getMockBuilder(ISecureRandom::class)
->disableOriginalConstructor()
->getMock(),
- $this->getMockBuilder('\OCP\IConfig')
+ $this->getMockBuilder(IConfig::class)
->disableOriginalConstructor()
->getMock()
);
@@ -65,13 +67,15 @@ class OCSControllerTest extends \Test\TestCase {
public function testXML() {
$controller = new ChildOCSController('app', new Request(
[],
- $this->getMockBuilder('\OCP\Security\ISecureRandom')
+ $this->getMockBuilder(ISecureRandom::class)
->disableOriginalConstructor()
->getMock(),
- $this->getMockBuilder('\OCP\IConfig')
+ $this->getMockBuilder(IConfig::class)
->disableOriginalConstructor()
->getMock()
));
+ $controller->setOCSVersion(1);
+
$expected = "<?xml version=\"1.0\"?>\n" .
"<ocs>\n" .
" <meta>\n" .
@@ -95,13 +99,14 @@ class OCSControllerTest extends \Test\TestCase {
public function testJSON() {
$controller = new ChildOCSController('app', new Request(
[],
- $this->getMockBuilder('\OCP\Security\ISecureRandom')
+ $this->getMockBuilder(ISecureRandom::class)
->disableOriginalConstructor()
->getMock(),
- $this->getMockBuilder('\OCP\IConfig')
+ $this->getMockBuilder(IConfig::class)
->disableOriginalConstructor()
->getMock()
));
+ $controller->setOCSVersion(1);
$expected = '{"ocs":{"meta":{"status":"ok","statuscode":100,"message":"OK",' .
'"totalitems":"","itemsperpage":""},"data":{"test":"hi"}}}';
$params = new DataResponse(['test' => 'hi']);
@@ -110,5 +115,51 @@ class OCSControllerTest extends \Test\TestCase {
$this->assertEquals($expected, $out);
}
+ public function testXMLV2() {
+ $controller = new ChildOCSController('app', new Request(
+ [],
+ $this->getMockBuilder(ISecureRandom::class)
+ ->disableOriginalConstructor()
+ ->getMock(),
+ $this->getMockBuilder(IConfig::class)
+ ->disableOriginalConstructor()
+ ->getMock()
+ ));
+ $controller->setOCSVersion(2);
+
+ $expected = "<?xml version=\"1.0\"?>\n" .
+ "<ocs>\n" .
+ " <meta>\n" .
+ " <status>ok</status>\n" .
+ " <statuscode>200</statuscode>\n" .
+ " <message>OK</message>\n" .
+ " </meta>\n" .
+ " <data>\n" .
+ " <test>hi</test>\n" .
+ " </data>\n" .
+ "</ocs>\n";
+
+ $params = new DataResponse(['test' => 'hi']);
+
+ $out = $controller->buildResponse($params, 'xml')->render();
+ $this->assertEquals($expected, $out);
+ }
+
+ public function testJSONV2() {
+ $controller = new ChildOCSController('app', new Request(
+ [],
+ $this->getMockBuilder(ISecureRandom::class)
+ ->disableOriginalConstructor()
+ ->getMock(),
+ $this->getMockBuilder(IConfig::class)
+ ->disableOriginalConstructor()
+ ->getMock()
+ ));
+ $controller->setOCSVersion(2);
+ $expected = '{"ocs":{"meta":{"status":"ok","statuscode":200,"message":"OK"},"data":{"test":"hi"}}}';
+ $params = new DataResponse(['test' => 'hi']);
+ $out = $controller->buildResponse($params, 'json')->render();
+ $this->assertEquals($expected, $out);
+ }
}
diff --git a/tests/lib/AppFramework/Middleware/OCSMiddlewareTest.php b/tests/lib/AppFramework/Middleware/OCSMiddlewareTest.php
index b2295fdc26d..5b88872d905 100644
--- a/tests/lib/AppFramework/Middleware/OCSMiddlewareTest.php
+++ b/tests/lib/AppFramework/Middleware/OCSMiddlewareTest.php
@@ -21,12 +21,16 @@
*/
namespace Test\AppFramework\Middleware;
+use OC\AppFramework\OCS\BaseResponse;
+use OC\AppFramework\OCS\V1Response;
+use OC\AppFramework\OCS\V2Response;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\OCS\OCSBadRequestException;
use OCP\AppFramework\OCS\OCSException;
use OCP\AppFramework\OCS\OCSForbiddenException;
use OCP\AppFramework\OCS\OCSNotFoundException;
+use OCP\AppFramework\OCSController;
use OCP\IRequest;
use OC\AppFramework\Middleware\OCSMiddleware;
@@ -41,16 +45,15 @@ class OCSMiddlewareTest extends \Test\TestCase {
protected function setUp() {
parent::setUp();
- $this->request = $this->getMockBuilder('OCP\IRequest')
+ $this->request = $this->getMockBuilder(IRequest::class)
->getMock();
-
}
public function dataAfterException() {
- $OCSController = $this->getMockBuilder('OCP\AppFramework\OCSController')
+ $OCSController = $this->getMockBuilder(OCSController::class)
->disableOriginalConstructor()
->getMock();
- $controller = $this->getMockBuilder('OCP\AppFramework\Controller')
+ $controller = $this->getMockBuilder(Controller::class)
->disableOriginalConstructor()
->getMock();
@@ -93,25 +96,26 @@ class OCSMiddlewareTest extends \Test\TestCase {
->method('getScriptName')
->willReturn('/ocs/v1.php');
$OCSMiddleware = new OCSMiddleware($this->request);
+ $OCSMiddleware->beforeController($controller, 'method');
try {
$result = $OCSMiddleware->afterException($controller, 'method', $exception);
$this->assertFalse($forward);
- $this->assertInstanceOf('OCP\AppFramework\Http\OCSResponse', $result);
+ $this->assertInstanceOf(V1Response::class, $result);
- $this->assertSame($message, $this->invokePrivate($result, 'message'));
+ $this->assertSame($message, $this->invokePrivate($result, 'statusMessage'));
if ($exception->getCode() === 0) {
- $this->assertSame(\OCP\API::RESPOND_UNKNOWN_ERROR, $this->invokePrivate($result, 'statuscode'));
+ $this->assertSame(\OCP\API::RESPOND_UNKNOWN_ERROR, $result->getOCSStatus());
} else {
- $this->assertSame($code, $this->invokePrivate($result, 'statuscode'));
+ $this->assertSame($code, $result->getOCSStatus());
}
if ($exception instanceof OCSForbiddenException) {
$this->assertSame(Http::STATUS_UNAUTHORIZED, $result->getStatus());
} else {
- $this->assertSame(200, $result->getStatus());
+ $this->assertSame(Http::STATUS_OK, $result->getStatus());
}
} catch (\Exception $e) {
$this->assertTrue($forward);
@@ -133,18 +137,19 @@ class OCSMiddlewareTest extends \Test\TestCase {
->method('getScriptName')
->willReturn('/ocs/v2.php');
$OCSMiddleware = new OCSMiddleware($this->request);
+ $OCSMiddleware->beforeController($controller, 'method');
try {
$result = $OCSMiddleware->afterException($controller, 'method', $exception);
$this->assertFalse($forward);
- $this->assertInstanceOf('OCP\AppFramework\Http\OCSResponse', $result);
+ $this->assertInstanceOf(V2Response::class, $result);
- $this->assertSame($message, $this->invokePrivate($result, 'message'));
+ $this->assertSame($message, $this->invokePrivate($result, 'statusMessage'));
if ($exception->getCode() === 0) {
- $this->assertSame(\OCP\API::RESPOND_UNKNOWN_ERROR, $this->invokePrivate($result, 'statuscode'));
+ $this->assertSame(\OCP\API::RESPOND_UNKNOWN_ERROR, $result->getOCSStatus());
} else {
- $this->assertSame($code, $this->invokePrivate($result, 'statuscode'));
+ $this->assertSame($code, $result->getOCSStatus());
}
$this->assertSame($code, $result->getStatus());
} catch (\Exception $e) {
@@ -167,18 +172,19 @@ class OCSMiddlewareTest extends \Test\TestCase {
->method('getScriptName')
->willReturn('/mysubfolder/ocs/v2.php');
$OCSMiddleware = new OCSMiddleware($this->request);
+ $OCSMiddleware->beforeController($controller, 'method');
try {
$result = $OCSMiddleware->afterException($controller, 'method', $exception);
$this->assertFalse($forward);
- $this->assertInstanceOf('OCP\AppFramework\Http\OCSResponse', $result);
+ $this->assertInstanceOf(V2Response::class, $result);
- $this->assertSame($message, $this->invokePrivate($result, 'message'));
+ $this->assertSame($message, $this->invokePrivate($result, 'statusMessage'));
if ($exception->getCode() === 0) {
- $this->assertSame(\OCP\API::RESPOND_UNKNOWN_ERROR, $this->invokePrivate($result, 'statuscode'));
+ $this->assertSame(\OCP\API::RESPOND_UNKNOWN_ERROR, $result->getOCSStatus());
} else {
- $this->assertSame($code, $this->invokePrivate($result, 'statuscode'));
+ $this->assertSame($code, $result->getOCSStatus());
}
$this->assertSame($code, $result->getStatus());
} catch (\Exception $e) {
@@ -188,10 +194,10 @@ class OCSMiddlewareTest extends \Test\TestCase {
}
public function dataAfterController() {
- $OCSController = $this->getMockBuilder('OCP\AppFramework\OCSController')
+ $OCSController = $this->getMockBuilder(OCSController::class)
->disableOriginalConstructor()
->getMock();
- $controller = $this->getMockBuilder('OCP\AppFramework\Controller')
+ $controller = $this->getMockBuilder(Controller::class)
->disableOriginalConstructor()
->getMock();
@@ -225,10 +231,10 @@ class OCSMiddlewareTest extends \Test\TestCase {
if ($converted === false) {
$this->assertSame($response, $newResponse);
} else {
- $this->assertInstanceOf('\OCP\AppFramework\Http\OCSResponse', $newResponse);
+ $this->assertInstanceOf(BaseResponse::class, $newResponse);
/** @var Http\OCSResponse $newResponse */
- $this->assertSame($response->getData()['message'], $this->invokePrivate($newResponse, 'message'));
- $this->assertSame(\OCP\API::RESPOND_UNAUTHORISED, $this->invokePrivate($newResponse, 'statuscode'));
+ $this->assertSame($response->getData()['message'], $this->invokePrivate($newResponse, 'statusMessage'));
+ $this->assertSame(\OCP\API::RESPOND_UNAUTHORISED, $newResponse->getOCSStatus());
$this->assertSame(Http::STATUS_UNAUTHORIZED, $newResponse->getStatus());
}
}