Skip to content

Commit

Permalink
Merge branch 'master_MDL-45821' of git://github.com/danmarsden/moodle
Browse files Browse the repository at this point in the history
  • Loading branch information
danpoltawski committed Jan 16, 2017
2 parents 0893bb0 + 6c563cc commit 41dd0ac
Show file tree
Hide file tree
Showing 2 changed files with 179 additions and 2 deletions.
9 changes: 7 additions & 2 deletions mod/scorm/lib.php
Expand Up @@ -1438,8 +1438,13 @@ function scorm_check_mode($scorm, &$newattempt, &$attempt, $userid, &$mode) {
}
// Check if the scorm module is incomplete (used to validate user request to start a new attempt).
$incomplete = true;
$tracks = $DB->get_recordset('scorm_scoes_track', array('scormid' => $scorm->id, 'userid' => $userid,
'attempt' => $attempt, 'element' => 'cmi.core.lesson_status'));
$sql = "SELECT sc.id, t.value
FROM {scorm_scoes} sc
LEFT JOIN {scorm_scoes_track} t ON sc.scorm = t.scormid AND sc.id = t.scoid
AND t.element = 'cmi.core.lesson_status' AND t.userid = ? AND t.attempt = ?
WHERE sc.scormtype = 'sco' AND sc.scorm = ?";
$tracks = $DB->get_recordset_sql($sql, array($userid, $attempt, $scorm->id));

foreach ($tracks as $track) {
if (($track->value == 'completed') || ($track->value == 'passed') || ($track->value == 'failed')) {
$incomplete = false;
Expand Down
172 changes: 172 additions & 0 deletions mod/scorm/tests/behat/multisco_review_mode.feature
@@ -0,0 +1,172 @@
@mod @mod_scorm @_file_upload @_switch_iframe
Feature: Scorm multi-sco review mode.
In order to let students access a scorm package
As a teacher
I need to add scorm activity to a course
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 |

@javascript
Scenario: Test review mode with a single sco completion.
When I log in as "teacher1"
And I follow "Course 1"
And I turn editing mode on
And I navigate to "Edit settings" in current page administration
And I set the following fields to these values:
| Enable completion tracking | Yes |
And I press "Save and display"
And I add a "SCORM package" to section "1"
And I set the following fields to these values:
| Name | Basic Multi-sco SCORM package |
| Description | Description |
And I set the field "Completed" to "1"
And I upload "mod/scorm/tests/packages/RuntimeMinimumCalls_SCORM12.zip" file to "Package file" filemanager
And I click on "Save and display" "button"
And I should see "Basic Multi-sco SCORM package"
And I log out
And I log in as "student1"
And I follow "Course 1"
And I follow "Basic Multi-sco SCORM package"
And I should see "Normal"
And I press "Enter"
And I switch to "scorm_object" iframe
And I should see "Play of the game"
And I switch to the main frame
And I follow "Exit activity"
And I wait until the page is ready
And I should see "Basic Multi-sco SCORM package"
And I follow "Basic Multi-sco SCORM package"
And I should see "Normal"
And I press "Enter"
Then I should not see "Review mode"

@javascript
Scenario: Test review mode with all scos completed.
When I log in as "teacher1"
And I follow "Course 1"
And I turn editing mode on
And I navigate to "Edit settings" in current page administration
And I set the following fields to these values:
| Enable completion tracking | Yes |
And I press "Save and display"
And I add a "SCORM package" to section "1"
And I set the following fields to these values:
| Name | ADV Multi-sco SCORM package |
| Description | Description |
| Completion tracking | Show activity as complete when conditions are met |
| Require all scos to return completion status | 1 |
And I set the field "Completed" to "1"
And I upload "mod/scorm/tests/packages/RuntimeMinimumCalls_SCORM12.zip" file to "Package file" filemanager
And I click on "Save and display" "button"
And I should see "ADV Multi-sco SCORM package"
And I log out
And I log in as "student1"
And I follow "Course 1"
And I follow "ADV Multi-sco SCORM package"
And I should see "Normal"
And I press "Enter"
And I switch to "scorm_object" iframe
And I should see "Play of the game"

And I switch to the main frame
And I click on "Par?" "list_item"
And I switch to "scorm_object" iframe
And I should see "Par"

And I switch to the main frame
And I click on "Keeping Score" "list_item"
And I switch to "scorm_object" iframe
And I should see "Scoring"

And I switch to the main frame
And I click on "Other Scoring Systems" "list_item"
And I switch to "scorm_object" iframe
And I should see "Other Scoring Systems"

And I switch to the main frame
And I click on "The Rules of Golf" "list_item"
And I switch to "scorm_object" iframe
And I should see "The Rules of Golf"

And I switch to the main frame
And I click on "Playing Golf Quiz" "list_item"
And I switch to "scorm_object" iframe
And I should see "Knowledge Check"

And I switch to the main frame
And I click on "Taking Care of the Course" "list_item"
And I switch to "scorm_object" iframe
And I should see "Etiquette - Care For the Course"

And I switch to the main frame
And I click on "Avoiding Distraction" "list_item"
And I switch to "scorm_object" iframe
And I should see "Etiquette - Avoiding Distraction"

And I switch to the main frame
And I click on "Playing Politely" "list_item"
And I switch to "scorm_object" iframe
And I should see "Etiquette - Playing the Game"

And I switch to the main frame
And I click on "Etiquette Quiz" "list_item"
And I switch to "scorm_object" iframe
And I should see "Knowledge Check"

And I switch to the main frame
And I click on "Handicapping Overview" "list_item"
And I switch to "scorm_object" iframe
And I should see "Handicapping"

And I switch to the main frame
And I click on "Calculating a Handicap" "list_item"
And I switch to "scorm_object" iframe
And I should see "Calculating a Handicap"

And I switch to the main frame
And I click on "Calculating a Handicapped Score" "list_item"
And I switch to "scorm_object" iframe
And I should see "Calculating a Score"

And I switch to the main frame
And I click on "Handicapping Example" "list_item"
And I switch to "scorm_object" iframe
And I should see "Calculating a Score"

And I switch to the main frame
And I click on "Handicapping Quiz" "list_item"
And I switch to "scorm_object" iframe
And I should see "Knowledge Check"

And I switch to the main frame
And I click on "How to Have Fun Playing Golf" "list_item"
And I switch to "scorm_object" iframe
And I should see "How to Have Fun Golfing"

And I switch to the main frame
And I click on "How to Make Friends Playing Golf" "list_item"
And I switch to "scorm_object" iframe
And I should see "How to Make Friends on the Golf Course"

And I switch to the main frame
And I click on "Having Fun Quiz" "list_item"
And I switch to "scorm_object" iframe
And I should see "Knowledge Check"
And I switch to the main frame
And I follow "Exit activity"
And I wait until the page is ready
And I should see "ADV Multi-sco SCORM package"
And I follow "ADV Multi-sco SCORM package"
And I should see "Normal"
And I press "Enter"
Then I should see "Review mode"

0 comments on commit 41dd0ac

Please sign in to comment.