From fd709b4b49f18113dce1523fdda88ef60f2c23a4 Mon Sep 17 00:00:00 2001
From: Sergio Bertolin <sbertolin@solidgear.es>
Date: Fri, 2 Oct 2015 07:40:25 +0000
Subject: [PATCH] Being explicit between http and ocs return codes

---
 .../features/bootstrap/FeatureContext.php     | 34 ++++++++++++-------
 .../features/provisioning-v1.feature          | 21 ++++++++----
 .../features/provisioning-v2.feature          |  2 +-
 3 files changed, 37 insertions(+), 20 deletions(-)

diff --git a/build/integration/features/bootstrap/FeatureContext.php b/build/integration/features/bootstrap/FeatureContext.php
index da5b62153b..766f3a667f 100644
--- a/build/integration/features/bootstrap/FeatureContext.php
+++ b/build/integration/features/bootstrap/FeatureContext.php
@@ -49,28 +49,36 @@ class FeatureContext extends BehatContext {
 		$this->sendingToWith($verb, $url, null);
 	}
 
-	// /**
-	//  * @Then /^the status code should be "([^"]*)"$/
-	//  */
-	// public function theStatusCodeShouldBe($statusCode) {
-	// 	PHPUnit_Framework_Assert::assertEquals($statusCode, $this->response->getStatusCode());
-	// }
-
-   
+
+    /**
+    *  Parses the xml answer to get ocs response which doesn't match with
+    *  http one in v1 of the api.
+    */
     public function getOCSResponse($response){
          return $response->xml()->meta[0]->statuscode;
     }
 
 
 
+
     /**
-	 * @Then /^the status code should be "([^"]*)"$/
+	 * @Then /^the OCS status code should be "([^"]*)"$/
 	 */
-	public function theStatusCodeShouldBe($statusCode) {
+	public function theOCSStatusCodeShouldBe($statusCode) {
 		PHPUnit_Framework_Assert::assertEquals($statusCode, $this->getOCSResponse($this->response));
 	}
 
 
+     /**
+	 * @Then /^the HTTP status code should be "([^"]*)"$/
+	 */
+	public function theHTTPStatusCodeShouldBe($statusCode) {
+		PHPUnit_Framework_Assert::assertEquals($statusCode, $this->response->getStatusCode());
+	}
+
+	
+
+
 	/**
 	 * @Given /^As an "([^"]*)"$/
 	 */
@@ -89,7 +97,7 @@ class FeatureContext extends BehatContext {
 	 * @Given /^user "([^"]*)" exists$/
 	 */
 	public function userExists($user) {
-		$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/cloud/users/$user";
+		$fullUrl = $this->baseUrl . "v2.php/cloud/users/$user";
 		$client = new Client();
 		$options = [];
 		if ($this->currentUser === 'admin') {
@@ -97,6 +105,7 @@ class FeatureContext extends BehatContext {
 		}
 
 		$this->response = $client->get($fullUrl, $options);
+		PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode());
 	}
 
 	/**
@@ -155,7 +164,7 @@ class FeatureContext extends BehatContext {
 	 * @Given /^group "([^"]*)" exists$/
 	 */
 	public function groupExists($group) {
-		$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/cloud/groups/$group";
+		$fullUrl = $this->baseUrl . "v2.php/cloud/groups/$group";
 		$client = new Client();
 		$options = [];
 		if ($this->currentUser === 'admin') {
@@ -163,6 +172,7 @@ class FeatureContext extends BehatContext {
 		}
 
 		$this->response = $client->get($fullUrl, $options);
+		PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode());
 	}
 
 	/**
diff --git a/build/integration/features/provisioning-v1.feature b/build/integration/features/provisioning-v1.feature
index 384452d50a..2bfd6a06d0 100644
--- a/build/integration/features/provisioning-v1.feature
+++ b/build/integration/features/provisioning-v1.feature
@@ -5,12 +5,14 @@ Feature: provisioning
   Scenario: Getting an not existing user
     Given As an "admin"
     When sending "GET" to "/cloud/users/test"
-    Then the status code should be "998"
+    Then the OCS status code should be "998"
+    And the HTTP status code should be "200"
 
   Scenario: Listing all users
     Given As an "admin"
     When sending "GET" to "/cloud/users"
-    Then the status code should be "100"
+    Then the OCS status code should be "100"
+    And the HTTP status code should be "200"
 
   Scenario: Create a user
     Given As an "admin"
@@ -18,7 +20,8 @@ Feature: provisioning
     When sending "POST" to "/cloud/users" with
       | userid | brand-new-user |
       | password | 123456 |
-    Then the status code should be "100"
+    Then the OCS status code should be "100"
+    And the HTTP status code should be "200"
     And user "brand-new-user" exists
 
 
@@ -30,7 +33,8 @@ Feature: provisioning
       | value | 12MB |
       | key | email |
       | value | brand-new-user@gmail.com |
-    Then the status code should be "100"
+    Then the OCS status code should be "100"
+    And the HTTP status code should be "200"
     And user "brand-new-user" exists
 
 
@@ -38,7 +42,8 @@ Feature: provisioning
     Given As an "admin"
     And user "brand-new-user" exists
     When sending "DELETE" to "/cloud/users/brand-new-user" 
-    Then the status code should be "100"
+    Then the OCS status code should be "100"
+    And the HTTP status code should be "200"
     And user "brand-new-user" does not exist
 
 
@@ -49,7 +54,8 @@ Feature: provisioning
       | groupid | new-group |
       | password | 123456 |
 
-    Then the status code should be "100"
+    Then the OCS status code should be "100"
+    And the HTTP status code should be "200"
     And group "new-group" exists
 
 
@@ -57,7 +63,8 @@ Feature: provisioning
     Given As an "admin"
     And group "new-group" exists
     When sending "DELETE" to "/cloud/groups/new-group"
-    Then the status code should be "100"
+    Then the OCS status code should be "100"
+    And the HTTP status code should be "200"
     And group "new-group" does not exist
 
 
diff --git a/build/integration/features/provisioning-v2.feature b/build/integration/features/provisioning-v2.feature
index 72ceed5d6a..6140128684 100644
--- a/build/integration/features/provisioning-v2.feature
+++ b/build/integration/features/provisioning-v2.feature
@@ -5,5 +5,5 @@ Feature: provisioning
   Scenario: Getting an not existing user
     Given As an "admin"
     When sending "GET" to "/cloud/users/test"
-    Then the status code should be "404"
+    Then the HTTP status code should be "404"
 
-- 
GitLab