From 72b06d250de023d9b0f9bcb9ec93896e3b4c55d9 Mon Sep 17 00:00:00 2001
From: Roeland Jago Douma <roeland@famdouma.nl>
Date: Fri, 22 Jul 2016 12:25:50 +0200
Subject: [PATCH] Add tests

---
 .../Middleware/OCSMiddlewareTest.php          | 36 ++++++++++++++++++-
 1 file changed, 35 insertions(+), 1 deletion(-)

diff --git a/tests/lib/AppFramework/Middleware/OCSMiddlewareTest.php b/tests/lib/AppFramework/Middleware/OCSMiddlewareTest.php
index 66131aa4b25..5eff056eebc 100644
--- a/tests/lib/AppFramework/Middleware/OCSMiddlewareTest.php
+++ b/tests/lib/AppFramework/Middleware/OCSMiddlewareTest.php
@@ -88,7 +88,10 @@ class OCSMiddlewareTest extends \Test\TestCase {
 	 * @param string $message
 	 * @param int $code
 	 */
-	public function testAfterException($controller, $exception, $forward, $message = '', $code = 0) {
+	public function testAfterExceptionOCSv1($controller, $exception, $forward, $message = '', $code = 0) {
+		$this->request
+			->method('getScriptName')
+			->willReturn('/ocs/v1.php');
 		$OCSMiddleware = new OCSMiddleware($this->request);
 
 		try {
@@ -99,6 +102,37 @@ class OCSMiddlewareTest extends \Test\TestCase {
 
 			$this->assertSame($message, $this->invokePrivate($result, 'message'));
 			$this->assertSame($code, $this->invokePrivate($result, 'statuscode'));
+			$this->assertSame(200, $result->getStatus());
+		} catch (\Exception $e) {
+			$this->assertTrue($forward);
+			$this->assertEquals($exception, $e);
+		}
+	}
+
+	/**
+	 * @dataProvider dataAfterException
+	 *
+	 * @param Controller $controller
+	 * @param \Exception $exception
+	 * @param bool $forward
+	 * @param string $message
+	 * @param int $code
+	 */
+	public function testAfterExceptionOCSv2($controller, $exception, $forward, $message = '', $code = 0) {
+		$this->request
+			->method('getScriptName')
+			->willReturn('/ocs/v2.php');
+		$OCSMiddleware = new OCSMiddleware($this->request);
+
+		try {
+			$result = $OCSMiddleware->afterException($controller, 'method', $exception);
+			$this->assertFalse($forward);
+
+			$this->assertInstanceOf('OCP\AppFramework\Http\OCSResponse', $result);
+
+			$this->assertSame($message, $this->invokePrivate($result, 'message'));
+			$this->assertSame($code, $this->invokePrivate($result, 'statuscode'));
+			$this->assertSame($code, $result->getStatus());
 		} catch (\Exception $e) {
 			$this->assertTrue($forward);
 			$this->assertEquals($exception, $e);
-- 
GitLab