Merge branch 'MDL-38547_master' of git://github.com/dmonllao/moodle

This commit is contained in:
Eloy Lafuente (stronk7)
2013-04-01 22:32:06 +02:00
2 changed files with 98 additions and 1 deletions
@@ -0,0 +1,60 @@
@core_course @_cross_browser
Feature: Force group mode in a course
In order to use the same group mode all over the course
As a moodle teacher
I need to force the group mode of all course's activities
Background:
Given the following "users" exists:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@asd.com |
And the following "courses" exists:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
And the following "course enrolments" exists:
| user | course | role |
| teacher1 | C1 | editingteacher |
And I log in as "teacher1"
And I follow "Course 1"
And I turn editing mode on
And I add a "chat" to section "1" and I fill the form with:
| Name of this chat room | Chat room |
| Description | Chat description |
And I follow "Edit settings"
@javascript
Scenario: Forced group mode using separate groups
Given I fill the moodle form with:
| Group mode | Separate groups |
| Force group mode | Yes |
When I press "Save changes"
Then ".//a//img[contains(./@alt, 'Separate groups (forced mode)')]" "xpath_element" should not exists
And ".//img[contains(./@alt, 'Separate groups (forced mode)')]" "xpath_element" should exists
And I click on "//img[contains(./@alt, 'Separate groups (forced mode)')]" "xpath_element" in the "li.activity.chat" "css_element"
And ".//a//img[contains(./@alt, 'Separate groups (forced mode)')]" "xpath_element" should not exists
And ".//img[contains(./@alt, 'Separate groups (forced mode)')]" "xpath_element" should exists
@javascript
Scenario: Forced group mode using visible groups
Given I fill the moodle form with:
| Group mode | Visible groups |
| Force group mode | Yes |
And I press "Save changes"
Then ".//a//img[contains(./@alt, 'Visible groups (forced mode)')]" "xpath_element" should not exists
And ".//img[contains(./@alt, 'Visible groups (forced mode)')]" "xpath_element" should exists
And I click on "//img[contains(./@alt, 'Visible groups (forced mode)')]" "xpath_element" in the "li.activity.chat" "css_element"
And ".//a//img[contains(./@alt, 'Visible groups (forced mode)')]" "xpath_element" should not exists
And ".//img[contains(./@alt, 'Visible groups (forced mode)')]" "xpath_element" should exists
@javascript
Scenario: Forced group mode without groups
Given I fill the moodle form with:
| Group mode | No groups |
| Force group mode | Yes |
And I press "Save changes"
Then ".//a//img[contains(./@alt, 'No groups (forced mode)')]" "xpath_element" should not exists
And ".//img[contains(./@alt, 'No groups (forced mode)')]" "xpath_element" should exists
And I click on "//img[contains(./@alt, 'No groups (forced mode)')]" "xpath_element" in the "li.activity.chat" "css_element"
And ".//a//img[contains(./@alt, 'No groups (forced mode)')]" "xpath_element" should not exists
And ".//img[contains(./@alt, 'No groups (forced mode)')]" "xpath_element" should exists
+38 -1
View File
@@ -27,7 +27,8 @@
require_once(__DIR__ . '/../../behat/behat_base.php');
use Behat\Mink\Exception\ExpectationException as ExpectationException;
use Behat\Mink\Exception\ExpectationException as ExpectationException,
Behat\Mink\Exception\ElementNotFoundException as ElementNotFoundException;
/**
* Cross component steps definitions.
@@ -225,4 +226,40 @@ class behat_general extends behat_base {
}
}
/**
* Checks the provided element and selector type exists in the current page. This step is for advanced users, use it if you don't find anything else suitable for what you need.
*
* @Then /^"(?P<element_string>(?:[^"]|\\")*)" "(?P<selector_string>[^"]*)" should exists$/
* @throws ElementNotFoundException Thrown by behat_base::find
* @param string $element The locator of the specified selector
* @param string $selectortype The selector type
*/
public function should_exists($element, $selectortype) {
// Getting Mink selector and locator.
list($selector, $locator) = $this->transform_selector($selectortype, $element);
// Will throw an ElementNotFoundException if it does not exist.
$this->find($selector, $locator);
}
/**
* Checks that the provided element and selector type not exists in the current page. This step is for advanced users, use it if you don't find anything else suitable for what you need.
*
* @Then /^"(?P<element_string>(?:[^"]|\\")*)" "(?P<selector_string>[^"]*)" should not exists$/
* @throws ExpectationException
* @param string $element The locator of the specified selector
* @param string $selectortype The selector type
*/
public function should_not_exists($element, $selectortype) {
try {
$this->should_exists($element, $selectortype);
throw new ExpectationException('The "' . $element . '" "' . $selectortype . '" exists in the current page', $this->getSession());
}catch (ElementNotFoundException $e) {
// It passes.
return;
}
}
}