diff --git a/build/integration/features/bootstrap/FeatureContext.php b/build/integration/features/bootstrap/FeatureContext.php
index 96f46ce28ed27101ee7af389e28bffb826befa28..46c86f1300bbc6f9066facda5d663a155344e1a7 100644
--- a/build/integration/features/bootstrap/FeatureContext.php
+++ b/build/integration/features/bootstrap/FeatureContext.php
@@ -595,7 +595,12 @@ class FeatureContext implements Context, SnippetAcceptingContext {
 	public function checkPublicSharedFile($filename) {
 		$client = new Client();
 		$options = [];
-		$url = $this->lastShareData->data[0]->url;
+		if (count($this->lastShareData->data->element) > 0){
+			$url = $this->lastShareData->data[0]->url;
+		}
+		else{
+			$url = $this->lastShareData->data->url;
+		}
 		$fullUrl = $url . "/download";
 		$options['save_to'] = "./$filename";
 		$this->response = $client->get($fullUrl, $options);
@@ -613,7 +618,13 @@ class FeatureContext implements Context, SnippetAcceptingContext {
 	public function checkPublicSharedFileWithPassword($filename, $password) {
 		$client = new Client();
 		$options = [];
-		$token = $this->lastShareData->data[0]->token;
+		if (count($this->lastShareData->data->element) > 0){
+			$token = $this->lastShareData->data[0]->token;
+		}
+		else{
+			$token = $this->lastShareData->data->token;
+		}
+		
 		$fullUrl = substr($this->baseUrl, 0, -4) . "public.php/webdav";
 		$options['auth'] = [$token, $password];
 		$options['save_to'] = "./$filename";
@@ -645,6 +656,40 @@ class FeatureContext implements Context, SnippetAcceptingContext {
 		PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode());
 	}
 
+	/**
+	 * @When /^Updating last share with$/
+	 * @param \Behat\Gherkin\Node\TableNode|null $formData
+	 */
+	public function updatingLastShare($body) {
+		$share_id = $this->lastShareData->data[0]->id;
+		$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/apps/files_sharing/api/v{$this->sharingApiVersion}/shares/$share_id";
+		$client = new Client();
+		$options = [];
+		if ($this->currentUser === 'admin') {
+			$options['auth'] = $this->adminUser;
+		} else {
+			$options['auth'] = [$this->currentUser, $this->regularUser];
+		}
+
+		if ($body instanceof \Behat\Gherkin\Node\TableNode) {
+			$fd = $body->getRowsHash();
+			if (array_key_exists('expireDate', $fd)){
+				$dateModification = $fd['expireDate'];
+				$fd['expireDate'] = date('Y-m-d', strtotime($dateModification));
+			}
+			$options['body'] = $fd;
+		}
+
+		try {
+			$this->response = $client->send($client->createRequest("PUT", $fullUrl, $options));
+		} catch (\GuzzleHttp\Exception\ClientException $ex) {
+			$this->response = $ex->getResponse();
+		}
+
+		PHPUnit_Framework_Assert::assertEquals(200, $this->response->getStatusCode());
+	}
+
+
 	public function createShare($user,
 								$path = null, 
 								$shareType = null, 
@@ -718,6 +763,7 @@ class FeatureContext implements Context, SnippetAcceptingContext {
 					return True;
 				}
 			}
+
 			return False;
 		} else {
 			if ($contentExpected == "A_TOKEN"){
@@ -821,6 +867,7 @@ class FeatureContext implements Context, SnippetAcceptingContext {
 	public function checkShareFields($body){
 		if ($body instanceof \Behat\Gherkin\Node\TableNode) {
 			$fd = $body->getRowsHash();
+
 			foreach($fd as $field => $value) {
 				PHPUnit_Framework_Assert::assertEquals(True, $this->isFieldInResponse($field, $value));
 			}
diff --git a/build/integration/features/sharing-v1.feature b/build/integration/features/sharing-v1.feature
index 4ca1966b9420a34b6b83d71b231893f3b2e9a6d1..df75a25e8e7e689c2c74cba9a8ae521236322fa5 100644
--- a/build/integration/features/sharing-v1.feature
+++ b/build/integration/features/sharing-v1.feature
@@ -72,11 +72,47 @@ Feature: sharing
       | path | welcome.txt |
       | shareType | 3 |
       | password | publicpw |
-    And Adding expiration date to last share
+    #And Adding expiration date to last share
+    And Updating last share with
+      | expireDate | +3 days |
     Then the OCS status code should be "100"
     And the HTTP status code should be "200"
     And Public shared file "welcome.txt" with password "publicpw" can be downloaded
 
+  Scenario: Creating a new public share, updating it and getting it's info
+    Given user "user0" exists
+    And As an "user0"
+    When creating a public share with
+      | path | FOLDER |
+      | shareType | 3 |
+    And Updating last share with
+      | expireDate | +3 days |
+      | password | publicpw |
+      | publicUpload | true |
+      | permissions | 7 |
+    And Getting info of last share 
+    Then the OCS status code should be "100"
+    And the HTTP status code should be "200"
+    And Share fields of last share match with
+      | id | A_NUMBER |
+      | item_type | folder |
+      | item_source | A_NUMBER |
+      | share_type | 3 |
+      | file_source | A_NUMBER |
+      | file_target | /FOLDER |
+      | permissions | 7 |
+      | stime | A_NUMBER |
+      | expiration | +3 days |
+      | token | A_TOKEN |
+      | storage | A_NUMBER |
+      | mail_send | 0 |
+      | uid_owner | user0 |
+      | storage_id | home::user0 |
+      | file_parent | A_NUMBER |
+      | displayname_owner | user0 |
+      | url | AN_URL |
+
+
   Scenario: getting all shares of a user using that user
     Given user "user0" exists
     And user "user1" exists