Skip to content

Commit 6910c49

Browse files
committed
Add optional proof of possession test
The demo gssp does not require a secondary proof of posession step when the user visits the RA for vetting. This feature verifies just that.
1 parent bfae0fa commit 6910c49

File tree

3 files changed

+66
-0
lines changed

3 files changed

+66
-0
lines changed

tests/behat/features/bootstrap/RaContext.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,19 @@ public function iVetTheLastAddedSecondFactor()
7575
$this->vettingProcessIsCompleted($secondFactorId);
7676
}
7777

78+
/**
79+
* @Given /^I vet the last added second factor, not requiring proof of possession$/
80+
*/
81+
public function iVetTheLastAddedSecondFactorNoProofOfPossession()
82+
{
83+
$secondFactorId = $this->selfServiceContext->getVerifiedSecondFactorId();
84+
$activationCode = $this->selfServiceContext->getActivationCode();
85+
86+
$this->findsTokenForActivation($activationCode);
87+
$this->adminVerifiesUserIdentity($secondFactorId);
88+
$this->vettingProcessIsCompleted($secondFactorId);
89+
}
90+
7891
/**
7992
* @Given /^I vet a second factor with id "([^"]*)" and with activation code "([^"]*)"$/
8093
*/

tests/behat/features/bootstrap/SelfServiceContext.php

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,41 @@ public function registerNewSmsToken()
148148
$this->minkContext->assertPageContainsText('Check your inbox');
149149
}
150150

151+
/**
152+
* @When /^I register a new demogssp token$/
153+
*/
154+
public function iRegisterANewDemogsspToken()
155+
{
156+
// Click 'add token' on the overview page
157+
$this->minkContext->clickLink('Add token');
158+
159+
$this->minkContext->assertPageAddress('/registration/select-token');
160+
161+
// Select the dummy second factor type
162+
$this->minkContext->getSession()
163+
->getPage()
164+
->find('css', '[href="/registration/gssf/demogssp/initiate"]')->click();
165+
166+
$this->minkContext->assertPageAddress('/registration/gssf/demogssp/initiate');
167+
168+
// Start registration
169+
$this->minkContext->assertPageContainsText('Register with Demogssp');
170+
$this->minkContext->pressButton('Register with Demogssp');
171+
172+
// Register onthe dummy application
173+
$this->minkContext->assertPageAddress('http://localhost:1234/app_dev.php/registration');
174+
$this->minkContext->pressButton('Register user');
175+
176+
// Pass trough GSSP return action
177+
$this->minkContext->pressButton('Submit');
178+
179+
// Pass trough gateway
180+
$this->authContext->passTroughGatewayProxyAssertionConsumerService();
181+
182+
$this->minkContext->assertPageContainsText('Verify your e-mail');
183+
$this->minkContext->assertPageContainsText('Check your inbox');
184+
}
185+
151186
/**
152187
* @When I verify my e-mail address
153188
*/
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Feature: A RA vets tokens tokens registered in the selfservice portal
2+
In order to manage tokens
3+
As a RA
4+
I must be able to manage second factor tokens in RA
5+
6+
Scenario: Provision an institution and a user
7+
Given institution "institution-a.example.com" can "use_ra" from institution "institution-a.example.com"
8+
And institution "institution-a.example.com" can "select_raa" from institution "institution-a.example.com"
9+
And a user "Janis Bower" identified by "urn:collab:person:institution-a.example.com:janis-a-ra" from institution "institution-a.example.com"
10+
And the user "urn:collab:person:institution-a.example.com:janis-a-ra" has a vetted "yubikey"
11+
And the user "urn:collab:person:institution-a.example.com:janis-a-ra" has the role "ra" for institution "institution-a.example.com"
12+
13+
Scenario: Demo GSSP does not require proof of possession
14+
Given I am logged in into the selfservice portal as "joe-a1"
15+
And I register a new demogssp2 token
16+
And I verify my e-mail address
17+
When I am logged in into the ra portal as "jane-a-ra" with a "yubikey" token
18+
Then I vet the last added second factor, not requiring proof of possession

0 commit comments

Comments
 (0)