|  |  | @ -69,6 +69,23 @@ trait Provisioning { | 
			
		
	
		
			
				
					|  |  |  | 		Assert::assertEquals(200, $this->response->getStatusCode()); | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 	/** | 
			
		
	
		
			
				
					|  |  |  | 	 * @Given /^user "([^"]*)" with displayname "([^"]*)" exists$/ | 
			
		
	
		
			
				
					|  |  |  | 	 * @param string $user | 
			
		
	
		
			
				
					|  |  |  | 	 */ | 
			
		
	
		
			
				
					|  |  |  | 	public function assureUserWithDisplaynameExists($user, $displayname) { | 
			
		
	
		
			
				
					|  |  |  | 		try { | 
			
		
	
		
			
				
					|  |  |  | 			$this->userExists($user); | 
			
		
	
		
			
				
					|  |  |  | 		} catch (\GuzzleHttp\Exception\ClientException $ex) { | 
			
		
	
		
			
				
					|  |  |  | 			$previous_user = $this->currentUser; | 
			
		
	
		
			
				
					|  |  |  | 			$this->currentUser = "admin"; | 
			
		
	
		
			
				
					|  |  |  | 			$this->creatingTheUser($user, $displayname); | 
			
		
	
		
			
				
					|  |  |  | 			$this->currentUser = $previous_user; | 
			
		
	
		
			
				
					|  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  | 		$this->userExists($user); | 
			
		
	
		
			
				
					|  |  |  | 		Assert::assertEquals(200, $this->response->getStatusCode()); | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 	/** | 
			
		
	
		
			
				
					|  |  |  | 	 * @Given /^user "([^"]*)" does not exist$/
 | 
			
		
	
		
			
				
					|  |  |  | 	 * @param string $user | 
			
		
	
	
		
			
				
					|  |  | @ -93,7 +110,7 @@ trait Provisioning { | 
			
		
	
		
			
				
					|  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 	public function creatingTheUser($user) { | 
			
		
	
		
			
				
					|  |  |  | 	public function creatingTheUser($user, $displayname = '') { | 
			
		
	
		
			
				
					|  |  |  | 		$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/cloud/users"; | 
			
		
	
		
			
				
					|  |  |  | 		$client = new Client(); | 
			
		
	
		
			
				
					|  |  |  | 		$options = []; | 
			
		
	
	
		
			
				
					|  |  | @ -105,6 +122,9 @@ trait Provisioning { | 
			
		
	
		
			
				
					|  |  |  | 			'userid' => $user, | 
			
		
	
		
			
				
					|  |  |  | 			'password' => '123456' | 
			
		
	
		
			
				
					|  |  |  | 		]; | 
			
		
	
		
			
				
					|  |  |  | 		if ($displayname !== '') { | 
			
		
	
		
			
				
					|  |  |  | 			$options['form_params']['displayName'] = $displayname; | 
			
		
	
		
			
				
					|  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  | 		$options['headers'] = [ | 
			
		
	
		
			
				
					|  |  |  | 			'OCS-APIREQUEST' => 'true', | 
			
		
	
		
			
				
					|  |  |  | 		]; | 
			
		
	
	
		
			
				
					|  |  | @ -540,6 +560,20 @@ trait Provisioning { | 
			
		
	
		
			
				
					|  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 	/** | 
			
		
	
		
			
				
					|  |  |  | 	 * @Then /^detailed users returned are$/ | 
			
		
	
		
			
				
					|  |  |  | 	 * @param \Behat\Gherkin\Node\TableNode|null $usersList | 
			
		
	
		
			
				
					|  |  |  | 	 */ | 
			
		
	
		
			
				
					|  |  |  | 	public function theDetailedUsersShouldBe($usersList) { | 
			
		
	
		
			
				
					|  |  |  | 		if ($usersList instanceof \Behat\Gherkin\Node\TableNode) { | 
			
		
	
		
			
				
					|  |  |  | 			$users = $usersList->getRows(); | 
			
		
	
		
			
				
					|  |  |  | 			$usersSimplified = $this->simplifyArray($users); | 
			
		
	
		
			
				
					|  |  |  | 			$respondedArray = $this->getArrayOfDetailedUsersResponded($this->response); | 
			
		
	
		
			
				
					|  |  |  | 			$respondedArray = array_keys($respondedArray); | 
			
		
	
		
			
				
					|  |  |  | 			Assert::assertEquals($usersSimplified, $respondedArray); | 
			
		
	
		
			
				
					|  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 	/** | 
			
		
	
		
			
				
					|  |  |  | 	 * @Then /^groups returned are$/ | 
			
		
	
		
			
				
					|  |  |  | 	 * @param \Behat\Gherkin\Node\TableNode|null $groupsList | 
			
		
	
	
		
			
				
					|  |  | @ -599,6 +633,18 @@ trait Provisioning { | 
			
		
	
		
			
				
					|  |  |  | 		return $extractedElementsArray; | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 	/** | 
			
		
	
		
			
				
					|  |  |  | 	 * Parses the xml answer to get the array of detailed users returned. | 
			
		
	
		
			
				
					|  |  |  | 	 * | 
			
		
	
		
			
				
					|  |  |  | 	 * @param ResponseInterface $resp | 
			
		
	
		
			
				
					|  |  |  | 	 * @return array | 
			
		
	
		
			
				
					|  |  |  | 	 */ | 
			
		
	
		
			
				
					|  |  |  | 	public function getArrayOfDetailedUsersResponded($resp) { | 
			
		
	
		
			
				
					|  |  |  | 		$listCheckedElements = simplexml_load_string($resp->getBody())->data[0]->users; | 
			
		
	
		
			
				
					|  |  |  | 		$extractedElementsArray = json_decode(json_encode($listCheckedElements), 1); | 
			
		
	
		
			
				
					|  |  |  | 		return $extractedElementsArray; | 
			
		
	
		
			
				
					|  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 	/** | 
			
		
	
		
			
				
					|  |  |  | 	 * Parses the xml answer to get the array of groups returned. | 
			
		
	
		
			
				
					|  |  |  | 	 * | 
			
		
	
	
		
			
				
					|  |  | 
 |