Skip to content

Commit

Permalink
MDL-76065 behat: Review and enhance mod_lti Behat tests
Browse files Browse the repository at this point in the history
In this commit, the following improvements were made to the mod_lti Behat tests:

* Replaced manual steps with data generators to set completion.
* Eliminated unnecessary user and course enrolments data generation as some tests can be performed as an admin.
* Removed the @javascript tag from non-JS tests.
* Updated the LTI data generator to generate an internal Moodle URL in the toolurl field, enabling the use of XML files.
  • Loading branch information
lameze committed May 23, 2023
1 parent dca69e0 commit d9cccad
Show file tree
Hide file tree
Showing 9 changed files with 37 additions and 82 deletions.
33 changes: 10 additions & 23 deletions mod/lti/tests/behat/addtype.feature
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,12 @@ Feature: Add preconfigured tools via teacher interface
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
And the following "activities" exist:
| activity | course | name | typeid | toolurl |
| lti | C1 | Test tool | 0 | /mod/lti/tests/fixtures/ims_cartridge_basic_lti_link.xml |

@javascript
Scenario: Add a tool from a cartridge
Given the following "activity" exists:
| course | C1 |
| activity | lti |
| name | Test tool activity |
When I am on the "Test tool activity" "lti activity editing" page logged in as teacher1
And I set the field "Tool URL" to local url "/mod/lti/tests/fixtures/ims_cartridge_basic_lti_link.xml"
And I press "Save and return to course"
And I am on the "Test tool activity" "lti activity editing" page
Given I am on the "Test tool" "lti activity editing" page logged in as teacher1
And I expand all fieldsets
Then the field "Tool URL" matches value "http://www.example.com/lti/provider.php"
And the field "Secure tool URL" matches value "https://www.example.com/lti/provider.php"
Expand All @@ -33,11 +28,7 @@ Feature: Add preconfigured tools via teacher interface

@javascript @_switch_window
Scenario: Add a preconfigured tool from a cartridge
Given the following "activity" exists:
| course | C1 |
| activity | lti |
| name | Test tool activity 1 |
When I am on the "Test tool activity 1" "lti activity editing" page logged in as teacher1
Given I am on the "Test tool" "lti activity editing" page logged in as teacher1
And I follow "Add preconfigured tool"
And I switch to "add_tool" window
And I set the field "Tool name" to "Placeholder"
Expand All @@ -46,24 +37,20 @@ Feature: Add preconfigured tools via teacher interface
And I switch to the main window
And I wait "2" seconds
And I follow "Edit preconfigured tool"
And I switch to "edit_tool" window
When I switch to "edit_tool" window
Then the field "Tool URL" matches value "http://www.example.com/lti/provider.php"
And the field "Icon URL" matches value "http://download.moodle.org/unittest/test.jpg"
And the field "Secure icon URL" matches value "https://download.moodle.org/unittest/test.jpg"
And I press "Cancel"
And I switch to the main window
And I press "Save and return to course"
And I am on the "Test tool activity 1" "lti activity editing" page
And I press "Save and display"
And I am on the "Test tool" "lti activity editing" page
And the field "Preconfigured tool" matches value "Placeholder"

@javascript @_switch_window
Scenario: Add and use a preconfigured tool
Given the following "activity" exists:
| course | C1 |
| activity | lti |
| name | Test tool activity |
When I am on the "Test tool activity" "lti activity editing" page logged in as teacher1
Given I am on the "Test tool" "lti activity editing" page logged in as teacher1
And I set the field "Tool URL" to local url "/mod/lti/tests/fixtures/tool_provider.php"
And I press "Save and display"
And I switch to "contentframe" iframe
When I switch to "contentframe" iframe
Then I should see "This represents a tool provider"
9 changes: 3 additions & 6 deletions mod/lti/tests/behat/contentitem.feature
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,8 @@ Feature: Content-Item support
@javascript
Scenario: Editing a manually configured external tool
Given the following "activities" exist:
| activity | course | name | typeid | toolurl |
| lti | C1 | Test tool activity 1 | 0 | /mod/lti/tests/fixtures/tool_provider.php |
And I am on the "Course 1" course page logged in as teacher1
And I turn editing mode on
When I open "Test tool activity 1" actions menu
And I choose "Edit settings" in the open action menu
| activity | course | name | typeid | toolurl |
| lti | C1 | Test tool | 0 | /mod/lti/tests/fixtures/tool_provider.php |
And I am on the "Test tool" "lti activity editing" page logged in as teacher1
Then the field "Preconfigured tool" matches value "Automatic, based on tool URL"
And the "Select content" "button" should be disabled
4 changes: 3 additions & 1 deletion mod/lti/tests/behat/lti_activity_completion.feature
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@mod @mod_lti @core_completion @javascript
@mod @mod_lti @core_completion
Feature: View activity completion information in the LTI activity
In order to have visibility of LTI completion requirements
As a student
Expand All @@ -25,6 +25,7 @@ Feature: View activity completion information in the LTI activity
Then "Music history" should have the "Receive a grade" completion condition
And "Music history" should have the "View" completion condition

@javascript
Scenario: View automatic completion items as a student
Given I am on the "Music history" "lti activity" page logged in as student1
And the "View" completion condition of "Music history" is displayed as "done"
Expand All @@ -38,6 +39,7 @@ Feature: View activity completion information in the LTI activity
Then the "Receive a grade" completion condition of "Music history" is displayed as "done"
And the "View" completion condition of "Music history" is displayed as "done"

@javascript
Scenario: Use manual completion
Given I am on the "Music history" "lti activity editing" page logged in as teacher1
And I expand all fieldsets
Expand Down
25 changes: 6 additions & 19 deletions mod/lti/tests/behat/lti_completion_pass_grade.feature
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@mod @mod_lti @core_completion @javascript
@mod @mod_lti @core_completion
Feature: Pass grade activity completion information in the LTI activity

Background:
Expand All @@ -9,38 +9,25 @@ Feature: Pass grade activity completion information in the LTI activity
| student3 | Vinnie | Student3 | student3@example.com |
| teacher1 | Darrell | Teacher1 | teacher1@example.com |
And the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
| fullname | shortname | category | enablecompletion | showcompletionconditions |
| Course 1 | C1 | 0 | 1 | 1 |
And the following "course enrolments" exist:
| user | course | role |
| student1 | C1 | student |
| student2 | C1 | student |
| student3 | C1 | student |
| teacher1 | C1 | editingteacher |
And the following "activities" exist:
| activity | name | course | idnumber |
| lti | Music history | C1 | lti1 |
And I am on the "Course 1" "course editing" page logged in as teacher1
And I expand all fieldsets
And I set the following fields to these values:
| Enable completion tracking | Yes |
| Show activity completion conditions | Yes |
And I press "Save and display"
And I am on the "Music history" "lti activity editing" page
And I set the following fields to these values:
| Completion tracking | Show activity as complete when conditions are met |
| Require view | 1 |
| Require grade | 1 |
| gradepass | 50 |
| completionpassgrade | 1 |
And I press "Save and return to course"
| activity | name | course | gradepass | completion | completionview | completionusegrade | completionpassgrade |
| lti | Music history | C1 | 50 | 2 | 1 | 1 | 1 |

Scenario: View automatic completion items as a teacher
Given I am on the "Music history" "lti activity" page logged in as teacher1
Then "Music history" should have the "View" completion condition
And "Music history" should have the "Receive a grade" completion condition
And "Music history" should have the "Receive a passing grade" completion condition

@javascript
Scenario: View automatic completion items as a student
Given I am on the "Music history" "lti activity" page logged in as student1
And the "View" completion condition of "Music history" is displayed as "done"
Expand Down
18 changes: 6 additions & 12 deletions mod/lti/tests/behat/renametool.feature
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,18 @@ Feature: Rename external tools via inline editing
I need to be able to rename the LTI tool and have it's name change in the gradebook

Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Terry1 | Teacher1 | teacher1@example.com |
And the following "courses" exist:
Given the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
And the following "activities" exist:
| activity | course | name |
| lti | C1 | Test tool activity 1 |

@javascript
Scenario: Add a tool and inline edit
When I log in as "teacher1"
When I log in as "admin"
And I am on "Course 1" course homepage with editing mode on
And I add a "External tool" to section "1" and I fill the form with:
| Activity name | Test tool activity 1 |
| Accept grades from the tool | 1 |
And I set the field "Edit title" in the "li#section-1" "css_element" to "Test tool activity renamed"
And I set the field "Edit title" in the "Test tool activity 1" "activity" to "Test tool activity renamed"
And I navigate to "Setup > Gradebook setup" in the course gradebook
Then I should not see "Test tool activity 1"
And I should see "Test tool activity renamed"
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@mod @mod_lti @javascript
@mod @mod_lti
Feature: Verify the breadcrumbs in manage tools site administration pages
Whenever I navigate to manage tools page in site administration
As an admin
Expand Down
13 changes: 1 addition & 12 deletions mod/lti/tests/behat/toolconfigure.feature
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,7 @@ Feature: Configure tool types
I need to be able to add, remove and configure tool types

Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Terry1 | Teacher1 | teacher1@example.com |
| student1 | Sam1 | Student1 | 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 I log in as "admin"
Given I log in as "admin"
And I navigate to "Plugins > Activity modules > External tool > Manage tools" in site administration

@javascript
Expand Down
12 changes: 4 additions & 8 deletions mod/lti/tests/behat/viewtools.feature
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,22 @@ Feature: Navigate existing LTI tool types using pagination
|name |Test tool [count] |
|description |Example description [count] |
|baseurl |https://www.example.com/tool[count]|
And I log in as "admin"
And I navigate to "Plugins > Activity modules > External tool > Manage tools" in site administration

@javascript
Scenario: View first page of tool types.
Given I log in as "admin"
When I navigate to "Plugins > Activity modules > External tool > Manage tools" in site administration
Then I should see "Test tool 30"
And "Test tool 70" "text" should not be visible

@javascript
Scenario: View second page of tool types using page 2 button.
Given I log in as "admin"
When I navigate to "Plugins > Activity modules > External tool > Manage tools" in site administration
And I click on "2" "link"
When I click on "2" "link"
Then I should see "Test tool 70"
And "Test tool 30" "text" should not be visible

@javascript
Scenario: View last page of tool types using page 2 button.
Given I log in as "admin"
When I navigate to "Plugins > Activity modules > External tool > Manage tools" in site administration
And I click on "Last" "link"
When I click on "Last" "link"
Then I should see "Test tool 70"
And "Test tool 30" "text" should not be visible
3 changes: 3 additions & 0 deletions mod/lti/tests/generator/lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ public function create_instance($record = null, array $options = null) {

if (!isset($record->toolurl)) {
$record->toolurl = '';
} else {
$toolurl = new moodle_url($record->toolurl);
$record->toolurl = $toolurl->out(false);
}
if (!isset($record->resourcekey)) {
$record->resourcekey = '12345';
Expand Down

0 comments on commit d9cccad

Please sign in to comment.