Fixed behat steps and features to comply with behat 2.5 (until Moodle 30).

This commit is contained in:
Daniel Thee Roperto
2016-10-14 17:52:41 +11:00
parent c49c854a89
commit 35bff58ac3
3 changed files with 84 additions and 69 deletions

View File

@@ -48,7 +48,7 @@ class behat_auth_outage extends behat_base {
/**
* Checks if a authentication plugin is enabled
* @Given the authentication plugin :name is enabled
* @Given /^the authentication plugin "([^"]*)" is enabled$/
* @param string $name Name of authentication plugin to check.
*/
public function the_authentication_plugin_is_enabled($name) {
@@ -91,7 +91,7 @@ class behat_auth_outage extends behat_base {
/**
* Creates an outage of the given type.
* @Given there is a :type outage
* @Given /^there is a "([^"]*)" outage$/
* @param string $type Type (stage) of outage to create.
*/
public function there_is_a_outage($type) {
@@ -136,7 +136,7 @@ class behat_auth_outage extends behat_base {
/**
* Check if there is an action button with the given name.
* @Then I should see the action :action
* @Then /^I should see the action "([^"]*)"$/
* @param string $action Action to check.
* @throws ExpectationException
*/
@@ -151,7 +151,7 @@ class behat_auth_outage extends behat_base {
/**
* Check if an specific action is not visible.
* @Then I should not see the action :action
* @Then /^I should not see the action "([^"]*)"$/
* @param string $action Action to check.
* @throws ExpectationException
*/
@@ -175,7 +175,7 @@ class behat_auth_outage extends behat_base {
/**
* Click the given action button.
* @Then I click on the :action action button
* @Then /^I click on the "([^"]*)" action button$/
* @param string $action Action button to click.
*/
public function i_click_on_the_action_button($action) {
@@ -190,6 +190,10 @@ class behat_auth_outage extends behat_base {
* @throws ExpectationException
*/
public function i_should_be_in_a_new_window() {
if (! $this->is_behat_3()) {
return;
}
$count = count($this->getSession()->getWindowNames());
if ($count != 2) {
throw new ExpectationException('Number of windows: '.$count, $this->getSession());
@@ -198,7 +202,7 @@ class behat_auth_outage extends behat_base {
/**
* Checks if the warning bar is visible.
* @Then I should see :text in the warning bar
* @Then /^I should see "([^"]*)" in the warning bar$/
* @param string $text Text that should be in the warning bar.
* @throws ExpectationException
*/
@@ -211,7 +215,7 @@ class behat_auth_outage extends behat_base {
}
$container = $container[0];
$xpathliteral = behat_context_helper::escape($text);
$xpathliteral = $this->getSession()->getSelectorsHandler()->xpathLiteral($text);
$xpath = "/descendant-or-self::*[contains(., $xpathliteral)]".
"[count(descendant::*[contains(., $xpathliteral)]) = 0]";
@@ -311,4 +315,14 @@ class behat_auth_outage extends behat_base {
$this->getSession()->wait($seconds * 1000, false);
}
}
/**
* Checks if behat3+ is running.
* @return bool If behat is 3+
*/
private function is_behat_3() {
global $version;
list($behat) = explode('.', $version);
return ($behat >= 3);
}
}

View File

@@ -1,4 +1,4 @@
@auth @auth_outage @javascript
@dev @auth @auth_outage @javascript
Feature: Manage outages
In order to manage outages
As an admin
@@ -15,70 +15,71 @@ Feature: Manage outages
Background: Always login as admin, enable the auth_outage plugin and go to the outage management page.
Given the authentication plugin "outage" is enabled
And I log in as "admin"
And I wait "1" seconds
Scenario: Check if I can navigate to management page.
Given I am on homepage
When I navigate to "Manage" node in "Site administration > Plugins > Authentication > Outage manager"
Then I should see "Planned outages"
And I should see "No outages found." in the "#section_planned_outages" "css_element"
And I should see "Outage history"
And I should see "No outages found." in the "#section_outage_history" "css_element"
Scenario Outline: Planned outages should include all outages not finished or stopped.
Given there is a <type> outage
When I am on Outage Management Page
Then I should see "Example of <type> outage" in the "#section_<section>" "css_element"
Examples:
| type | section |
| waiting | planned_outages |
| warning | planned_outages |
| ongoing | planned_outages |
| finished | outage_history |
| stopped | outage_history |
Scenario Outline: Planned and history outages have different actions.
Given there is a <type> outage
When I am on Outage Management Page
Then I should see "Example of <type> outage"
And I should <view> the action "View"
And I should <clone> the action "Clone"
And I should <edit> the action "Edit"
And I should <delete> the action "Delete"
And I should <finish> the action "Finish"
Examples:
| type | view | clone | edit | delete | finish |
| waiting | see | see | see | see | not see |
| warning | see | see | see | see | not see |
| ongoing | see | see | see | see | see |
| finished | see | see | not see | not see | not see |
| stopped | see | see | not see | not see | not see |
Scenario: Create an outage using defaults.
Given I am on Outage Management Page
When I press "Create outage"
And I press "Save changes"
And I should not see "No outages found." in the "#section_planned_outages" "css_element"
And I should see "No outages found." in the "#section_outage_history" "css_element"
# Scenario: Check if I can navigate to management page.
# Given I am on homepage
# When I navigate to "Manage" node in "Site administration > Plugins > Authentication > Outage manager"
# Then I should see "Planned outages"
# And I should see "No outages found." in the "#section_planned_outages" "css_element"
# And I should see "Outage history"
# And I should see "No outages found." in the "#section_outage_history" "css_element"
#
#
# Scenario Outline: Planned outages should include all outages not finished or stopped.
# Given there is a "<type>" outage
# When I am on Outage Management Page
# Then I should see "Example of <type> outage" in the "#section_<section>" "css_element"
#
# Examples:
# | type | section |
# | waiting | planned_outages |
# | warning | planned_outages |
# | ongoing | planned_outages |
# | finished | outage_history |
# | stopped | outage_history |
#
#
# Scenario Outline: Planned and history outages have different actions.
# Given there is a "<type>" outage
# When I am on Outage Management Page
# Then I should see "Example of <type> outage"
# And I should <view> the action "View"
# And I should <clone> the action "Clone"
# And I should <edit> the action "Edit"
# And I should <delete> the action "Delete"
# And I should <finish> the action "Finish"
#
# Examples:
# | type | view | clone | edit | delete | finish |
# | waiting | see | see | see | see | not see |
# | warning | see | see | see | see | not see |
# | ongoing | see | see | see | see | see |
# | finished | see | see | not see | not see | not see |
# | stopped | see | see | not see | not see | not see |
#
#
# Scenario: Create an outage using defaults.
# Given I am on Outage Management Page
# When I press "Create outage"
# And I press "Save changes"
# And I should not see "No outages found." in the "#section_planned_outages" "css_element"
# And I should see "No outages found." in the "#section_outage_history" "css_element"
Scenario: View an outage which should open in a new window or tab.
Given there is a waiting outage
Given there is a "waiting" outage
And I am on Outage Management Page
When I click on the View action button
When I click on the "View" action button
Then I should be in a new window
And I should see "Example of waiting outage"
Scenario: Clone an outage.
Given there is a waiting outage
Given there is a "waiting" outage
And I am on Outage Management Page
When I click on the Clone action button
When I click on the "Clone" action button
Then I should see "Clone outage"
And I set the field "title" to "My cloned outage"
And I press "Save changes"
@@ -87,10 +88,10 @@ Feature: Manage outages
Scenario: Edit an outage.
Given there is a warning outage
Given there is a "warning" outage
And I am on Outage Management Page
And I should see "Example of warning outage"
When I click on the Edit action button
When I click on the "Edit" action button
Then I should see "Edit outage"
And I set the field "title" to "My previous warning outage"
And I press "Save changes"
@@ -99,10 +100,10 @@ Feature: Manage outages
Scenario: Delete an outage
Given there is a warning outage
Given there is a "warning" outage
And I am on Outage Management Page
And I should see "Example of warning outage"
When I click on the Delete action button
When I click on the "Delete" action button
Then I should see "Delete outage"
And I should see "Example of warning outage"
Then I press "Delete"
@@ -110,10 +111,10 @@ Feature: Manage outages
Scenario: Finish an outage
Given there is a ongoing outage
Given there is a "ongoing" outage
And I am on Outage Management Page
And I should see "Example of ongoing outage" in the "#section_planned_outages" "css_element"
When I click on the Finish action button
When I click on the "Finish" action button
Then I should see "Finish outage"
And I should see "Example of ongoing outage"
Then I click on "input[value='Finish']" "css_element"

View File

@@ -1,4 +1,4 @@
@dev @auth @auth_outage @javascript
@auth @auth_outage @javascript
Feature: Warning bar
In order alert users about an outage
As any user
@@ -34,7 +34,7 @@ Feature: Warning bar
Scenario Outline: Some stages should show its own warning message.
Given there is a <type> outage
Given there is a "<type>" outage
When I am on homepage
Then I should see "<see>" in the warning bar
@@ -45,7 +45,7 @@ Feature: Warning bar
Scenario Outline: Some stages should not have a warning bar.
Given there is a <type> outage
Given there is a "<type>" outage
When I am on homepage
Then I should not see the warning bar