Details
Description
I have tried to get Moodle 2.9+ (Build: 20150528 - https://git.moodle.org/gw?p=moodle.git;a=snapshot;h=5be5d4d2c93db898a95b929521b6c191e613b7bb;sf=tgz ) to complete the ADL SCORM Test Suite without being able to get past Lesson 4 of Course 1. Have tested and confirmed same behavior with MSIE 6 & 7 (in emulation mode), 8, 10, & 11. I also tested with different versions of Java: 1.4.02, 1.4.03 (both specified in ADL's environment used for their own tests), 1.4.19, and the last version that allowed me to run unsigned/expired certificates (Java 7.45). I have also dialed the security settings in IE all the way down without any positive effect in the results.
In essence, there is the problem when running the ADL Test Suite, Course 01:
Lesson 1 completes Ok.
Lesson 2 completes Ok.
Lesson 3 completes Ok.
Lesson 4 (part 1) completes Ok and asks the user to log out and back in to continue the test.
Then, after logging back in:
Lesson 1 is automatically launched (instead of lesson 4). It does however complete Ok.
Lesson 2 completes Ok.
Lesson 3 completes Ok.
Lesson 4 (again part 1) completes Ok and asks the user to log out and back in to continue.
The course never gets to Lesson 4 part 2 (or part 3) or the other lessons after that, so the course never gets completed.
Looking at logs generated by the test suite, "sco04.htm" initializes the "visit" variable via JavaScript on the first pass, but it doesn't seem to store it anywhere that can persist when the user logs back in. The sco04.html code makes a call to the ADL Java API to store the incremented value via "lmsRTEApplet.setCurrentSCOLaunchCount(visit)" so that the next time around Part 2 of lesson 4 can run. However, the incremented "visit" value doesn't get physically stored anywhere, so it goes out of scope when the "sco04.html" script ends, which causes "visit" to re-initialize after logging back in, so Part 1 runs all over again every time.
Other issues with running the ADL Test Suite:
- Re-entering the course after logging out and back in restarts lesson 1, rather than the lesson 4 that was left incomplete at the time of logout.
- There's a popup indicating that the current lesson has been launched out of sequence (which is not), but it happens whether the course is set to auto-launch or manually launch the next lesson.
- An interesting sidenote is that if the mouse is not moved at least slightly while the test is running, the lesson will time out (after a few seconds --without any notification) and the current lesson will simply halt, forcing the user to restart the test.
And the big problem is that without completing the test, there's never an indication that the LMS is SCORM comformant, though sometimes a message is written to the screen to notify the user that the LMS is actually NOT SCORM comformant.
I don't know if it's a Java security setting that's preventing I/O to the filesystem (ie: cache, user's temp, ADL's "LMSTRE" folder, etc). I do know that setting the Java security too loose (ie: "permission java.security.AllPermission;" or "permission java.io.FilePermission" for "<<ALL FILES>>") causes the test suite to actually FAIL and assess the LMS as noncomformant. In other words, if it's a Java security setting (and there are hundreds of possible combinations) then it is a very specific policy configuration that will allow the test suite to complete.
Perhaps it's something else altogether. I did find other tracking issues that may be related (MDL-31967, MDL-28603, MDL-4746 MDL-22395, MDL-19706), so hopefully this is simple enough to fix.