Testing Area/Behat Testing/Steps: Difference between revisions
From Mahara Wiki
< Testing Area | Behat Testing
m (→Logging In) |
m (→Logging In) |
||
Line 9: | Line 9: | ||
To create additional users. | To create additional users. | ||
{{note|The users will be given automatic PW of Password1 and email account will be [email protected]. | {{note|The users will be given an automatic PW of Password1 and the email account will be [email protected]. | ||
<br>If you want to set a user up with aditional admin permissions you have to do that manually.|reminder}} | <br>If you want to set a user up with aditional admin permissions you have to do that manually.|reminder}} | ||
Revision as of 12:44, 5 November 2014
Logging In
Logs you in as Admin for testing purpose
@Given I am logged in as the user "admin" with password "Password1"
To create additional users.
@Given the following "users" exist: | firstname | lastname | username | | Student | User | student | | Student2 | User2 | student2 |
Opening/Loading/Closing Pages
Checks, that current page PATH is equal to specified. eg; And I should be on "Profile" would be written as; And I should be on "artefact/internal/index.php"
@Then I should be on "page path"
Opens user profile.
@Given I am on user profile
Opens homepage.
@When I go to the homepage
Opens Mahara homepage.
@Given I am on homepage
Checks, that current page is the homepage.
@Then I should be on the homepage
Reloads the current page.
@Given I reload the page
Waits until the page is completely loaded. This step is auto-executed after every step.
@Given I wait until the page is ready
Opens specified page.
@Given I am on "page
Opens specified page.
@When I go to "page"
Moves backward one page in history.
@When I move backward one page
Moves forward one page in history
@When I move forward one page
Checks, that current page response status is equal to specified.
@Then the response status code should be 404
Checks, that current page response status is not equal to specified.
@Then the response status code should not be 404
Switching Frames/Windows
Switches to the specified iframe.
@Given I switch to "$iframename" iframe
Switches to the main Mahara frame.
@Given I switch to the main frame
Switches to the specified window. Useful when interacting with popup windows.
@Given I switch to “windowname” windows
Switches to the main Mahara window. Useful when you finish interacting with popup windows.
@Given I switch to the main window
Actions Requiring Waiting
Waits X seconds. Required after an action that requires data from an AJAX request.
@Then I wait "$numberofseconds" seconds
Waits until the provided element selector exists in the DOM
@Given I wait until "$element" "$selector" exists
Waits until the provided element does not exist in the DOM
@Given I wait until "element_string" "selector_string" does not exist
Click Actions
Click on the specified element inside a table row containing the specified text.
@Given I click on "element_string" "selector_string" in the "row_text_string" table row
@Given I drag "element_string" "selector1_string" and I drop it in "container_element_string" "selector2_string"
Generic mouse over action. Mouse over a element of the specified type.
@When I hover "$element" "$selector"
Click on the element of the specified type which is located inside the second element.
@When I click on "$element" "$selector"
Click on the specified element inside a table row containing the specified text.
@Given I click on "$element" "$selector" in the table row
Clicks link with specified id|title|alt|text.
@When I follow "id|title|alt|text"
Presses button with specified id|name|title|alt|value.
@When I press "BUTTON_STRING"
Drags and drops the specified element to the specified container. This step does not work in all the browsers, consider it experimental.
@Given I drag "$element" "$selector" and I drop it in "$containerelement" ”$selector"
Filling in Forms
Fills in form field with specified id|name|label|value.
@When I fill in "field" with "value"
Fills in form field with specified id|name|label|value.
@When I fill in "value" for "field"
Fills in form fields with provided table.
@When I fill in the following:
Selects option in select field with specified id|name|label|value.
@When I select "option" from "select"
Selects additional option in select field with specified id|name|label|value.
@When I additionally select "option" from "select"
Checks checkbox with specified id|name|label|value.
@When I check "option"
Unchecks checkbox with specified id|name|label|value.
@When I uncheck "option"
Checks, that form field with specified id|name|label|value has specified value.
@Then the "field" field should contain "value"
Checks, that form field with specified id|name|label|value doesn't have specified value.
@Then the "field" field should not contain "value"
Checks, that checkbox with specified in|name|label|value is checked.
@Then the "checkbox" checkbox should be checked
Checks, that checkbox with specified in|name|label|value is checked.
@Then the checkbox "checkbox" is|should be checked
Checks, that checkbox with specified in|name|label|value is unchecked.
@Then the "checkbox" checkbox should not be checked
Checks, that checkbox with specified in|name|label|value is unchecked.
@Then the checkbox "checkbox" should be unchecked|not be checked
Checks, that checkbox with specified in|name|label|value is unchecked.
@Then the checkbox "checkbox" is unchecked|not checked)
Attaches file to field with specified id|name|label|value. eg; "/var/www/html/mahara/test/behat/upload_files/Mahara Testing notes.odt.tar.gz" to "Upload file"
@When I attach the file "File Path and file name" to "field"
Fills a form with field/value data.
@Given I set the following fields to these values:
Sets the specified value to the field.
@Given I set the field "field_string" to "field_value_string"
Sets the specified value to the field with xpath.
@Given I set the field with xpath "fieldxpath_string" to "field_value_string"
Checks, the field matches the value.
@Then the field "field_string" matches value "field_value_string"
Checks, the field does not match the value.
@Then the field "field_string" does not match value "field_value_string"
Checks, the provided field/value matches.
@Then the following fields match these values:
Checks that the provided field/value pairs don't match.
@Then the following fields do not match these values:
Checks, that given select box contains the specified option.
@Then the "select_string" select box should contain "option_string"
Checks, that given select box contains the specified option.
@Then the "select_string" select box should not contain "option_string"
Checking For Specfic Visible Elements
Checks, that (?P<num>\d+) CSS elements exist on the page
@Then I should see (?P<num>\d+) "element" elements
Checks, that the specified element is visible. Only available in tests using Javascript.
@Then I should see the element "element" "selectortype"
Checks, that field with specified identifier exists on page.
@Then I should see the field "field"
Checks, that current page PATH matches regular expression.
@Then the url should match "pattern"
Prints current URL to console.
@Then print current URL
Checks, that the specified element is visible. Only available in tests using Javascript.
@Then "$elements" "$selector" should be visible @Then "$element" "$selector" should not be visible
Checks, that the specified element is visible inside the specified container. Only available in tests using Javascript.
@Then "$element" "$selector" in the "$elementcontainer" "$selector" should be visible
Checks, that the specified element is not visible inside the specified container. Only available in tests using Javascript.
@Then "$element" "$selector" in the "$elementcontainer" "$textselector" should not be visible
Checks, that page contains specified text. It also checks if the text is visible when running Javascript tests.
@Then I should see "$text"
Checks, that page doesn't contain specified text. When running Javascript tests it also considers that texts may be hidden.
@Then I should not see "$text"
Checks, that the specified element contains the specified text. When running Javascript tests it also considers that texts may be hidden.
@Then I should see "$text" in the "$element" “$sector”
Checks, that the specified element does not contain the specified text. When running Javascript tests it also considers that texts may be hidden.
@Then I should not see "$text" in the “$element" "$selector”
Checks, that the first specified element appears before the second one.
@Given "$element" "$selector" should appear before "$element" "$selector"
Checks, that the first specified element appears after the second one.
@Given "$element" "selector" should appear after $"element" $"selector"
Checks, that the first specified element appears after the second one.
@Given "following_element_string" "selector1_string" should appear after "preceding_element_string" "selector2_string"
Checks, that element of specified type is disabled.
@Then the "$element" "$selector" should be disabled
Checks, that element of specified type is enabled.
@Then the "$element" "$selector" should be enabled
Checks the provided element and selector type are readonly on the current page.
@Then the "$element" "$selector" should be readonly
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 "$element" "$selector" should exists
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 "$element" "$selector" should not exists
Checks that an element and selector type exists in another element and selector type on the current page.
-This step is for advanced users, use it if you don't find anything else suitable for what you need.
@Then "$element" "$selector" should exist in the "$element" "$selector"
Checks, that page contains text matching specified pattern.
@Then I should see text matching "pattern"
Checks, that page doesn't contain text matching specified pattern.
@Then I should not see text matching "pattern"
Checks, that HTML response contains specified string.
@Then the response should contain "text"
Checks, that HTML response doesn't contain specified string.
@Then the response should not contain "text"
Checks, that element with specified CSS contains specified text.
@Then I should see "text>" in the "element" element
Checks, that element with specified CSS doesn't contain specified text.
@Then I should not see "text" in the "element" element
Checks, that element with specified CSS contains specified HTML.
@Then the "element" element should contain "value"
Checks, that element with specified CSS doesn't contain specified HTML.
@Then the "element" element should not contain "value"
Checks, that element with specified CSS exists on page.
@Then I should see an? "element" element
Checks, that element with specified CSS doesn't exist on page.
@Then I should not see an? "element" element
Printing/Display
Prints last response to console.
@Then print last response
Prints current URL to console.
@Then print current URL
Ungrouped Steps
Opens last response content in browser.
@Then show last response
Internal step definition to find exceptions, debugging() messages and PHP debug messages.
@Given I look for exceptions
Follows the page redirection. Use this step after any action that shows a message and waits for a redirection
@Given I wait to be redirected
Accepts the currently displayed alert dialog. This step does not work in all the browsers, consider it experimental.
@Given I accept the currently displayed dialog
This step triggers cron like a user would do going to admin/cron.php.
@Given I trigger cron