MDL-39051 behat: New tests

To cover all course controls functionalities with
and without Javascript and with and without paged
course mode.
This commit is contained in:
David Monllao
2013-05-09 17:20:58 +08:00
parent 0e575f010e
commit b576bdc75d
4 changed files with 301 additions and 3 deletions
+165
View File
@@ -0,0 +1,165 @@
@core @core_course
Feature: Course activity controls works as expected
In order to manage my course's activities
As a teacher
I need to edit, hide, show and indent activities inside course sections
# This two scenario outlines contains exactly the same steps, the
# only difference is whether JS is enabled or not; we can not use
# Background sections when using Scenario Outlines because of Behat
# framework restrictions.
# We are testing:
# * Javascript on and off
# * Topics and weeks course formats
# * Course controls without paged mode
# * Course controls with paged mode in the course home page
# * Course controls with paged mode in a section's page
@javascript @_cross_browser
Scenario Outline: General activities course controls using topics and weeks formats, and paged mode and not paged mode works as expected
Given the following "users" exists:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@asd.com |
And the following "courses" exists:
| fullname | shortname | format | coursedisplay | numsections |
| Course 1 | C1 | <courseformat> | <coursedisplay> | 5 |
And the following "course enrolments" exists:
| user | course | role |
| teacher1 | C1 | editingteacher |
And I log in as "teacher1"
And I follow "Course 1"
When I follow <targetpage>
And I press "Turn editing on"
Then I should see "Turn editing off"
And I press "Turn editing off"
And "Turn editing on" "button" should exists
And I follow "Turn editing on"
And "Turn editing off" "button" should exists
And I follow "Turn editing off"
And I should see "Turn editing on"
And "Turn editing on" "button" should exists
And I turn editing mode on
And I click on "Delete Recent activity block" "link"
And I press "Yes"
And "#section-2" "css_element" <should_see_other_sections> exists
And I add a "Forum" to section "1" and I fill the form with:
| Forum name | Test forum name 1 |
| Description | Test forum description 1 |
And I add a "Forum" to section "1" and I fill the form with:
| Forum name | Test forum name 2 |
| Description | Test forum description 2 |
And "#section-2" "css_element" <should_see_other_sections> exists
And I indent right "Test forum name 1" activity
And "#section-2" "css_element" <should_see_other_sections> exists
And I indent left "Test forum name 1" activity
And "#section-2" "css_element" <should_see_other_sections> exists
And I click on "Update" "link" in the "Test forum name 1" activity
And I should see "Updating Forum"
And I should see "Display description on course page"
And I press "Save and return to course"
And "#section-2" "css_element" <should_see_other_sections> exists
And I click on "Hide" "link" in the "Test forum name 1" activity
And "#section-2" "css_element" <should_see_other_sections> exists
And I delete "Test forum name 1" activity
And "#section-2" "css_element" <should_see_other_sections> exists
And I should not see "Test forum name 1" in the ".region-content" "css_element"
And I duplicate "Test forum name 2" activity editing the new copy with:
| Forum name | Edited test forum name 2 |
And "#section-2" "css_element" <should_see_other_sections> exists
And I should see "Test forum name 2"
And I should see "Edited test forum name 2"
And I hide section "1"
And "#section-2" "css_element" <should_see_other_sections> exists
And section "1" should be hidden
And I show section "1"
And "#section-2" "css_element" <should_see_other_sections> exists
And section "1" should be visible
And I add the "Section links" block
And "#section-2" "css_element" <should_see_other_sections> exists
And I should see "1 2 3 4 5" in the ".block_section_links" "css_element"
And I click on "2" "link" in the ".block_section_links" "css_element"
And I <should_see_other_sections_following_block_sections_links> see "Test forum name 2"
Examples:
| courseformat | coursedisplay | targetpage | should_see_other_sections | should_see_other_sections_following_block_sections_links |
| topics | 0 | "Course 1" | should | should |
| topics | 1 | "Topic 1" | should not | should not |
| topics | 1 | "Course 1" | should | should not |
| weeks | 0 | "Course 1" | should | should |
| weeks | 1 | "1 January - 7 January" | should not | should not |
| weeks | 1 | "Course 1" | should | should not |
Scenario Outline: General activities course controls using topics and weeks formats, and paged mode and not paged mode works as expected
Given the following "users" exists:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@asd.com |
And the following "courses" exists:
| fullname | shortname | format | coursedisplay | numsections |
| Course 1 | C1 | <courseformat> | <coursedisplay> | 5 |
And the following "course enrolments" exists:
| user | course | role |
| teacher1 | C1 | editingteacher |
And I log in as "teacher1"
And I follow "Course 1"
When I follow <targetpage>
And I press "Turn editing on"
Then I should see "Turn editing off"
And I press "Turn editing off"
And "Turn editing on" "button" should exists
And I follow "Turn editing on"
And "Turn editing off" "button" should exists
And I follow "Turn editing off"
And I should see "Turn editing on"
And "Turn editing on" "button" should exists
And I turn editing mode on
And I click on "Delete Recent activity block" "link"
And I press "Yes"
And "#section-2" "css_element" <should_see_other_sections> exists
And I add a "Forum" to section "1" and I fill the form with:
| Forum name | Test forum name 1 |
| Description | Test forum description 1 |
And I add a "Forum" to section "1" and I fill the form with:
| Forum name | Test forum name 2 |
| Description | Test forum description 2 |
And "#section-2" "css_element" <should_see_other_sections> exists
And I indent right "Test forum name 1" activity
And "#section-2" "css_element" <should_see_other_sections> exists
And I indent left "Test forum name 1" activity
And "#section-2" "css_element" <should_see_other_sections> exists
And I click on "Update" "link" in the "Test forum name 1" activity
And I should see "Updating Forum"
And I should see "Display description on course page"
And I press "Save and return to course"
And "#section-2" "css_element" <should_see_other_sections> exists
And I click on "Hide" "link" in the "Test forum name 1" activity
And "#section-2" "css_element" <should_see_other_sections> exists
And I delete "Test forum name 1" activity
And "#section-2" "css_element" <should_see_other_sections> exists
And I should not see "Test forum name 1" in the ".region-content" "css_element"
And I duplicate "Test forum name 2" activity editing the new copy with:
| Forum name | Edited test forum name 2 |
And "#section-2" "css_element" <should_see_other_sections> exists
And I should see "Test forum name 2"
And I should see "Edited test forum name 2"
And I hide section "1"
And "#section-2" "css_element" <should_see_other_sections> exists
And section "1" should be hidden
And I show section "1"
And "#section-2" "css_element" <should_see_other_sections> exists
And section "1" should be visible
And I add the "Section links" block
And "#section-2" "css_element" <should_see_other_sections> exists
And I should see "1 2 3 4 5" in the ".block_section_links" "css_element"
And I click on "2" "link" in the ".block_section_links" "css_element"
And I <should_see_other_sections_following_block_sections_links> see "Test forum name 2"
Examples:
| courseformat | coursedisplay | targetpage | should_see_other_sections | should_see_other_sections_following_block_sections_links |
| topics | 0 | "Course 1" | should | should |
| topics | 1 | "Topic 1" | should not | should not |
| topics | 1 | "Course 1" | should | should not |
| weeks | 0 | "Course 1" | should | should |
| weeks | 1 | "1 January - 7 January" | should not | should not |
| weeks | 1 | "Course 1" | should | should not |
@@ -0,0 +1,73 @@
@core @core_course
Feature: Activities can be moved between sections
In order to rearrange my course contents
As a teacher
I need to move activities between sections
Background:
Given the following "users" exists:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@asd.com |
And the following "courses" exists:
| fullname | shortname | format | coursedisplay | numsections |
| Course 1 | C1 | topics | 0 | 5 |
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 follow "Delete Recent activity block"
And I press "Yes"
And I follow "Configure Navigation block"
And I fill the moodle form with:
| Visible | Yes |
And I press "Save changes"
And I add a "Forum" to section "1" and I fill the form with:
| Forum name | Test forum name |
| Description | Test forum description |
@javascript @_cross_browser
Scenario: Move activities in a single page course with Javascript enabled
When I move "Test forum name" activity to section "2"
And I reload the page
Then I should see "Test forum name" in the "#section-2" "css_element"
And I should not see "Test forum name" in the "#section-1" "css_element"
@javascript @_cross_browser
Scenario: Move activities in the course home with Javascript enabled using paged mode
Given I follow "Edit settings"
And I fill the moodle form with:
| Course layout | Show one section per page |
And I press "Save changes"
When I move "Test forum name" activity to section "2"
# This reload step is added because of drap&drop & yui dd problem
And I reload the page
Then I should see "Test forum name" in the "#section-2" "css_element"
And I should not see "Test forum name" in the "#section-1" "css_element"
Scenario: Move activities in a single page course with Javascript disabled
When I move "Test forum name" activity to section "2"
Then I should see "Test forum name" in the "#section-2" "css_element"
And I should not see "Test forum name" in the "#section-1" "css_element"
Scenario: Move activities in the course home with Javascript disabled using paged mode
Given I follow "Edit settings"
And I fill the moodle form with:
| Course layout | Show one section per page |
And I press "Save changes"
When I move "Test forum name" activity to section "2"
Then I should see "Test forum name" in the "#section-2" "css_element"
And I should not see "Test forum name" in the "#section-1" "css_element"
Scenario: Move activities in a course section with Javascript disabled using paged mode
Given I follow "Edit settings"
And I fill the moodle form with:
| Course layout | Show one section per page |
And I press "Save changes"
And I add a "Forum" to section "1" and I fill the form with:
| Forum name | Second forum name |
| Description | Second forum description |
And I follow "Topic 1"
When I move "Second forum name" activity to section "1"
Then "Second forum name" "link" should appear before "Test forum name" "link"
+55
View File
@@ -0,0 +1,55 @@
@core @core_course
Feature: Sections can be moved
In order to rearrange my course contents
As a teacher
I need to move sections up and down
Background:
Given the following "users" exists:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@asd.com |
And the following "courses" exists:
| fullname | shortname | format | coursedisplay | numsections |
| Course 1 | C1 | topics | 0 | 5 |
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
Scenario: Move up and down a section with Javascript disabled in a single page course
Given I add a "Forum" to section "1" and I fill the form with:
| Forum name | Test forum name |
| Description | Test forum description |
When I move down section "1"
Then I should see "Test forum name" in the "#section-2" "css_element"
And I move up section "2"
And I should see "Test forum name" in the "#section-1" "css_element"
Scenario: Move up and down a section with Javascript disabled in the course home of a course using paged mode
Given I follow "Edit settings"
And I fill the moodle form with:
| Course layout | Show one section per page |
And I press "Save changes"
And I add a "Forum" to section "1" and I fill the form with:
| Forum name | Test forum name |
| Description | Test forum description |
When I move down section "1"
Then I should see "Test forum name" in the "#section-2" "css_element"
And I move up section "2"
And I should see "Test forum name" in the "#section-1" "css_element"
Scenario: Sections can not be moved with Javascript disabled in a section page of a course using paged mode
Given I follow "Edit settings"
And I fill the moodle form with:
| Course layout | Show one section per page |
And I press "Save changes"
And I add a "Forum" to section "2" and I fill the form with:
| Forum name | Test forum name |
| Description | Test forum description |
When I follow "Topic 2"
Then "#section-1" "css_element" should not exists
And "#section-3" "css_element" should not exists
And "Move down" "link" should not exists
And "Move up" "link" should not exists
@@ -5,14 +5,14 @@ Feature: Topic's course sections highlighting
I need to highlight one specific section
@javascript
Scenario: Highlight a topic's course section
Scenario Outline: Highlight a topic's course section with course paged mode and without it
Given the following "users" exists:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@asd.com |
| student1 | Student | 1 | student1@asd.com |
And the following "courses" exists:
| fullname | shortname | format |
| Course 1 | C1 | topics |
| fullname | shortname | format | coursedisplay |
| Course 1 | C1 | topics | <coursedisplay> |
And the following "course enrolments" exists:
| user | course | role |
| teacher1 | C1 | editingteacher |
@@ -41,3 +41,8 @@ Feature: Topic's course sections highlighting
And I follow "Course 1"
And section "1" should not be highlighted
And section "2" should not be highlighted
Examples:
| coursedisplay |
| 0 |
| 1 |