diff --git a/mod/scorm/datamodels/scorm_12.js b/mod/scorm/datamodels/scorm_12.js index 6a34db886e9..2adb0837c83 100644 --- a/mod/scorm/datamodels/scorm_12.js +++ b/mod/scorm/datamodels/scorm_12.js @@ -169,7 +169,7 @@ function SCORMapi1_2(def, cmiobj, cmiint, cmistring256, cmistring4096, scormdebu var Initialized = false; function LMSInitialize (param) { - scoid = scorm_current_node ? scorm_current_node.scoid : scoid; + scoid = (scorm_current_node && scorm_current_node.scoid) ? scorm_current_node.scoid : scoid; initdatamodel(scoid); errorCode = "0"; diff --git a/mod/scorm/tests/behat/missing_org.feature b/mod/scorm/tests/behat/missing_org.feature new file mode 100644 index 00000000000..a9024d73a00 --- /dev/null +++ b/mod/scorm/tests/behat/missing_org.feature @@ -0,0 +1,36 @@ +@mod @mod_scorm @_file_upload @_switch_iframe +Feature: Check a SCORM package with missing Organisational structure. + + @javascript + Scenario: Add a scorm activity to a course + 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 | + When I log in as "teacher1" + And I follow "Course 1" + And I turn editing mode on + And I add a "SCORM package" to section "1" + And I set the following fields to these values: + | Name | MissingOrg SCORM package | + | Description | Description | + And I upload "mod/scorm/tests/packages/singlescobasic_missingorg.zip" file to "Package file" filemanager + And I click on "Save and display" "button" + Then I should see "MissingOrg SCORM package" + And I should see "Normal" + And I should see "Preview" + And I log out + And I log in as "student1" + And I follow "Course 1" + And I follow "MissingOrg 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" diff --git a/mod/scorm/tests/packages/readme_moodle.txt b/mod/scorm/tests/packages/readme_moodle.txt index 0d0c0031d0e..6c691314bc8 100644 --- a/mod/scorm/tests/packages/readme_moodle.txt +++ b/mod/scorm/tests/packages/readme_moodle.txt @@ -17,4 +17,5 @@ Other test packages * invalid.zip - zip file with an single html file, no SCORM config files, used for validation check. * validscorm.zip - non functional package with an imsmanifest.xml, used for validation check. * validaicc.zip - non functional package with AICC config files, used for validation check. -* complexscorm.zip - copied from: https://github.com/jleyva/scorm-debugger +* complexscorm.zip - copied from: https://github.com/jleyva/scorm-debugger. +* singlescobasic_missingorg.zip - copy of scorm.com package but with missing org definition. diff --git a/mod/scorm/tests/packages/singlescobasic_missingorg.zip b/mod/scorm/tests/packages/singlescobasic_missingorg.zip new file mode 100644 index 00000000000..deaeb302067 Binary files /dev/null and b/mod/scorm/tests/packages/singlescobasic_missingorg.zip differ