You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
366 lines
17 KiB
366 lines
17 KiB
2 years ago
|
@core @core_course
|
||
|
Feature: Test category management actions
|
||
|
As a moodle admin
|
||
|
Test we can create a category
|
||
|
Test we can create a sub category
|
||
|
Test we can edit a category
|
||
|
Test we can delete a category
|
||
|
Test we can move a category
|
||
|
Test we can assign roles within a category
|
||
|
Test we can set permissions on a category
|
||
|
Test we can manage cohorts within a category
|
||
|
Test we can manage filters for a category
|
||
|
|
||
|
Scenario: Test editing a category through the management interface.
|
||
|
Given the following "categories" exist:
|
||
|
| name | category | idnumber |
|
||
|
| Cat 1 | 0 | CAT1 |
|
||
|
And the following "courses" exist:
|
||
|
| category | fullname | shortname | idnumber |
|
||
|
| CAT1 | Course 1 | Course 1 | C1 |
|
||
|
|
||
|
And I log in as "admin"
|
||
|
And I go to the courses management page
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I click on "edit" action for "Cat 1" in management category listing
|
||
|
# Redirect
|
||
|
And I should see "Edit category settings"
|
||
|
And I should see "Cat 1"
|
||
|
And I press "Cancel"
|
||
|
# Redirect
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I click on "edit" action for "Cat 1" in management category listing
|
||
|
# Redirect
|
||
|
And I should see "Edit category settings"
|
||
|
And I should see "Cat 1"
|
||
|
And I set the following fields to these values:
|
||
|
| Category name | Category 1 (edited) |
|
||
|
| Category ID number | CAT1e |
|
||
|
And I press "Save changes"
|
||
|
# Redirect
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I should see "Category 1 (edited)" in the "#category-listing" "css_element"
|
||
|
And I should see "Category 1 (edited)" in the "#course-listing h3" "css_element"
|
||
|
|
||
|
Scenario: Test deleting a categories through the management interface.
|
||
|
Given the following "categories" exist:
|
||
|
| name | category | idnumber |
|
||
|
| Cat 1 | 0 | CAT1 |
|
||
|
| Cat 2 | 0 | CAT2 |
|
||
|
| Cat 3 | 0 | CAT3 |
|
||
|
|
||
|
And the following "courses" exist:
|
||
|
| category | fullname | shortname | idnumber |
|
||
|
| CAT3 | Course 1 | Course 1 | C1 |
|
||
|
|
||
|
And I log in as "admin"
|
||
|
And I go to the courses management page
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I should see "Cat 1" in the "#category-listing ul" "css_element"
|
||
|
And I should see "Cat 2" in the "#category-listing ul" "css_element"
|
||
|
And I should see "Cat 3" in the "#category-listing ul" "css_element"
|
||
|
And I click on "delete" action for "Cat 2" in management category listing
|
||
|
# Redirect
|
||
|
And I should see "Delete category: Cat 2"
|
||
|
And I should see "Contents of Cat 2"
|
||
|
And I should see "This category is empty"
|
||
|
And I press "Cancel"
|
||
|
# Redirect
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I should see "Cat 1" in the "#category-listing ul" "css_element"
|
||
|
And I should see "Cat 2" in the "#category-listing ul" "css_element"
|
||
|
And I should see "Cat 3" in the "#category-listing ul" "css_element"
|
||
|
And I click on "delete" action for "Cat 2" in management category listing
|
||
|
# Redirect
|
||
|
And I should see "Delete category: Cat 2"
|
||
|
And I should see "Contents of Cat 2"
|
||
|
And I should see "This category is empty"
|
||
|
And I press "Delete"
|
||
|
# Redirect
|
||
|
And I should see "Delete category: Cat 2"
|
||
|
And I should see "Deleted course category Cat 2"
|
||
|
And I press "Continue"
|
||
|
# Redirect
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I should see "Cat 1" in the "#category-listing ul" "css_element"
|
||
|
And I should not see "Cat 2" in the "#category-listing ul" "css_element"
|
||
|
And I should see "Cat 3" in the "#category-listing ul" "css_element"
|
||
|
And I click on "delete" action for "Cat 3" in management category listing
|
||
|
# Redirect
|
||
|
And I should see "Delete category: Cat 3"
|
||
|
And I set the following fields to these values:
|
||
|
| What to do | Move contents to another category |
|
||
|
| Move into | Cat 1 |
|
||
|
And I press "Delete"
|
||
|
# Redirect
|
||
|
And I should see "Delete category: Cat 3"
|
||
|
And I should see "Deleted course category Cat 3"
|
||
|
And I press "Continue"
|
||
|
# Redirect
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I should see "Cat 1" in the "#category-listing ul" "css_element"
|
||
|
And I should not see "Cat 2" in the "#category-listing ul" "css_element"
|
||
|
And I should not see "Cat 3" in the "#category-listing ul" "css_element"
|
||
|
And I should see "Course 1" in the "#course-listing ul.course-list" "css_element"
|
||
|
|
||
|
Scenario: Test I can assign roles for a category through the management interface.
|
||
|
Given the following "categories" exist:
|
||
|
| name | category | idnumber |
|
||
|
| Cat 1 | 0 | CAT1 |
|
||
|
And the following "courses" exist:
|
||
|
| category | fullname | shortname | idnumber |
|
||
|
| CAT1 | Course 1 | Course 1 | C1 |
|
||
|
|
||
|
And I log in as "admin"
|
||
|
And I go to the courses management page
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I click on "assignroles" action for "Cat 1" in management category listing
|
||
|
# Redirect
|
||
|
And I should see "Assign roles in Category: Cat 1"
|
||
|
And I should see "Please choose a role to assign"
|
||
|
And I click on "Back to Category: Cat 1" "link"
|
||
|
# Redirect
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And "Cat 1" "link" should exist in the "#category-listing" "css_element"
|
||
|
|
||
|
Scenario: Test I can set access permissions for a category through the management interface.
|
||
|
Given the following "categories" exist:
|
||
|
| name | category | idnumber |
|
||
|
| Cat 1 | 0 | CAT1 |
|
||
|
And the following "courses" exist:
|
||
|
| category | fullname | shortname | idnumber |
|
||
|
| CAT1 | Course 1 | Course 1 | C1 |
|
||
|
|
||
|
And I log in as "admin"
|
||
|
And I go to the courses management page
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I click on "permissions" action for "Cat 1" in management category listing
|
||
|
# Redirect
|
||
|
And I should see "Permissions in Category: Cat 1"
|
||
|
And I click on "Back to Category: Cat 1" "link"
|
||
|
# Redirect
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I should see "Cat 1" in the "#course-listing" "css_element"
|
||
|
|
||
|
Scenario: Test clicking to manage cohorts for a category through the management interface.
|
||
|
Given the following "categories" exist:
|
||
|
| name | category | idnumber |
|
||
|
| Cat 1 | 0 | CAT1 |
|
||
|
And the following "courses" exist:
|
||
|
| category | fullname | shortname | idnumber |
|
||
|
| CAT1 | Course 1 | Course 1 | C1 |
|
||
|
|
||
|
And I log in as "admin"
|
||
|
And I go to the courses management page
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I click on "cohorts" action for "Cat 1" in management category listing
|
||
|
# Redirect
|
||
|
And I should see "Category: Cat 1: available cohorts"
|
||
|
|
||
|
Scenario: Test configuring filters for a category
|
||
|
Given the following "categories" exist:
|
||
|
| name | category | idnumber |
|
||
|
| Cat 1 | 0 | CAT1 |
|
||
|
And the following "courses" exist:
|
||
|
| category | fullname | shortname | idnumber |
|
||
|
| CAT1 | Course 1 | Course 1 | C1 |
|
||
|
|
||
|
And I log in as "admin"
|
||
|
And I go to the courses management page
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I click on "filters" action for "Cat 1" in management category listing
|
||
|
# Redirect
|
||
|
And I should see "Filter settings in Category: Cat 1"
|
||
|
And I click on "Back to Category: Cat 1" "link"
|
||
|
# Redirect
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I should see "Cat 1" in the "#course-listing h3" "css_element"
|
||
|
|
||
|
@javascript
|
||
|
Scenario: Test that I can create a category and view it in the management interface
|
||
|
Given the following "categories" exist:
|
||
|
| name | category | idnumber |
|
||
|
| Cat 1 | 0 | CAT1 |
|
||
|
And I log in as "admin"
|
||
|
And I go to the courses management page
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I click on "Create new category" "link" in the ".category-listing-actions" "css_element"
|
||
|
# Redirect.
|
||
|
And I should see "Add new category"
|
||
|
And I set the following fields to these values:
|
||
|
| Parent category | Top |
|
||
|
| Category name | Test category 2 |
|
||
|
| Category ID number | TC2 |
|
||
|
And I press "Create category"
|
||
|
# Redirect
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I should see "Test category 2" in the "#course-listing h3" "css_element"
|
||
|
And I should see category listing "Cat 1" before "Test category 2"
|
||
|
And I should see "No courses in this category"
|
||
|
And I click on "createnewsubcategory" action for "Test category 2" in management category listing
|
||
|
# Redirect
|
||
|
And I should see "Add new category"
|
||
|
And I set the following fields to these values:
|
||
|
| Parent category | Top |
|
||
|
| Category name | Test category 3 |
|
||
|
| Category ID number | TC3 |
|
||
|
And I press "Create category"
|
||
|
# Redirect
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I should see "Test category 3" in the "#course-listing h3" "css_element"
|
||
|
And I should see category listing "Cat 1" before "Test category 2"
|
||
|
And I should see "No courses in this category"
|
||
|
|
||
|
@javascript
|
||
|
Scenario: Test moving a categories through the management interface.
|
||
|
Given the following "categories" exist:
|
||
|
| name | category | idnumber |
|
||
|
| Cat 1 | 0 | CAT1 |
|
||
|
| Cat 2 | 0 | CAT2 |
|
||
|
| Cat 3 | 0 | CAT3 |
|
||
|
|
||
|
And I log in as "admin"
|
||
|
And I go to the courses management page
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I should see "Cat 1" in the "#category-listing ul" "css_element"
|
||
|
And I should see "Cat 2" in the "#category-listing ul" "css_element"
|
||
|
And I should see "Cat 3" in the "#category-listing ul" "css_element"
|
||
|
And I select category "Cat 2" in the management interface
|
||
|
And I select category "Cat 3" in the management interface
|
||
|
And I set the field "menumovecategoriesto" to "Cat 1"
|
||
|
When I press "bulkmovecategories"
|
||
|
# Redirect
|
||
|
And I click on category "Cat 1" in the management interface
|
||
|
# Redirect
|
||
|
Then I should see category "CAT3" as subcategory of "CAT1" in the management interface
|
||
|
And I move category "Cat 3" to top level in the management interface
|
||
|
# Redirect
|
||
|
And I should not see category "CAT3" as subcategory of "CAT1" in the management interface
|
||
|
Then I should see category "CAT2" as subcategory of "CAT1" in the management interface
|
||
|
|
||
|
@javascript
|
||
|
Scenario: Test bulk action is shown only when some category/course is selected
|
||
|
Given the following "categories" exist:
|
||
|
| name | category | idnumber |
|
||
|
| Cat 1 | 0 | CAT1 |
|
||
|
| Cat 2 | 0 | CAT2 |
|
||
|
| Cat 3 | 0 | CAT3 |
|
||
|
And the following "courses" exist:
|
||
|
| category | fullname | shortname | idnumber |
|
||
|
| CAT3 | Course 1 | Course 1 | C1 |
|
||
|
| CAT3 | Course 2 | Course 2 | C2 |
|
||
|
|
||
|
And I log in as "admin"
|
||
|
And I go to the courses management page
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I should see "Cat 1" in the "#category-listing ul" "css_element"
|
||
|
And I should see "Cat 2" in the "#category-listing ul" "css_element"
|
||
|
And I should see "Cat 3" in the "#category-listing ul" "css_element"
|
||
|
And the "movecategoriesto" "select" should be disabled
|
||
|
And the "resortcategoriesby" "select" should be disabled
|
||
|
And the "resortcoursesby" "select" should be disabled
|
||
|
When I set the field "selectsortby" to "allcategories"
|
||
|
Then the "resortcategoriesby" "select" should be enabled
|
||
|
And the "resortcoursesby" "select" should be enabled
|
||
|
And the "movecategoriesto" "select" should be disabled
|
||
|
And I select category "Cat 2" in the management interface
|
||
|
And the "movecategoriesto" "select" should be enabled
|
||
|
And the "resortcategoriesby" "select" should be enabled
|
||
|
And the "resortcoursesby" "select" should be enabled
|
||
|
And I set the field "selectsortby" to "selectedcategories"
|
||
|
And the "movecategoriesto" "select" should be enabled
|
||
|
And the "resortcategoriesby" "select" should be enabled
|
||
|
And the "resortcoursesby" "select" should be enabled
|
||
|
And I unselect category "Cat 2" in the management interface
|
||
|
And the "movecategoriesto" "select" should be disabled
|
||
|
And the "resortcategoriesby" "select" should be disabled
|
||
|
And the "resortcoursesby" "select" should be disabled
|
||
|
And I select category "Cat 3" in the management interface
|
||
|
And the "movecategoriesto" "select" should be enabled
|
||
|
And the "resortcategoriesby" "select" should be enabled
|
||
|
And the "resortcoursesby" "select" should be enabled
|
||
|
And I select category "Cat 2" in the management interface
|
||
|
And the "movecategoriesto" "select" should be enabled
|
||
|
And the "resortcategoriesby" "select" should be enabled
|
||
|
And the "resortcoursesby" "select" should be enabled
|
||
|
And I unselect category "Cat 2" in the management interface
|
||
|
And I unselect category "Cat 3" in the management interface
|
||
|
And the "movecategoriesto" "select" should be disabled
|
||
|
And the "resortcategoriesby" "select" should be disabled
|
||
|
And the "resortcoursesby" "select" should be disabled
|
||
|
And I click on category "Cat 1" in the management interface
|
||
|
# Redirect.
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And the "movecategoriesto" "select" should be disabled
|
||
|
And the "resortcategoriesby" "select" should be disabled
|
||
|
And the "resortcoursesby" "select" should be disabled
|
||
|
And the "movecoursesto" "select" should be disabled
|
||
|
And I click on category "Cat 3" in the management interface
|
||
|
#Redirect
|
||
|
And I should see the "Course categories and courses" management page
|
||
|
And I should see "Course 1" in the "#course-listing ul.course-list" "css_element"
|
||
|
And I should see "Course 2" in the "#course-listing ul.course-list" "css_element"
|
||
|
And the "movecategoriesto" "select" should be disabled
|
||
|
And the "resortcategoriesby" "select" should be disabled
|
||
|
And the "resortcoursesby" "select" should be disabled
|
||
|
And the "movecoursesto" "select" should be disabled
|
||
|
And I select course "Course 1" in the management interface
|
||
|
And the "movecoursesto" "select" should be enabled
|
||
|
And the "movecategoriesto" "select" should be disabled
|
||
|
And the "resortcategoriesby" "select" should be disabled
|
||
|
And the "resortcoursesby" "select" should be disabled
|
||
|
And I select course "Course 2" in the management interface
|
||
|
And the "movecoursesto" "select" should be enabled
|
||
|
And the "movecategoriesto" "select" should be disabled
|
||
|
And the "resortcategoriesby" "select" should be disabled
|
||
|
And the "resortcoursesby" "select" should be disabled
|
||
|
And I select category "Cat 3" in the management interface
|
||
|
And the "movecoursesto" "select" should be enabled
|
||
|
And the "movecategoriesto" "select" should be enabled
|
||
|
And the "resortcategoriesby" "select" should be enabled
|
||
|
And the "resortcoursesby" "select" should be enabled
|
||
|
And I unselect course "Course 2" in the management interface
|
||
|
And the "movecoursesto" "select" should be enabled
|
||
|
And the "movecategoriesto" "select" should be enabled
|
||
|
And the "resortcategoriesby" "select" should be enabled
|
||
|
And the "resortcoursesby" "select" should be enabled
|
||
|
And I unselect course "Course 1" in the management interface
|
||
|
And the "movecoursesto" "select" should be disabled
|
||
|
And the "movecategoriesto" "select" should be enabled
|
||
|
And the "resortcategoriesby" "select" should be enabled
|
||
|
And the "resortcoursesby" "select" should be enabled
|
||
|
And I unselect category "Cat 3" in the management interface
|
||
|
And the "movecoursesto" "select" should be disabled
|
||
|
And the "movecategoriesto" "select" should be disabled
|
||
|
And the "resortcategoriesby" "select" should be disabled
|
||
|
And the "resortcoursesby" "select" should be disabled
|
||
|
|
||
|
Scenario: Test that is not possible to create a course category with a duplicate idnumber
|
||
|
Given the following "categories" exist:
|
||
|
| name | category | idnumber |
|
||
|
| Cat 1 | 0 | CAT1 |
|
||
|
And I log in as "admin"
|
||
|
And I navigate to "Courses > Add a category" in site administration
|
||
|
And I set the following fields to these values:
|
||
|
| Category name | Test duplicate |
|
||
|
| Category ID number | CAT1 |
|
||
|
When I press "Create category"
|
||
|
Then I should see "ID number is already used for another category"
|
||
|
|
||
|
Scenario: Test that is possible to remove an idnumber from a course category
|
||
|
Given the following "categories" exist:
|
||
|
| name | category | idnumber |
|
||
|
| Cat 1 | 0 | CAT1 |
|
||
|
| Cat 2 | 0 ||
|
||
|
And I log in as "admin"
|
||
|
And I go to the courses management page
|
||
|
And I should see "CAT1" in the "#category-listing" "css_element"
|
||
|
When I click on "edit" action for "Cat 1" in management category listing
|
||
|
And I set the following fields to these values:
|
||
|
| Category name | Category 1 (edited) |
|
||
|
| Category ID number ||
|
||
|
And I press "Save changes"
|
||
|
# Redirect
|
||
|
Then I should see "Category 1 (edited)" in the "#category-listing" "css_element"
|
||
|
And I should not see "CAT1" in the "#course-listing" "css_element"
|