diff --git a/availability/tests/behat/display_availability.feature b/availability/tests/behat/display_availability.feature index 1efef1dc8ba..90438364e63 100644 --- a/availability/tests/behat/display_availability.feature +++ b/availability/tests/behat/display_availability.feature @@ -109,17 +109,17 @@ Feature: display_availability # Page 1 display still there but should be dimmed and not a link. Then I should see "Page 1" in the "#section-1 .dimmed_text" "css_element" - And ".activityinstance a" "css_element" should not exist in the "#section-1" "css_element" + And ".activityinstance a" "css_element" should not exist in the "Topic 1" "section" # Date display should be present. - And I should see "Available until" in the "#section-1" "css_element" + And I should see "Available until" in the "Topic 1" "section" # Page 2 display not there at all And I should not see "Page 2" in the "region-main" "region" # Page 3 display and link And I should see "Page 3" in the "region-main" "region" - And ".activityinstance a" "css_element" should exist in the "#section-3" "css_element" + And ".activityinstance a" "css_element" should exist in the "Topic 3" "section" @javascript Scenario: Section availability display diff --git a/backup/util/ui/tests/behat/duplicate_activities.feature b/backup/util/ui/tests/behat/duplicate_activities.feature index d839bebf91b..37537ecad37 100644 --- a/backup/util/ui/tests/behat/duplicate_activities.feature +++ b/backup/util/ui/tests/behat/duplicate_activities.feature @@ -34,6 +34,6 @@ Feature: Duplicate activities | Name | Duplicated database name | | Description | Duplicated database description | And I press "Save and return to course" - Then I should see "Original database name" in the "#section-1" "css_element" - And I should see "Duplicated database name" in the "#section-1" "css_element" + Then I should see "Original database name" in the "Topic 1" "section" + And I should see "Duplicated database name" in the "Topic 1" "section" And "Original database name" "link" should appear before "Duplicated database name" "link" diff --git a/backup/util/ui/tests/behat/restore_moodle2_courses.feature b/backup/util/ui/tests/behat/restore_moodle2_courses.feature index e5433f1e110..10958fc0941 100644 --- a/backup/util/ui/tests/behat/restore_moodle2_courses.feature +++ b/backup/util/ui/tests/behat/restore_moodle2_courses.feature @@ -129,5 +129,5 @@ Feature: Restore Moodle 2 course backups And section "3" should be hidden And section "7" should be hidden And section "15" should be visible - And I should see "Test URL name" in the "#section-3" "css_element" - And I should see "Test forum name" in the "#section-1" "css_element" + And I should see "Test URL name" in the "Topic 3" "section" + And I should see "Test forum name" in the "Topic 1" "section" diff --git a/course/tests/behat/course_controls.feature b/course/tests/behat/course_controls.feature index c3a965e3026..d1e4defeffd 100644 --- a/course/tests/behat/course_controls.feature +++ b/course/tests/behat/course_controls.feature @@ -42,18 +42,18 @@ Feature: Course activity controls works as expected And I click on "Actions" "link" in the "Recent activity" "block" And I click on "Delete Recent activity block" "link" And I press "Yes" - And "#section-2" "css_element" exist + And "section" exist 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" exist + And "section" exist And I indent right "Test forum name 1" activity - And "#section-2" "css_element" exist + And "section" exist And I indent left "Test forum name 1" activity - And "#section-2" "css_element" exist + And "section" exist And I open "Test forum name 1" actions menu And I click on "Edit settings" "link" in the "Test forum name 1" activity And I should see "Updating Forum" @@ -63,38 +63,38 @@ Feature: Course activity controls works as expected | Description | Just to check that I can edit the description | | Display description on course page | 1 | And I click on "Cancel" "button" - And "#section-2" "css_element" exist + And "section" exist And I open "Test forum name 1" actions menu And I click on "Hide" "link" in the "Test forum name 1" activity - And "#section-2" "css_element" exist + And "section" exist And I delete "Test forum name 1" activity And I should not see "Test forum name 1" in the "#region-main" "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" exist + And "section" exist 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" exist + And "section" exist And section "1" should be hidden And all activities in section "1" should be hidden And I show section "1" - And "#section-2" "css_element" exist + And "section" exist And section "1" should be visible And I add the "Section links" block - And "#section-2" "css_element" exist + And "section" exist And I should see "1 2 3 4 5" in the "Section links" "block" And I click on "2" "link" in the "Section links" "block" And I 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 | + | courseformat | coursedisplay | targetpage | should_see_other_sections | should_see_other_sections_following_block_sections_links | belowpage | + | topics | 0 | "Course 1" | should | should | "Topic 2" | + | topics | 1 | "Topic 1" | should not | should not | "Topic 2" | + | topics | 1 | "Course 1" | should | should not | "Topic 2" | + | weeks | 0 | "Course 1" | should | should | "8 January - 14 January" | + | weeks | 1 | "1 January - 7 January" | should not | should not | "8 January - 14 January" | + | weeks | 1 | "Course 1" | should | should not | "8 January - 14 January" | 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" exist: @@ -122,51 +122,51 @@ Feature: Course activity controls works as expected And I click on "Actions" "link" in the "Recent activity" "block" And I click on "Delete Recent activity block" "link" And I press "Yes" - And "#section-2" "css_element" exist + And "section" exist 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" exist + And "section" exist And I indent right "Test forum name 1" activity - And "#section-2" "css_element" exist + And "section" exist And I indent left "Test forum name 1" activity - And "#section-2" "css_element" exist + And "section" exist And I click on "Edit settings" "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" exist + And "section" exist And I click on "Hide" "link" in the "Test forum name 1" activity - And "#section-2" "css_element" exist + And "section" exist And I delete "Test forum name 1" activity - And "#section-2" "css_element" exist + And "section" exist And I should not see "Test forum name 1" in the "#region-main" "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" exist + And "section" exist 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" exist + And "section" exist And section "1" should be hidden And all activities in section "1" should be hidden And I show section "1" - And "#section-2" "css_element" exist + And "section" exist And section "1" should be visible And I add the "Section links" block - And "#section-2" "css_element" exist + And "section" exist And I should see "1 2 3 4 5" in the "Section links" "block" And I click on "2" "link" in the "Section links" "block" And I 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 | + | courseformat | coursedisplay | targetpage | should_see_other_sections | should_see_other_sections_following_block_sections_links | belowpage | + | topics | 0 | "Course 1" | should | should | "Topic 2" | + | topics | 1 | "Topic 1" | should not | should not | "Topic 2" | + | topics | 1 | "Course 1" | should | should not | "Topic 2" | + | weeks | 0 | "Course 1" | should | should | "8 January - 14 January" | + | weeks | 1 | "1 January - 7 January" | should not | should not | "8 January - 14 January" | + | weeks | 1 | "Course 1" | should | should not | "8 January - 14 January" | diff --git a/course/tests/behat/move_activities.feature b/course/tests/behat/move_activities.feature index 68abd0f0e40..9dd8fc1c886 100644 --- a/course/tests/behat/move_activities.feature +++ b/course/tests/behat/move_activities.feature @@ -29,8 +29,8 @@ Feature: Activities can be moved between sections 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" + Then I should see "Test forum name" in the "Topic 2" "section" + And I should not see "Test forum name" in the "Topic 1" "section" Scenario: Move activities in the course home with Javascript disabled using paged mode Given I click on "Edit settings" "link" in the "Administration" "block" @@ -38,8 +38,8 @@ Feature: Activities can be moved between sections | 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" + Then I should see "Test forum name" in the "Topic 2" "section" + And I should not see "Test forum name" in the "Topic 1" "section" Scenario: Move activities in a course section with Javascript disabled using paged mode Given I click on "Edit settings" "link" in the "Administration" "block" diff --git a/course/tests/behat/move_sections.feature b/course/tests/behat/move_sections.feature index b56a0b98352..bc205d940db 100644 --- a/course/tests/behat/move_sections.feature +++ b/course/tests/behat/move_sections.feature @@ -23,9 +23,9 @@ Feature: Sections can be moved | 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" + Then I should see "Test forum name" in the "Topic 2" "section" And I move up section "2" - And I should see "Test forum name" in the "#section-1" "css_element" + And I should see "Test forum name" in the "Topic 1" "section" Scenario: Move up and down a section with Javascript disabled in the course home of a course using paged mode Given I click on "Edit settings" "link" in the "Administration" "block" @@ -36,9 +36,9 @@ Feature: Sections can be moved | 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" + Then I should see "Test forum name" in the "Topic 2" "section" And I move up section "2" - And I should see "Test forum name" in the "#section-1" "css_element" + And I should see "Test forum name" in the "Topic 1" "section" Scenario: Sections can not be moved with Javascript disabled in a section page of a course using paged mode Given I click on "Edit settings" "link" in the "Administration" "block" @@ -49,7 +49,7 @@ Feature: Sections can be moved | Forum name | Test forum name | | Description | Test forum description | When I follow "Topic 2" - Then "#section-1" "css_element" should not exist - And "#section-3" "css_element" should not exist + Then "Topic 1" "section" should not exist + And "Topic 3" "section" should not exist And "Move down" "link" should not exist And "Move up" "link" should not exist diff --git a/course/tests/behat/paged_course_navigation.feature b/course/tests/behat/paged_course_navigation.feature index 0371c122d33..b6d66f97473 100644 --- a/course/tests/behat/paged_course_navigation.feature +++ b/course/tests/behat/paged_course_navigation.feature @@ -11,11 +11,11 @@ Feature: Course paged mode | Course 1 | C1 | 0 | | 1 | 3 | And I log in as "admin" And I follow "Course 1" - Then I click on "link" in the "#section-2" "css_element" + Then I click on "link" in the "section" And I follow "C1" - And I click on "link" in the "#section-3" "css_element" + And I click on "link" in the "section" And I follow "C1" - And I click on "link" in the "#section-1" "css_element" + And I click on "link" in the "section" And I should see in the "div.single-section" "css_element" And I should see in the ".single-section span.mdl-right" "css_element" And I should not see in the ".single-section" "css_element" @@ -44,11 +44,11 @@ Feature: Course paged mode | Course 1 | C1 | 0 | | 1 | 3 | And I log in as "admin" And I follow "Course 1" - Then I click on "link" in the "#section-2" "css_element" + Then I click on "link" in the "section" And I follow "C1" - And I click on "link" in the "#section-3" "css_element" + And I click on "link" in the "section" And I follow "C1" - And I click on "link" in the "#section-1" "css_element" + And I click on "link" in the "section" And I should see in the "div.single-section" "css_element" And I should see in the ".single-section span.mdl-right" "css_element" And I should not see in the ".single-section" "css_element" diff --git a/lib/behat/classes/behat_selectors.php b/lib/behat/classes/behat_selectors.php index 613b7a95740..cd518cf7235 100644 --- a/lib/behat/classes/behat_selectors.php +++ b/lib/behat/classes/behat_selectors.php @@ -41,6 +41,8 @@ class behat_selectors { protected static $allowedtextselectors = array( 'dialogue' => 'dialogue', 'block' => 'block', + 'section' => 'section', + 'activity' => 'activity', 'region' => 'region', 'table_row' => 'table_row', 'list_item' => 'list_item', @@ -56,6 +58,8 @@ class behat_selectors { protected static $allowedselectors = array( 'dialogue' => 'dialogue', 'block' => 'block', + 'section' => 'section', + 'activity' => 'activity', 'region' => 'region', 'table_row' => 'table_row', 'list_item' => 'list_item', @@ -102,6 +106,16 @@ XPATH (contains(concat(' ', normalize-space(@class), ' '), concat(' ', %locator%, ' ')) or descendant::h2[normalize-space(.) = %locator%] or @aria-label = %locator%)] +XPATH + , 'section' => << << <<