Files
moodle/mod/data/tests/behat/actionsmenu_replacement.feature
T
Andrew Nicols 035d818dd3 MDL-76866 mod_data: Disable the HTML editor to insert partial HTML
This test is adding table rows into an HTML editor and, quite rightly,
is failing under TinyMCE.

This only worked under Atto because Atto does not perform any HTML
validation. A user would not actually be able to insert the template
content this way, and therefore the test is/was invalid.

This change disables the HTML editor before inserting the template
content, which resembles the actions of a real user.
2023-03-29 20:33:47 +08:00

352 lines
17 KiB
Gherkin

@mod @mod_data
Feature: Users can add the ##actionsmenu## replacement to the database templates
In order to display all the actions for entries in templates
As a teacher
I need to edit the templates and add the actionsmenu replacement
Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@example.com |
| student1 | Student | 1 | student1@example.com |
And the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
And the following "activities" exist:
| activity | name | intro | course | idnumber |
| data | Test database name | Database intro | C1 | data1 |
And the following "mod_data > fields" exist:
| database | type | name | description |
| data1 | text | field1 | Test field description |
| data1 | text | field2 | Test field 2 description |
And the following "mod_data > templates" exist:
| database | name |
| data1 | singletemplate |
| data1 | listtemplate |
| data1 | addtemplate |
| data1 | asearchtemplate |
| data1 | rsstemplate |
And the following "mod_data > entries" exist:
| database | user | field1 | field2 |
| data1 | student1 | Student entry 1 | Some student content 1 |
| data1 | teacher1 | Teacher entry 1 | Some teacher content 1 |
And I am on the "Test database name" "data activity" page logged in as teacher1
And I navigate to "Templates" in current page administration
And I set the field "Templates tertiary navigation" to "List view template"
And I set the field "Enable code editor" to "0"
And I set the following fields to these values:
| Header | <table> |
| Repeated entry | <tr><td>[[field1]]</td><td>##actionsmenu##</td><tr> |
| Footer | </table> |
And I click on "Save" "button" in the "sticky-footer" "region"
And I set the field "Templates tertiary navigation" to "Single view template"
And I set the following fields to these values:
| Single view template | <table><tr><td>[[field1]]</td><td>[[field2]]</td><td>##actionsmenu##</td><tr></table> |
And I click on "Save" "button" in the "sticky-footer" "region"
@javascript
Scenario: The ##actionsmenu## replacement displays the expected actions with default settings depending on the user permissions
Given I navigate to "Database" in current page administration
# Teachers should be able to edit/delete all the entries.
When I open the action menu in "Student entry 1" "table_row"
Then I should see "Show more"
And I should see "Edit"
And I should see "Delete"
But I should not see "Approve"
And I should not see "Undo approval"
And I should not see "Export to portfolio"
And I press the escape key
And I open the action menu in "Teacher entry 1" "table_row"
And I should see "Show more"
And I should see "Edit"
And I should see "Delete"
# Single view (for teacher).
And I choose "Show more" in the open action menu
And I should see "Teacher entry 1"
And I should see "Some teacher content 1"
And I should not see "Student entry 1"
And I open the action menu in "Teacher entry 1" "table_row"
And I should not see "Show more"
And I should see "Edit"
And I should see "Delete"
And I should not see "Approve"
And I should not see "Undo approval"
And I should not see "Export to portfolio"
And I press the escape key
And I follow "Previous page"
And I should see "Student entry 1"
And I should see "Some student content 1"
And I should not see "Teacher entry 1"
And I open the action menu in "Student entry 1" "table_row"
And I should not see "Show more"
And I should see "Edit"
And I should see "Delete"
And I log out
# Students only should edit/delete their entries.
But I am on the "Test database name" "data activity" page logged in as student1
And I open the action menu in "Student entry 1" "table_row"
And I should see "Show more"
And I should see "Edit"
And I should see "Delete"
And I should not see "Approve"
And I should not see "Undo approval"
And I should not see "Export to portfolio"
And I press the escape key
And I open the action menu in "Teacher entry 1" "table_row"
And I should see "Show more"
And I should not see "Edit"
And I should not see "Delete"
# Single view (for student).
And I choose "Show more" in the open action menu
And I should see "Teacher entry 1"
And I should see "Some teacher content 1"
And I should not see "Student entry 1"
And I should not see "Actions" in the "Teacher entry 1" "table_row"
And I follow "Previous page"
And I should see "Student entry 1"
And I should see "Some student content 1"
And I should not see "Teacher entry 1"
And I open the action menu in "Student entry 1" "table_row"
And I should not see "Show more"
And I should see "Edit"
And I should see "Delete"
And I should not see "Approve"
And I should not see "Undo approval"
And I should not see "Export to portfolio"
@javascript
Scenario: The ##actionsmenu## replacement displays the Approval/Undo approval options
Given I navigate to "Settings" in current page administration
And I follow "Entries"
And I set the field "Approval required" to "Yes"
And I press "Save and display"
When I navigate to "Database" in current page administration
# Teachers should be able to approve/unapprove all the entries from list view.
And I open the action menu in "Student entry 1" "table_row"
Then I should see "Approve"
And I should not see "Undo approval"
And I choose "Approve" in the open action menu
And I should see "Entry approved"
And I press "Dismiss this notification"
And I open the action menu in "Student entry 1" "table_row"
And I should see "Undo approval"
And I should not see "Approve" in the ".menu-action-text" "css_element"
And I press the escape key
And I open the action menu in "Teacher entry 1" "table_row"
And I should see "Undo approval"
And I should not see "Approve" in the ".menu-action-text" "css_element"
# Single view (for teacher).
And I choose "Show more" in the open action menu
And I should see "Teacher entry 1"
And I open the action menu in "Teacher entry 1" "table_row"
And I should see "Undo approval"
And I should not see "Approve"
And I press the escape key
And I follow "Previous page"
And I should see "Student entry 1"
And I open the action menu in "Student entry 1" "table_row"
And I should not see "Approve"
And I should see "Undo approval"
# Check entries can be approved/unapproved from single view too.
And I choose "Undo approval" in the open action menu
And I should see "Entry unapproved"
And I press "Dismiss this notification"
And I open the action menu in "Student entry 1" "table_row"
And I should see "Approve"
And I should not see "Undo approval"
And I log out
# Students should not see the Approve/Undo approval options.
But I am on the "Test database name" "data activity" page logged in as student1
And I open the action menu in "Teacher entry 1" "table_row"
And I should not see "Approve"
And I should not see "Undo approval"
And I press the escape key
And I open the action menu in "Student entry 1" "table_row"
And I should not see "Approve"
And I should not see "Undo approval"
# Single view (for student).
And I choose "Show more" in the open action menu
And I should see "Student entry 1"
And I open the action menu in "Student entry 1" "table_row"
And I should not see "Approve"
And I should not see "Undo approval"
And I follow "Next page"
And I should see "Teacher entry 1"
And I should not see "Actions" in the "Teacher entry 1" "table_row"
@javascript
Scenario: The ##actionsmenu## replacement displays the Export to portfolio options
Given I log in as "admin"
And the following config values are set as admin:
| enableportfolios | 1 |
And I navigate to "Plugins > Portfolios > Manage portfolios" in site administration
And I set portfolio instance "File download" to "Enabled and visible"
And I click on "Save" "button"
And I log out
And I am on the "Test database name" "data activity" page logged in as teacher1
# Teachers should be able to export to portfolio all the entries from list view.
When I open the action menu in "Student entry 1" "table_row"
Then I should see "Export to portfolio"
And I choose "Export to portfolio" in the open action menu
And I should see "Configure exported data"
And I press "Cancel"
And I click on "Yes" "button" in the "Confirm" "dialogue"
And I open the action menu in "Teacher entry 1" "table_row"
And I should see "Export to portfolio"
# Single view (for teacher).
And I choose "Show more" in the open action menu
And I should see "Teacher entry 1"
And I open the action menu in "Teacher entry 1" "table_row"
And I should see "Export to portfolio"
And I press the escape key
And I follow "Previous page"
And I should see "Student entry 1"
And I open the action menu in "Student entry 1" "table_row"
And I should see "Export to portfolio"
# Check entries can be exported from single view too.
And I choose "Export to portfolio" in the open action menu
And I should see "Configure exported data"
And I log out
# Students should only export their entries.
But I am on the "Test database name" "data activity" page logged in as student1
And I open the action menu in "Teacher entry 1" "table_row"
And I should not see "Export to portfolio"
And I press the escape key
And I open the action menu in "Student entry 1" "table_row"
And I should see "Export to portfolio"
And I choose "Export to portfolio" in the open action menu
And I should see "Configure exported data"
And I press "Cancel"
And I click on "Yes" "button" in the "Confirm" "dialogue"
And I open the action menu in "Teacher entry 1" "table_row"
# Single view (for student).
And I choose "Show more" in the open action menu
And I should see "Teacher entry 1"
And I should not see "Actions" in the "Teacher entry 1" "table_row"
And I follow "Previous page"
And I should see "Student entry 1"
And I open the action menu in "Student entry 1" "table_row"
And I should see "Export to portfolio"
And I choose "Export to portfolio" in the open action menu
And I should see "Configure exported data"
@javascript
Scenario: The ##actionsmenu## replacement does not display the Export to portfolio option when there are no portfolios enabled
Given I log in as "admin"
And the following config values are set as admin:
| enableportfolios | 1 |
And I log out
And I am on the "Test database name" "data activity" page logged in as teacher1
When I open the action menu in "Student entry 1" "table_row"
Then I should not see "Export to portfolio"
And I log out
# If we enable, at least, one portfolio, the Export to portfolio option should be displayed.
But I log in as "admin"
And I navigate to "Plugins > Portfolios > Manage portfolios" in site administration
And I set portfolio instance "File download" to "Enabled and visible"
And I click on "Save" "button"
And I log out
And I am on the "Test database name" "data activity" page logged in as teacher1
And I open the action menu in "Student entry 1" "table_row"
And I should see "Export to portfolio"
@javascript
Scenario: The Edit option in the ##actionsmenu## replacement is working
Given I navigate to "Database" in current page administration
# Teachers should be able to edit any entry.
And I open the action menu in "Student entry 1" "table_row"
When I choose "Edit" in the open action menu
And I set the field "field2" to "Some MODIFIED BY THE TEACHER student content 1"
And I click on "Save" "button"
# Single view (for teacher).
Then I should see "Some MODIFIED BY THE TEACHER student content 1"
And I should not see "Some student content 1"
And I open the action menu in "Student entry 1" "table_row"
And I choose "Edit" in the open action menu
And I set the field "field2" to "Some MORE TEACHER MODIFICATIONS FOR student content 1"
And I click on "Save" "button"
And I should see "Some MORE TEACHER MODIFICATIONS FOR student content 1"
And I should not see "Some MODIFIED BY THE TEACHER student content 1"
And I log out
# Students only should edit their entries.
But I am on the "Test database name" "data activity" page logged in as student1
And I open the action menu in "Student entry 1" "table_row"
And I choose "Edit" in the open action menu
And I set the field "field2" to "Some MODIFIED student content 1"
And I click on "Save" "button"
# Single view (for student).
And I should see "Some MODIFIED student content 1"
And I should not see "Some MORE TEACHER MODIFICATIONS FOR student content 1"
And I open the action menu in "Student entry 1" "table_row"
And I choose "Edit" in the open action menu
And I set the field "field2" to "Some MORE MODIFICATIONS FOR student content 1"
And I click on "Save" "button"
And I should see "Some MORE MODIFICATIONS FOR student content 1"
And I should not see "Some MODIFIED student content 1"
@javascript
Scenario: The Delete option in the ##actionsmenu## replacement is working
Given the following "mod_data > entries" exist:
| database | user | field1 | field2 |
| data1 | student1 | Student entry 2 | Some student content 2 |
| data1 | teacher1 | Teacher entry 2 | Some teacher content 2 |
And I navigate to "Database" in current page administration
# Teachers should be able to delete any entry.
And I open the action menu in "Student entry 1" "table_row"
When I choose "Delete" in the open action menu
Then I should see "Delete entry"
# Cancel doesn't delete the entry.
And I click on "Cancel" "button" in the "Confirm" "dialogue"
And I open the action menu in "Teacher entry 1" "table_row"
# But Delete removes the entry.
And I choose "Delete" in the open action menu
And I should see "Delete entry"
And I click on "Delete" "button" in the "Confirm" "dialogue"
And I should see "Entry deleted"
And I should not see "Teacher entry 1"
And I should see "Teacher entry 2"
And I should see "Student entry 1"
And I should see "Student entry 2"
# Single view (for teacher).
And I open the action menu in "Teacher entry 2" "table_row"
And I choose "Delete" in the open action menu
And I should see "Delete entry"
And I click on "Delete" "button" in the "Confirm" "dialogue"
And I should see "Entry deleted"
And I should not see "Teacher entry 1"
And I should not see "Teacher entry 2"
And I should see "Student entry 1"
And I should see "Student entry 2"
And I log out
# Students only should edit their entries.
But I am on the "Test database name" "data activity" page logged in as student1
And I open the action menu in "Student entry 1" "table_row"
When I choose "Delete" in the open action menu
Then I should see "Delete entry"
# Cancel doesn't delete the entry.
And I click on "Cancel" "button" in the "Confirm" "dialogue"
And I open the action menu in "Student entry 1" "table_row"
# But Delete removes the entry.
And I choose "Delete" in the open action menu
And I should see "Delete entry"
And I click on "Delete" "button" in the "Confirm" "dialogue"
And I should see "Entry deleted"
And I should not see "Teacher entry 1"
And I should not see "Teacher entry 2"
And I should not see "Student entry 1"
And I should see "Student entry 2"
# Single view (for student).
And I open the action menu in "Student entry 2" "table_row"
And I choose "Delete" in the open action menu
And I should see "Delete entry"
And I click on "Delete" "button" in the "Confirm" "dialogue"
And I should see "Entry deleted"
And I should not see "Teacher entry 1"
And I should not see "Teacher entry 2"
And I should not see "Student entry 1"
And I should not see "Student entry 2"