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

@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"