Merge branch 'MDL-70167-310' of git://github.com/andrewnicols/moodle into MOODLE_310_STABLE

This commit is contained in:
Adrian Greeve
2020-12-03 09:57:42 +08:00
3 changed files with 57 additions and 46 deletions
@@ -19,27 +19,27 @@ Feature: Atto with enable/disable function.
@javascript
Scenario: Check disable Atto editor.
When I set the field "mycontrol" to "Disable"
Then the "disabled" attribute of "button.atto_collapse_button" "css_element" should contain "disabled"
And the "disabled" attribute of "button.atto_title_button" "css_element" should contain "disabled"
And the "disabled" attribute of "button.atto_bold_button" "css_element" should contain "disabled"
And the "disabled" attribute of "button.atto_italic_button" "css_element" should contain "disabled"
And the "disabled" attribute of "button.atto_unorderedlist_button_insertUnorderedList" "css_element" should contain "disabled"
And the "disabled" attribute of "button.atto_orderedlist_button_insertOrderedList" "css_element" should contain "disabled"
And the "disabled" attribute of "button.atto_link_button" "css_element" should contain "disabled"
And the "disabled" attribute of "button.atto_link_button_unlink" "css_element" should contain "disabled"
And the "disabled" attribute of "button.atto_image_button" "css_element" should contain "disabled"
Then the "disabled" attribute of "button.atto_collapse_button" "css_element" should be set
And the "disabled" attribute of "button.atto_title_button" "css_element" should be set
And the "disabled" attribute of "button.atto_bold_button" "css_element" should be set
And the "disabled" attribute of "button.atto_italic_button" "css_element" should be set
And the "disabled" attribute of "button.atto_unorderedlist_button_insertUnorderedList" "css_element" should be set
And the "disabled" attribute of "button.atto_orderedlist_button_insertOrderedList" "css_element" should be set
And the "disabled" attribute of "button.atto_link_button" "css_element" should be set
And the "disabled" attribute of "button.atto_link_button_unlink" "css_element" should be set
And the "disabled" attribute of "button.atto_image_button" "css_element" should be set
And the "contenteditable" attribute of "div#id_myeditoreditable" "css_element" should contain "false"
@javascript
Scenario: Check enable Atto editor.
When I set the field "mycontrol" to "Enable"
Then "button.atto_collapse_button[disabled]" "css_element" should not exist
And "button.atto_title_button[disabled]" "css_element" should not exist
And "button.atto_bold_button[disabled]" "css_element" should not exist
And "button.atto_italic_button[disabled]" "css_element" should not exist
And "button.atto_unorderedlist_button_insertUnorderedList[disabled]" "css_element" should not exist
And "button.atto_orderedlist_button_insertOrderedList[disabled]" "css_element" should not exist
And "button.atto_link_button[disabled]" "css_element" should not exist
And "button.atto_link_button_unlink[disabled]" "css_element" should not exist
And "button.atto_image_button[disabled]" "css_element" should not exist
Then the "disabled" attribute of "button.atto_collapse_button" "css_element" should not be set
And the "disabled" attribute of "button.atto_title_button" "css_element" should not be set
And the "disabled" attribute of "button.atto_bold_button" "css_element" should not be set
And the "disabled" attribute of "button.atto_italic_button" "css_element" should not be set
And the "disabled" attribute of "button.atto_unorderedlist_button_insertUnorderedList" "css_element" should not be set
And the "disabled" attribute of "button.atto_orderedlist_button_insertOrderedList" "css_element" should not be set
And the "disabled" attribute of "button.atto_link_button" "css_element" should not be set
And the "disabled" attribute of "button.atto_link_button_unlink" "css_element" should not be set
And the "disabled" attribute of "button.atto_image_button" "css_element" should not be set
And the "contenteditable" attribute of "div#id_myeditoreditable" "css_element" should contain "true"
@@ -23,9 +23,9 @@ Feature: Text area with enable/disable function.
@javascript
Scenario: Check disable Text area editor.
When I set the field "mycontrol" to "Disable"
Then the "readonly" attribute of "textarea#id_myeditor" "css_element" should contain "readonly"
Then the "readonly" attribute of "textarea#id_myeditor" "css_element" should be set
@javascript
Scenario: Check enable Text area editor.
When I set the field "mycontrol" to "Enable"
Then "textarea#id_myeditor[readonly]" "css_element" should not exist
Then the "readonly" attribute of "textarea#id_myeditor" "css_element" should not be set
+37 -26
View File
@@ -945,13 +945,7 @@ EOF;
* @param string $selectortype The type of element where we are looking in.
*/
public function the_element_should_be_disabled($element, $selectortype) {
// Transforming from steps definitions selector/locator format to Mink format and getting the NodeElement.
$node = $this->get_selected_node($selectortype, $element);
if (!$node->hasAttribute('disabled')) {
throw new ExpectationException('The element "' . $element . '" is not disabled', $this->getSession());
}
$this->the_attribute_of_should_be_set("disabled", $element, $selectortype, false);
}
/**
@@ -963,13 +957,7 @@ EOF;
* @param string $selectortype The type of where we look
*/
public function the_element_should_be_enabled($element, $selectortype) {
// Transforming from steps definitions selector/locator format to mink format and getting the NodeElement.
$node = $this->get_selected_node($selectortype, $element);
if ($node->hasAttribute('disabled')) {
throw new ExpectationException('The element "' . $element . '" is not enabled', $this->getSession());
}
$this->the_attribute_of_should_be_set("disabled", $element, $selectortype, true);
}
/**
@@ -981,12 +969,7 @@ EOF;
* @param string $selectortype The type of element where we are looking in.
*/
public function the_element_should_be_readonly($element, $selectortype) {
// Transforming from steps definitions selector/locator format to Mink format and getting the NodeElement.
$node = $this->get_selected_node($selectortype, $element);
if (!$node->hasAttribute('readonly')) {
throw new ExpectationException('The element "' . $element . '" is not readonly', $this->getSession());
}
$this->the_attribute_of_should_be_set("readonly", $element, $selectortype, false);
}
/**
@@ -998,12 +981,7 @@ EOF;
* @param string $selectortype The type of element where we are looking in.
*/
public function the_element_should_not_be_readonly($element, $selectortype) {
// Transforming from steps definitions selector/locator format to Mink format and getting the NodeElement.
$node = $this->get_selected_node($selectortype, $element);
if ($node->hasAttribute('readonly')) {
throw new ExpectationException('The element "' . $element . '" is readonly', $this->getSession());
}
$this->the_attribute_of_should_be_set("readonly", $element, $selectortype, true);
}
/**
@@ -1251,6 +1229,39 @@ EOF;
$this->resize_window($windowsize, $windowviewport === 'viewport');
}
/**
* Checks whether there the specified attribute is set or not.
*
* @Then the :attribute attribute of :element :selectortype should be set
* @Then the :attribute attribute of :element :selectortype should :not be set
*
* @throws ExpectationException
* @param string $attribute Name of attribute
* @param string $element The locator of the specified selector
* @param string $selectortype The selector type
* @param string $not
*/
public function the_attribute_of_should_be_set($attribute, $element, $selectortype, $not = null) {
// Get the container node (exception if it doesn't exist).
$containernode = $this->get_selected_node($selectortype, $element);
$hasattribute = $containernode->hasAttribute($attribute);
if ($not && $hasattribute) {
$value = $containernode->getAttribute($attribute);
// Should not be set but is.
throw new ExpectationException(
"The attribute \"{$attribute}\" should not be set but has a value of '{$value}'",
$this->getSession()
);
} else if (!$not && !$hasattribute) {
// Should be set but is not.
throw new ExpectationException(
"The attribute \"{$attribute}\" should be set but is not",
$this->getSession()
);
}
}
/**
* Checks whether there is an attribute on the given element that contains the specified text.
*