<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mayank+gupta2005</id>
	<title>MoodleDocs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.moodle.org/dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mayank+gupta2005"/>
	<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/Special:Contributions/Mayank_gupta2005"/>
	<updated>2026-08-05T18:35:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=42246</id>
		<title>SCORM player rewrite</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=42246"/>
		<updated>2013-09-01T19:42:35Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: updating project state&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work_in_progress}}&lt;br /&gt;
{{Infobox Project&lt;br /&gt;
|name = SCORM player rewrite&lt;br /&gt;
|state = Coding Period&lt;br /&gt;
|tracker = MDL-39910&lt;br /&gt;
|discussion = XXX&lt;br /&gt;
|assignee = [https://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;13&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The project aims at rewriting the current implementation of the SCORM player which uses &#039;&#039;&#039;&#039;&#039;Yahoo! User Interface Librar&#039;&#039;&#039;y 2&#039;&#039;. This will be achieved by updating the YUI2 code of the SCORM player to YUI3. Additionally, this project will also develop a new HTML5 player to deliver SCORM contents. This would inherently help in delivering SCORM content not only on the Desktop/Laptop browser but also on Mobile devices like iPhone, Android devices and tablets like iPad, etc.&lt;br /&gt;
&lt;br /&gt;
This project will add option in SCORM settings to deliver SCORM package through new HTML5 player. If time permits, code will be added to detect HTML5 support in browser and auto switch to the HTML5 player.&lt;br /&gt;
This would also help in providing SCORM support in the HTML5 Moodle Mobile application.&lt;br /&gt;
&lt;br /&gt;
Thus the benefits of the projects are two fold - &lt;br /&gt;
&lt;br /&gt;
1. Improve the current SCORM player by updating the YUI2 to code to YUI3.&lt;br /&gt;
&lt;br /&gt;
2. To add a new HTML5 SCORM player to SCORM module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation Details==&lt;br /&gt;
&lt;br /&gt;
The current SCORM player in Moodle makes use of YUI2. Yahoo has released a new version 3 of the Yahoo! User Interface Library. &lt;br /&gt;
YUI2 use Connection Manager to make in-page HTTP requests through a simplified interface to the XMLHttpRequest object. This has been replaced by IO Utility in YUI3. The IO family of modules provide a simple API for requesting resources over HTTP and HTTPS.&lt;br /&gt;
The current SCORM player also uses the following from the YUI2 library - yui2-resize, yui2-dragdrop, yui2-container, yui2-button, yui2-layout, yui2-treeview, yui2-json, yui2-event.&lt;br /&gt;
&lt;br /&gt;
Of the above yui2-treeview is used to render the Table of Contents (TOC) of the SCORM content package. The TOC allows the users to navigate within the SCORM content. SCORM 2004 lays down standards for Sequencing Navigation that enables the content developers to control how a student can navigate within the SCORM content. The treeview implementation of YUI library thus also helps to enable/disable the particular nodes /leaves of the tree - the TOC.&lt;br /&gt;
The rendering of the SCORM content and TOC object is computed using scorm/player.php. This file generates the HTML unordered list that is parsed by the YUI2 treeview code in scorm/module.js to generate the TOC.&lt;br /&gt;
The project will involve rewriting this YUI2 code in module.js to YUI3 using the YUI3 treeview or better known as gallery-yui3 treeview  as the major part. &lt;br /&gt;
&lt;br /&gt;
Along with other parts of the YUI2 codes that need to be re-written are the navigation buttons that are enabled/disabled in accordance with the TOC of the SCORM content. After the YUI2 code has been written, some valuable amount of time in the project needs to be used in detect and fix any regression issues that would have creeped in during the rewrite. These regressions issues would be detected using the SCORM test harness. Also, this should also fix some of the SCORM 2004 Sequencing and Navigation bugs, which are currently not possible to fix because of the current YUI2 code.&lt;br /&gt;
The second part of the project involves adding a new HTML5 player for SCORM module. This HTML5 player can be used to deliver SCORM content by users who prefer to use the HTML5 player or where the current players renders to be non-working at times - Mobile devices and tablets.&lt;br /&gt;
This would be basically implemented as an optional player that would either be turned-on by the administrator or when Moodle is being accessed on a Mobile device or tablet.&lt;br /&gt;
This would help increase the usability playability of SCORM content in Moodle on such devices. Thus, this would be a boon for the users who have complained about Moodle SCORM player unable to render SCORM content on a mobile device or tablet correctly.&lt;br /&gt;
&lt;br /&gt;
1. In file mod/scorm/datamodels/aicc.js.php, there is code to make in-page HTTP requests using Connection manager. This has to be replaced by IO utility of YUI 3.&lt;br /&gt;
&lt;br /&gt;
2. In mod/scorm/datamodels/module.js, various components of YUI 2 – Resize, Drag and drop, Container, Button, Layout, Treeview, JSON, Event will be replaced by their corresponding code in YUI 3. Container will be replaced by Overlay of YUI 3.&lt;br /&gt;
&lt;br /&gt;
3. Similar to aicc.js.php, scorm_13.js.php also makes requests using Connection manager of YUI 2 which will be replaced by IO utility.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;June 1 - June 9 :&#039;&#039;&#039; Get more familiar with YUI3 library in particular YUI3 treeview, YUI3 drag drop, YUI3 button, YUI3 layout, YUI3 event and YUI3 JSON&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 10 - June 16:&#039;&#039;&#039; Discuss with mentor in detail the implementation of the HTML5 player for SCORM content, essentially, the feature list (based on community feedback), implementation&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;[Coding Period]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;June 17 - June 19:&#039;&#039;&#039; Create mockups for the new HTML5 player(UI). Post on Moodle community forums and ask for feedback.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 20 - June 27:&#039;&#039;&#039; Make the required changes in scorm/player.php to facilitate the rewrite of YUI2 to YUI3.?June 21 - July 7 ~ 2 weeks: Rewrite the code for YUI2 treeview to YUI3 treeview and essentially change other components of YUI2 to YUI3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 16 - July 27:&#039;&#039;&#039; Check for regression issues and fix issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;[Midterm Evaluation]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
This will be the midterm evaluation target - Complete rewrite of SCORM player of YUI2 to YUI3, report regression issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 29 - August 5:&#039;&#039;&#039; Fix regression issues and facilitate improvement for SCORM 2004 sequencing.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 7 - Aug 14:&#039;&#039;&#039; Add option in SCORM administration for switching over to HTML5 player and/or detect support for HTML5 in mobile device and switch automatically.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 15 - 30:&#039;&#039;&#039; Write code for the new HTML5 player in scorm/player.php which gets executed on the options set by the Administrator, also write/re-use code that would update SCORM progress as in current SCORM player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 31 - Sept 6:&#039;&#039;&#039; Implement navigation controls, TOC and other features for the HTML5 scorm player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 7 - 14:&#039;&#039;&#039; Thoroughly test the HTML5 player for SCORM 1.2 content playback and also if possible for SCORM 2004 using SCORM Test Harness.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 15 - Sept 16:&#039;&#039;&#039; Write documentation for the new HTML5 player for SCORM.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 17 - Sept 23:&#039;&#039;&#039; This is the buffer period, it will be used to resolve any unexpected issues, add/edit documentation, scrub code. Code ready for submitting.&lt;br /&gt;
 &lt;br /&gt;
Would be a nice task: If time permits the project can be extended to solve some Sequencing Navigation bugs for SCORM 2004 using the new YUI3 implementation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[Firm Pencils Down]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[GSOC/2013|Moodle GSoC projects for 2013]]&lt;br /&gt;
* [[GSOC|Moodle GSoC Overview page]]&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=40775</id>
		<title>SCORM player rewrite</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=40775"/>
		<updated>2013-06-07T16:09:57Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work_in_progress}}&lt;br /&gt;
{{Infobox Project&lt;br /&gt;
|name = SCORM player rewrite&lt;br /&gt;
|state = Community bonding period&lt;br /&gt;
|tracker = MDL-39910&lt;br /&gt;
|discussion = XXX&lt;br /&gt;
|assignee = [https://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;13&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The project aims at rewriting the current implementation of the SCORM player which uses &#039;&#039;&#039;&#039;&#039;Yahoo! User Interface Librar&#039;&#039;&#039;y 2&#039;&#039;. This will be achieved by updating the YUI2 code of the SCORM player to YUI3. Additionally, this project will also develop a new HTML5 player to deliver SCORM contents. This would inherently help in delivering SCORM content not only on the Desktop/Laptop browser but also on Mobile devices like iPhone, Android devices and tablets like iPad, etc.&lt;br /&gt;
&lt;br /&gt;
This project will add option in SCORM settings to deliver SCORM package through new HTML5 player. If time permits, code will be added to detect HTML5 support in browser and auto switch to the HTML5 player.&lt;br /&gt;
This would also help in providing SCORM support in the HTML5 Moodle Mobile application.&lt;br /&gt;
&lt;br /&gt;
Thus the benefits of the projects are two fold - &lt;br /&gt;
&lt;br /&gt;
1. Improve the current SCORM player by updating the YUI2 to code to YUI3.&lt;br /&gt;
&lt;br /&gt;
2. To add a new HTML5 SCORM player to SCORM module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation Details==&lt;br /&gt;
&lt;br /&gt;
The current SCORM player in Moodle makes use of YUI2. Yahoo has released a new version 3 of the Yahoo! User Interface Library. &lt;br /&gt;
YUI2 use Connection Manager to make in-page HTTP requests through a simplified interface to the XMLHttpRequest object. This has been replaced by IO Utility in YUI3. The IO family of modules provide a simple API for requesting resources over HTTP and HTTPS.&lt;br /&gt;
The current SCORM player also uses the following from the YUI2 library - yui2-resize, yui2-dragdrop, yui2-container, yui2-button, yui2-layout, yui2-treeview, yui2-json, yui2-event.&lt;br /&gt;
&lt;br /&gt;
Of the above yui2-treeview is used to render the Table of Contents (TOC) of the SCORM content package. The TOC allows the users to navigate within the SCORM content. SCORM 2004 lays down standards for Sequencing Navigation that enables the content developers to control how a student can navigate within the SCORM content. The treeview implementation of YUI library thus also helps to enable/disable the particular nodes /leaves of the tree - the TOC.&lt;br /&gt;
The rendering of the SCORM content and TOC object is computed using scorm/player.php. This file generates the HTML unordered list that is parsed by the YUI2 treeview code in scorm/module.js to generate the TOC.&lt;br /&gt;
The project will involve rewriting this YUI2 code in module.js to YUI3 using the YUI3 treeview or better known as gallery-yui3 treeview  as the major part. &lt;br /&gt;
&lt;br /&gt;
Along with other parts of the YUI2 codes that need to be re-written are the navigation buttons that are enabled/disabled in accordance with the TOC of the SCORM content. After the YUI2 code has been written, some valuable amount of time in the project needs to be used in detect and fix any regression issues that would have creeped in during the rewrite. These regressions issues would be detected using the SCORM test harness. Also, this should also fix some of the SCORM 2004 Sequencing and Navigation bugs, which are currently not possible to fix because of the current YUI2 code.&lt;br /&gt;
The second part of the project involves adding a new HTML5 player for SCORM module. This HTML5 player can be used to deliver SCORM content by users who prefer to use the HTML5 player or where the current players renders to be non-working at times - Mobile devices and tablets.&lt;br /&gt;
This would be basically implemented as an optional player that would either be turned-on by the administrator or when Moodle is being accessed on a Mobile device or tablet.&lt;br /&gt;
This would help increase the usability playability of SCORM content in Moodle on such devices. Thus, this would be a boon for the users who have complained about Moodle SCORM player unable to render SCORM content on a mobile device or tablet correctly.&lt;br /&gt;
&lt;br /&gt;
1. In file mod/scorm/datamodels/aicc.js.php, there is code to make in-page HTTP requests using Connection manager. This has to be replaced by IO utility of YUI 3.&lt;br /&gt;
&lt;br /&gt;
2. In mod/scorm/datamodels/module.js, various components of YUI 2 – Resize, Drag and drop, Container, Button, Layout, Treeview, JSON, Event will be replaced by their corresponding code in YUI 3. Container will be replaced by Overlay of YUI 3.&lt;br /&gt;
&lt;br /&gt;
3. Similar to aicc.js.php, scorm_13.js.php also makes requests using Connection manager of YUI 2 which will be replaced by IO utility.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;June 1 - June 9 :&#039;&#039;&#039; Get more familiar with YUI3 library in particular YUI3 treeview, YUI3 drag drop, YUI3 button, YUI3 layout, YUI3 event and YUI3 JSON&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 10 - June 16:&#039;&#039;&#039; Discuss with mentor in detail the implementation of the HTML5 player for SCORM content, essentially, the feature list (based on community feedback), implementation&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;[Coding Period]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;June 17 - June 19:&#039;&#039;&#039; Create mockups for the new HTML5 player(UI). Post on Moodle community forums and ask for feedback.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 20 - June 27:&#039;&#039;&#039; Make the required changes in scorm/player.php to facilitate the rewrite of YUI2 to YUI3.?June 21 - July 7 ~ 2 weeks: Rewrite the code for YUI2 treeview to YUI3 treeview and essentially change other components of YUI2 to YUI3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 16 - July 27:&#039;&#039;&#039; Check for regression issues and fix issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;[Midterm Evaluation]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
This will be the midterm evaluation target - Complete rewrite of SCORM player of YUI2 to YUI3, report regression issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 29 - August 5:&#039;&#039;&#039; Fix regression issues and facilitate improvement for SCORM 2004 sequencing.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 7 - Aug 14:&#039;&#039;&#039; Add option in SCORM administration for switching over to HTML5 player and/or detect support for HTML5 in mobile device and switch automatically.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 15 - 30:&#039;&#039;&#039; Write code for the new HTML5 player in scorm/player.php which gets executed on the options set by the Administrator, also write/re-use code that would update SCORM progress as in current SCORM player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 31 - Sept 6:&#039;&#039;&#039; Implement navigation controls, TOC and other features for the HTML5 scorm player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 7 - 14:&#039;&#039;&#039; Thoroughly test the HTML5 player for SCORM 1.2 content playback and also if possible for SCORM 2004 using SCORM Test Harness.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 15 - Sept 16:&#039;&#039;&#039; Write documentation for the new HTML5 player for SCORM.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 17 - Sept 23:&#039;&#039;&#039; This is the buffer period, it will be used to resolve any unexpected issues, add/edit documentation, scrub code. Code ready for submitting.&lt;br /&gt;
 &lt;br /&gt;
Would be a nice task: If time permits the project can be extended to solve some Sequencing Navigation bugs for SCORM 2004 using the new YUI3 implementation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[Firm Pencils Down]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[GSOC/2013|Moodle GSoC projects for 2013]]&lt;br /&gt;
* [[GSOC|Moodle GSoC Overview page]]&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=40774</id>
		<title>SCORM player rewrite</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=40774"/>
		<updated>2013-06-07T16:07:33Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work_in_progress}}&lt;br /&gt;
{{Infobox Project&lt;br /&gt;
|name = SCORM player rewrite&lt;br /&gt;
|state = Community bonding period&lt;br /&gt;
|tracker = MDL-39910&lt;br /&gt;
|discussion = XXX&lt;br /&gt;
|assignee = [https://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;13&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The project aims at rewriting the current implementation of the SCORM player which uses &#039;&#039;&#039;&#039;&#039;Yahoo! User Interface Librar&#039;&#039;&#039;y 2&#039;&#039;. This will be achieved by updating the YUI2 code of the SCORM player to YUI3. Additionally, this project will also develop a new HTML5 player to deliver SCORM contents. This would inherently help in delivering SCORM content not only on the Desktop/Laptop browser but also on Mobile devices like iPhone, Android devices and tablets like iPad, etc.&lt;br /&gt;
&lt;br /&gt;
This project will add option in SCORM settings to deliver SCORM package through new HTML5 player. If time permits, code will be added to detect HTML5 support in browser and auto switch to the HTML5 player.&lt;br /&gt;
This would also help in providing SCORM support in the HTML5 Moodle Mobile application.&lt;br /&gt;
&lt;br /&gt;
Thus the benefits of the projects are two fold - &lt;br /&gt;
&lt;br /&gt;
1. Improve the current SCORM player by updating the YUI2 to code to YUI3.&lt;br /&gt;
&lt;br /&gt;
2. To add a new HTML5 SCORM player to SCORM module.&lt;br /&gt;
&lt;br /&gt;
As already mentioned, the current SCORM player in Moodle makes use of YUI2. Yahoo has released a new version 3 of the Yahoo! User Interface Library. &lt;br /&gt;
YUI2 use Connection Manager to make in-page HTTP requests through a simplified interface to the XMLHttpRequest object. This has been replaced by IO Utility in YUI3. The IO family of modules provide a simple API for requesting resources over HTTP and HTTPS.&lt;br /&gt;
The current SCORM player also uses the following from the YUI2 library - yui2-resize, yui2-dragdrop, yui2-container, yui2-button, yui2-layout, yui2-treeview, yui2-json, yui2-event.&lt;br /&gt;
&lt;br /&gt;
Of the above yui2-treeview is used to render the Table of Contents (TOC) of the SCORM content package. The TOC allows the users to navigate within the SCORM content. SCORM 2004 lays down standards for Sequencing Navigation that enables the content developers to control how a student can navigate within the SCORM content. The treeview implementation of YUI library thus also helps to enable/disable the particular nodes /leaves of the tree - the TOC.&lt;br /&gt;
The rendering of the SCORM content and TOC object is computed using scorm/player.php. This file generates the HTML unordered list that is parsed by the YUI2 treeview code in scorm/module.js to generate the TOC.&lt;br /&gt;
The project will involve rewriting this YUI2 code in module.js to YUI3 using the YUI3 treeview or better known as gallery-yui3 treeview  as the major part. &lt;br /&gt;
&lt;br /&gt;
Along with other parts of the YUI2 codes that need to be re-written are the navigation buttons that are enabled/disabled in accordance with the TOC of the SCORM content. After the YUI2 code has been written, some valuable amount of time in the project needs to be used in detect and fix any regression issues that would have creeped in during the rewrite. These regressions issues would be detected using the SCORM test harness. Also, this should also fix some of the SCORM 2004 Sequencing and Navigation bugs, which are currently not possible to fix because of the current YUI2 code.&lt;br /&gt;
The second part of the project involves adding a new HTML5 player for SCORM module. This HTML5 player can be used to deliver SCORM content by users who prefer to use the HTML5 player or where the current players renders to be non-working at times - Mobile devices and tablets.&lt;br /&gt;
This would be basically implemented as an optional player that would either be turned-on by the administrator or when Moodle is being accessed on a Mobile device or tablet.&lt;br /&gt;
This would help increase the usability playability of SCORM content in Moodle on such devices. Thus, this would be a boon for the users who have complained about Moodle SCORM player unable to render SCORM content on a mobile device or tablet correctly.&lt;br /&gt;
&lt;br /&gt;
1. In file mod/scorm/datamodels/aicc.js.php, there is code to make in-page HTTP requests using Connection manager. This has to be replaced by IO utility of YUI 3.&lt;br /&gt;
&lt;br /&gt;
2. In mod/scorm/datamodels/module.js, various components of YUI 2 – Resize, Drag and drop, Container, Button, Layout, Treeview, JSON, Event will be replaced by their corresponding code in YUI 3. Container will be replaced by Overlay of YUI 3.&lt;br /&gt;
&lt;br /&gt;
3. Similar to aicc.js.php, scorm_13.js.php also makes requests using Connection manager of YUI 2 which will be replaced by IO utility.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;June 1 - June 9 :&#039;&#039;&#039; Get more familiar with YUI3 library in particular YUI3 treeview, YUI3 drag drop, YUI3 button, YUI3 layout, YUI3 event and YUI3 JSON&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 10 - June 16:&#039;&#039;&#039; Discuss with mentor in detail the implementation of the HTML5 player for SCORM content, essentially, the feature list (based on community feedback), implementation&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;[Coding Period]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;June 17 - June 19:&#039;&#039;&#039; Create mockups for the new HTML5 player(UI). Post on Moodle community forums and ask for feedback.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 20 - June 27:&#039;&#039;&#039; Make the required changes in scorm/player.php to facilitate the rewrite of YUI2 to YUI3.?June 21 - July 7 ~ 2 weeks: Rewrite the code for YUI2 treeview to YUI3 treeview and essentially change other components of YUI2 to YUI3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 16 - July 27:&#039;&#039;&#039; Check for regression issues and fix issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;[Midterm Evaluation]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
This will be the midterm evaluation target - Complete rewrite of SCORM player of YUI2 to YUI3, report regression issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 29 - August 5:&#039;&#039;&#039; Fix regression issues and facilitate improvement for SCORM 2004 sequencing.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 7 - Aug 14:&#039;&#039;&#039; Add option in SCORM administration for switching over to HTML5 player and/or detect support for HTML5 in mobile device and switch automatically.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 15 - 30:&#039;&#039;&#039; Write code for the new HTML5 player in scorm/player.php which gets executed on the options set by the Administrator, also write/re-use code that would update SCORM progress as in current SCORM player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 31 - Sept 6:&#039;&#039;&#039; Implement navigation controls, TOC and other features for the HTML5 scorm player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 7 - 14:&#039;&#039;&#039; Thoroughly test the HTML5 player for SCORM 1.2 content playback and also if possible for SCORM 2004 using SCORM Test Harness.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 15 - Sept 16:&#039;&#039;&#039; Write documentation for the new HTML5 player for SCORM.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 17 - Sept 23:&#039;&#039;&#039; This is the buffer period, it will be used to resolve any unexpected issues, add/edit documentation, scrub code. Code ready for submitting.&lt;br /&gt;
 &lt;br /&gt;
Would be a nice task: If time permits the project can be extended to solve some Sequencing Navigation bugs for SCORM 2004 using the new YUI3 implementation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[Firm Pencils Down]&#039;&#039;&#039;&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[GSOC/2013|Moodle GSoC projects for 2013]]&lt;br /&gt;
* [[GSOC|Moodle GSoC Overview page]]&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=40773</id>
		<title>SCORM player rewrite</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=40773"/>
		<updated>2013-06-07T15:59:58Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work_in_progress}}&lt;br /&gt;
{{Infobox Project&lt;br /&gt;
|name = SCORM player rewrite&lt;br /&gt;
|state = Community bonding period&lt;br /&gt;
|tracker = MDL-39910&lt;br /&gt;
|discussion = XXX&lt;br /&gt;
|assignee = [https://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;13&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The project aims at rewriting the current implementation of the SCORM player which uses &#039;&#039;&#039;&#039;&#039;Yahoo! User Interface Librar&#039;&#039;&#039;y 2&#039;&#039;. This will be achieved by updating the YUI2 code of the SCORM player to YUI3. Additionally, this project will also develop a new HTML5 player to deliver SCORM contents. This would inherently help in delivering SCORM content not only on the Desktop/Laptop browser but also on Mobile devices like iPhone, Android devices and tablets like iPad, etc.&lt;br /&gt;
Thus as a result, the new &#039;&#039;&#039;HTML5 player&#039;&#039;&#039; addition to SCORM module would extend and give an optional/or  auto switch to HTML5 player for those administrators who prefer deliver SCORM content with it; or for Mobile devices and tablets.&lt;br /&gt;
&lt;br /&gt;
This would also help in providing SCORM support in the HTML5 Moodle Mobile application.&lt;br /&gt;
&lt;br /&gt;
Thus the benefits of the projects are two fold - &lt;br /&gt;
&lt;br /&gt;
1. Improve the current SCORM player by updating the YUI2 to code to YUI3.&lt;br /&gt;
&lt;br /&gt;
2. To add a new HTML5 SCORM player to SCORM module.&lt;br /&gt;
&lt;br /&gt;
As already mentioned, the current SCORM player in Moodle makes use of YUI2. Yahoo has released a new version 3 of the Yahoo! User Interface Library. &lt;br /&gt;
YUI2 use Connection Manager to make in-page HTTP requests through a simplified interface to the XMLHttpRequest object. This has been replaced by IO Utility in YUI3. The IO family of modules provide a simple API for requesting resources over HTTP and HTTPS.&lt;br /&gt;
The current SCORM player also uses the following from the YUI2 library - yui2-resize, yui2-dragdrop, yui2-container, yui2-button, yui2-layout, yui2-treeview, yui2-json, yui2-event.&lt;br /&gt;
&lt;br /&gt;
Of the above yui2-treeview is used to render the Table of Contents (TOC) of the SCORM content package. The TOC allows the users to navigate within the SCORM content. SCORM 2004 lays down standards for Sequencing Navigation that enables the content developers to control how a student can navigate within the SCORM content. The treeview implementation of YUI library thus also helps to enable/disable the particular nodes /leaves of the tree - the TOC.&lt;br /&gt;
The rendering of the SCORM content and TOC object is computed using scorm/player.php. This file generates the HTML unordered list that is parsed by the YUI2 treeview code in scorm/module.js to generate the TOC.&lt;br /&gt;
The project will involve rewriting this YUI2 code in module.js to YUI3 using the YUI3 treeview or better known as gallery-yui3 treeview  as the major part. &lt;br /&gt;
&lt;br /&gt;
Along with other parts of the YUI2 codes that need to be re-written are the navigation buttons that are enabled/disabled in accordance with the TOC of the SCORM content. After the YUI2 code has been written, some valuable amount of time in the project needs to be used in detect and fix any regression issues that would have creeped in during the rewrite. These regressions issues would be detected using the SCORM test harness. Also, this should also fix some of the SCORM 2004 Sequencing and Navigation bugs, which are currently not possible to fix because of the current YUI2 code.&lt;br /&gt;
The second part of the project involves adding a new HTML5 player for SCORM module. This HTML5 player can be used to deliver SCORM content by users who prefer to use the HTML5 player or where the current players renders to be non-working at times - Mobile devices and tablets.&lt;br /&gt;
This would be basically implemented as an optional player that would either be turned-on by the administrator or when Moodle is being accessed on a Mobile device or tablet.&lt;br /&gt;
This would help increase the usability playability of SCORM content in Moodle on such devices. Thus, this would be a boon for the users who have complained about Moodle SCORM player unable to render SCORM content on a mobile device or tablet correctly.&lt;br /&gt;
&lt;br /&gt;
1. In file mod/scorm/datamodels/aicc.js.php, there is code to make in-page HTTP requests using Connection manager. This has to be replaced by IO utility of YUI 3.&lt;br /&gt;
&lt;br /&gt;
2. In mod/scorm/datamodels/module.js, various components of YUI 2 – Resize, Drag and drop, Container, Button, Layout, Treeview,JSON, Event will be replaced by their corresponding code in YUI 3. Container will be replaced by Overlay of YUI 3.&lt;br /&gt;
&lt;br /&gt;
3. Similar to aicc.js.php, scorm_13.js.php also makes requests using Connection manager of YUI 2 which will be replaced by IO utility.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;June 1 - June 9 :&#039;&#039;&#039; Get more familiar with YUI3 library in particular YUI3 treeview, YUI3 drag drop, YUI3 button, YUI3 layout, YUI3 event and YUI3 JSON&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 10 - June 16:&#039;&#039;&#039; Discuss with mentor in detail the implementation of the HTML5 player for SCORM content, essentially, the feature list (based on community feedback), implementation&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;[Coding Period]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;June 17 - June 19:&#039;&#039;&#039; Create mockups for the new HTML5 player(UI). Post on Moodle community forums and ask for feedback.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 20 - June 27:&#039;&#039;&#039; Make the required changes in scorm/player.php to facilitate the rewrite of YUI2 to YUI3.?June 21 - July 7 ~ 2 weeks: Rewrite the code for YUI2 treeview to YUI3 treeview and essentially change other components of YUI2 to YUI3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 16 - July 27:&#039;&#039;&#039; Check for regression issues and fix issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;[Midterm Evaluation]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
This will be the midterm evaluation target - Complete rewrite of SCORM player of YUI2 to YUI3, report regression issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 29 - August 5:&#039;&#039;&#039; Fix regression issues and facilitate improvement for SCORM 2004 sequencing.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 7 - Aug 14:&#039;&#039;&#039; Add option in SCORM administration for switching over to HTML5 player and/or detect mobile device and switch automatically.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 15 - 30:&#039;&#039;&#039; Write code for the new HTML5 player in scorm/player.php which gets executed on the options set by the Administrator, also write/re-use code that would update SCORM progress as in current SCORM player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 31 - Sept 6:&#039;&#039;&#039; Implement navigation controls, TOC and other features for the HTML5 scorm player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 7 - 14:&#039;&#039;&#039; Thoroughly test the HTML5 player for SCORM 1.2 content playback and also if possible for SCORM 2004 using SCORM Test Harness.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 15 - Sept 16:&#039;&#039;&#039; Write documentation for the new HTML5 player for SCORM.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 17 - Sept 23:&#039;&#039;&#039; This is the buffer period, it will be used to resolve any unexpected issues, add/edit documentation, scrub code. Code ready for submitting.&lt;br /&gt;
 &lt;br /&gt;
Would be a nice task: If time permits the project can be extended to solve some Sequencing Navigation bugs for SCORM 2004 using the new YUI3 implementation.&lt;br /&gt;
&#039;&#039;&#039;[Firm Pencils Down]&#039;&#039;&#039;&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[GSOC/2013|Moodle GSoC projects for 2013]]&lt;br /&gt;
* [[GSOC|Moodle GSoC Overview page]]&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=40761</id>
		<title>SCORM player rewrite</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=40761"/>
		<updated>2013-06-07T08:33:05Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work_in_progress}}&lt;br /&gt;
{{Infobox Project&lt;br /&gt;
|name = SCORM player rewrite&lt;br /&gt;
|state = Community bonding period&lt;br /&gt;
|tracker = MDL-39910&lt;br /&gt;
|discussion = XXX&lt;br /&gt;
|assignee = [https://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;13&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The project aims at rewriting the current implementation of the SCORM player which uses &#039;&#039;&#039;&#039;&#039;Yahoo! User Interface Librar&#039;&#039;&#039;y 2&#039;&#039;. This will be achieved by updating the YUI2 code of the SCORM player to YUI3. Additionally, this project will also develop a new HTML5 player to deliver SCORM contents. This would inherently help in delivering SCORM content not only on the Desktop/Laptop browser but also on Mobile devices like iPhone, Android devices and tablets like iPad, etc.&lt;br /&gt;
Thus as a result, the new &#039;&#039;&#039;HTML5 player&#039;&#039;&#039; addition to SCORM module would extend and give an optional/or  auto switch to HTML5 player for those administrators who prefer deliver SCORM content with it; or for Mobile devices and tablets.&lt;br /&gt;
&lt;br /&gt;
This would also help in providing SCORM support in the HTML5 Moodle Mobile application.&lt;br /&gt;
&lt;br /&gt;
Thus the benefits of the projects are two fold - &lt;br /&gt;
&lt;br /&gt;
1. Improve the current SCORM player by updating the YUI2 to code to YUI3.&lt;br /&gt;
&lt;br /&gt;
2. To add a new HTML5 SCORM player to SCORM module.&lt;br /&gt;
&lt;br /&gt;
As already mentioned, the current SCORM player in Moodle makes use of YUI2. Yahoo has released a new version 3 of the Yahoo! User Interface Library. &lt;br /&gt;
YUI2 use Connection Manager to make in-page HTTP requests through a simplified interface to the XMLHttpRequest object. This has been replaced by IO Utility in YUI3. The IO family of modules provide a simple API for requesting resources over HTTP and HTTPS.&lt;br /&gt;
The current SCORM player also uses the following from the YUI2 library - yui2-resize, yui2-dragdrop, yui2-container, yui2-button, yui2-layout, yui2-treeview, yui2-json, yui2-event.&lt;br /&gt;
&lt;br /&gt;
Of the above yui2-treeview is used to render the Table of Contents (TOC) of the SCORM content package. The TOC allows the users to navigate within the SCORM content. SCORM 2004 lays down standards for Sequencing Navigation that enables the content developers to control how a student can navigate within the SCORM content. The treeview implementation of YUI library thus also helps to enable/disable the particular nodes /leaves of the tree - the TOC.&lt;br /&gt;
The rendering of the SCORM content and TOC object is computed using scorm/player.php. This file generates the HTML unordered list that is parsed by the YUI2 treeview code in scorm/module.js to generate the TOC.&lt;br /&gt;
The project will involve rewriting this YUI2 code in module.js to YUI3 using the YUI3 treeview or better known as gallery-yui3 treeview  as the major part. &lt;br /&gt;
&lt;br /&gt;
Along with other parts of the YUI2 codes that need to be re-written are the navigation buttons that are enabled/disabled in accordance with the TOC of the SCORM content. After the YUI2 code has been written, some valuable amount of time in the project needs to be used in detect and fix any regression issues that would have creeped in during the rewrite. These regressions issues would be detected using the SCORM test harness. Also, this should also fix some of the SCORM 2004 Sequencing and Navigation bugs, which are currently not possible to fix because of the current YUI2 code.&lt;br /&gt;
The second part of the project involves adding a new HTML5 player for SCORM module. This HTML5 player can be used to deliver SCORM content by users who prefer to use the HTML5 player or where the current players renders to be non-working at times - Mobile devices and tablets.&lt;br /&gt;
This would be basically implemented as an optional player that would either be turned-on by the administrator or when Moodle is being accessed on a Mobile device or tablet.&lt;br /&gt;
This would help increase the usability playability of SCORM content in Moodle on such devices. Thus, this would be a boon for the users who have complained about Moodle SCORM player unable to render SCORM content on a mobile device or tablet correctly.&lt;br /&gt;
&lt;br /&gt;
1. In file mod/scorm/datamodels/aicc.js.php, there is code to make in-page HTTP requests using Connection manager. This has to be replaced by IO utility of YUI 3.&lt;br /&gt;
&lt;br /&gt;
2. In mod/scorm/datamodels/module.js, various components of YUI 2 – Resize, Drag and drop, Container, Button, Layout, Treeview,JSON, Event will be replaced by their corresponding code in YUI 3. Container will be replaced by Overlay of YUI 3.&lt;br /&gt;
&lt;br /&gt;
3. Similar to aicc.js.php, scorm_13.js.php also makes requests using Connection manager of YUI 2 which will be replaced by IO utility.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&#039;&#039;&#039;[Community Bonding Period]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;May 28:&#039;&#039;&#039; Post in the community forums of Moodle about the new SCORM HTML5 player that is to be developed, giving details about the features, TOC and navigation controls and asking for feedback from the community on the same.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;May 29 - May 31:&#039;&#039;&#039; Create the Wiki page for the project on Moodle Docs.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 1 - June 9 ~ 2 weeks:&#039;&#039;&#039; Get more familiar with YUI3 library in particular YUI3 treeview, YUI3 drag drop, YUI3 button, YUI3 layout, YUI3 event and YUI3 JSON&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 10 - June 16 ~ 1 week:&#039;&#039;&#039; Discuss with mentor in detail the implementation of the HTML5 player for SCORM content, essentially, the feature list (based on community feedback), implementation&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;[Coding Period]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;June 17 - June 19 ~ 0.5 week:&#039;&#039;&#039; Create mockups for the new HTML5 player(UI). Post on Moodle community forums and ask for feedback.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 20 - June 27 ~ 1 week:&#039;&#039;&#039; Make the required changes in scorm/player.php to facilitate the rewrite of YUI2 to YUI3.?June 21 - July 7 ~ 2 weeks: Rewrite the code for YUI2 treeview to YUI3 treeview and essentially change other components of YUI2 to YUI3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 16 - July 27 ~ 2 weeks:&#039;&#039;&#039; Check for regression issues and fix issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;[Midterm Evaluation]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
This will be the midterm evaluation target - Complete rewrite of SCORM player of YUI2 to YUI3, report regression issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 29 - August 5 ~ 1 week:&#039;&#039;&#039; Fix regression issues and facilitate improvement for SCORM 2004 sequencing.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 7 - Aug 14 ~ 1 week:&#039;&#039;&#039; Add option in SCORM administration for switching over to HTML5 player and/or detect mobile device and switch automatically.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 15 - 30 ~ 2 weeks:&#039;&#039;&#039; Write code for the new HTML5 player in scorm/player.php which gets executed on the options set by the Administrator, also write/re-use code that would update SCORM progress as in current SCORM player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 31 - Sept 6 ~ 1 week:&#039;&#039;&#039; Implement navigation controls, TOC and other features for the HTML5 scorm player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 7 - 14 ~ 1 week:&#039;&#039;&#039; Thoroughly test the HTML5 player for SCORM 1.2 content playback and also if possible for SCORM 2004 using SCORM Test Harness.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 15 - Sept 16:&#039;&#039;&#039; Write documentation for the new HTML5 player for SCORM.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 17 - Sept 23 ~ 1 week:&#039;&#039;&#039; This is the buffer period, it will be used to resolve any unexpected issues, add/edit documentation, scrub code. Code ready for submitting.&lt;br /&gt;
 &lt;br /&gt;
Would be a nice task: If time permits the project can be extended to solve some Sequencing Navigation bugs for SCORM 2004 using the new YUI3 implementation.&lt;br /&gt;
&#039;&#039;&#039;[Firm Pencils Down]&#039;&#039;&#039;&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[GSOC/2013|Moodle GSoC projects for 2013]]&lt;br /&gt;
* [[GSOC|Moodle GSoC Overview page]]&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=40760</id>
		<title>SCORM player rewrite</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=40760"/>
		<updated>2013-06-07T08:31:44Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work_in_progress}}&lt;br /&gt;
{{Infobox Project&lt;br /&gt;
|name = SCORM player rewrite&lt;br /&gt;
|state = Community bonding period&lt;br /&gt;
|tracker = MDL-39910&lt;br /&gt;
|discussion = XXX&lt;br /&gt;
|assignee = [https://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;13&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The project aims at rewriting the current implementation of the SCORM player which uses &#039;&#039;&#039;&#039;&#039;Yahoo! User Interface Librar&#039;&#039;&#039;y 2&#039;&#039;. This will be achieved by updating the YUI2 code of the SCORM player to YUI3. Additionally, this project will also develop a new HTML5 player to deliver SCORM contents. This would inherently help in delivering SCORM content not only on the Desktop/Laptop browser but also on Mobile devices like iPhone, Android devices and tablets like iPad, etc.&lt;br /&gt;
Thus as a result, the new &#039;&#039;&#039;HTML5 player&#039;&#039;&#039; addition to SCORM module would extend and give an optional/or  auto switch to HTML5 player for those administrators who prefer deliver SCORM content with it; or for Mobile devices and tablets.&lt;br /&gt;
&lt;br /&gt;
This would also help in providing SCORM support in the HTML5 Moodle Mobile application.&lt;br /&gt;
Thus the benefits of the projects are two fold - &lt;br /&gt;
1. Improve the current SCORM player by updating the YUI2 to code to YUI3.&lt;br /&gt;
2. To add a new HTML5 SCORM player to SCORM module.&lt;br /&gt;
&lt;br /&gt;
As already mentioned, the current SCORM player in Moodle makes use of YUI2. Yahoo has released a new version 3 of the Yahoo! User Interface Library. &lt;br /&gt;
YUI2 use Connection Manager to make in-page HTTP requests through a simplified interface to the XMLHttpRequest object. This has been replaced by IO Utility in YUI3. The IO family of modules provide a simple API for requesting resources over HTTP and HTTPS.&lt;br /&gt;
The current SCORM player also uses the following from the YUI2 library - yui2-resize, yui2-dragdrop, yui2-container, yui2-button, yui2-layout, yui2-treeview, yui2-json, yui2-event.&lt;br /&gt;
&lt;br /&gt;
Of the above yui2-treeview is used to render the Table of Contents (TOC) of the SCORM content package. The TOC allows the users to navigate within the SCORM content. SCORM 2004 lays down standards for Sequencing Navigation that enables the content developers to control how a student can navigate within the SCORM content. The treeview implementation of YUI library thus also helps to enable/disable the particular nodes /leaves of the tree - the TOC.&lt;br /&gt;
The rendering of the SCORM content and TOC object is computed using scorm/player.php. This file generates the HTML unordered list that is parsed by the YUI2 treeview code in scorm/module.js to generate the TOC.&lt;br /&gt;
The project will involve rewriting this YUI2 code in module.js to YUI3 using the YUI3 treeview or better known as gallery-yui3 treeview  as the major part. &lt;br /&gt;
&lt;br /&gt;
Along with other parts of the YUI2 codes that need to be re-written are the navigation buttons that are enabled/disabled in accordance with the TOC of the SCORM content. After the YUI2 code has been written, some valuable amount of time in the project needs to be used in detect and fix any regression issues that would have creeped in during the rewrite. These regressions issues would be detected using the SCORM test harness. Also, this should also fix some of the SCORM 2004 Sequencing and Navigation bugs, which are currently not possible to fix because of the current YUI2 code.&lt;br /&gt;
The second part of the project involves adding a new HTML5 player for SCORM module. This HTML5 player can be used to deliver SCORM content by users who prefer to use the HTML5 player or where the current players renders to be non-working at times - Mobile devices and tablets.&lt;br /&gt;
This would be basically implemented as an optional player that would either be turned-on by the administrator or when Moodle is being accessed on a Mobile device or tablet.&lt;br /&gt;
This would help increase the usability playability of SCORM content in Moodle on such devices. Thus, this would be a boon for the users who have complained about Moodle SCORM player unable to render SCORM content on a mobile device or tablet correctly.&lt;br /&gt;
&lt;br /&gt;
1. In file mod/scorm/datamodels/aicc.js.php, there is code to make in-page HTTP requests using Connection manager. This has to be replaced by IO utility of YUI 3.&lt;br /&gt;
&lt;br /&gt;
2. In mod/scorm/datamodels/module.js, various components of YUI 2 – Resize, Drag and drop, Container, Button, Layout, Treeview,JSON, Event will be replaced by their corresponding code in YUI 3. Container will be replaced by Overlay of YUI 3.&lt;br /&gt;
&lt;br /&gt;
3. Similar to aicc.js.php, scorm_13.js.php also makes requests using Connection manager of YUI 2 which will be replaced by IO utility.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&#039;&#039;&#039;[Community Bonding Period]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;May 28:&#039;&#039;&#039; Post in the community forums of Moodle about the new SCORM HTML5 player that is to be developed, giving details about the features, TOC and navigation controls and asking for feedback from the community on the same.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;May 29 - May 31:&#039;&#039;&#039; Create the Wiki page for the project on Moodle Docs.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 1 - June 9 ~ 2 weeks:&#039;&#039;&#039; Get more familiar with YUI3 library in particular YUI3 treeview, YUI3 drag drop, YUI3 button, YUI3 layout, YUI3 event and YUI3 JSON&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 10 - June 16 ~ 1 week:&#039;&#039;&#039; Discuss with mentor in detail the implementation of the HTML5 player for SCORM content, essentially, the feature list (based on community feedback), implementation&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;[Coding Period]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;June 17 - June 19 ~ 0.5 week:&#039;&#039;&#039; Create mockups for the new HTML5 player(UI). Post on Moodle community forums and ask for feedback.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 20 - June 27 ~ 1 week:&#039;&#039;&#039; Make the required changes in scorm/player.php to facilitate the rewrite of YUI2 to YUI3.?June 21 - July 7 ~ 2 weeks: Rewrite the code for YUI2 treeview to YUI3 treeview and essentially change other components of YUI2 to YUI3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 16 - July 27 ~ 2 weeks:&#039;&#039;&#039; Check for regression issues and fix issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;[Midterm Evaluation]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
This will be the midterm evaluation target - Complete rewrite of SCORM player of YUI2 to YUI3, report regression issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 29 - August 5 ~ 1 week:&#039;&#039;&#039; Fix regression issues and facilitate improvement for SCORM 2004 sequencing.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 7 - Aug 14 ~ 1 week:&#039;&#039;&#039; Add option in SCORM administration for switching over to HTML5 player and/or detect mobile device and switch automatically.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 15 - 30 ~ 2 weeks:&#039;&#039;&#039; Write code for the new HTML5 player in scorm/player.php which gets executed on the options set by the Administrator, also write/re-use code that would update SCORM progress as in current SCORM player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 31 - Sept 6 ~ 1 week:&#039;&#039;&#039; Implement navigation controls, TOC and other features for the HTML5 scorm player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 7 - 14 ~ 1 week:&#039;&#039;&#039; Thoroughly test the HTML5 player for SCORM 1.2 content playback and also if possible for SCORM 2004 using SCORM Test Harness.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 15 - Sept 16:&#039;&#039;&#039; Write documentation for the new HTML5 player for SCORM.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 17 - Sept 23 ~ 1 week:&#039;&#039;&#039; This is the buffer period, it will be used to resolve any unexpected issues, add/edit documentation, scrub code. Code ready for submitting.&lt;br /&gt;
 &lt;br /&gt;
Would be a nice task: If time permits the project can be extended to solve some Sequencing Navigation bugs for SCORM 2004 using the new YUI3 implementation.&lt;br /&gt;
&#039;&#039;&#039;[Firm Pencils Down]&#039;&#039;&#039;&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[GSOC/2013|Moodle GSoC projects for 2013]]&lt;br /&gt;
* [[GSOC|Moodle GSoC Overview page]]&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=40759</id>
		<title>SCORM player rewrite</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=40759"/>
		<updated>2013-06-07T08:30:14Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work_in_progress}}&lt;br /&gt;
{{Infobox Project&lt;br /&gt;
|name = SCORM player rewrite&lt;br /&gt;
|state = Community bonding period&lt;br /&gt;
|tracker = MDL-39910&lt;br /&gt;
|discussion = XXX&lt;br /&gt;
|assignee = [https://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;13&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The project aims at rewriting the current implementation of the SCORM player which uses &#039;&#039;Yahoo! User Interface Library 2&#039;&#039;. This will be achieved by updating the YUI2 code of the SCORM player to YUI3. Additionally, this project will also develop a new HTML5 player to deliver SCORM contents. This would inherently help in delivering SCORM content not only on the Desktop/Laptop browser but also on Mobile devices like iPhone, Android devices and tablets like iPad, etc.&lt;br /&gt;
Thus as a result, the new &#039;&#039;&#039;HTML5 player&#039;&#039;&#039; addition to SCORM module would extend and give an optional/or  auto switch to HTML5 player for those administrators who prefer deliver SCORM content with it; or for Mobile devices and tablets.&lt;br /&gt;
&lt;br /&gt;
This would also help in providing SCORM support in the HTML5 Moodle Mobile application.&lt;br /&gt;
Thus the benefits of the projects are two fold - &lt;br /&gt;
•	Improve the current SCORM player by updating the YUI2 to code to YUI3.&lt;br /&gt;
•	To add a new HTML5 SCORM player to SCORM module.&lt;br /&gt;
&lt;br /&gt;
As already mentioned, the current SCORM player in Moodle makes use of YUI2. Yahoo has released a new version 3 of the Yahoo! User Interface Library. &lt;br /&gt;
YUI2 use Connection Manager to make in-page HTTP requests through a simplified interface to the XMLHttpRequest object. This has been replaced by IO Utility in YUI3. The IO family of modules provide a simple API for requesting resources over HTTP and HTTPS.&lt;br /&gt;
The current SCORM player also uses the following from the YUI2 library - yui2-resize, yui2-dragdrop, yui2-container, yui2-button, yui2-layout, yui2-treeview, yui2-json, yui2-event.&lt;br /&gt;
&lt;br /&gt;
Of the above yui2-treeview is used to render the Table of Contents (TOC) of the SCORM content package. The TOC allows the users to navigate within the SCORM content. SCORM 2004 lays down standards for Sequencing Navigation that enables the content developers to control how a student can navigate within the SCORM content. The treeview implementation of YUI library thus also helps to enable/disable the particular nodes /leaves of the tree - the TOC.&lt;br /&gt;
The rendering of the SCORM content and TOC object is computed using scorm/player.php. This file generates the HTML unordered list that is parsed by the YUI2 treeview code in scorm/module.js to generate the TOC.&lt;br /&gt;
The project will involve rewriting this YUI2 code in module.js to YUI3 using the YUI3 treeview or better known as gallery-yui3 treeview  as the major part. &lt;br /&gt;
&lt;br /&gt;
Along with other parts of the YUI2 codes that need to be re-written are the navigation buttons that are enabled/disabled in accordance with the TOC of the SCORM content. After the YUI2 code has been written, some valuable amount of time in the project needs to be used in detect and fix any regression issues that would have creeped in during the rewrite. These regressions issues would be detected using the SCORM test harness. Also, this should also fix some of the SCORM 2004 Sequencing and Navigation bugs, which are currently not possible to fix because of the current YUI2 code.&lt;br /&gt;
The second part of the project involves adding a new HTML5 player for SCORM module. This HTML5 player can be used to deliver SCORM content by users who prefer to use the HTML5 player or where the current players renders to be non-working at times - Mobile devices and tablets.&lt;br /&gt;
This would be basically implemented as an optional player that would either be turned-on by the administrator or when Moodle is being accessed on a Mobile device or tablet.&lt;br /&gt;
This would help increase the usability playability of SCORM content in Moodle on such devices. Thus, this would be a boon for the users who have complained about Moodle SCORM player unable to render SCORM content on a mobile device or tablet correctly.&lt;br /&gt;
&lt;br /&gt;
1. In file mod/scorm/datamodels/aicc.js.php, there is code to make in-page HTTP requests using Connection manager. This has to be replaced by IO utility of YUI 3.&lt;br /&gt;
&lt;br /&gt;
2. In mod/scorm/datamodels/module.js, various components of YUI 2 – Resize, Drag and drop, Container, Button, Layout, Treeview,JSON, Event will be replaced by their corresponding code in YUI 3. Container will be replaced by Overlay of YUI 3.&lt;br /&gt;
&lt;br /&gt;
3. Similar to aicc.js.php, scorm_13.js.php also makes requests using Connection manager of YUI 2 which will be replaced by IO utility.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&#039;&#039;&#039;[Community Bonding Period]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;May 28:&#039;&#039;&#039; Post in the community forums of Moodle about the new SCORM HTML5 player that is to be developed, giving details about the features, TOC and navigation controls and asking for feedback from the community on the same.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;May 29 - May 31:&#039;&#039;&#039; Create the Wiki page for the project on Moodle Docs.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 1 - June 9 ~ 2 weeks:&#039;&#039;&#039; Get more familiar with YUI3 library in particular YUI3 treeview, YUI3 drag drop, YUI3 button, YUI3 layout, YUI3 event and YUI3 JSON&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 10 - June 16 ~ 1 week:&#039;&#039;&#039; Discuss with mentor in detail the implementation of the HTML5 player for SCORM content, essentially, the feature list (based on community feedback), implementation&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;[Coding Period]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;June 17 - June 19 ~ 0.5 week:&#039;&#039;&#039; Create mockups for the new HTML5 player(UI). Post on Moodle community forums and ask for feedback.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 20 - June 27 ~ 1 week:&#039;&#039;&#039; Make the required changes in scorm/player.php to facilitate the rewrite of YUI2 to YUI3.?June 21 - July 7 ~ 2 weeks: Rewrite the code for YUI2 treeview to YUI3 treeview and essentially change other components of YUI2 to YUI3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 16 - July 27 ~ 2 weeks:&#039;&#039;&#039; Check for regression issues and fix issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;[Midterm Evaluation]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
This will be the midterm evaluation target - Complete rewrite of SCORM player of YUI2 to YUI3, report regression issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 29 - August 5 ~ 1 week:&#039;&#039;&#039; Fix regression issues and facilitate improvement for SCORM 2004 sequencing.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 7 - Aug 14 ~ 1 week:&#039;&#039;&#039; Add option in SCORM administration for switching over to HTML5 player and/or detect mobile device and switch automatically.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 15 - 30 ~ 2 weeks:&#039;&#039;&#039; Write code for the new HTML5 player in scorm/player.php which gets executed on the options set by the Administrator, also write/re-use code that would update SCORM progress as in current SCORM player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 31 - Sept 6 ~ 1 week:&#039;&#039;&#039; Implement navigation controls, TOC and other features for the HTML5 scorm player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 7 - 14 ~ 1 week:&#039;&#039;&#039; Thoroughly test the HTML5 player for SCORM 1.2 content playback and also if possible for SCORM 2004 using SCORM Test Harness.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 15 - Sept 16:&#039;&#039;&#039; Write documentation for the new HTML5 player for SCORM.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 17 - Sept 23 ~ 1 week:&#039;&#039;&#039; This is the buffer period, it will be used to resolve any unexpected issues, add/edit documentation, scrub code. Code ready for submitting.&lt;br /&gt;
 &lt;br /&gt;
Would be a nice task: If time permits the project can be extended to solve some Sequencing Navigation bugs for SCORM 2004 using the new YUI3 implementation.&lt;br /&gt;
&#039;&#039;&#039;[Firm Pencils Down]&#039;&#039;&#039;&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[GSOC/2013|Moodle GSoC projects for 2013]]&lt;br /&gt;
* [[GSOC|Moodle GSoC Overview page]]&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=40757</id>
		<title>SCORM player rewrite</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_player_rewrite&amp;diff=40757"/>
		<updated>2013-06-07T08:16:14Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work_in_progress}}&lt;br /&gt;
{{Infobox Project&lt;br /&gt;
|name = SCORM player rewrite&lt;br /&gt;
|state = Community bonding period&lt;br /&gt;
|tracker = MDL-39910&lt;br /&gt;
|discussion = XXX&lt;br /&gt;
|assignee = [https://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;13&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Introduction&lt;br /&gt;
The project aims at rewriting the current implementation of the SCORM player which uses Yahoo! User Interface Library 2. This will be achieved by updating the YUI2 code of the SCORM player to YUI3. Additionally, this project will also develop a new HTML5 player to deliver SCORM contents. This would inherently help in delivering SCORM content not only on the Desktop/Laptop browser but also on Mobile devices like iPhone, Android devices and tablets like iPad, etc.&lt;br /&gt;
Thus as a result, the new HTML5 player addition to SCORM module would extend and give an optional/or  auto switch to HTML5 player for those administrators who prefer deliver SCORM content with it; or for Mobile devices and tablets.&lt;br /&gt;
&lt;br /&gt;
This would also help in providing SCORM support in the HTML5 Moodle Mobile application.&lt;br /&gt;
Thus the benefits of the projects are two fold - &lt;br /&gt;
1. Improve the current SCORM player by updating the YUI2 to code to YUI3.&lt;br /&gt;
2. To add a new HTML5 SCORM player to SCORM module&lt;br /&gt;
&lt;br /&gt;
As already mentioned, the current SCORM player in Moodle makes use of YUI2. Yahoo has released a new version 3 of the Yahoo! User Interface Library. &lt;br /&gt;
YUI2 use Connection Manager to make in-page HTTP requests through a simplified interface to the XMLHttpRequest object. This has been replaced by IO Utility in YUI3. The IO family of modules provide a simple API for requesting resources over HTTP and HTTPS.&lt;br /&gt;
The current SCORM player also uses the following from the YUI2 library - yui2-resize, yui2-dragdrop, yui2-container, yui2-button, yui2-layout, yui2-treeview, yui2-json, yui2-event.&lt;br /&gt;
&lt;br /&gt;
Of the above yui2-treeview is used to render the Table of Contents (TOC) of the SCORM content package. The TOC allows the users to navigate within the SCORM content. SCORM 2004 lays down standards for Sequencing Navigation that enables the content developers to control how a student can navigate within the SCORM content. The treeview implementation of YUI library thus also helps to enable/disable the particular nodes /leaves of the tree - the TOC.&lt;br /&gt;
The rendering of the SCORM content and TOC object is computed using scorm/player.php. This file generates the HTML unordered list that is parsed by the YUI2 treeview code in scorm/module.js to generate the TOC.&lt;br /&gt;
The project will involve rewriting this YUI2 code in module.js to YUI3 using the YUI3 treeview or better known as gallery-yui3 treeview  as the major part. &lt;br /&gt;
&lt;br /&gt;
Along with other parts of the YUI2 codes that need to be re-written are the navigation buttons that are enabled/disabled in accordance with the TOC of the SCORM content. After the YUI2 code has been written, some valuable amount of time in the project needs to be used in detect and fix any regression issues that would have creeped in during the rewrite. These regressions issues would be detected using the SCORM test harness. Also, this should also fix some of the SCORM 2004 Sequencing and Navigation bugs, which are currently not possible to fix because of the current YUI2 code.&lt;br /&gt;
The second part of the project involves adding a new HTML5 player for SCORM module. This HTML5 player can be used to deliver SCORM content by users who prefer to use the HTML5 player or where the current players renders to be non-working at times - Mobile devices and tablets.&lt;br /&gt;
This would be basically implemented as an optional player that would either be turned-on by the administrator or when Moodle is being accessed on a Mobile device or tablet.&lt;br /&gt;
This would help increase the usability playability of SCORM content in Moodle on such devices. Thus, this would be a boon for the users who have complained about Moodle SCORM player unable to render SCORM content on a mobile device or tablet correctly.&lt;br /&gt;
&lt;br /&gt;
1. In file mod/scorm/datamodels/aicc.js.php, there is code to make in-page HTTP requests using Connection manager. This has to be replaced by IO utility of YUI 3.&lt;br /&gt;
&lt;br /&gt;
2. In mod/scorm/datamodels/module.js, various components of YUI 2 – Resize, Drag and drop, Container, Button, Layout, Treeview,JSON, Event will be replaced by their corresponding code in YUI 3. Container will be replaced by Overlay of YUI 3.&lt;br /&gt;
&lt;br /&gt;
3. Similar to aicc.js.php, scorm_13.js.php also makes requests using Connection manager of YUI 2 which will be replaced by IO utility.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&#039;&#039;&#039;[Community Bonding Period]&#039;&#039;&#039;&lt;br /&gt;
&#039;&#039;&#039;May 28:&#039;&#039;&#039; Post in the community forums of Moodle about the new SCORM HTML5 player that is to be developed, giving details about the features, TOC and navigation controls and asking for feedback from the community on the same.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;May 29 - May 31:&#039;&#039;&#039; Create the Wiki page for the project on Moodle Docs.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 1 - June 9 ~ 2 weeks:&#039;&#039;&#039; Get more familiar with YUI3 library in particular YUI3 treeview, YUI3 drag drop, YUI3 button, YUI3 layout, YUI3 event and YUI3 JSON&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 10 - June 16 ~ 1 week:&#039;&#039;&#039; Discuss with mentor in detail the implementation of the HTML5 player for SCORM content, essentially, the feature list (based on community feedback), implementation&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;[Coding Period]&lt;br /&gt;
&lt;br /&gt;
June 17 - June 19 ~ 0.5 week:&#039;&#039;&#039; Create mockups for the new HTML5 player(UI). Post on Moodle community forums and ask for feedback.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;June 20 - June 27 ~ 1 week:&#039;&#039;&#039; Make the required changes in scorm/player.php to facilitate the rewrite of YUI2 to YUI3.?June 21 - July 7 ~ 2 weeks: Rewrite the code for YUI2 treeview to YUI3 treeview and essentially change other components of YUI2 to YUI3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 16 - July 27 ~ 2 weeks:&#039;&#039;&#039; Check for regression issues and fix issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;[Midterm Evaluation]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
This will be the midterm evaluation target - Complete rewrite of SCORM player of YUI2 to YUI3, report regression issues if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;July 29 - August 5 ~ 1 week:&#039;&#039;&#039; Fix regression issues and facilitate improvement for SCORM 2004 sequencing.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 7 - Aug 14 ~ 1 week:&#039;&#039;&#039; Add option in SCORM administration for switching over to HTML5 player and/or detect mobile device and switch automatically.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 15 - 30 ~ 2 weeks:&#039;&#039;&#039; Write code for the new HTML5 player in scorm/player.php which gets executed on the options set by the Administrator, also write/re-use code that would update SCORM progress as in current SCORM player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;August 31 - Sept 6 ~ 1 week:&#039;&#039;&#039; Implement navigation controls, TOC and other features for the HTML5 scorm player.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 7 - 14 ~ 1 week:&#039;&#039;&#039; Thoroughly test the HTML5 player for SCORM 1.2 content playback and also if possible for SCORM 2004 using SCORM Test Harness.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 15 - Sept 16:&#039;&#039;&#039; Write documentation for the new HTML5 player for SCORM.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Sept 17 - Sept 23 ~ 1 week:&#039;&#039;&#039; This is the buffer period, it will be used to resolve any unexpected issues, add/edit documentation, scrub code. Code ready for submitting.&lt;br /&gt;
 &lt;br /&gt;
Would be a nice task: If time permits the project can be extended to solve some Sequencing Navigation bugs for SCORM 2004 using the new YUI3 implementation.&lt;br /&gt;
&#039;&#039;&#039;[Firm Pencils Down]&#039;&#039;&#039;&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[GSOC/2013|Moodle GSoC projects for 2013]]&lt;br /&gt;
* [[GSOC|Moodle GSoC Overview page]]&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Improve_SCORM_2004_Support&amp;diff=33809</id>
		<title>Improve SCORM 2004 Support</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Improve_SCORM_2004_Support&amp;diff=33809"/>
		<updated>2012-05-14T12:26:39Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: Removing extra line break&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Improve SCORM 2004 Support&lt;br /&gt;
|state = Community Bonding&lt;br /&gt;
|tracker = MDL-7068&lt;br /&gt;
|discussion = &lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
{{Moodle 2.3}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for Improving SCORM 2004 Support in Moodle, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2012 project.&lt;br /&gt;
The &#039;&#039;goal&#039;&#039; of this project is to work towards achieving full SCORM 2004 4th Edition compliance in Moodle without the need of any external plugins, that is, improving the support for SCORM 2004 content packages in Moodle.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/view.php?id=381842 Michael de Raadt].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
The project will improve the SCORM 2004 support in Moodle by using the [https://docs.moodle.org/dev/SCORM_Test_Harness SCORM Test Harness]. The automated test framework will help by automating the execution of SCORM 2004 tests in Moodle and thus, will help in identify the issues with SCORM 2004 support in Moodle.&lt;br /&gt;
This project will also indirectly help in improving the SCORM Test Harness itself, as by getting the Test Harness into action bugs would be identified and fixed in the Test Harness.&lt;br /&gt;
&lt;br /&gt;
In order for Moodle to be SCORM 2004 4th Edition compliant and pass all the 189 ADL SCORM 2004 conformance test packages, it needs to adhere to the specifications laid down by [http://www.adlnet.gov/wp-content/uploads/2011/07/SCORM_2004_4ED_v1_1_Doc_Suite.zip ADL SCORM 2004 &#039;&#039;4th Edition&#039;&#039;]. &lt;br /&gt;
The specification can be divided into three sub-specifications as - &lt;br /&gt;
* Content Aggregation Model &#039;&#039;&#039;(CAM)&#039;&#039;&#039;&lt;br /&gt;
* The Run-Time Environment &#039;&#039;&#039;(RTE)&#039;&#039;&#039;&lt;br /&gt;
* Sequencing and Navigation specification &#039;&#039;&#039;(SN)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Content Aggregation Model===&lt;br /&gt;
The Content Aggregation Model sub-specification of SCORM 2004 4th Edition specifies how SCORM 2004 content developers should package their content so that the packages can be imported into the LMS. According to SCORM 2004 specification the content developers should package the content in a self-contained directory or a ZIP file which is also called a &#039;&#039;&#039;Package Interchange File (PIF)&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
SCORM 2004 specifies that the packaged ZIP file should always contain an XML file with the name - &#039;&#039;&#039; &#039;imsmanifest.xml&#039; &#039;&#039;&#039;. This imsmanifest.xml file also called the manifest file should be located in the root of the ZIP file. The content developers have to make sure that this manifest file contains all the information the LMS would need to successfully deliver the SCORM 2004 content to the content viewers.&lt;br /&gt;
&lt;br /&gt;
The manifest file divides the course into one or more parts called SCOs, which in other words represents the activity tree for the course content. The manifest file contains an XML representation of the activity tree of the package, information about how to launch each SCO, and optional metadata that would describe the course and its part.&lt;br /&gt;
As a LMS it is the responsibility of Moodle&#039;s &amp;quot;SCORM module&#039;s code&amp;quot; to correctly parse the manifest file, store all the required information of the package in the database. &lt;br /&gt;
&lt;br /&gt;
====Current State====&lt;br /&gt;
The file &#039;&#039;&#039;/mod/scorm/datamodels/scormlib.php&#039;&#039;&#039; has the code that parses the manifest file. &lt;br /&gt;
Currently this file is not able to parse all the CAM definitions according to SCORM 2004 4th Edition Specifications. &lt;br /&gt;
For instance, the current code of &#039;&#039;&#039;scormlib.php&#039;&#039;&#039; is not able to parse correctly the &#039;&#039;&#039;ADLCP:DATA&#039;&#039;&#039;, and &#039;&#039;&#039;ADLCP:MAP&#039;&#039;&#039; sections of the manifest file. These sections define the &#039;&#039;&#039;Inter-SCO Storage Data Model Extension&#039;&#039;&#039;; that was introduced in ADL SCORM 2004 4th Edition specification. &lt;br /&gt;
Other sections of the manifest file that scormlib.php fails to parse successfully will be identified and resolved during the course of the project by running the SCORM Test Harness for individual SCORM 2004 conformance packages.&lt;br /&gt;
&lt;br /&gt;
===Run-Time Environment===&lt;br /&gt;
The Run-Time Environment (RTE) sub-specification of SCORM 2004 specification specifies how the LMS should launch the content package within itself. The RTE states that the SCORM 2004 content package should be launched within Moodle in a web browser as a new window or within a &#039;&#039;&#039;frameset&#039;&#039;&#039; in the same window. The RTE specification specifies that all the content in the SCORM 2004 package should be web deliverable and is always launched in a web browser. It also specifies that the LMS should launch one SCO at a time.&lt;br /&gt;
&lt;br /&gt;
In order to allow communication between the SCORM 2004 content package more specifically the launched SCO of the content package and the LMS; the LMS should provide an &#039;&#039;&#039;ECMAScript&#039;&#039;&#039; (JavaScript) API through which the SCO can communicate with it. All communication between the SCO and the LMS can take place through this JavaScript API only, that is, the content package can by no means communicate with the LMS through form posts, database access (read/write), web services or any other mechanism.&lt;br /&gt;
As a SCO can communicate only through the JavaScript API, the LMS  provides the JavaScript object of the API at a specific location within the browsers&#039; DOM. This API object has the special name of &#039;&#039;&#039; &#039;API_1484_11&#039; &#039;&#039;&#039; for SCORM 2004.&lt;br /&gt;
It is the responsibility of the content/SCO to locate this API object and then use it for all the communications it needs to do with the LMS. RTE specifies that only the SCO can initiate the communication as the LMS acts as a passive entity which is simply responding to the API calls made by the SCO. &lt;br /&gt;
&lt;br /&gt;
The API provides a set of eight functions that permit the exchange of data with the LMS. These functions are -&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Return Type&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Initialize( “” )&lt;br /&gt;
| bool&lt;br /&gt;
| it indicates to the LMS that the content would like to begin a communication session.&lt;br /&gt;
|-&lt;br /&gt;
| Terminate( “” )&lt;br /&gt;
| bool&lt;br /&gt;
| it indicates to the LMS that the content has finished communicating&lt;br /&gt;
|-&lt;br /&gt;
| GetValue( element : CMIElement )&lt;br /&gt;
| string&lt;br /&gt;
| it allows the SCO/content to data from the LMS&lt;br /&gt;
|-&lt;br /&gt;
| SetValue( element : CMIElement, value : string)&lt;br /&gt;
| string&lt;br /&gt;
| it allows the SCO/content to persist data to the LMS.&lt;br /&gt;
|-&lt;br /&gt;
| Commit( “” )&lt;br /&gt;
| bool&lt;br /&gt;
| it is used by the SCO/content to signal the LMS that a significant chuck of data has been saved and that the LMS should ensure the data is properly persisted&lt;br /&gt;
|-&lt;br /&gt;
| GetLastError()&lt;br /&gt;
| CMIErrorCode&lt;br /&gt;
| it allows to determing if the last SCORM API call caused an error&lt;br /&gt;
|-&lt;br /&gt;
| GetErrorString( errorCode : CMIErrorCode )&lt;br /&gt;
| string&lt;br /&gt;
| it return a textual description of what the passed error code means&lt;br /&gt;
|-&lt;br /&gt;
| GetDiagnostic( errocCode : CMIErrorCode )&lt;br /&gt;
| string&lt;br /&gt;
| it returns detailed information about the prior error that can be useful in detecting the problem.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Computer Managed Instruction or &#039;&#039;&#039;CMI&#039;&#039;&#039; data model provides a list of data elements which can be read and written using the API. Each data model element has its own meaning.&lt;br /&gt;
&lt;br /&gt;
Every SCO in a content package has its own set of run-time data. These data model elements have different values for different SCOs within a content package.&lt;br /&gt;
Before SCORM 2004 4th edition the RTE data model definitions came into existence these data model elements could not be shared across SCOs of the same or different content package.&lt;br /&gt;
When the content user or learner starts a new attempt on a SCO, the data model element&#039;s values are reset to the default values at the start of the new attempt. These data models have different default values and can be of either &#039;&#039;&#039;read-only&#039;&#039;&#039; or both read and &#039;&#039;&#039;write&#039;&#039;&#039; type.&lt;br /&gt;
&lt;br /&gt;
Some examples SCORM 2004 RTE data model elements include the &#039;&#039;&#039;cmi.completion_status&#039;&#039;&#039; element - that saves the status of the SCO  (completed or incomplete), &#039;&#039;&#039;cmi.success_status&#039;&#039;&#039; (passed or failed), the score of the learner, a bookmark to track the learner’s location, and the total amount of time the learner spent in the SCO.&lt;br /&gt;
&lt;br /&gt;
However, apart from the non-sharable data model elements defined before, the SCORM 2004 4th Edition RTE Data Model definitions define the &lt;br /&gt;
&#039;&#039;&#039;adl.data&#039;&#039;&#039; data model elements that provide the unique ability to share sets of data across the SCOs.&lt;br /&gt;
&lt;br /&gt;
====Current State====&lt;br /&gt;
The file &#039;&#039;&#039;/mod/scorm/datamodels/scorm_13.js.php&#039;&#039;&#039; has the code to deal with the data model elements that a SCO would require.&lt;br /&gt;
This code needs to be extended to support the data models defined by the SCORM 2004 4th Edition Run-Time Envirnoment Data Model definition. These data model elements mainly include adl.data elements - Inter-SCO Storage Data Model Extension.&lt;br /&gt;
Some progress has already been made on the tracker issue MDL-28805 - ADL TEST: Data Model Implementation (DMI).&lt;br /&gt;
While trying to fix the mentioned bug, a number of related issues that needed to be resolved before the bug MDL-28805 could be closed were identified. These bugs were - MDL-30666, MDL-30576, MDL-30577, MDL-30578, MDL-30579, MDL-30645.&lt;br /&gt;
As mentioned above, during the course of the project the data model code would be extended to support SCORM 2004 4th Edition Run-Time Environment Data Model definitions and other &#039;&#039; &#039;buggy areas&#039; &#039;&#039; would be identified by running the SCORM Test Harness for SCORM 2004 Conformance packages issues would be reported and patches will be provided.&lt;br /&gt;
&lt;br /&gt;
===Sequencing And Navigation===&lt;br /&gt;
&lt;br /&gt;
The Sequencing and Navigation sub-specification of SCORM 2004 4th Edition specification allows content developers to &#039;&#039;&#039;override&#039;&#039;&#039; the default navigation of SCOs and enable them to govern how the content user/learner is allowed to navigate between various SCOs in the content package and also how the progress data is &#039;&#039;&#039;rolled up&#039;&#039;&#039; to the course level of the content package.&lt;br /&gt;
&lt;br /&gt;
The content developers lay down the sequencing rules in the imsmanifest.xml file or the manifest file, in the root directory of the PIF. These rules in-turn determine which &#039;&#039;&#039;navigational controls&#039;&#039;&#039; should the LMS provide to the content user/learner, that is, whether or not a navigable table of contents &#039;&#039;&#039;(TOC)&#039;&#039;&#039; should be provided to the learner or just the previous/next buttons should be provided to the learner to navigate from one SCO to another in a linear sequence of SCOs.&lt;br /&gt;
By specifying sequencing and navigation rules in the manifest file the content developer can also specify that certain conditions like some SCOs/activities must be completed before the learner can navigate to the some other SCO/activity. &lt;br /&gt;
The content developer by adhering to the SCORM 2004 Sequence and Navigation specification can also apply a gradient weight to some parts or activities of the content package, that is, if some higher weighted activities when completed by the learner would add more to his total score than when he completes a relatively lower weighted activity. Not only this, the Sequencing and Navigation specifications can allow the content developer to randomly select a different subset of SCOs each time a new attempt is made. &lt;br /&gt;
The SN specification also powers the content developer to forcibly take the learner to initial SCO (that would generally have some instructions).&lt;br /&gt;
&lt;br /&gt;
Every activity of a SCORM 2004 content package has a &#039;&#039;&#039;tracking data&#039;&#039;&#039; and a &#039;&#039;&#039;sequencing definition&#039;&#039;&#039; associated with it. The tracking data has the information about the current state of the activity that is, the score of the learner, the status, etc. The sequencing definition is the set of rules that defines which activity should follow next, that is, which activity should be presented to the learner after he completes the activity depending upon the tracking data of the activity.&lt;br /&gt;
&lt;br /&gt;
The sequencing definition model rules can be subdivided as -&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Sequencing Control Modes&#039;&#039;&#039;&#039;&#039; – these define the type of navigation allowed to the learner, that is navigation through the TOC or linear navigation via previous/next buttons.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Constrain Choice Controls&#039;&#039;&#039;&#039;&#039; – Restrict the activities that the user may select from the table of contents.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Sequencing Rules&#039;&#039;&#039;&#039;&#039; – Specify if-then conditions that determine which activities are available for delivery and which activity should be delivered next.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Limit Conditions&#039;&#039;&#039;&#039;&#039; – Provide limits on the number of times activities can be attempted.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Rollup Rules&#039;&#039;&#039;&#039;&#039; – Specify if-then conditions that determine how status is rolled up to clusters throughout the activity tree.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Rollup Controls&#039;&#039;&#039;&#039;&#039; – Determine which activities participate in status rollup and how their status is weighted in relation to other activities.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Rollup Consideration Controls&#039;&#039;&#039;&#039;&#039; – Provide more precise control over status rollup than do the rollup controls.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Objectives&#039;&#039;&#039;&#039;&#039; – Provide a way to track the status of individual learning objectives and share this status across activities. Objectives are often overloaded and used as variables to control sequencing actions.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Selection Controls&#039;&#039;&#039;&#039;&#039; – Provide a way to specify that only a random subset of the available activities should be delivered.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Randomization Controls&#039;&#039;&#039;&#039;&#039; - Shuffle the order of the activities to be delivered.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Delivery Controls&#039;&#039;&#039;&#039;&#039; – Allow for non-communicative content to be delivered and sequenced.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Completion Threshold Controls&#039;&#039;&#039;&#039;&#039; – Allow the tracking of completion percentage. This was introduced in the SCORM 2004 4th Edition specification.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Navigation Controls&#039;&#039;&#039;&#039;&#039; - Control which navigational UI elements should be presented by the LMS.&lt;br /&gt;
&lt;br /&gt;
====Current State====&lt;br /&gt;
The code that currently implements Sequencing and Navigation specification of ADL SCORM 2004 specification is in the file &#039;&#039;&#039;/mod/scorm/datamodels/sequencinglib.php&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The SCORM module currently supports &#039;&#039;&#039;activity restriction&#039;&#039;&#039;, that is, if the content developer has restricted some activities to not to be navigable directly by selecting from the table of contents, the TOC does not allow the learner to do so. Though, the TOC is correctly rendered, there are issues like when the initial SCO/activity is complete and it triggers the continue event, the next SCO is not launched, rather the same initial SCO is launched again.&lt;br /&gt;
In some cases the SCO uses &#039;&#039;&#039;adl.nav.request&#039;&#039;&#039; to navigate to a different location, this also causes the same issue of the SCO being launched again.&lt;br /&gt;
These are just a couple of the many issues that are currently there in the SCORM module to support SCORM 2004 Sequencing and Navigation specification specification.&lt;br /&gt;
&lt;br /&gt;
The bug that holds the next SCO from being launched will be the first issue that would be fixed as the part of the project to improve SCORM 2004 support in Moodle, because, this bug will prevent other SCORM 2004 test packages to load successfuly and thus, would not allow the SCORM 2004 conformance packages to run and test successfully.&lt;br /&gt;
A probable fix for the issue would be to store the structure so that code can continue but learner cannot use continue, TOC, links, etc.&lt;br /&gt;
The above can be implemented by shifting the URLs of the SCO to the id attribute of the spans HTML tags and then making JavaScript to fetch the ids and use them as URLs.&lt;br /&gt;
&lt;br /&gt;
Work is already being done to rewrite the function &#039;&#039;&#039;scorm_get_toc&#039;&#039;&#039; - MDL-32835.&lt;br /&gt;
&lt;br /&gt;
The SCORM Test Harness will help in identifying other Sequencing and Navigation issues in the SCORM module by helping to run the SCORM 2004 conformance test packages automatically.&lt;br /&gt;
&lt;br /&gt;
= Schedule of Deliverables =&lt;br /&gt;
&#039;&#039;&#039;May 31st - 5th June&#039;&#039;&#039;: Fix SN bug that prevents SCOs from loading, and potentially- [http://tracker.moodle.org/browse/MDL-28741 ADL Test: CM-02], [http://tracker.moodle.org/browse/MDL-28743 ADL Test: CM-03], and [http://tracker.moodle.org/browse/MDL-28802 ADL Test: DDM].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6th - 17th June&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28805 ADL Test: DMI], [http://tracker.moodle.org/browse/MDL-28804 ADL Test: DMB], [http://tracker.moodle.org/browse/MDL-28745 ADL Test: CM-04], [http://tracker.moodle.org/browse/MDL-28926 ADL Test: T-01]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;18th - 27th June&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28772 ADL Test: CO-01], [http://tracker.moodle.org/browse/MDL-28773 ADL Test: CO-02], [http://tracker.moodle.org/browse/MDL-28775 ADL Test: CO-03], [http://tracker.moodle.org/browse/MDL-28795 ADL Test: CT-01]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27th June - 8th July&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28806 ADL Test: MS-01], [http://tracker.moodle.org/browse/MDL-28807 MS-02], [http://tracker.moodle.org/browse/MDL-28808 MS-03], [http://tracker.moodle.org/browse/MDL-28814 OB-01], [http://tracker.moodle.org/browse/MDL-28796 CT-02]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9th - 15th July&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28854 ADL Test: RU-01], [http://tracker.moodle.org/browse/MDL-28858 ADL Test: RU-02], [http://tracker.moodle.org/browse/MDL-28860 ADL Test: RU-03], [http://tracker.moodle.org/browse/MDL-28862 ADL Test: RU-04]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - A detailed report on the then status of SCORM 2004 support in Moodle, mentioning all improvements and results of the closed issues to the Moodle Community.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;16th July - 22nd July&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28902 ADL Test: SX-02], [http://tracker.moodle.org/browse/MDL-28903 ADL Test: SX-03], [http://tracker.moodle.org/browse/MDL-28904 ADL Test: SX-04], [http://tracker.moodle.org/browse/MDL-28749 CM-05]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;23rd July - 1st August&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28750 ADL Test: CM-06], [http://tracker.moodle.org/browse/MDL-28751 ADL Test: CM-07], [http://tracker.moodle.org/browse/MDL-28779 ADL Test: CO-05], [http://tracker.moodle.org/browse/MDL-28781 ADL Test: CO-06], [http://tracker.moodle.org/browse/MDL-28782 ADL Test: CO-07]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2nd - 12th August&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28797 ADL Test: CT-03], [http://tracker.moodle.org/browse/MDL-28798 ADL Test: CT-04], [http://tracker.moodle.org/browse/MDL-28799 ADL Test: CT-05], [http://tracker.moodle.org/browse/MDL-28757 CM-08], [http://tracker.moodle.org/browse/MDL-28758 ADL Test: CM-09]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;13th - 19th August&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28818 ADL Test: OB-02], [http://tracker.moodle.org/browse/MDL-28819 ADL Test: OB-03], [http://tracker.moodle.org/browse/MDL-28822 ADL Test: 0B-04], [http://tracker.moodle.org/browse/MDL-28868 ADL Test: RU-05], [http://tracker.moodle.org/browse/MDL-28906 SX-05]&lt;br /&gt;
&lt;br /&gt;
= Relevant Links =&lt;br /&gt;
*[https://docs.moodle.org/dev/SCORM_Test_Harness SCORM Test Harness]&lt;br /&gt;
*[https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
*[http://www.adlnet.gov/capabilities/scorm/scorm-2004-4th ADL SCORM 2004 4th Edition]&lt;br /&gt;
*[https://docs.moodle.org/dev/GSOC/2012 GSoC 2012 - Moodle]&lt;br /&gt;
&lt;br /&gt;
== Tracker ==&lt;br /&gt;
* [http://tracker.moodle.org/browse/MDL-7608 META: SCORM 2004 compliance + issues]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=GSOC/2012&amp;diff=33808</id>
		<title>GSOC/2012</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=GSOC/2012&amp;diff=33808"/>
		<updated>2012-05-14T12:08:39Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: /*Improving SCORM 2004 Support */ Updating Specification and Blog Link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:banner-gsoc2012.png|right|400px]]This page provides an overview of the [http://www.google-melange.com/gsoc/program/home/google/gsoc2012 Google Summer of Code 2012] projects for Moodle.&lt;br /&gt;
&lt;br /&gt;
==Improving SCORM 2004 Support==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=1277285&amp;amp;course=5 Mayank Gupta]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=21591&amp;amp;course=5 Dan Marsden]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Improve_SCORM_2004_Support]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* MDL-7068&lt;br /&gt;
* Developer blog [http://www.guptamayank.com/ # Mayank Gupta]&lt;br /&gt;
&lt;br /&gt;
==Improving Plagiarism API==&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1411986 Kanika Goyal]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=21591&amp;amp;course=5 Dan Marsden]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Plagiarism_API_improvements]]&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* MDL-32225&lt;br /&gt;
&lt;br /&gt;
==Email reminders for calendar events==&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=1240428&amp;amp;course=5 Isuru Madushanka Weerarathna]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/view.php?id=381842&amp;amp;course=5 Michael de Raadt]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[Email reminders for calendar events]]&lt;br /&gt;
&lt;br /&gt;
==Video/audio capture repository plugin==&lt;br /&gt;
:&#039;&#039;&#039;Student&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1439658 Ankit Gupta]&lt;br /&gt;
:&#039;&#039;&#039;Mentor&#039;&#039;&#039;: [http://moodle.org/user/profile.php?id=1328988 Rajesh Taneja]&lt;br /&gt;
:&#039;&#039;&#039;Specification&#039;&#039;&#039;: [[ Audio/Video Capture repository plugin ]]&lt;br /&gt;
[[Category:GSOC]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Improve_SCORM_2004_Support&amp;diff=33807</id>
		<title>Improve SCORM 2004 Support</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Improve_SCORM_2004_Support&amp;diff=33807"/>
		<updated>2012-05-14T12:05:18Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: /* Relevant Links */ Updating GSoC 2012 Link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Improve SCORM 2004 Support&lt;br /&gt;
|state = Community Bonding&lt;br /&gt;
|tracker = MDL-7068&lt;br /&gt;
|discussion = &lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
{{Moodle 2.3}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for Improving SCORM 2004 Support in Moodle, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2012 project.&lt;br /&gt;
The &#039;&#039;goal&#039;&#039; of this project is to work towards achieving full SCORM 2004 4th Edition compliance in Moodle without the need of any external plugins, that is, improving the support for SCORM 2004 content packages in Moodle.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/view.php?id=381842 Michael de Raadt].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
The project will improve the SCORM 2004 support in Moodle by using the [https://docs.moodle.org/dev/SCORM_Test_Harness SCORM Test Harness]. The automated test framework will help by automating the execution of SCORM 2004 tests in Moodle and thus, will help in identify the issues with SCORM 2004 support in Moodle.&lt;br /&gt;
This project will also indirectly help in improving the SCORM Test Harness itself, as by getting the Test Harness into action bugs would be identified and fixed in the Test Harness.&lt;br /&gt;
&lt;br /&gt;
In order for Moodle to be SCORM 2004 4th Edition compliant and pass all the 189 ADL SCORM 2004 conformance test packages, it needs to adhere to the specifications laid down by [http://www.adlnet.gov/wp-content/uploads/2011/07/SCORM_2004_4ED_v1_1_Doc_Suite.zip ADL SCORM 2004 &#039;&#039;4th Edition&#039;&#039;]. &lt;br /&gt;
The specification can be divided into three sub-specifications as - &lt;br /&gt;
* Content Aggregation Model &#039;&#039;&#039;(CAM)&#039;&#039;&#039;&lt;br /&gt;
* The Run-Time Environment &#039;&#039;&#039;(RTE)&#039;&#039;&#039;&lt;br /&gt;
* Sequencing and Navigation specification &#039;&#039;&#039;(SN)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Content Aggregation Model===&lt;br /&gt;
The Content Aggregation Model sub-specification of SCORM 2004 4th Edition specifies how SCORM 2004 content developers should package their content so that the packages can be imported into the LMS. According to SCORM 2004 specification the content developers should package the content in a self-contained directory or a ZIP file which is also called a &#039;&#039;&#039;Package Interchange File (PIF)&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
SCORM 2004 specifies that the packaged ZIP file should always contain an XML file with the name - &#039;&#039;&#039; &#039;imsmanifest.xml&#039; &#039;&#039;&#039;. This imsmanifest.xml file also called the manifest file should be located in the root of the ZIP file. The content developers have to make sure that this manifest file contains all the information the LMS would need to successfully deliver the SCORM 2004 content to the content viewers.&lt;br /&gt;
&lt;br /&gt;
The manifest file divides the course into one or more parts called SCOs, which in other words represents the activity tree for the course content. The manifest file contains an XML representation of the activity tree of the package, information about how to launch each SCO, and optional metadata that would describe the course and its part.&lt;br /&gt;
As a LMS it is the responsibility of Moodle&#039;s &amp;quot;SCORM module&#039;s code&amp;quot; to correctly parse the manifest file, store all the required information of the package in the database. &lt;br /&gt;
&lt;br /&gt;
====Current State====&lt;br /&gt;
The file &#039;&#039;&#039;/mod/scorm/datamodels/scormlib.php&#039;&#039;&#039; has the code that parses the manifest file. &lt;br /&gt;
Currently this file is not able to parse all the CAM definitions according to SCORM 2004 4th Edition Specifications. &lt;br /&gt;
For instance, the current code of &#039;&#039;&#039;scormlib.php&#039;&#039;&#039; is not able to parse correctly the &#039;&#039;&#039;ADLCP:DATA&#039;&#039;&#039;, and &#039;&#039;&#039;ADLCP:MAP&#039;&#039;&#039; sections of the manifest file. These sections define the &#039;&#039;&#039;Inter-SCO Storage Data Model Extension&#039;&#039;&#039;; that was introduced in ADL SCORM 2004 4th Edition specification. &lt;br /&gt;
Other sections of the manifest file that scormlib.php fails to parse successfully will be identified and resolved during the course of the project by running the SCORM Test Harness for individual SCORM 2004 conformance packages.&lt;br /&gt;
&lt;br /&gt;
===Run-Time Environment===&lt;br /&gt;
The Run-Time Environment (RTE) sub-specification of SCORM 2004 specification specifies how the LMS should launch the content package within itself. The RTE states that the SCORM 2004 content package should be launched within Moodle in a web browser as a new window or within a &#039;&#039;&#039;frameset&#039;&#039;&#039; in the same window. The RTE specification specifies that all the content in the SCORM 2004 package should be web deliverable and is always launched in a web browser. It also specifies that the LMS should launch one SCO at a time.&lt;br /&gt;
&lt;br /&gt;
In order to allow communication between the SCORM 2004 content package more specifically the launched SCO of the content package and the LMS; the LMS should provide an &#039;&#039;&#039;ECMAScript&#039;&#039;&#039; (JavaScript) API through which the SCO can communicate with it. All communication between the SCO and the LMS can take place through this JavaScript API only, that is, the content package can by no means communicate with the LMS through form posts, database access (read/write), web services or any other mechanism.&lt;br /&gt;
As a SCO can communicate only through the JavaScript API, the LMS  provides the JavaScript object of the API at a specific location within the browsers&#039; DOM. This API object has the special name of &#039;&#039;&#039; &#039;API_1484_11&#039; &#039;&#039;&#039; for SCORM 2004.&lt;br /&gt;
It is the responsibility of the content/SCO to locate this API object and then use it for all the communications it needs to do with the LMS. RTE specifies that only the SCO can initiate the communication as the LMS acts as a passive entity which is simply responding to the API calls made by the SCO. &lt;br /&gt;
&lt;br /&gt;
The API provides a set of eight functions that permit the exchange of data with the LMS. These functions are -&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Return Type&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Initialize( “” )&lt;br /&gt;
| bool&lt;br /&gt;
| it indicates to the LMS that the content would like to begin a communication session.&lt;br /&gt;
|-&lt;br /&gt;
| Terminate( “” )&lt;br /&gt;
| bool&lt;br /&gt;
| it indicates to the LMS that the content has finished communicating&lt;br /&gt;
|-&lt;br /&gt;
| GetValue( element : CMIElement )&lt;br /&gt;
| string&lt;br /&gt;
| it allows the SCO/content to data from the LMS&lt;br /&gt;
|-&lt;br /&gt;
| SetValue( element : CMIElement, value : string)&lt;br /&gt;
| string&lt;br /&gt;
| it allows the SCO/content to persist data to the LMS.&lt;br /&gt;
|-&lt;br /&gt;
| Commit( “” )&lt;br /&gt;
| bool&lt;br /&gt;
| it is used by the SCO/content to signal the LMS that a significant chuck of data has been saved and that the LMS should ensure the data is properly persisted&lt;br /&gt;
|-&lt;br /&gt;
| GetLastError()&lt;br /&gt;
| CMIErrorCode&lt;br /&gt;
| it allows to determing if the last SCORM API call caused an error&lt;br /&gt;
|-&lt;br /&gt;
| GetErrorString( errorCode : CMIErrorCode )&lt;br /&gt;
| string&lt;br /&gt;
| it return a textual description of what the passed error code means&lt;br /&gt;
|-&lt;br /&gt;
| GetDiagnostic( errocCode : CMIErrorCode )&lt;br /&gt;
| string&lt;br /&gt;
| it returns detailed information about the prior error that can be useful in detecting the problem.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Computer Managed Instruction or &#039;&#039;&#039;CMI&#039;&#039;&#039; data model provides a list of data elements which can be read and written using the API. Each data model element has its own meaning.&lt;br /&gt;
&lt;br /&gt;
Every SCO in a content package has its own set of run-time data. These data model elements have different values for different SCOs within a content package.&lt;br /&gt;
Before SCORM 2004 4th edition the RTE data model definitions came into existence these data model elements could not be shared across SCOs of the same or different content package.&lt;br /&gt;
When the content user or learner starts a new attempt on a SCO, the data model element&#039;s values are reset to the default values at the start of the new attempt. These data models have different default values and can be of either &#039;&#039;&#039;read-only&#039;&#039;&#039; or both read and &#039;&#039;&#039;write&#039;&#039;&#039; type.&lt;br /&gt;
&lt;br /&gt;
Some examples SCORM 2004 RTE data model elements include the &#039;&#039;&#039;cmi.completion_status&#039;&#039;&#039; element - that saves the status of the SCO  (completed or incomplete), &#039;&#039;&#039;cmi.success_status&#039;&#039;&#039; (passed or failed), the score of the learner, a bookmark to track the learner’s location, and the total amount of time the learner spent in the SCO.&lt;br /&gt;
&lt;br /&gt;
However, apart from the non-sharable data model elements defined before, the SCORM 2004 4th Edition RTE Data Model definitions define the &lt;br /&gt;
&#039;&#039;&#039;adl.data&#039;&#039;&#039; data model elements that provide the unique ability to share sets of data across the SCOs.&lt;br /&gt;
&lt;br /&gt;
====Current State====&lt;br /&gt;
The file &#039;&#039;&#039;/mod/scorm/datamodels/scorm_13.js.php&#039;&#039;&#039; has the code to deal with the data model elements that a SCO would require.&lt;br /&gt;
This code needs to be extended to support the data models defined by the SCORM 2004 4th Edition Run-Time Envirnoment Data Model definition. These data model elements mainly include adl.data elements - Inter-SCO Storage Data Model Extension.&lt;br /&gt;
Some progress has already been made on the tracker issue MDL-28805 - ADL TEST: Data Model Implementation (DMI).&lt;br /&gt;
While trying to fix the mentioned bug, a number of related issues that needed to be resolved before the bug MDL-28805 could be closed were identified. These bugs were - MDL-30666, MDL-30576, MDL-30577, MDL-30578, MDL-30579, MDL-30645.&lt;br /&gt;
As mentioned above, during the course of the project the data model code would be extended to support SCORM 2004 4th Edition Run-Time Environment Data Model definitions and other &#039;&#039; &#039;buggy areas&#039; &#039;&#039; would be identified by running the SCORM Test Harness for SCORM 2004 Conformance packages issues would be reported and patches will be provided.&lt;br /&gt;
&lt;br /&gt;
===Sequencing And Navigation===&lt;br /&gt;
&lt;br /&gt;
The Sequencing and Navigation sub-specification of SCORM 2004 4th Edition specification allows content developers to &#039;&#039;&#039;override&#039;&#039;&#039; the default navigation of SCOs and enable them to govern how the content user/learner is allowed to navigate between various SCOs in the content package and also how the progress data is &#039;&#039;&#039;rolled up&#039;&#039;&#039; to the course level of the content package.&lt;br /&gt;
&lt;br /&gt;
The content developers lay down the sequencing rules in the imsmanifest.xml file or the manifest file, in the root directory of the PIF. These rules in-turn determine which &#039;&#039;&#039;navigational controls&#039;&#039;&#039; should the LMS provide to the content user/learner, that is, whether or not a navigable table of contents &#039;&#039;&#039;(TOC)&#039;&#039;&#039; should be provided to the learner or just the previous/next buttons should be provided to the learner to navigate from one SCO to another in a linear sequence of SCOs.&lt;br /&gt;
By specifying sequencing and navigation rules in the manifest file the content developer can also specify that certain conditions like some SCOs/activities must be completed before the learner can navigate to the some other SCO/activity. &lt;br /&gt;
The content developer by adhering to the SCORM 2004 Sequence and Navigation specification can also apply a gradient weight to some parts or activities of the content package, that is, if some higher weighted activities when completed by the learner would add more to his total score than when he completes a relatively lower weighted activity. Not only this, the Sequencing and Navigation specifications can allow the content developer to randomly select a different subset of SCOs each time a new attempt is made. &lt;br /&gt;
The SN specification also powers the content developer to forcibly take the learner to initial SCO (that would generally have some instructions).&lt;br /&gt;
&lt;br /&gt;
Every activity of a SCORM 2004 content package has a &#039;&#039;&#039;tracking data&#039;&#039;&#039; and a &#039;&#039;&#039;sequencing definition&#039;&#039;&#039; associated with it. The tracking data has the information about the current state of the activity that is, the score of the learner, the status, etc. The sequencing definition is the set of rules that defines which activity should follow next, that is, which activity should be presented to the learner after he completes the activity depending upon the tracking data of the activity.&lt;br /&gt;
&lt;br /&gt;
The sequencing definition model rules can be subdivided as -&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Sequencing Control Modes&#039;&#039;&#039;&#039;&#039; – these define the type of navigation allowed to the learner, that is navigation through the TOC or linear navigation via previous/next buttons.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Constrain Choice Controls&#039;&#039;&#039;&#039;&#039; – Restrict the activities that the user may select from the table of contents.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Sequencing Rules&#039;&#039;&#039;&#039;&#039; – Specify if-then conditions that determine which activities are available for delivery and which activity should be delivered next.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Limit Conditions&#039;&#039;&#039;&#039;&#039; – Provide limits on the number of times activities can be attempted.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Rollup Rules&#039;&#039;&#039;&#039;&#039; – Specify if-then conditions that determine how status is rolled up to clusters throughout the activity tree.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Rollup Controls&#039;&#039;&#039;&#039;&#039; – Determine which activities participate in status rollup and how their status is weighted in relation to other activities.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Rollup Consideration Controls&#039;&#039;&#039;&#039;&#039; – Provide more precise control over status rollup than do the rollup controls.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Objectives&#039;&#039;&#039;&#039;&#039; – Provide a way to track the status of individual learning objectives and share this status across activities. Objectives are often overloaded and used as variables to control sequencing actions.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Selection Controls&#039;&#039;&#039;&#039;&#039; – Provide a way to specify that only a random subset of the available activities should be delivered.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Randomization Controls&#039;&#039;&#039;&#039;&#039; - Shuffle the order of the activities to be delivered.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Delivery Controls&#039;&#039;&#039;&#039;&#039; – Allow for non-communicative content to be delivered and sequenced.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Completion Threshold Controls&#039;&#039;&#039;&#039;&#039; – Allow the tracking of completion percentage. This was introduced in the SCORM 2004 4th Edition specification.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Navigation Controls&#039;&#039;&#039;&#039;&#039; - Control which navigational UI elements should be presented by the LMS.&lt;br /&gt;
&lt;br /&gt;
====Current State====&lt;br /&gt;
The code that currently implements Sequencing and Navigation specification of ADL SCORM 2004 specification is in the file &#039;&#039;&#039;/mod/scorm/datamodels/sequencinglib.php&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The SCORM module currently supports &#039;&#039;&#039;activity restriction&#039;&#039;&#039;, that is, if the content developer has restricted some activities to not to be navigable directly by selecting from the table of contents, the TOC does not allow the learner to do so. Though, the TOC is correctly rendered, there are issues like when the initial SCO/activity is complete and it triggers the continue event, the next SCO is not launched, rather the same initial SCO is launched again.&lt;br /&gt;
In some cases the SCO uses &#039;&#039;&#039;adl.nav.request&#039;&#039;&#039; to navigate to a different location, this also causes the same issue of the SCO being launched again.&lt;br /&gt;
These are just a couple of the many issues that are currently there in the SCORM module to support SCORM 2004 Sequencing and Navigation specification specification.&lt;br /&gt;
&lt;br /&gt;
The bug that holds the next SCO from being launched will be the first issue that would be fixed as the part of the project to improve SCORM 2004 support in Moodle, because, this bug will prevent other SCORM 2004 test packages to load successfuly and thus, would not allow the SCORM 2004 conformance packages to run and test successfully.&lt;br /&gt;
A probable fix for the issue would be to store the structure so that code can continue but learner cannot use continue, TOC, links, etc.&lt;br /&gt;
The above can be implemented by shifting the URLs of the SCO to the id attribute of the spans HTML tags and then making JavaScript to fetch the ids and use them as URLs.&lt;br /&gt;
&lt;br /&gt;
Work is already being done to rewrite the function &#039;&#039;&#039;scorm_get_toc&#039;&#039;&#039; - MDL-32835.&lt;br /&gt;
&lt;br /&gt;
The SCORM Test Harness will help in identifying other Sequencing and Navigation issues in the SCORM module by helping to run the SCORM 2004 conformance test packages automatically.&lt;br /&gt;
&lt;br /&gt;
= Schedule of Deliverables =&lt;br /&gt;
&#039;&#039;&#039;May 31st - 5th June&#039;&#039;&#039;: Fix SN bug that prevents SCOs from loading, and potentially- [http://tracker.moodle.org/browse/MDL-28741 ADL Test: CM-02], [http://tracker.moodle.org/browse/MDL-28743 ADL Test: CM-03], and [http://tracker.moodle.org/browse/MDL-28802 ADL Test: DDM].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6th - 17th June&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28805 ADL Test: DMI], [http://tracker.moodle.org/browse/MDL-28804 ADL Test: DMB], [http://tracker.moodle.org/browse/MDL-28745 ADL Test: CM-04], [http://tracker.moodle.org/browse/MDL-28926 ADL Test: T-01]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;18th - 27th June&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28772 ADL Test: CO-01], [http://tracker.moodle.org/browse/MDL-28773 ADL Test: CO-02], [http://tracker.moodle.org/browse/MDL-28775 ADL Test: CO-03], [http://tracker.moodle.org/browse/MDL-28795 ADL Test: CT-01]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27th June - 8th July&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28806 ADL Test: MS-01], [http://tracker.moodle.org/browse/MDL-28807 MS-02], [http://tracker.moodle.org/browse/MDL-28808 MS-03], [http://tracker.moodle.org/browse/MDL-28814 OB-01], [http://tracker.moodle.org/browse/MDL-28796 CT-02]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9th - 15th July&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28854 ADL Test: RU-01], [http://tracker.moodle.org/browse/MDL-28858 ADL Test: RU-02], [http://tracker.moodle.org/browse/MDL-28860 ADL Test: RU-03], [http://tracker.moodle.org/browse/MDL-28862 ADL Test: RU-04]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - A detailed report on the then status of SCORM 2004 support in Moodle, mentioning all improvements and results of the closed issues to the Moodle Community.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;16th July - 22nd July&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28902 ADL Test: SX-02], [http://tracker.moodle.org/browse/MDL-28903 ADL Test: SX-03], [http://tracker.moodle.org/browse/MDL-28904 ADL Test: SX-04], [http://tracker.moodle.org/browse/MDL-28749 CM-05]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;23rd July - 1st August&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28750 ADL Test: CM-06], [http://tracker.moodle.org/browse/MDL-28751 ADL Test: CM-07], [http://tracker.moodle.org/browse/MDL-28779 ADL Test: CO-05], [http://tracker.moodle.org/browse/MDL-28781 ADL Test: CO-06], [http://tracker.moodle.org/browse/MDL-28782 ADL Test: CO-07]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2nd - 12th August&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28797 ADL Test: CT-03], [http://tracker.moodle.org/browse/MDL-28798 ADL Test: CT-04], [http://tracker.moodle.org/browse/MDL-28799 ADL Test: CT-05], [http://tracker.moodle.org/browse/MDL-28757 CM-08], [http://tracker.moodle.org/browse/MDL-28758 ADL Test: CM-09]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;13th - 19th August&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28818 ADL Test: OB-02], [http://tracker.moodle.org/browse/MDL-28819 ADL Test: OB-03], [http://tracker.moodle.org/browse/MDL-28822 ADL Test: 0B-04], [http://tracker.moodle.org/browse/MDL-28868 ADL Test: RU-05], [http://tracker.moodle.org/browse/MDL-28906 SX-05]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Relevant Links =&lt;br /&gt;
*[https://docs.moodle.org/dev/SCORM_Test_Harness SCORM Test Harness]&lt;br /&gt;
*[https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
*[http://www.adlnet.gov/capabilities/scorm/scorm-2004-4th ADL SCORM 2004 4th Edition]&lt;br /&gt;
*[https://docs.moodle.org/dev/GSOC/2012 GSoC 2012 - Moodle]&lt;br /&gt;
&lt;br /&gt;
== Tracker ==&lt;br /&gt;
* [http://tracker.moodle.org/browse/MDL-7608 META: SCORM 2004 compliance + issues]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=Improve_SCORM_2004_Support&amp;diff=33806</id>
		<title>Improve SCORM 2004 Support</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=Improve_SCORM_2004_Support&amp;diff=33806"/>
		<updated>2012-05-14T12:03:12Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: Created page with &amp;quot;{{Infobox Project |name = Improve SCORM 2004 Support |state = Community Bonding |tracker = MDL-7068 |discussion =  |assignee = Mayank Gupta }} {{Moodle 2.3}} &amp;lt;span class=&amp;quot;small-i...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Improve SCORM 2004 Support&lt;br /&gt;
|state = Community Bonding&lt;br /&gt;
|tracker = MDL-7068&lt;br /&gt;
|discussion = &lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
{{Moodle 2.3}}&lt;br /&gt;
&amp;lt;span class=&amp;quot;small-info-right&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GSOC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;text-big new&amp;quot;&amp;gt; &#039;12&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for Improving SCORM 2004 Support in Moodle, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2012 project.&lt;br /&gt;
The &#039;&#039;goal&#039;&#039; of this project is to work towards achieving full SCORM 2004 4th Edition compliance in Moodle without the need of any external plugins, that is, improving the support for SCORM 2004 content packages in Moodle.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/view.php?id=381842 Michael de Raadt].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
The project will improve the SCORM 2004 support in Moodle by using the [https://docs.moodle.org/dev/SCORM_Test_Harness SCORM Test Harness]. The automated test framework will help by automating the execution of SCORM 2004 tests in Moodle and thus, will help in identify the issues with SCORM 2004 support in Moodle.&lt;br /&gt;
This project will also indirectly help in improving the SCORM Test Harness itself, as by getting the Test Harness into action bugs would be identified and fixed in the Test Harness.&lt;br /&gt;
&lt;br /&gt;
In order for Moodle to be SCORM 2004 4th Edition compliant and pass all the 189 ADL SCORM 2004 conformance test packages, it needs to adhere to the specifications laid down by [http://www.adlnet.gov/wp-content/uploads/2011/07/SCORM_2004_4ED_v1_1_Doc_Suite.zip ADL SCORM 2004 &#039;&#039;4th Edition&#039;&#039;]. &lt;br /&gt;
The specification can be divided into three sub-specifications as - &lt;br /&gt;
* Content Aggregation Model &#039;&#039;&#039;(CAM)&#039;&#039;&#039;&lt;br /&gt;
* The Run-Time Environment &#039;&#039;&#039;(RTE)&#039;&#039;&#039;&lt;br /&gt;
* Sequencing and Navigation specification &#039;&#039;&#039;(SN)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Content Aggregation Model===&lt;br /&gt;
The Content Aggregation Model sub-specification of SCORM 2004 4th Edition specifies how SCORM 2004 content developers should package their content so that the packages can be imported into the LMS. According to SCORM 2004 specification the content developers should package the content in a self-contained directory or a ZIP file which is also called a &#039;&#039;&#039;Package Interchange File (PIF)&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
SCORM 2004 specifies that the packaged ZIP file should always contain an XML file with the name - &#039;&#039;&#039; &#039;imsmanifest.xml&#039; &#039;&#039;&#039;. This imsmanifest.xml file also called the manifest file should be located in the root of the ZIP file. The content developers have to make sure that this manifest file contains all the information the LMS would need to successfully deliver the SCORM 2004 content to the content viewers.&lt;br /&gt;
&lt;br /&gt;
The manifest file divides the course into one or more parts called SCOs, which in other words represents the activity tree for the course content. The manifest file contains an XML representation of the activity tree of the package, information about how to launch each SCO, and optional metadata that would describe the course and its part.&lt;br /&gt;
As a LMS it is the responsibility of Moodle&#039;s &amp;quot;SCORM module&#039;s code&amp;quot; to correctly parse the manifest file, store all the required information of the package in the database. &lt;br /&gt;
&lt;br /&gt;
====Current State====&lt;br /&gt;
The file &#039;&#039;&#039;/mod/scorm/datamodels/scormlib.php&#039;&#039;&#039; has the code that parses the manifest file. &lt;br /&gt;
Currently this file is not able to parse all the CAM definitions according to SCORM 2004 4th Edition Specifications. &lt;br /&gt;
For instance, the current code of &#039;&#039;&#039;scormlib.php&#039;&#039;&#039; is not able to parse correctly the &#039;&#039;&#039;ADLCP:DATA&#039;&#039;&#039;, and &#039;&#039;&#039;ADLCP:MAP&#039;&#039;&#039; sections of the manifest file. These sections define the &#039;&#039;&#039;Inter-SCO Storage Data Model Extension&#039;&#039;&#039;; that was introduced in ADL SCORM 2004 4th Edition specification. &lt;br /&gt;
Other sections of the manifest file that scormlib.php fails to parse successfully will be identified and resolved during the course of the project by running the SCORM Test Harness for individual SCORM 2004 conformance packages.&lt;br /&gt;
&lt;br /&gt;
===Run-Time Environment===&lt;br /&gt;
The Run-Time Environment (RTE) sub-specification of SCORM 2004 specification specifies how the LMS should launch the content package within itself. The RTE states that the SCORM 2004 content package should be launched within Moodle in a web browser as a new window or within a &#039;&#039;&#039;frameset&#039;&#039;&#039; in the same window. The RTE specification specifies that all the content in the SCORM 2004 package should be web deliverable and is always launched in a web browser. It also specifies that the LMS should launch one SCO at a time.&lt;br /&gt;
&lt;br /&gt;
In order to allow communication between the SCORM 2004 content package more specifically the launched SCO of the content package and the LMS; the LMS should provide an &#039;&#039;&#039;ECMAScript&#039;&#039;&#039; (JavaScript) API through which the SCO can communicate with it. All communication between the SCO and the LMS can take place through this JavaScript API only, that is, the content package can by no means communicate with the LMS through form posts, database access (read/write), web services or any other mechanism.&lt;br /&gt;
As a SCO can communicate only through the JavaScript API, the LMS  provides the JavaScript object of the API at a specific location within the browsers&#039; DOM. This API object has the special name of &#039;&#039;&#039; &#039;API_1484_11&#039; &#039;&#039;&#039; for SCORM 2004.&lt;br /&gt;
It is the responsibility of the content/SCO to locate this API object and then use it for all the communications it needs to do with the LMS. RTE specifies that only the SCO can initiate the communication as the LMS acts as a passive entity which is simply responding to the API calls made by the SCO. &lt;br /&gt;
&lt;br /&gt;
The API provides a set of eight functions that permit the exchange of data with the LMS. These functions are -&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;nicetable&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Return Type&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| Initialize( “” )&lt;br /&gt;
| bool&lt;br /&gt;
| it indicates to the LMS that the content would like to begin a communication session.&lt;br /&gt;
|-&lt;br /&gt;
| Terminate( “” )&lt;br /&gt;
| bool&lt;br /&gt;
| it indicates to the LMS that the content has finished communicating&lt;br /&gt;
|-&lt;br /&gt;
| GetValue( element : CMIElement )&lt;br /&gt;
| string&lt;br /&gt;
| it allows the SCO/content to data from the LMS&lt;br /&gt;
|-&lt;br /&gt;
| SetValue( element : CMIElement, value : string)&lt;br /&gt;
| string&lt;br /&gt;
| it allows the SCO/content to persist data to the LMS.&lt;br /&gt;
|-&lt;br /&gt;
| Commit( “” )&lt;br /&gt;
| bool&lt;br /&gt;
| it is used by the SCO/content to signal the LMS that a significant chuck of data has been saved and that the LMS should ensure the data is properly persisted&lt;br /&gt;
|-&lt;br /&gt;
| GetLastError()&lt;br /&gt;
| CMIErrorCode&lt;br /&gt;
| it allows to determing if the last SCORM API call caused an error&lt;br /&gt;
|-&lt;br /&gt;
| GetErrorString( errorCode : CMIErrorCode )&lt;br /&gt;
| string&lt;br /&gt;
| it return a textual description of what the passed error code means&lt;br /&gt;
|-&lt;br /&gt;
| GetDiagnostic( errocCode : CMIErrorCode )&lt;br /&gt;
| string&lt;br /&gt;
| it returns detailed information about the prior error that can be useful in detecting the problem.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The Computer Managed Instruction or &#039;&#039;&#039;CMI&#039;&#039;&#039; data model provides a list of data elements which can be read and written using the API. Each data model element has its own meaning.&lt;br /&gt;
&lt;br /&gt;
Every SCO in a content package has its own set of run-time data. These data model elements have different values for different SCOs within a content package.&lt;br /&gt;
Before SCORM 2004 4th edition the RTE data model definitions came into existence these data model elements could not be shared across SCOs of the same or different content package.&lt;br /&gt;
When the content user or learner starts a new attempt on a SCO, the data model element&#039;s values are reset to the default values at the start of the new attempt. These data models have different default values and can be of either &#039;&#039;&#039;read-only&#039;&#039;&#039; or both read and &#039;&#039;&#039;write&#039;&#039;&#039; type.&lt;br /&gt;
&lt;br /&gt;
Some examples SCORM 2004 RTE data model elements include the &#039;&#039;&#039;cmi.completion_status&#039;&#039;&#039; element - that saves the status of the SCO  (completed or incomplete), &#039;&#039;&#039;cmi.success_status&#039;&#039;&#039; (passed or failed), the score of the learner, a bookmark to track the learner’s location, and the total amount of time the learner spent in the SCO.&lt;br /&gt;
&lt;br /&gt;
However, apart from the non-sharable data model elements defined before, the SCORM 2004 4th Edition RTE Data Model definitions define the &lt;br /&gt;
&#039;&#039;&#039;adl.data&#039;&#039;&#039; data model elements that provide the unique ability to share sets of data across the SCOs.&lt;br /&gt;
&lt;br /&gt;
====Current State====&lt;br /&gt;
The file &#039;&#039;&#039;/mod/scorm/datamodels/scorm_13.js.php&#039;&#039;&#039; has the code to deal with the data model elements that a SCO would require.&lt;br /&gt;
This code needs to be extended to support the data models defined by the SCORM 2004 4th Edition Run-Time Envirnoment Data Model definition. These data model elements mainly include adl.data elements - Inter-SCO Storage Data Model Extension.&lt;br /&gt;
Some progress has already been made on the tracker issue MDL-28805 - ADL TEST: Data Model Implementation (DMI).&lt;br /&gt;
While trying to fix the mentioned bug, a number of related issues that needed to be resolved before the bug MDL-28805 could be closed were identified. These bugs were - MDL-30666, MDL-30576, MDL-30577, MDL-30578, MDL-30579, MDL-30645.&lt;br /&gt;
As mentioned above, during the course of the project the data model code would be extended to support SCORM 2004 4th Edition Run-Time Environment Data Model definitions and other &#039;&#039; &#039;buggy areas&#039; &#039;&#039; would be identified by running the SCORM Test Harness for SCORM 2004 Conformance packages issues would be reported and patches will be provided.&lt;br /&gt;
&lt;br /&gt;
===Sequencing And Navigation===&lt;br /&gt;
&lt;br /&gt;
The Sequencing and Navigation sub-specification of SCORM 2004 4th Edition specification allows content developers to &#039;&#039;&#039;override&#039;&#039;&#039; the default navigation of SCOs and enable them to govern how the content user/learner is allowed to navigate between various SCOs in the content package and also how the progress data is &#039;&#039;&#039;rolled up&#039;&#039;&#039; to the course level of the content package.&lt;br /&gt;
&lt;br /&gt;
The content developers lay down the sequencing rules in the imsmanifest.xml file or the manifest file, in the root directory of the PIF. These rules in-turn determine which &#039;&#039;&#039;navigational controls&#039;&#039;&#039; should the LMS provide to the content user/learner, that is, whether or not a navigable table of contents &#039;&#039;&#039;(TOC)&#039;&#039;&#039; should be provided to the learner or just the previous/next buttons should be provided to the learner to navigate from one SCO to another in a linear sequence of SCOs.&lt;br /&gt;
By specifying sequencing and navigation rules in the manifest file the content developer can also specify that certain conditions like some SCOs/activities must be completed before the learner can navigate to the some other SCO/activity. &lt;br /&gt;
The content developer by adhering to the SCORM 2004 Sequence and Navigation specification can also apply a gradient weight to some parts or activities of the content package, that is, if some higher weighted activities when completed by the learner would add more to his total score than when he completes a relatively lower weighted activity. Not only this, the Sequencing and Navigation specifications can allow the content developer to randomly select a different subset of SCOs each time a new attempt is made. &lt;br /&gt;
The SN specification also powers the content developer to forcibly take the learner to initial SCO (that would generally have some instructions).&lt;br /&gt;
&lt;br /&gt;
Every activity of a SCORM 2004 content package has a &#039;&#039;&#039;tracking data&#039;&#039;&#039; and a &#039;&#039;&#039;sequencing definition&#039;&#039;&#039; associated with it. The tracking data has the information about the current state of the activity that is, the score of the learner, the status, etc. The sequencing definition is the set of rules that defines which activity should follow next, that is, which activity should be presented to the learner after he completes the activity depending upon the tracking data of the activity.&lt;br /&gt;
&lt;br /&gt;
The sequencing definition model rules can be subdivided as -&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Sequencing Control Modes&#039;&#039;&#039;&#039;&#039; – these define the type of navigation allowed to the learner, that is navigation through the TOC or linear navigation via previous/next buttons.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Constrain Choice Controls&#039;&#039;&#039;&#039;&#039; – Restrict the activities that the user may select from the table of contents.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Sequencing Rules&#039;&#039;&#039;&#039;&#039; – Specify if-then conditions that determine which activities are available for delivery and which activity should be delivered next.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Limit Conditions&#039;&#039;&#039;&#039;&#039; – Provide limits on the number of times activities can be attempted.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Rollup Rules&#039;&#039;&#039;&#039;&#039; – Specify if-then conditions that determine how status is rolled up to clusters throughout the activity tree.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Rollup Controls&#039;&#039;&#039;&#039;&#039; – Determine which activities participate in status rollup and how their status is weighted in relation to other activities.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Rollup Consideration Controls&#039;&#039;&#039;&#039;&#039; – Provide more precise control over status rollup than do the rollup controls.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Objectives&#039;&#039;&#039;&#039;&#039; – Provide a way to track the status of individual learning objectives and share this status across activities. Objectives are often overloaded and used as variables to control sequencing actions.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Selection Controls&#039;&#039;&#039;&#039;&#039; – Provide a way to specify that only a random subset of the available activities should be delivered.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Randomization Controls&#039;&#039;&#039;&#039;&#039; - Shuffle the order of the activities to be delivered.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Delivery Controls&#039;&#039;&#039;&#039;&#039; – Allow for non-communicative content to be delivered and sequenced.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Completion Threshold Controls&#039;&#039;&#039;&#039;&#039; – Allow the tracking of completion percentage. This was introduced in the SCORM 2004 4th Edition specification.&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;Navigation Controls&#039;&#039;&#039;&#039;&#039; - Control which navigational UI elements should be presented by the LMS.&lt;br /&gt;
&lt;br /&gt;
====Current State====&lt;br /&gt;
The code that currently implements Sequencing and Navigation specification of ADL SCORM 2004 specification is in the file &#039;&#039;&#039;/mod/scorm/datamodels/sequencinglib.php&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The SCORM module currently supports &#039;&#039;&#039;activity restriction&#039;&#039;&#039;, that is, if the content developer has restricted some activities to not to be navigable directly by selecting from the table of contents, the TOC does not allow the learner to do so. Though, the TOC is correctly rendered, there are issues like when the initial SCO/activity is complete and it triggers the continue event, the next SCO is not launched, rather the same initial SCO is launched again.&lt;br /&gt;
In some cases the SCO uses &#039;&#039;&#039;adl.nav.request&#039;&#039;&#039; to navigate to a different location, this also causes the same issue of the SCO being launched again.&lt;br /&gt;
These are just a couple of the many issues that are currently there in the SCORM module to support SCORM 2004 Sequencing and Navigation specification specification.&lt;br /&gt;
&lt;br /&gt;
The bug that holds the next SCO from being launched will be the first issue that would be fixed as the part of the project to improve SCORM 2004 support in Moodle, because, this bug will prevent other SCORM 2004 test packages to load successfuly and thus, would not allow the SCORM 2004 conformance packages to run and test successfully.&lt;br /&gt;
A probable fix for the issue would be to store the structure so that code can continue but learner cannot use continue, TOC, links, etc.&lt;br /&gt;
The above can be implemented by shifting the URLs of the SCO to the id attribute of the spans HTML tags and then making JavaScript to fetch the ids and use them as URLs.&lt;br /&gt;
&lt;br /&gt;
Work is already being done to rewrite the function &#039;&#039;&#039;scorm_get_toc&#039;&#039;&#039; - MDL-32835.&lt;br /&gt;
&lt;br /&gt;
The SCORM Test Harness will help in identifying other Sequencing and Navigation issues in the SCORM module by helping to run the SCORM 2004 conformance test packages automatically.&lt;br /&gt;
&lt;br /&gt;
= Schedule of Deliverables =&lt;br /&gt;
&#039;&#039;&#039;May 31st - 5th June&#039;&#039;&#039;: Fix SN bug that prevents SCOs from loading, and potentially- [http://tracker.moodle.org/browse/MDL-28741 ADL Test: CM-02], [http://tracker.moodle.org/browse/MDL-28743 ADL Test: CM-03], and [http://tracker.moodle.org/browse/MDL-28802 ADL Test: DDM].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6th - 17th June&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28805 ADL Test: DMI], [http://tracker.moodle.org/browse/MDL-28804 ADL Test: DMB], [http://tracker.moodle.org/browse/MDL-28745 ADL Test: CM-04], [http://tracker.moodle.org/browse/MDL-28926 ADL Test: T-01]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;18th - 27th June&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28772 ADL Test: CO-01], [http://tracker.moodle.org/browse/MDL-28773 ADL Test: CO-02], [http://tracker.moodle.org/browse/MDL-28775 ADL Test: CO-03], [http://tracker.moodle.org/browse/MDL-28795 ADL Test: CT-01]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27th June - 8th July&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28806 ADL Test: MS-01], [http://tracker.moodle.org/browse/MDL-28807 MS-02], [http://tracker.moodle.org/browse/MDL-28808 MS-03], [http://tracker.moodle.org/browse/MDL-28814 OB-01], [http://tracker.moodle.org/browse/MDL-28796 CT-02]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;9th - 15th July&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28854 ADL Test: RU-01], [http://tracker.moodle.org/browse/MDL-28858 ADL Test: RU-02], [http://tracker.moodle.org/browse/MDL-28860 ADL Test: RU-03], [http://tracker.moodle.org/browse/MDL-28862 ADL Test: RU-04]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - A detailed report on the then status of SCORM 2004 support in Moodle, mentioning all improvements and results of the closed issues to the Moodle Community.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;16th July - 22nd July&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28902 ADL Test: SX-02], [http://tracker.moodle.org/browse/MDL-28903 ADL Test: SX-03], [http://tracker.moodle.org/browse/MDL-28904 ADL Test: SX-04], [http://tracker.moodle.org/browse/MDL-28749 CM-05]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;23rd July - 1st August&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28750 ADL Test: CM-06], [http://tracker.moodle.org/browse/MDL-28751 ADL Test: CM-07], [http://tracker.moodle.org/browse/MDL-28779 ADL Test: CO-05], [http://tracker.moodle.org/browse/MDL-28781 ADL Test: CO-06], [http://tracker.moodle.org/browse/MDL-28782 ADL Test: CO-07]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2nd - 12th August&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28797 ADL Test: CT-03], [http://tracker.moodle.org/browse/MDL-28798 ADL Test: CT-04], [http://tracker.moodle.org/browse/MDL-28799 ADL Test: CT-05], [http://tracker.moodle.org/browse/MDL-28757 CM-08], [http://tracker.moodle.org/browse/MDL-28758 ADL Test: CM-09]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;13th - 19th August&#039;&#039;&#039;: Fix SCORM 2004 bugs, potentially- [http://tracker.moodle.org/browse/MDL-28818 ADL Test: OB-02], [http://tracker.moodle.org/browse/MDL-28819 ADL Test: OB-03], [http://tracker.moodle.org/browse/MDL-28822 ADL Test: 0B-04], [http://tracker.moodle.org/browse/MDL-28868 ADL Test: RU-05], [http://tracker.moodle.org/browse/MDL-28906 SX-05]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Relevant Links =&lt;br /&gt;
*[https://docs.moodle.org/dev/SCORM_Test_Harness SCORM Test Harness]&lt;br /&gt;
*[https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
*[http://www.adlnet.gov/capabilities/scorm/scorm-2004-4th ADL SCORM 2004 4th Edition]&lt;br /&gt;
*[https://docs.moodle.org/en/GSOC/2012 GSoC 2012 - Moodle]&lt;br /&gt;
&lt;br /&gt;
== Tracker ==&lt;br /&gt;
* [http://tracker.moodle.org/browse/MDL-7608 META: SCORM 2004 compliance + issues]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=32730</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=32730"/>
		<updated>2012-03-10T12:23:32Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: /*Removing Schedule*/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Completed&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. The Moodle install need not be on the same Microsoft Windows machine and could be on a remote Linux machine too. &lt;br /&gt;
The framework would also provide the ability to schedule or run the SCORM ADL tests automatically between the desired time intervals. On the completion of the tests an HTML page, containing the test&#039;s report will be displayed to the user. &lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and writing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
==Project Deliverables==&lt;br /&gt;
* Script that downloads the latest Moodle Code from [https://github.com/moodle/moodle GitHub], ugrades the Moodle install &#039;&#039;(if necessary)&#039;&#039; and &#039;&#039;prepares&#039;&#039; it for executing the SCORM ADL tests.&lt;br /&gt;
* Script that automates the ADL SCORM 1.2 tests and produces an HTML file with the results of the tests &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* Script that automates some of the ADL SCORM 2004 tests on Moodle &#039;&#039;(it may not be possible to script all of the 2004 ADL tests due to existing failures)&#039;&#039;.&lt;br /&gt;
* Documentation for how to install the scripts on a Microsoft Windows machine and have them run on an automated cycle.&lt;br /&gt;
* Identifying the issues with SCORM 2004 support in Moodle, reporting them to the Tracker and writing patches for the same.&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
The following are the implementation details in breif:&lt;br /&gt;
* &#039;&#039;&#039;Download and Update&#039;&#039;&#039; - The ADL SCORM tests should run on the latest Moodle code. The script using [https://docs.moodle.org/en/CLI CLI] will download the latest Moodle code from GitHub and upgrade the Moodle install &#039;&#039;(if necessary)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Add Test Course&#039;&#039;&#039; - Set up the users/course/activities required for the tests. This will be done by restoring the Moodle backup file into a &#039;&#039;new&#039;&#039;. This will again be implemented using CLI at the time of upgrading the install.&lt;br /&gt;
* &#039;&#039;&#039;Execute Tests&#039;&#039;&#039; - Run the browser based test script. [http://seleniumhq.org/projects/remote-control/ Selenium RC] will be used to write the automated web tests.&lt;br /&gt;
* &#039;&#039;&#039;Test Completion Report&#039;&#039;&#039; - At the end of the tests, the user will be displayed an HTML file with the results of the test &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Delete Test Course&#039;&#039;&#039; - After the tests have been executed, the new course that was added before the execution of test will be deleted.&lt;br /&gt;
&lt;br /&gt;
=Running ADL SCORM Test=&lt;br /&gt;
&lt;br /&gt;
The ADL SCORM tests can be executed in the following two ways - &lt;br /&gt;
* Running from the &#039;&#039;&#039;Command Prompt&#039;&#039;&#039; or,&lt;br /&gt;
* Running directly from &#039;&#039;&#039;Eclipse&#039;&#039;&#039; IDE (&#039;&#039;for Java Developers&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==Environmental Setup==&lt;br /&gt;
* &#039;&#039;&#039;Install Java&#039;&#039;&#039; - If you do not have Java installed on your machine you need to download and install it. You can download it from here - [http://www.java.com/en/download/ Download Java].&lt;br /&gt;
* &#039;&#039;&#039;Download Selenium&#039;&#039;&#039; - After ensuring that you have Java installed on your machine, you next need to download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039;. To download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039; you can simply download the &#039;&#039;&#039;selenium-server-standalone&#039;&#039;&#039; jar file (&#039;&#039;selenium-server-standalone-x.x.x.jar&#039;&#039;) from here - [http://code.google.com/p/selenium/downloads/list Download Selenium]. Save the jar file in the working directory.&lt;br /&gt;
&#039;&#039;In this documentation directory C:\ADLTests will be considered as the [working-directory] for the tests.&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Install Junit&#039;&#039;&#039; - You also need to download and install Junit on your machine. To install Junit download the zip file from here - [https://github.com/KentBeck/junit/downloads Download Junit] and extract the zip file in a directory say - &#039;&#039;C:\ADLTests\junit&#039;&#039;.&lt;br /&gt;
&#039;&#039;Note - The SCORM Test Harness has been tested with Selenium 2.3.0 and Junit 4.9b3 (the latest versions available while writing this documentation).&lt;br /&gt;
*&#039;&#039;&#039;SCORM Test Harness Repository&#039; - Finally, you need to download the Moodle SCORM Test Harness Repository from GitHub and save it in [working_directory]. You can download the repository from here - [https://github.com/mayankgupta/moodle_scorm_test_harness Moodle SCORM Test Harness Repository].&lt;br /&gt;
&#039;&#039;Note - If you do not wish to download/clone the complete repository, you can download the individual files required and create necessary folders as indicated in the steps below.&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;Eclipse IDE&#039;&#039; - To run the ADL SCORM tests using Eclipse IDE, you need to download Eclipse IDE for Java Developers from here - [http://www.eclipse.org/downloads/ Download Eclipse].&lt;br /&gt;
----&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 1.2 Test Suite&#039;&#039;&#039; -  Download and install the ADL SCORM 1.2 Conformance Test Suite. You can download the ADL Test suite from here - [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/TestSuite/SCORM1_2_TestSuite1_2_7ST.zip?raw=true Download ADL 1.2 Test Suite].&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 1.2 compliance you need to setup a course by following the instructions here - [https://docs.moodle.org/dev/SCORM_1.2_compliance_test_instructions SCORM 1.2 compliance test instructions]. The SCORM 1.2 &#039;&#039;LMSTestCourse&#039;&#039; packages that you need are available here -[https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse01.zip?raw=true LMSTestCourse01.zip] , [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse02.zip?raw=true LMSTestCourse02.zip]. &lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL1.2/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL1.2\classFiles\ ADL 1.2 classFiles]. &lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 2004 Test Suite&#039;&#039;&#039; - Download and install the ADL SCORM 2004 Conformance Test Suite. Download the ADL 2004 Test Suite from here - [&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 2004 compliance you need to setup a course in the following manner - &lt;br /&gt;
** &#039;&#039;&#039;Course Name&#039;&#039;&#039; - Setup a course named as - &#039;&#039;&#039;ADL SCORM Test 2004&#039;&#039;&#039;. The student, whose login details you will provide later on should be able to enter this course and should be able to access all SCORM activity within this course.&lt;br /&gt;
** &#039;&#039;&#039;SCORM Package&#039;&#039;&#039; - Turn editing on and add SCORM Test packages as activity inside the course. You may add all the SCORM Test packages available in the Moodle SCORM Test Harness repository here - [https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/LMSTestCourseZipPackages ADL SCORM 2004 Test Packages]. You must ensure that you have uploaded all the Test Packages for all the ADL 2004 tests that you want to execute. While &#039;&#039;&#039;&#039;&#039;Adding a new SCORM package&#039;&#039;&#039;&#039;&#039; the name field should contain the test package name at the end of the package name that you enter. For instance - &#039;&#039;LMSTestPackage_API.zip&#039;&#039; when uploaded should have &#039;&#039;&#039;API&#039;&#039;&#039; at the end of the name, like - &#039;&#039;&#039;&#039;&#039;ADL SCORM 2004 API&#039;&#039;&#039;&#039;&#039; will be a valid name for API Test Package.&lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then, you need to download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL2004\classFiles\ ADL 2004 classFiles]&lt;br /&gt;
&lt;br /&gt;
==Executing the Tests==&lt;br /&gt;
To execute the tests from the Command prompt follow the steps below -&lt;br /&gt;
===Set CLASSPATH===&lt;br /&gt;
* &#039;&#039;&#039;Set CLASSPATH&#039;&#039;&#039; - In order to execute the Selenium RC and Junit Tests you need to set the class path on the command prompt.&lt;br /&gt;
The elements that need to be added in classpath are - Junit class files, scormADL12 class files and Selenium jar class files.&lt;br /&gt;
To set the CLASSPATH before executing the tests use the following command - &lt;br /&gt;
 set CLASSPATH=[working_directory]\junit\junit.jar;[working_directory]\ADL1.2;[working-directory]\selenium-server-standalone.jar&lt;br /&gt;
For instance the actual &#039;&#039;(after replacing [working_directory])&#039;&#039; command to set CLASSPATH will be like -&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b3\junit-4.9b3.jar;C:\ADLTests\ADL___x\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.3.0.jar&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b3\junit-4.9b3.jar;C:\ADLTests\ADL2004\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.3.0.jar&lt;br /&gt;
===Invoke Runner===&lt;br /&gt;
* &#039;&#039;&#039;Invoke the Runner&#039;&#039;&#039; - Finally, to run the tests you need to invoke the Junit runner and specify the Moodle Test Site URL along with the full URL of the &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 or SCORM 2004 Test Suite. For ADL 2004 Test you can also specify which tests to execute. &lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
To execute the ADL 1.2 tests you need to specify the Moode Test Site and &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URLs as system property and invoke the Junit runner. Execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL12 &lt;br /&gt;
&#039;&#039;The full URL to &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; of SCORM ADL 1.2 test suite should be of LMSRTEMain.htm page, eg - http://localhost/Web/ADL/TestSuite1_2_7/TestSuite/lmsrte/LMSRTEMain.htm&#039;&#039;&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
To execute the ADL 2004 tests you need to specify the Moode Test Site URL, Moodle site student username and password, &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URL as system property and invoke the Junit runner.&lt;br /&gt;
If you do not provide username, password combination the test script will use default username - &#039;&#039;joestudent&#039;&#039; and password - &#039;&#039;password&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Execute all tests&#039;&#039;&#039; - To execute all the tests you simply need to execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL2004&lt;br /&gt;
* &#039;&#039;&#039;Specify Tests&#039;&#039;&#039; - To execute specific ADL SCORM 2004 tests you can use the following two ways to specify which tests to execute - &lt;br /&gt;
** &#039;&#039;&#039;test system property&#039;&#039;&#039; - You can specify the tests you want to execute by using &#039;&#039;-Dtest=&amp;quot;testName1,testName2,..&amp;quot; &#039;&#039;&lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -Dtest=&amp;quot;API, CM-01,CM-02a,CO-01&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
&#039;&#039;Note - you can specify as many tests as you wish to run with -Dtest, but it is recommended to enter the test names in a file and use -DfilePath instead.&lt;br /&gt;
** &#039;&#039;&#039;Specify filePath&#039;&#039;&#039; - You can specify the tests you want to execute in a in a file and feed the test script with the file path with &#039;&#039;-Dfilepath=&amp;quot;path\to\file&amp;quot; &#039;&#039;. This file should contain each test name in a new line.&lt;br /&gt;
To execute the test script with the filePath execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -DfilePath=&amp;quot;path\to\file&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
----&lt;br /&gt;
==Compile from Source==&lt;br /&gt;
Optionally, you can compile the test scripts to generate the class files &#039;&#039;(if you do not wish to use the supplied class files)&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Compile Test Script&#039;&#039;&#039; - To compile the test script open the Command Prompt, change the directory to &#039;&#039;&#039;[working_directory]\ADL1.2&#039;&#039;&#039; or &#039;&#039;&#039;[working_directory]\ADL2004&#039;&#039;&#039; &#039;&#039;(you can also specify the full path to the scormADL12.java or scormADL2004.java file from your current directory)&#039;&#039; and execute the following command - &lt;br /&gt;
===ADL 1.2 Tests===&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
===ADL 2004 Tests===&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
If you get the error - &#039;&#039; &#039;javac&#039; is not recognized as an internal or external command, operable program or batch file.&#039;&#039; Then you need to specify the full path to the javac.exe executable inside the &#039;&#039;&#039;bin&#039;&#039;&#039; directory of the Java installation on your machine.&lt;br /&gt;
Thus the above compilation command needs to be executed on the command prompt window by specifying the full path to &#039;&#039;javac&#039;&#039; like - &lt;br /&gt;
 &amp;quot;C:\Program Files\Java\jdk1.6.0_24\bin\javac.exe&amp;quot; [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
For more information please visit the following links:&lt;br /&gt;
* [https://docs.moodle.org/en/Administration_via_command_line Administration via command line]&lt;br /&gt;
* [https://docs.moodle.org/en/Development:SCORM_1.2_compliance_test_instructions How to manually run the 1.2 ADL tests]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} SCORM 1.2 documentation test suite]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Test%20Suite.aspx SCORM 2004 documentation test suite]&lt;br /&gt;
* [https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
* [https://docs.moodle.org/en/GSOC/2011 GSoC 2011 - Moodle]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=30986</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=30986"/>
		<updated>2011-12-17T09:59:35Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Completed&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. The Moodle install need not be on the same Microsoft Windows machine and could be on a remote Linux machine too. &lt;br /&gt;
The framework would also provide the ability to schedule or run the SCORM ADL tests automatically between the desired time intervals. On the completion of the tests an HTML page, containing the test&#039;s report will be displayed to the user. &lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and writing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
==Project Deliverables==&lt;br /&gt;
* Script that downloads the latest Moodle Code from [https://github.com/moodle/moodle GitHub], ugrades the Moodle install &#039;&#039;(if necessary)&#039;&#039; and &#039;&#039;prepares&#039;&#039; it for executing the SCORM ADL tests.&lt;br /&gt;
* Script that automates the ADL SCORM 1.2 tests and produces an HTML file with the results of the tests &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* Script that automates some of the ADL SCORM 2004 tests on Moodle &#039;&#039;(it may not be possible to script all of the 2004 ADL tests due to existing failures)&#039;&#039;.&lt;br /&gt;
* Documentation for how to install the scripts on a Microsoft Windows machine and have them run on an automated cycle.&lt;br /&gt;
* Identifying the issues with SCORM 2004 support in Moodle, reporting them to the Tracker and writing patches for the same.&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
The following are the implementation details in breif:&lt;br /&gt;
* &#039;&#039;&#039;Download and Update&#039;&#039;&#039; - The ADL SCORM tests should run on the latest Moodle code. The script using [https://docs.moodle.org/en/CLI CLI] will download the latest Moodle code from GitHub and upgrade the Moodle install &#039;&#039;(if necessary)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Add Test Course&#039;&#039;&#039; - Set up the users/course/activities required for the tests. This will be done by restoring the Moodle backup file into a &#039;&#039;new&#039;&#039;. This will again be implemented using CLI at the time of upgrading the install.&lt;br /&gt;
* &#039;&#039;&#039;Execute Tests&#039;&#039;&#039; - Run the browser based test script. [http://seleniumhq.org/projects/remote-control/ Selenium RC] will be used to write the automated web tests.&lt;br /&gt;
* &#039;&#039;&#039;Test Completion Report&#039;&#039;&#039; - At the end of the tests, the user will be displayed an HTML file with the results of the test &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Delete Test Course&#039;&#039;&#039; - After the tests have been executed, the new course that was added before the execution of test will be deleted.&lt;br /&gt;
&lt;br /&gt;
=Running ADL SCORM Test=&lt;br /&gt;
&lt;br /&gt;
The ADL SCORM tests can be executed in the following two ways - &lt;br /&gt;
* Running from the &#039;&#039;&#039;Command Prompt&#039;&#039;&#039; or,&lt;br /&gt;
* Running directly from &#039;&#039;&#039;Eclipse&#039;&#039;&#039; IDE (&#039;&#039;for Java Developers&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==Environmental Setup==&lt;br /&gt;
* &#039;&#039;&#039;Install Java&#039;&#039;&#039; - If you do not have Java installed on your machine you need to download and install it. You can download it from here - [http://www.java.com/en/download/ Download Java].&lt;br /&gt;
* &#039;&#039;&#039;Download Selenium&#039;&#039;&#039; - After ensuring that you have Java installed on your machine, you next need to download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039;. To download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039; you can simply download the &#039;&#039;&#039;selenium-server-standalone&#039;&#039;&#039; jar file (&#039;&#039;selenium-server-standalone-x.x.x.jar&#039;&#039;) from here - [http://code.google.com/p/selenium/downloads/list Download Selenium]. Save the jar file in the working directory.&lt;br /&gt;
&#039;&#039;In this documentation directory C:\ADLTests will be considered as the [working-directory] for the tests.&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Install Junit&#039;&#039;&#039; - You also need to download and install Junit on your machine. To install Junit download the zip file from here - [https://github.com/KentBeck/junit/downloads Download Junit] and extract the zip file in a directory say - &#039;&#039;C:\ADLTests\junit&#039;&#039;.&lt;br /&gt;
&#039;&#039;Note - The SCORM Test Harness has been tested with Selenium 2.3.0 and Junit 4.9b3 (the latest versions available while writing this documentation).&lt;br /&gt;
*&#039;&#039;&#039;SCORM Test Harness Repository&#039; - Finally, you need to download the Moodle SCORM Test Harness Repository from GitHub and save it in [working_directory]. You can download the repository from here - [https://github.com/mayankgupta/moodle_scorm_test_harness Moodle SCORM Test Harness Repository].&lt;br /&gt;
&#039;&#039;Note - If you do not wish to download/clone the complete repository, you can download the individual files required and create necessary folders as indicated in the steps below.&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;Eclipse IDE&#039;&#039; - To run the ADL SCORM tests using Eclipse IDE, you need to download Eclipse IDE for Java Developers from here - [http://www.eclipse.org/downloads/ Download Eclipse].&lt;br /&gt;
----&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 1.2 Test Suite&#039;&#039;&#039; -  Download and install the ADL SCORM 1.2 Conformance Test Suite. You can download the ADL Test suite from here - [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/TestSuite/SCORM1_2_TestSuite1_2_7ST.zip?raw=true Download ADL 1.2 Test Suite].&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 1.2 compliance you need to setup a course by following the instructions here - [https://docs.moodle.org/dev/SCORM_1.2_compliance_test_instructions SCORM 1.2 compliance test instructions]. The SCORM 1.2 &#039;&#039;LMSTestCourse&#039;&#039; packages that you need are available here -[https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse01.zip?raw=true LMSTestCourse01.zip] , [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse02.zip?raw=true LMSTestCourse02.zip]. &lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL1.2/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL1.2\classFiles\ ADL 1.2 classFiles]. &lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 2004 Test Suite&#039;&#039;&#039; - Download and install the ADL SCORM 2004 Conformance Test Suite. Download the ADL 2004 Test Suite from here - [&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 2004 compliance you need to setup a course in the following manner - &lt;br /&gt;
** &#039;&#039;&#039;Course Name&#039;&#039;&#039; - Setup a course named as - &#039;&#039;&#039;ADL SCORM Test 2004&#039;&#039;&#039;. The student, whose login details you will provide later on should be able to enter this course and should be able to access all SCORM activity within this course.&lt;br /&gt;
** &#039;&#039;&#039;SCORM Package&#039;&#039;&#039; - Turn editing on and add SCORM Test packages as activity inside the course. You may add all the SCORM Test packages available in the Moodle SCORM Test Harness repository here - [https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/LMSTestCourseZipPackages ADL SCORM 2004 Test Packages]. You must ensure that you have uploaded all the Test Packages for all the ADL 2004 tests that you want to execute. While &#039;&#039;&#039;&#039;&#039;Adding a new SCORM package&#039;&#039;&#039;&#039;&#039; the name field should contain the test package name at the end of the package name that you enter. For instance - &#039;&#039;LMSTestPackage_API.zip&#039;&#039; when uploaded should have &#039;&#039;&#039;API&#039;&#039;&#039; at the end of the name, like - &#039;&#039;&#039;&#039;&#039;ADL SCORM 2004 API&#039;&#039;&#039;&#039;&#039; will be a valid name for API Test Package.&lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then, you need to download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL2004\classFiles\ ADL 2004 classFiles]&lt;br /&gt;
&lt;br /&gt;
==Executing the Tests==&lt;br /&gt;
To execute the tests from the Command prompt follow the steps below -&lt;br /&gt;
===Set CLASSPATH===&lt;br /&gt;
* &#039;&#039;&#039;Set CLASSPATH&#039;&#039;&#039; - In order to execute the Selenium RC and Junit Tests you need to set the class path on the command prompt.&lt;br /&gt;
The elements that need to be added in classpath are - Junit class files, scormADL12 class files and Selenium jar class files.&lt;br /&gt;
To set the CLASSPATH before executing the tests use the following command - &lt;br /&gt;
 set CLASSPATH=[working_directory]\junit\junit.jar;[working_directory]\ADL1.2;[working-directory]\selenium-server-standalone.jar&lt;br /&gt;
For instance the actual &#039;&#039;(after replacing [working_directory])&#039;&#039; command to set CLASSPATH will be like -&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b3\junit-4.9b3.jar;C:\ADLTests\ADL___x\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.3.0.jar&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b3\junit-4.9b3.jar;C:\ADLTests\ADL2004\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.3.0.jar&lt;br /&gt;
===Invoke Runner===&lt;br /&gt;
* &#039;&#039;&#039;Invoke the Runner&#039;&#039;&#039; - Finally, to run the tests you need to invoke the Junit runner and specify the Moodle Test Site URL along with the full URL of the &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 or SCORM 2004 Test Suite. For ADL 2004 Test you can also specify which tests to execute. &lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
To execute the ADL 1.2 tests you need to specify the Moode Test Site and &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URLs as system property and invoke the Junit runner. Execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL12 &lt;br /&gt;
&#039;&#039;The full URL to &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; of SCORM ADL 1.2 test suite should be of LMSRTEMain.htm page, eg - http://localhost/Web/ADL/TestSuite1_2_7/TestSuite/lmsrte/LMSRTEMain.htm&#039;&#039;&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
To execute the ADL 2004 tests you need to specify the Moode Test Site URL, Moodle site student username and password, &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URL as system property and invoke the Junit runner.&lt;br /&gt;
If you do not provide username, password combination the test script will use default username - &#039;&#039;joestudent&#039;&#039; and password - &#039;&#039;password&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Execute all tests&#039;&#039;&#039; - To execute all the tests you simply need to execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL2004&lt;br /&gt;
* &#039;&#039;&#039;Specify Tests&#039;&#039;&#039; - To execute specific ADL SCORM 2004 tests you can use the following two ways to specify which tests to execute - &lt;br /&gt;
** &#039;&#039;&#039;test system property&#039;&#039;&#039; - You can specify the tests you want to execute by using &#039;&#039;-Dtest=&amp;quot;testName1,testName2,..&amp;quot; &#039;&#039;&lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -Dtest=&amp;quot;API, CM-01,CM-02a,CO-01&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
&#039;&#039;Note - you can specify as many tests as you wish to run with -Dtest, but it is recommended to enter the test names in a file and use -DfilePath instead.&lt;br /&gt;
** &#039;&#039;&#039;Specify filePath&#039;&#039;&#039; - You can specify the tests you want to execute in a in a file and feed the test script with the file path with &#039;&#039;-Dfilepath=&amp;quot;path\to\file&amp;quot; &#039;&#039;. This file should contain each test name in a new line.&lt;br /&gt;
To execute the test script with the filePath execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -DfilePath=&amp;quot;path\to\file&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
----&lt;br /&gt;
==Compile from Source==&lt;br /&gt;
Optionally, you can compile the test scripts to generate the class files &#039;&#039;(if you do not wish to use the supplied class files)&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Compile Test Script&#039;&#039;&#039; - To compile the test script open the Command Prompt, change the directory to &#039;&#039;&#039;[working_directory]\ADL1.2&#039;&#039;&#039; or &#039;&#039;&#039;[working_directory]\ADL2004&#039;&#039;&#039; &#039;&#039;(you can also specify the full path to the scormADL12.java or scormADL2004.java file from your current directory)&#039;&#039; and execute the following command - &lt;br /&gt;
===ADL 1.2 Tests===&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
===ADL 2004 Tests===&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
If you get the error - &#039;&#039; &#039;javac&#039; is not recognized as an internal or external command, operable program or batch file.&#039;&#039; Then you need to specify the full path to the javac.exe executable inside the &#039;&#039;&#039;bin&#039;&#039;&#039; directory of the Java installation on your machine.&lt;br /&gt;
Thus the above compilation command needs to be executed on the command prompt window by specifying the full path to &#039;&#039;javac&#039;&#039; like - &lt;br /&gt;
 &amp;quot;C:\Program Files\Java\jdk1.6.0_24\bin\javac.exe&amp;quot; [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
=Schedule=&lt;br /&gt;
* April 26th - May 29th: Get familiar with the Selenium RC, discuss functionality with mentor.&lt;br /&gt;
* 30th May - 5th June: Write script to Download lates code, Upgrade Moodle, Restore and Delete test course.&lt;br /&gt;
* 6th - 15th June: Write the automated web tests.&lt;br /&gt;
* 16th - 26th June: Reproduce ADL SCORM 1.2 Tests.&lt;br /&gt;
* 27th June - 6th July: Reproduce ADL SCORM 2004 Tests.&lt;br /&gt;
* 7th - 11 July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - Script to Download, Upgrade, Restore / Delete Backup, code for Test harness,  script for ADL SCORM 1.2 and 2004 tests and preliminary report on regressions issues&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* 12th July - 17th July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
* 18th July - 13th August: Test SCORM 2004 packages report bugs in the Tracker and write patches.&lt;br /&gt;
* 14th - 19th August: Documentation for installation and configuration of scripts on Windows machine. &lt;br /&gt;
&#039;&#039;would be a nice task:&#039;&#039; A developer documentation, to explain the the test harness.&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
For more information please visit the following links:&lt;br /&gt;
* [https://docs.moodle.org/en/Administration_via_command_line Administration via command line]&lt;br /&gt;
* [https://docs.moodle.org/en/Development:SCORM_1.2_compliance_test_instructions How to manually run the 1.2 ADL tests]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} SCORM 1.2 documentation test suite]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Test%20Suite.aspx SCORM 2004 documentation test suite]&lt;br /&gt;
* [https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
* [https://docs.moodle.org/en/GSOC/2011 GSoC 2011 - Moodle]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=30848</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=30848"/>
		<updated>2011-12-04T22:48:36Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. The Moodle install need not be on the same Microsoft Windows machine and could be on a remote Linux machine too. &lt;br /&gt;
The framework would also provide the ability to schedule or run the SCORM ADL tests automatically between the desired time intervals. On the completion of the tests an HTML page, containing the test&#039;s report will be displayed to the user. &lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and writing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
==Project Deliverables==&lt;br /&gt;
* Script that downloads the latest Moodle Code from [https://github.com/moodle/moodle GitHub], ugrades the Moodle install &#039;&#039;(if necessary)&#039;&#039; and &#039;&#039;prepares&#039;&#039; it for executing the SCORM ADL tests.&lt;br /&gt;
* Script that automates the ADL SCORM 1.2 tests and produces an HTML file with the results of the tests &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* Script that automates some of the ADL SCORM 2004 tests on Moodle &#039;&#039;(it may not be possible to script all of the 2004 ADL tests due to existing failures)&#039;&#039;.&lt;br /&gt;
* Documentation for how to install the scripts on a Microsoft Windows machine and have them run on an automated cycle.&lt;br /&gt;
* Identifying the issues with SCORM 2004 support in Moodle, reporting them to the Tracker and writing patches for the same.&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
The following are the implementation details in breif:&lt;br /&gt;
* &#039;&#039;&#039;Download and Update&#039;&#039;&#039; - The ADL SCORM tests should run on the latest Moodle code. The script using [https://docs.moodle.org/en/CLI CLI] will download the latest Moodle code from GitHub and upgrade the Moodle install &#039;&#039;(if necessary)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Add Test Course&#039;&#039;&#039; - Set up the users/course/activities required for the tests. This will be done by restoring the Moodle backup file into a &#039;&#039;new&#039;&#039;. This will again be implemented using CLI at the time of upgrading the install.&lt;br /&gt;
* &#039;&#039;&#039;Execute Tests&#039;&#039;&#039; - Run the browser based test script. [http://seleniumhq.org/projects/remote-control/ Selenium RC] will be used to write the automated web tests.&lt;br /&gt;
* &#039;&#039;&#039;Test Completion Report&#039;&#039;&#039; - At the end of the tests, the user will be displayed an HTML file with the results of the test &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Delete Test Course&#039;&#039;&#039; - After the tests have been executed, the new course that was added before the execution of test will be deleted.&lt;br /&gt;
&lt;br /&gt;
=Running ADL SCORM Test=&lt;br /&gt;
&lt;br /&gt;
The ADL SCORM tests can be executed in the following two ways - &lt;br /&gt;
* Running from the &#039;&#039;&#039;Command Prompt&#039;&#039;&#039; or,&lt;br /&gt;
* Running directly from &#039;&#039;&#039;Eclipse&#039;&#039;&#039; IDE (&#039;&#039;for Java Developers&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==Environmental Setup==&lt;br /&gt;
* &#039;&#039;&#039;Install Java&#039;&#039;&#039; - If you do not have Java installed on your machine you need to download and install it. You can download it from here - [http://www.java.com/en/download/ Download Java].&lt;br /&gt;
* &#039;&#039;&#039;Download Selenium&#039;&#039;&#039; - After ensuring that you have Java installed on your machine, you next need to download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039;. To download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039; you can simply download the &#039;&#039;&#039;selenium-server-standalone&#039;&#039;&#039; jar file (&#039;&#039;selenium-server-standalone-x.x.x.jar&#039;&#039;) from here - [http://code.google.com/p/selenium/downloads/list Download Selenium]. Save the jar file in the working directory.&lt;br /&gt;
&#039;&#039;In this documentation directory C:\ADLTests will be considered as the [working-directory] for the tests.&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Install Junit&#039;&#039;&#039; - You also need to download and install Junit on your machine. To install Junit download the zip file from here - [https://github.com/KentBeck/junit/downloads Download Junit] and extract the zip file in a directory say - &#039;&#039;C:\ADLTests\junit&#039;&#039;.&lt;br /&gt;
&#039;&#039;Note - The SCORM Test Harness has been tested with Selenium 2.3.0 and Junit 4.9b3 (the latest versions available while writing this documentation).&lt;br /&gt;
*&#039;&#039;&#039;SCORM Test Harness Repository&#039; - Finally, you need to download the Moodle SCORM Test Harness Repository from GitHub and save it in [working_directory]. You can download the repository from here - [https://github.com/mayankgupta/moodle_scorm_test_harness Moodle SCORM Test Harness Repository].&lt;br /&gt;
&#039;&#039;Note - If you do not wish to download/clone the complete repository, you can download the individual files required and create necessary folders as indicated in the steps below.&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;Eclipse IDE&#039;&#039; - To run the ADL SCORM tests using Eclipse IDE, you need to download Eclipse IDE for Java Developers from here - [http://www.eclipse.org/downloads/ Download Eclipse].&lt;br /&gt;
----&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 1.2 Test Suite&#039;&#039;&#039; -  Download and install the ADL SCORM 1.2 Conformance Test Suite. You can download the ADL Test suite from here - [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/TestSuite/SCORM1_2_TestSuite1_2_7ST.zip?raw=true Download ADL 1.2 Test Suite].&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 1.2 compliance you need to setup a course by following the instructions here - [https://docs.moodle.org/dev/SCORM_1.2_compliance_test_instructions SCORM 1.2 compliance test instructions]. The SCORM 1.2 &#039;&#039;LMSTestCourse&#039;&#039; packages that you need are available here -[https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse01.zip?raw=true LMSTestCourse01.zip] , [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse02.zip?raw=true LMSTestCourse02.zip]. &lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL1.2/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL1.2\classFiles\ ADL 1.2 classFiles]. &lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 2004 Test Suite&#039;&#039;&#039; - Download and install the ADL SCORM 2004 Conformance Test Suite. Download the ADL 2004 Test Suite from here - [&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 2004 compliance you need to setup a course in the following manner - &lt;br /&gt;
** &#039;&#039;&#039;Course Name&#039;&#039;&#039; - Setup a course named as - &#039;&#039;&#039;ADL SCORM Test 2004&#039;&#039;&#039;. The student, whose login details you will provide later on should be able to enter this course and should be able to access all SCORM activity within this course.&lt;br /&gt;
** &#039;&#039;&#039;SCORM Package&#039;&#039;&#039; - Turn editing on and add SCORM Test packages as activity inside the course. You may add all the SCORM Test packages available in the Moodle SCORM Test Harness repository here - [https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/LMSTestCourseZipPackages ADL SCORM 2004 Test Packages]. You must ensure that you have uploaded all the Test Packages for all the ADL 2004 tests that you want to execute. While &#039;&#039;&#039;&#039;&#039;Adding a new SCORM package&#039;&#039;&#039;&#039;&#039; the name field should contain the test package name at the end of the package name that you enter. For instance - &#039;&#039;LMSTestPackage_API.zip&#039;&#039; when uploaded should have &#039;&#039;&#039;API&#039;&#039;&#039; at the end of the name, like - &#039;&#039;&#039;&#039;&#039;ADL SCORM 2004 API&#039;&#039;&#039;&#039;&#039; will be a valid name for API Test Package.&lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then, you need to download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL2004\classFiles\ ADL 2004 classFiles]&lt;br /&gt;
&lt;br /&gt;
==Executing the Tests==&lt;br /&gt;
To execute the tests from the Command prompt follow the steps below -&lt;br /&gt;
===Set CLASSPATH===&lt;br /&gt;
* &#039;&#039;&#039;Set CLASSPATH&#039;&#039;&#039; - In order to execute the Selenium RC and Junit Tests you need to set the class path on the command prompt.&lt;br /&gt;
The elements that need to be added in classpath are - Junit class files, scormADL12 class files and Selenium jar class files.&lt;br /&gt;
To set the CLASSPATH before executing the tests use the following command - &lt;br /&gt;
 set CLASSPATH=[working_directory]\junit\junit.jar;[working_directory]\ADL1.2;[working-directory]\selenium-server-standalone.jar&lt;br /&gt;
For instance the actual &#039;&#039;(after replacing [working_directory])&#039;&#039; command to set CLASSPATH will be like -&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b3\junit-4.9b3.jar;C:\ADLTests\ADL___x\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.3.0.jar&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b3\junit-4.9b3.jar;C:\ADLTests\ADL2004\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.3.0.jar&lt;br /&gt;
===Invoke Runner===&lt;br /&gt;
* &#039;&#039;&#039;Invoke the Runner&#039;&#039;&#039; - Finally, to run the tests you need to invoke the Junit runner and specify the Moodle Test Site URL along with the full URL of the &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 or SCORM 2004 Test Suite. For ADL 2004 Test you can also specify which tests to execute. &lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
To execute the ADL 1.2 tests you need to specify the Moode Test Site and &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URLs as system property and invoke the Junit runner. Execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL12 &lt;br /&gt;
&#039;&#039;The full URL to &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; of SCORM ADL 1.2 test suite should be of LMSRTEMain.htm page, eg - http://localhost/Web/ADL/TestSuite1_2_7/TestSuite/lmsrte/LMSRTEMain.htm&#039;&#039;&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
To execute the ADL 2004 tests you need to specify the Moode Test Site URL, Moodle site student username and password, &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URL as system property and invoke the Junit runner.&lt;br /&gt;
If you do not provide username, password combination the test script will use default username - &#039;&#039;joestudent&#039;&#039; and password - &#039;&#039;password&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Execute all tests&#039;&#039;&#039; - To execute all the tests you simply need to execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL2004&lt;br /&gt;
* &#039;&#039;&#039;Specify Tests&#039;&#039;&#039; - To execute specific ADL SCORM 2004 tests you can use the following two ways to specify which tests to execute - &lt;br /&gt;
** &#039;&#039;&#039;test system property&#039;&#039;&#039; - You can specify the tests you want to execute by using &#039;&#039;-Dtest=&amp;quot;testName1,testName2,..&amp;quot; &#039;&#039;&lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -Dtest=&amp;quot;API, CM-01,CM-02a,CO-01&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
&#039;&#039;Note - you can specify as many tests as you wish to run with -Dtest, but it is recommended to enter the test names in a file and use -DfilePath instead.&lt;br /&gt;
** &#039;&#039;&#039;Specify filePath&#039;&#039;&#039; - You can specify the tests you want to execute in a in a file and feed the test script with the file path with &#039;&#039;-Dfilepath=&amp;quot;path\to\file&amp;quot; &#039;&#039;. This file should contain each test name in a new line.&lt;br /&gt;
To execute the test script with the filePath execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -DfilePath=&amp;quot;path\to\file&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
----&lt;br /&gt;
==Compile from Source==&lt;br /&gt;
Optionally, you can compile the test scripts to generate the class files &#039;&#039;(if you do not wish to use the supplied class files)&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Compile Test Script&#039;&#039;&#039; - To compile the test script open the Command Prompt, change the directory to &#039;&#039;&#039;[working_directory]\ADL1.2&#039;&#039;&#039; or &#039;&#039;&#039;[working_directory]\ADL2004&#039;&#039;&#039; &#039;&#039;(you can also specify the full path to the scormADL12.java or scormADL2004.java file from your current directory)&#039;&#039; and execute the following command - &lt;br /&gt;
===ADL 1.2 Tests===&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
===ADL 2004 Tests===&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
If you get the error - &#039;&#039; &#039;javac&#039; is not recognized as an internal or external command, operable program or batch file.&#039;&#039; Then you need to specify the full path to the javac.exe executable inside the &#039;&#039;&#039;bin&#039;&#039;&#039; directory of the Java installation on your machine.&lt;br /&gt;
Thus the above compilation command needs to be executed on the command prompt window by specifying the full path to &#039;&#039;javac&#039;&#039; like - &lt;br /&gt;
 &amp;quot;C:\Program Files\Java\jdk1.6.0_24\bin\javac.exe&amp;quot; [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
=Schedule=&lt;br /&gt;
* April 26th - May 29th: Get familiar with the Selenium RC, discuss functionality with mentor.&lt;br /&gt;
* 30th May - 5th June: Write script to Download lates code, Upgrade Moodle, Restore and Delete test course.&lt;br /&gt;
* 6th - 15th June: Write the automated web tests.&lt;br /&gt;
* 16th - 26th June: Reproduce ADL SCORM 1.2 Tests.&lt;br /&gt;
* 27th June - 6th July: Reproduce ADL SCORM 2004 Tests.&lt;br /&gt;
* 7th - 11 July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - Script to Download, Upgrade, Restore / Delete Backup, code for Test harness,  script for ADL SCORM 1.2 and 2004 tests and preliminary report on regressions issues&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* 12th July - 17th July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
* 18th July - 13th August: Test SCORM 2004 packages report bugs in the Tracker and write patches.&lt;br /&gt;
* 14th - 19th August: Documentation for installation and configuration of scripts on Windows machine. &lt;br /&gt;
&#039;&#039;would be a nice task:&#039;&#039; A developer documentation, to explain the the test harness.&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
For more information please visit the following links:&lt;br /&gt;
* [https://docs.moodle.org/en/Administration_via_command_line Administration via command line]&lt;br /&gt;
* [https://docs.moodle.org/en/Development:SCORM_1.2_compliance_test_instructions How to manually run the 1.2 ADL tests]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} SCORM 1.2 documentation test suite]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Test%20Suite.aspx SCORM 2004 documentation test suite]&lt;br /&gt;
* [https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
* [https://docs.moodle.org/en/GSOC/2011 GSoC 2011 - Moodle]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=29109</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=29109"/>
		<updated>2011-08-09T03:16:39Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: Correcting versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification to be updated soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. The Moodle install need not be on the same Microsoft Windows machine and could be on a remote Linux machine too. &lt;br /&gt;
The framework would also provide the ability to schedule or run the SCORM ADL tests automatically between the desired time intervals. On the completion of the tests an HTML page, containing the test&#039;s report will be displayed to the user. &lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and writing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
==Project Deliverables==&lt;br /&gt;
* Script that downloads the latest Moodle Code from [https://github.com/moodle/moodle GitHub], ugrades the Moodle install &#039;&#039;(if necessary)&#039;&#039; and &#039;&#039;prepares&#039;&#039; it for executing the SCORM ADL tests.&lt;br /&gt;
* Script that automates the ADL SCORM 1.2 tests and produces an HTML file with the results of the tests &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* Script that automates some of the ADL SCORM 2004 tests on Moodle &#039;&#039;(it may not be possible to script all of the 2004 ADL tests due to existing failures)&#039;&#039;.&lt;br /&gt;
* Documentation for how to install the scripts on a Microsoft Windows machine and have them run on an automated cycle.&lt;br /&gt;
* Identifying the issues with SCORM 2004 support in Moodle, reporting them to the Tracker and writing patches for the same.&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
The following are the implementation details in breif:&lt;br /&gt;
* &#039;&#039;&#039;Download and Update&#039;&#039;&#039; - The ADL SCORM tests should run on the latest Moodle code. The script using [https://docs.moodle.org/en/CLI CLI] will download the latest Moodle code from GitHub and upgrade the Moodle install &#039;&#039;(if necessary)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Add Test Course&#039;&#039;&#039; - Set up the users/course/activities required for the tests. This will be done by restoring the Moodle backup file into a &#039;&#039;new&#039;&#039;. This will again be implemented using CLI at the time of upgrading the install.&lt;br /&gt;
* &#039;&#039;&#039;Execute Tests&#039;&#039;&#039; - Run the browser based test script. [http://seleniumhq.org/projects/remote-control/ Selenium RC] will be used to write the automated web tests.&lt;br /&gt;
* &#039;&#039;&#039;Test Completion Report&#039;&#039;&#039; - At the end of the tests, the user will be displayed an HTML file with the results of the test &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Delete Test Course&#039;&#039;&#039; - After the tests have been executed, the new course that was added before the execution of test will be deleted.&lt;br /&gt;
&lt;br /&gt;
=Running ADL SCORM Test=&lt;br /&gt;
&lt;br /&gt;
The ADL SCORM tests can be executed in the following two ways - &lt;br /&gt;
* Running from the &#039;&#039;&#039;Command Prompt&#039;&#039;&#039; or,&lt;br /&gt;
* Running directly from &#039;&#039;&#039;Eclipse&#039;&#039;&#039; IDE (&#039;&#039;for Java Developers&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==Environmental Setup==&lt;br /&gt;
* &#039;&#039;&#039;Install Java&#039;&#039;&#039; - If you do not have Java installed on your machine you need to download and install it. You can download it from here - [http://www.java.com/en/download/ Download Java].&lt;br /&gt;
* &#039;&#039;&#039;Download Selenium&#039;&#039;&#039; - After ensuring that you have Java installed on your machine, you next need to download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039;. To download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039; you can simply download the &#039;&#039;&#039;selenium-server-standalone&#039;&#039;&#039; jar file (&#039;&#039;selenium-server-standalone-x.x.x.jar&#039;&#039;) from here - [http://code.google.com/p/selenium/downloads/list Download Selenium]. Save the jar file in the working directory.&lt;br /&gt;
&#039;&#039;In this documentation directory C:\ADLTests will be considered as the [working-directory] for the tests.&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Install Junit&#039;&#039;&#039; - You also need to download and install Junit on your machine. To install Junit download the zip file from here - [https://github.com/KentBeck/junit/downloads Download Junit] and extract the zip file in a directory say - &#039;&#039;C:\ADLTests\junit&#039;&#039;.&lt;br /&gt;
&#039;&#039;Note - The SCORM Test Harness has been tested with Selenium 2.3.0 and Junit 4.9b3 (the latest versions available while writing this documentation).&lt;br /&gt;
*&#039;&#039;&#039;SCORM Test Harness Repository&#039; - Finally, you need to download the Moodle SCORM Test Harness Repository from GitHub and save it in [working_directory]. You can download the repository from here - [https://github.com/mayankgupta/moodle_scorm_test_harness Moodle SCORM Test Harness Repository].&lt;br /&gt;
&#039;&#039;Note - If you do not wish to download/clone the complete repository, you can download the individual files required and create necessary folders as indicated in the steps below.&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;Eclipse IDE&#039;&#039; - To run the ADL SCORM tests using Eclipse IDE, you need to download Eclipse IDE for Java Developers from here - [http://www.eclipse.org/downloads/ Download Eclipse].&lt;br /&gt;
----&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 1.2 Test Suite&#039;&#039;&#039; -  Download and install the ADL SCORM 1.2 Conformance Test Suite. You can download the ADL Test suite from here - [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/TestSuite/SCORM1_2_TestSuite1_2_7ST.zip?raw=true Download ADL 1.2 Test Suite].&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 1.2 compliance you need to setup a course by following the instructions here - [https://docs.moodle.org/dev/SCORM_1.2_compliance_test_instructions SCORM 1.2 compliance test instructions]. The SCORM 1.2 &#039;&#039;LMSTestCourse&#039;&#039; packages that you need are available here -[https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse01.zip?raw=true LMSTestCourse01.zip] , [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse02.zip?raw=true LMSTestCourse02.zip]. &lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL1.2/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL1.2\classFiles\ ADL 1.2 classFiles]. &lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 2004 Test Suite&#039;&#039;&#039; - Download and install the ADL SCORM 2004 Conformance Test Suite. Download the ADL 2004 Test Suite from here - [&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 2004 compliance you need to setup a course in the following manner - &lt;br /&gt;
** &#039;&#039;&#039;Course Name&#039;&#039;&#039; - Setup a course named as - &#039;&#039;&#039;ADL SCORM Test 2004&#039;&#039;&#039;. The student, whose login details you will provide later on should be able to enter this course and should be able to access all SCORM activity within this course.&lt;br /&gt;
** &#039;&#039;&#039;SCORM Package&#039;&#039;&#039; - Turn editing on and add SCORM Test packages as activity inside the course. You may add all the SCORM Test packages available in the Moodle SCORM Test Harness repository here - [https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/LMSTestCourseZipPackages ADL SCORM 2004 Test Packages]. You must ensure that you have uploaded all the Test Packages for all the ADL 2004 tests that you want to execute. While &#039;&#039;&#039;&#039;&#039;Adding a new SCORM package&#039;&#039;&#039;&#039;&#039; the name field should contain the test package name at the end of the package name that you enter. For instance - &#039;&#039;LMSTestPackage_API.zip&#039;&#039; when uploaded should have &#039;&#039;&#039;API&#039;&#039;&#039; at the end of the name, like - &#039;&#039;&#039;&#039;&#039;ADL SCORM 2004 API&#039;&#039;&#039;&#039;&#039; will be a valid name for API Test Package.&lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then, you need to download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL2004\classFiles\ ADL 2004 classFiles]&lt;br /&gt;
&lt;br /&gt;
==Executing the Tests==&lt;br /&gt;
To execute the tests from the Command prompt follow the steps below -&lt;br /&gt;
===Set CLASSPATH===&lt;br /&gt;
* &#039;&#039;&#039;Set CLASSPATH&#039;&#039;&#039; - In order to execute the Selenium RC and Junit Tests you need to set the class path on the command prompt.&lt;br /&gt;
The elements that need to be added in classpath are - Junit class files, scormADL12 class files and Selenium jar class files.&lt;br /&gt;
To set the CLASSPATH before executing the tests use the following command - &lt;br /&gt;
 set CLASSPATH=[working_directory]\junit\junit.jar;[working_directory]\ADL1.2;[working-directory]\selenium-server-standalone.jar&lt;br /&gt;
For instance the actual &#039;&#039;(after replacing [working_directory])&#039;&#039; command to set CLASSPATH will be like -&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b3\junit-4.9b3.jar;C:\ADLTests\ADL___x\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.3.0.jar&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b3\junit-4.9b3.jar;C:\ADLTests\ADL2004\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.3.0.jar&lt;br /&gt;
===Invoke Runner===&lt;br /&gt;
* &#039;&#039;&#039;Invoke the Runner&#039;&#039;&#039; - Finally, to run the tests you need to invoke the Junit runner and specify the Moodle Test Site URL along with the full URL of the &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 or SCORM 2004 Test Suite. For ADL 2004 Test you can also specify which tests to execute. &lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
To execute the ADL 1.2 tests you need to specify the Moode Test Site and &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URLs as system property and invoke the Junit runner. Execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL12 &lt;br /&gt;
&#039;&#039;The full URL to &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; of SCORM ADL 1.2 test suite should be of LMSRTEMain.htm page, eg - http://localhost/Web/ADL/TestSuite1_2_7/TestSuite/lmsrte/LMSRTEMain.htm&#039;&#039;&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
To execute the ADL 2004 tests you need to specify the Moode Test Site URL, Moodle site student username and password, &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URL as system property and invoke the Junit runner.&lt;br /&gt;
If you do not provide username, password combination the test script will use default username - &#039;&#039;joestudent&#039;&#039; and password - &#039;&#039;password&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Execute all tests&#039;&#039;&#039; - To execute all the tests you simply need to execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL2004&lt;br /&gt;
* &#039;&#039;&#039;Specify Tests&#039;&#039;&#039; - To execute specific ADL SCORM 2004 tests you can use the following two ways to specify which tests to execute - &lt;br /&gt;
** &#039;&#039;&#039;test system property&#039;&#039;&#039; - You can specify the tests you want to execute by using &#039;&#039;-Dtest=&amp;quot;testName1,testName2,..&amp;quot; &#039;&#039;&lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -Dtest=&amp;quot;API, CM-01,CM-02a,CO-01&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
&#039;&#039;Note - you can specify as many tests as you wish to run with -Dtest, but it is recommended to enter the test names in a file and use -DfilePath instead.&lt;br /&gt;
** &#039;&#039;&#039;Specify filePath&#039;&#039;&#039; - You can specify the tests you want to execute in a in a file and feed the test script with the file path with &#039;&#039;-Dfilepath=&amp;quot;path\to\file&amp;quot; &#039;&#039;. This file should contain each test name in a new line.&lt;br /&gt;
To execute the test script with the filePath execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -DfilePath=&amp;quot;path\to\file&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
----&lt;br /&gt;
==Compile from Source==&lt;br /&gt;
Optionally, you can compile the test scripts to generate the class files &#039;&#039;(if you do not wish to use the supplied class files)&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Compile Test Script&#039;&#039;&#039; - To compile the test script open the Command Prompt, change the directory to &#039;&#039;&#039;[working_directory]\ADL1.2&#039;&#039;&#039; or &#039;&#039;&#039;[working_directory]\ADL2004&#039;&#039;&#039; &#039;&#039;(you can also specify the full path to the scormADL12.java or scormADL2004.java file from your current directory)&#039;&#039; and execute the following command - &lt;br /&gt;
===ADL 1.2 Tests===&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
===ADL 2004 Tests===&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
If you get the error - &#039;&#039; &#039;javac&#039; is not recognized as an internal or external command, operable program or batch file.&#039;&#039; Then you need to specify the full path to the javac.exe executable inside the &#039;&#039;&#039;bin&#039;&#039;&#039; directory of the Java installation on your machine.&lt;br /&gt;
Thus the above compilation command needs to be executed on the command prompt window by specifying the full path to &#039;&#039;javac&#039;&#039; like - &lt;br /&gt;
 &amp;quot;C:\Program Files\Java\jdk1.6.0_24\bin\javac.exe&amp;quot; [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
=Schedule=&lt;br /&gt;
* April 26th - May 29th: Get familiar with the Selenium RC, discuss functionality with mentor.&lt;br /&gt;
* 30th May - 5th June: Write script to Download lates code, Upgrade Moodle, Restore and Delete test course.&lt;br /&gt;
* 6th - 15th June: Write the automated web tests.&lt;br /&gt;
* 16th - 26th June: Reproduce ADL SCORM 1.2 Tests.&lt;br /&gt;
* 27th June - 6th July: Reproduce ADL SCORM 2004 Tests.&lt;br /&gt;
* 7th - 11 July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - Script to Download, Upgrade, Restore / Delete Backup, code for Test harness,  script for ADL SCORM 1.2 and 2004 tests and preliminary report on regressions issues&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* 12th July - 17th July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
* 18th July - 13th August: Test SCORM 2004 packages report bugs in the Tracker and write patches.&lt;br /&gt;
* 14th - 19th August: Documentation for installation and configuration of scripts on Windows machine. &lt;br /&gt;
&#039;&#039;would be a nice task:&#039;&#039; A developer documentation, to explain the the test harness.&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
For more information please visit the following links:&lt;br /&gt;
* [https://docs.moodle.org/en/Administration_via_command_line Administration via command line]&lt;br /&gt;
* [https://docs.moodle.org/en/Development:SCORM_1.2_compliance_test_instructions How to manually run the 1.2 ADL tests]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} SCORM 1.2 documentation test suite]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Test%20Suite.aspx SCORM 2004 documentation test suite]&lt;br /&gt;
* [https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
* [https://docs.moodle.org/en/GSOC/2011 GSoC 2011 - Moodle]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=29108</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=29108"/>
		<updated>2011-08-09T03:15:42Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: Correcting versions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification to be updated soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. The Moodle install need not be on the same Microsoft Windows machine and could be on a remote Linux machine too. &lt;br /&gt;
The framework would also provide the ability to schedule or run the SCORM ADL tests automatically between the desired time intervals. On the completion of the tests an HTML page, containing the test&#039;s report will be displayed to the user. &lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and writing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
==Project Deliverables==&lt;br /&gt;
* Script that downloads the latest Moodle Code from [https://github.com/moodle/moodle GitHub], ugrades the Moodle install &#039;&#039;(if necessary)&#039;&#039; and &#039;&#039;prepares&#039;&#039; it for executing the SCORM ADL tests.&lt;br /&gt;
* Script that automates the ADL SCORM 1.2 tests and produces an HTML file with the results of the tests &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* Script that automates some of the ADL SCORM 2004 tests on Moodle &#039;&#039;(it may not be possible to script all of the 2004 ADL tests due to existing failures)&#039;&#039;.&lt;br /&gt;
* Documentation for how to install the scripts on a Microsoft Windows machine and have them run on an automated cycle.&lt;br /&gt;
* Identifying the issues with SCORM 2004 support in Moodle, reporting them to the Tracker and writing patches for the same.&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
The following are the implementation details in breif:&lt;br /&gt;
* &#039;&#039;&#039;Download and Update&#039;&#039;&#039; - The ADL SCORM tests should run on the latest Moodle code. The script using [https://docs.moodle.org/en/CLI CLI] will download the latest Moodle code from GitHub and upgrade the Moodle install &#039;&#039;(if necessary)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Add Test Course&#039;&#039;&#039; - Set up the users/course/activities required for the tests. This will be done by restoring the Moodle backup file into a &#039;&#039;new&#039;&#039;. This will again be implemented using CLI at the time of upgrading the install.&lt;br /&gt;
* &#039;&#039;&#039;Execute Tests&#039;&#039;&#039; - Run the browser based test script. [http://seleniumhq.org/projects/remote-control/ Selenium RC] will be used to write the automated web tests.&lt;br /&gt;
* &#039;&#039;&#039;Test Completion Report&#039;&#039;&#039; - At the end of the tests, the user will be displayed an HTML file with the results of the test &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Delete Test Course&#039;&#039;&#039; - After the tests have been executed, the new course that was added before the execution of test will be deleted.&lt;br /&gt;
&lt;br /&gt;
=Running ADL SCORM Test=&lt;br /&gt;
&lt;br /&gt;
The ADL SCORM tests can be executed in the following two ways - &lt;br /&gt;
* Running from the &#039;&#039;&#039;Command Prompt&#039;&#039;&#039; or,&lt;br /&gt;
* Running directly from &#039;&#039;&#039;Eclipse&#039;&#039;&#039; IDE (&#039;&#039;for Java Developers&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==Environmental Setup==&lt;br /&gt;
* &#039;&#039;&#039;Install Java&#039;&#039;&#039; - If you do not have Java installed on your machine you need to download and install it. You can download it from here - [http://www.java.com/en/download/ Download Java].&lt;br /&gt;
* &#039;&#039;&#039;Download Selenium&#039;&#039;&#039; - After ensuring that you have Java installed on your machine, you next need to download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039;. To download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039; you can simply download the &#039;&#039;&#039;selenium-server-standalone&#039;&#039;&#039; jar file (&#039;&#039;selenium-server-standalone-x.x.x.jar&#039;&#039;) from here - [http://code.google.com/p/selenium/downloads/list Download Selenium]. Save the jar file in the working directory.&lt;br /&gt;
&#039;&#039;In this documentation directory C:\ADLTests will be considered as the [working-directory] for the tests.&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Install Junit&#039;&#039;&#039; - You also need to download and install Junit on your machine. To install Junit download the zip file from here - [https://github.com/KentBeck/junit/downloads Download Junit] and extract the zip file in a directory say - &#039;&#039;C:\ADLTests\junit&#039;&#039;.&lt;br /&gt;
&#039;&#039;Note - The SCORM Test Harness has been tested with Selenium 2.3.0 and Junit 4.9b3 (the latest versions available while writing this documentation).&lt;br /&gt;
*&#039;&#039;&#039;SCORM Test Harness Repository&#039; - Finally, you need to download the Moodle SCORM Test Harness Repository from GitHub and save it in [working_directory]. You can download the repository from here - [https://github.com/mayankgupta/moodle_scorm_test_harness Moodle SCORM Test Harness Repository].&lt;br /&gt;
&#039;&#039;Note - If you do not wish to download/clone the complete repository, you can download the individual files required and create necessary folders as indicated in the steps below.&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;Eclipse IDE&#039;&#039; - To run the ADL SCORM tests using Eclipse IDE, you need to download Eclipse IDE for Java Developers from here - [http://www.eclipse.org/downloads/ Download Eclipse].&lt;br /&gt;
----&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 1.2 Test Suite&#039;&#039;&#039; -  Download and install the ADL SCORM 1.2 Conformance Test Suite. You can download the ADL Test suite from here - [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/TestSuite/SCORM1_2_TestSuite1_2_7ST.zip?raw=true Download ADL 1.2 Test Suite].&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 1.2 compliance you need to setup a course by following the instructions here - [https://docs.moodle.org/dev/SCORM_1.2_compliance_test_instructions SCORM 1.2 compliance test instructions]. The SCORM 1.2 &#039;&#039;LMSTestCourse&#039;&#039; packages that you need are available here -[https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse01.zip?raw=true LMSTestCourse01.zip] , [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse02.zip?raw=true LMSTestCourse02.zip]. &lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL1.2/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL1.2\classFiles\ ADL 1.2 classFiles]. &lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 2004 Test Suite&#039;&#039;&#039; - Download and install the ADL SCORM 2004 Conformance Test Suite. Download the ADL 2004 Test Suite from here - [&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 2004 compliance you need to setup a course in the following manner - &lt;br /&gt;
** &#039;&#039;&#039;Course Name&#039;&#039;&#039; - Setup a course named as - &#039;&#039;&#039;ADL SCORM Test 2004&#039;&#039;&#039;. The student, whose login details you will provide later on should be able to enter this course and should be able to access all SCORM activity within this course.&lt;br /&gt;
** &#039;&#039;&#039;SCORM Package&#039;&#039;&#039; - Turn editing on and add SCORM Test packages as activity inside the course. You may add all the SCORM Test packages available in the Moodle SCORM Test Harness repository here - [https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/LMSTestCourseZipPackages ADL SCORM 2004 Test Packages]. You must ensure that you have uploaded all the Test Packages for all the ADL 2004 tests that you want to execute. While &#039;&#039;&#039;&#039;&#039;Adding a new SCORM package&#039;&#039;&#039;&#039;&#039; the name field should contain the test package name at the end of the package name that you enter. For instance - &#039;&#039;LMSTestPackage_API.zip&#039;&#039; when uploaded should have &#039;&#039;&#039;API&#039;&#039;&#039; at the end of the name, like - &#039;&#039;&#039;&#039;&#039;ADL SCORM 2004 API&#039;&#039;&#039;&#039;&#039; will be a valid name for API Test Package.&lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then, you need to download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL2004\classFiles\ ADL 2004 classFiles]&lt;br /&gt;
&lt;br /&gt;
==Executing the Tests==&lt;br /&gt;
To execute the tests from the Command prompt follow the steps below -&lt;br /&gt;
===Set CLASSPATH===&lt;br /&gt;
* &#039;&#039;&#039;Set CLASSPATH&#039;&#039;&#039; - In order to execute the Selenium RC and Junit Tests you need to set the class path on the command prompt.&lt;br /&gt;
The elements that need to be added in classpath are - Junit class files, scormADL12 class files and Selenium jar class files.&lt;br /&gt;
To set the CLASSPATH before executing the tests use the following command - &lt;br /&gt;
 set CLASSPATH=[working_directory]\junit\junit.jar;[working_directory]\ADL1.2;[working-directory]\selenium-server-standalone.jar&lt;br /&gt;
For instance the actual &#039;&#039;(after replacing [working_directory])&#039;&#039; command to set CLASSPATH will be like -&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b3\junit-4.9b2.jar;C:\ADLTests\ADL___x\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.3.0.jar&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b3\junit-4.9b2.jar;C:\ADLTests\ADL2004\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.3.0.jar&lt;br /&gt;
===Invoke Runner===&lt;br /&gt;
* &#039;&#039;&#039;Invoke the Runner&#039;&#039;&#039; - Finally, to run the tests you need to invoke the Junit runner and specify the Moodle Test Site URL along with the full URL of the &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 or SCORM 2004 Test Suite. For ADL 2004 Test you can also specify which tests to execute. &lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
To execute the ADL 1.2 tests you need to specify the Moode Test Site and &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URLs as system property and invoke the Junit runner. Execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL12 &lt;br /&gt;
&#039;&#039;The full URL to &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; of SCORM ADL 1.2 test suite should be of LMSRTEMain.htm page, eg - http://localhost/Web/ADL/TestSuite1_2_7/TestSuite/lmsrte/LMSRTEMain.htm&#039;&#039;&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
To execute the ADL 2004 tests you need to specify the Moode Test Site URL, Moodle site student username and password, &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URL as system property and invoke the Junit runner.&lt;br /&gt;
If you do not provide username, password combination the test script will use default username - &#039;&#039;joestudent&#039;&#039; and password - &#039;&#039;password&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Execute all tests&#039;&#039;&#039; - To execute all the tests you simply need to execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL2004&lt;br /&gt;
* &#039;&#039;&#039;Specify Tests&#039;&#039;&#039; - To execute specific ADL SCORM 2004 tests you can use the following two ways to specify which tests to execute - &lt;br /&gt;
** &#039;&#039;&#039;test system property&#039;&#039;&#039; - You can specify the tests you want to execute by using &#039;&#039;-Dtest=&amp;quot;testName1,testName2,..&amp;quot; &#039;&#039;&lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -Dtest=&amp;quot;API, CM-01,CM-02a,CO-01&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
&#039;&#039;Note - you can specify as many tests as you wish to run with -Dtest, but it is recommended to enter the test names in a file and use -DfilePath instead.&lt;br /&gt;
** &#039;&#039;&#039;Specify filePath&#039;&#039;&#039; - You can specify the tests you want to execute in a in a file and feed the test script with the file path with &#039;&#039;-Dfilepath=&amp;quot;path\to\file&amp;quot; &#039;&#039;. This file should contain each test name in a new line.&lt;br /&gt;
To execute the test script with the filePath execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -DfilePath=&amp;quot;path\to\file&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
----&lt;br /&gt;
==Compile from Source==&lt;br /&gt;
Optionally, you can compile the test scripts to generate the class files &#039;&#039;(if you do not wish to use the supplied class files)&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Compile Test Script&#039;&#039;&#039; - To compile the test script open the Command Prompt, change the directory to &#039;&#039;&#039;[working_directory]\ADL1.2&#039;&#039;&#039; or &#039;&#039;&#039;[working_directory]\ADL2004&#039;&#039;&#039; &#039;&#039;(you can also specify the full path to the scormADL12.java or scormADL2004.java file from your current directory)&#039;&#039; and execute the following command - &lt;br /&gt;
===ADL 1.2 Tests===&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
===ADL 2004 Tests===&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
If you get the error - &#039;&#039; &#039;javac&#039; is not recognized as an internal or external command, operable program or batch file.&#039;&#039; Then you need to specify the full path to the javac.exe executable inside the &#039;&#039;&#039;bin&#039;&#039;&#039; directory of the Java installation on your machine.&lt;br /&gt;
Thus the above compilation command needs to be executed on the command prompt window by specifying the full path to &#039;&#039;javac&#039;&#039; like - &lt;br /&gt;
 &amp;quot;C:\Program Files\Java\jdk1.6.0_24\bin\javac.exe&amp;quot; [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
=Schedule=&lt;br /&gt;
* April 26th - May 29th: Get familiar with the Selenium RC, discuss functionality with mentor.&lt;br /&gt;
* 30th May - 5th June: Write script to Download lates code, Upgrade Moodle, Restore and Delete test course.&lt;br /&gt;
* 6th - 15th June: Write the automated web tests.&lt;br /&gt;
* 16th - 26th June: Reproduce ADL SCORM 1.2 Tests.&lt;br /&gt;
* 27th June - 6th July: Reproduce ADL SCORM 2004 Tests.&lt;br /&gt;
* 7th - 11 July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - Script to Download, Upgrade, Restore / Delete Backup, code for Test harness,  script for ADL SCORM 1.2 and 2004 tests and preliminary report on regressions issues&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* 12th July - 17th July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
* 18th July - 13th August: Test SCORM 2004 packages report bugs in the Tracker and write patches.&lt;br /&gt;
* 14th - 19th August: Documentation for installation and configuration of scripts on Windows machine. &lt;br /&gt;
&#039;&#039;would be a nice task:&#039;&#039; A developer documentation, to explain the the test harness.&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
For more information please visit the following links:&lt;br /&gt;
* [https://docs.moodle.org/en/Administration_via_command_line Administration via command line]&lt;br /&gt;
* [https://docs.moodle.org/en/Development:SCORM_1.2_compliance_test_instructions How to manually run the 1.2 ADL tests]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} SCORM 1.2 documentation test suite]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Test%20Suite.aspx SCORM 2004 documentation test suite]&lt;br /&gt;
* [https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
* [https://docs.moodle.org/en/GSOC/2011 GSoC 2011 - Moodle]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=29107</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=29107"/>
		<updated>2011-08-09T03:14:28Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: Added note for versions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification to be updated soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. The Moodle install need not be on the same Microsoft Windows machine and could be on a remote Linux machine too. &lt;br /&gt;
The framework would also provide the ability to schedule or run the SCORM ADL tests automatically between the desired time intervals. On the completion of the tests an HTML page, containing the test&#039;s report will be displayed to the user. &lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and writing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
==Project Deliverables==&lt;br /&gt;
* Script that downloads the latest Moodle Code from [https://github.com/moodle/moodle GitHub], ugrades the Moodle install &#039;&#039;(if necessary)&#039;&#039; and &#039;&#039;prepares&#039;&#039; it for executing the SCORM ADL tests.&lt;br /&gt;
* Script that automates the ADL SCORM 1.2 tests and produces an HTML file with the results of the tests &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* Script that automates some of the ADL SCORM 2004 tests on Moodle &#039;&#039;(it may not be possible to script all of the 2004 ADL tests due to existing failures)&#039;&#039;.&lt;br /&gt;
* Documentation for how to install the scripts on a Microsoft Windows machine and have them run on an automated cycle.&lt;br /&gt;
* Identifying the issues with SCORM 2004 support in Moodle, reporting them to the Tracker and writing patches for the same.&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
The following are the implementation details in breif:&lt;br /&gt;
* &#039;&#039;&#039;Download and Update&#039;&#039;&#039; - The ADL SCORM tests should run on the latest Moodle code. The script using [https://docs.moodle.org/en/CLI CLI] will download the latest Moodle code from GitHub and upgrade the Moodle install &#039;&#039;(if necessary)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Add Test Course&#039;&#039;&#039; - Set up the users/course/activities required for the tests. This will be done by restoring the Moodle backup file into a &#039;&#039;new&#039;&#039;. This will again be implemented using CLI at the time of upgrading the install.&lt;br /&gt;
* &#039;&#039;&#039;Execute Tests&#039;&#039;&#039; - Run the browser based test script. [http://seleniumhq.org/projects/remote-control/ Selenium RC] will be used to write the automated web tests.&lt;br /&gt;
* &#039;&#039;&#039;Test Completion Report&#039;&#039;&#039; - At the end of the tests, the user will be displayed an HTML file with the results of the test &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Delete Test Course&#039;&#039;&#039; - After the tests have been executed, the new course that was added before the execution of test will be deleted.&lt;br /&gt;
&lt;br /&gt;
=Running ADL SCORM Test=&lt;br /&gt;
&lt;br /&gt;
The ADL SCORM tests can be executed in the following two ways - &lt;br /&gt;
* Running from the &#039;&#039;&#039;Command Prompt&#039;&#039;&#039; or,&lt;br /&gt;
* Running directly from &#039;&#039;&#039;Eclipse&#039;&#039;&#039; IDE (&#039;&#039;for Java Developers&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==Environmental Setup==&lt;br /&gt;
* &#039;&#039;&#039;Install Java&#039;&#039;&#039; - If you do not have Java installed on your machine you need to download and install it. You can download it from here - [http://www.java.com/en/download/ Download Java].&lt;br /&gt;
* &#039;&#039;&#039;Download Selenium&#039;&#039;&#039; - After ensuring that you have Java installed on your machine, you next need to download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039;. To download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039; you can simply download the &#039;&#039;&#039;selenium-server-standalone&#039;&#039;&#039; jar file (&#039;&#039;selenium-server-standalone-x.x.x.jar&#039;&#039;) from here - [http://code.google.com/p/selenium/downloads/list Download Selenium]. Save the jar file in the working directory.&lt;br /&gt;
&#039;&#039;In this documentation directory C:\ADLTests will be considered as the [working-directory] for the tests.&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;Install Junit&#039;&#039;&#039; - You also need to download and install Junit on your machine. To install Junit download the zip file from here - [https://github.com/KentBeck/junit/downloads Download Junit] and extract the zip file in a directory say - &#039;&#039;C:\ADLTests\junit&#039;&#039;.&lt;br /&gt;
&#039;&#039;Note - The SCORM Test Harness has been tested with Selenium 2.3.0 and Junit 4.9b3 (the latest versions available while writing this documentation).&lt;br /&gt;
*&#039;&#039;&#039;SCORM Test Harness Repository&#039; - Finally, you need to download the Moodle SCORM Test Harness Repository from GitHub and save it in [working_directory]. You can download the repository from here - [https://github.com/mayankgupta/moodle_scorm_test_harness Moodle SCORM Test Harness Repository].&lt;br /&gt;
&#039;&#039;Note - If you do not wish to download/clone the complete repository, you can download the individual files required and create necessary folders as indicated in the steps below.&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;Eclipse IDE&#039;&#039; - To run the ADL SCORM tests using Eclipse IDE, you need to download Eclipse IDE for Java Developers from here - [http://www.eclipse.org/downloads/ Download Eclipse].&lt;br /&gt;
----&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 1.2 Test Suite&#039;&#039;&#039; -  Download and install the ADL SCORM 1.2 Conformance Test Suite. You can download the ADL Test suite from here - [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/TestSuite/SCORM1_2_TestSuite1_2_7ST.zip?raw=true Download ADL 1.2 Test Suite].&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 1.2 compliance you need to setup a course by following the instructions here - [https://docs.moodle.org/dev/SCORM_1.2_compliance_test_instructions SCORM 1.2 compliance test instructions]. The SCORM 1.2 &#039;&#039;LMSTestCourse&#039;&#039; packages that you need are available here -[https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse01.zip?raw=true LMSTestCourse01.zip] , [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse02.zip?raw=true LMSTestCourse02.zip]. &lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL1.2/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL1.2\classFiles\ ADL 1.2 classFiles]. &lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 2004 Test Suite&#039;&#039;&#039; - Download and install the ADL SCORM 2004 Conformance Test Suite. Download the ADL 2004 Test Suite from here - [&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 2004 compliance you need to setup a course in the following manner - &lt;br /&gt;
** &#039;&#039;&#039;Course Name&#039;&#039;&#039; - Setup a course named as - &#039;&#039;&#039;ADL SCORM Test 2004&#039;&#039;&#039;. The student, whose login details you will provide later on should be able to enter this course and should be able to access all SCORM activity within this course.&lt;br /&gt;
** &#039;&#039;&#039;SCORM Package&#039;&#039;&#039; - Turn editing on and add SCORM Test packages as activity inside the course. You may add all the SCORM Test packages available in the Moodle SCORM Test Harness repository here - [https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/LMSTestCourseZipPackages ADL SCORM 2004 Test Packages]. You must ensure that you have uploaded all the Test Packages for all the ADL 2004 tests that you want to execute. While &#039;&#039;&#039;&#039;&#039;Adding a new SCORM package&#039;&#039;&#039;&#039;&#039; the name field should contain the test package name at the end of the package name that you enter. For instance - &#039;&#039;LMSTestPackage_API.zip&#039;&#039; when uploaded should have &#039;&#039;&#039;API&#039;&#039;&#039; at the end of the name, like - &#039;&#039;&#039;&#039;&#039;ADL SCORM 2004 API&#039;&#039;&#039;&#039;&#039; will be a valid name for API Test Package.&lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then, you need to download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL2004\classFiles\ ADL 2004 classFiles]&lt;br /&gt;
&lt;br /&gt;
==Executing the Tests==&lt;br /&gt;
To execute the tests from the Command prompt follow the steps below -&lt;br /&gt;
===Set CLASSPATH===&lt;br /&gt;
* &#039;&#039;&#039;Set CLASSPATH&#039;&#039;&#039; - In order to execute the Selenium RC and Junit Tests you need to set the class path on the command prompt.&lt;br /&gt;
The elements that need to be added in classpath are - Junit class files, scormADL12 class files and Selenium jar class files.&lt;br /&gt;
To set the CLASSPATH before executing the tests use the following command - &lt;br /&gt;
 set CLASSPATH=[working_directory]\junit\junit.jar;[working_directory]\ADL1.2;[working-directory]\selenium-server-standalone.jar&lt;br /&gt;
For instance the actual &#039;&#039;(after replacing [working_directory])&#039;&#039; command to set CLASSPATH will be like -&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b2\junit-4.9b2.jar;C:\ADLTests\ADL___x\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.0.0.jar&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b2\junit-4.9b2.jar;C:\ADLTests\ADL2004\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.0.0.jar&lt;br /&gt;
===Invoke Runner===&lt;br /&gt;
* &#039;&#039;&#039;Invoke the Runner&#039;&#039;&#039; - Finally, to run the tests you need to invoke the Junit runner and specify the Moodle Test Site URL along with the full URL of the &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 or SCORM 2004 Test Suite. For ADL 2004 Test you can also specify which tests to execute. &lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
To execute the ADL 1.2 tests you need to specify the Moode Test Site and &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URLs as system property and invoke the Junit runner. Execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL12 &lt;br /&gt;
&#039;&#039;The full URL to &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; of SCORM ADL 1.2 test suite should be of LMSRTEMain.htm page, eg - http://localhost/Web/ADL/TestSuite1_2_7/TestSuite/lmsrte/LMSRTEMain.htm&#039;&#039;&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
To execute the ADL 2004 tests you need to specify the Moode Test Site URL, Moodle site student username and password, &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URL as system property and invoke the Junit runner.&lt;br /&gt;
If you do not provide username, password combination the test script will use default username - &#039;&#039;joestudent&#039;&#039; and password - &#039;&#039;password&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Execute all tests&#039;&#039;&#039; - To execute all the tests you simply need to execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL2004&lt;br /&gt;
* &#039;&#039;&#039;Specify Tests&#039;&#039;&#039; - To execute specific ADL SCORM 2004 tests you can use the following two ways to specify which tests to execute - &lt;br /&gt;
** &#039;&#039;&#039;test system property&#039;&#039;&#039; - You can specify the tests you want to execute by using &#039;&#039;-Dtest=&amp;quot;testName1,testName2,..&amp;quot; &#039;&#039;&lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -Dtest=&amp;quot;API, CM-01,CM-02a,CO-01&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
&#039;&#039;Note - you can specify as many tests as you wish to run with -Dtest, but it is recommended to enter the test names in a file and use -DfilePath instead.&lt;br /&gt;
** &#039;&#039;&#039;Specify filePath&#039;&#039;&#039; - You can specify the tests you want to execute in a in a file and feed the test script with the file path with &#039;&#039;-Dfilepath=&amp;quot;path\to\file&amp;quot; &#039;&#039;. This file should contain each test name in a new line.&lt;br /&gt;
To execute the test script with the filePath execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -DfilePath=&amp;quot;path\to\file&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
----&lt;br /&gt;
==Compile from Source==&lt;br /&gt;
Optionally, you can compile the test scripts to generate the class files &#039;&#039;(if you do not wish to use the supplied class files)&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Compile Test Script&#039;&#039;&#039; - To compile the test script open the Command Prompt, change the directory to &#039;&#039;&#039;[working_directory]\ADL1.2&#039;&#039;&#039; or &#039;&#039;&#039;[working_directory]\ADL2004&#039;&#039;&#039; &#039;&#039;(you can also specify the full path to the scormADL12.java or scormADL2004.java file from your current directory)&#039;&#039; and execute the following command - &lt;br /&gt;
===ADL 1.2 Tests===&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
===ADL 2004 Tests===&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
If you get the error - &#039;&#039; &#039;javac&#039; is not recognized as an internal or external command, operable program or batch file.&#039;&#039; Then you need to specify the full path to the javac.exe executable inside the &#039;&#039;&#039;bin&#039;&#039;&#039; directory of the Java installation on your machine.&lt;br /&gt;
Thus the above compilation command needs to be executed on the command prompt window by specifying the full path to &#039;&#039;javac&#039;&#039; like - &lt;br /&gt;
 &amp;quot;C:\Program Files\Java\jdk1.6.0_24\bin\javac.exe&amp;quot; [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
=Schedule=&lt;br /&gt;
* April 26th - May 29th: Get familiar with the Selenium RC, discuss functionality with mentor.&lt;br /&gt;
* 30th May - 5th June: Write script to Download lates code, Upgrade Moodle, Restore and Delete test course.&lt;br /&gt;
* 6th - 15th June: Write the automated web tests.&lt;br /&gt;
* 16th - 26th June: Reproduce ADL SCORM 1.2 Tests.&lt;br /&gt;
* 27th June - 6th July: Reproduce ADL SCORM 2004 Tests.&lt;br /&gt;
* 7th - 11 July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - Script to Download, Upgrade, Restore / Delete Backup, code for Test harness,  script for ADL SCORM 1.2 and 2004 tests and preliminary report on regressions issues&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* 12th July - 17th July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
* 18th July - 13th August: Test SCORM 2004 packages report bugs in the Tracker and write patches.&lt;br /&gt;
* 14th - 19th August: Documentation for installation and configuration of scripts on Windows machine. &lt;br /&gt;
&#039;&#039;would be a nice task:&#039;&#039; A developer documentation, to explain the the test harness.&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
For more information please visit the following links:&lt;br /&gt;
* [https://docs.moodle.org/en/Administration_via_command_line Administration via command line]&lt;br /&gt;
* [https://docs.moodle.org/en/Development:SCORM_1.2_compliance_test_instructions How to manually run the 1.2 ADL tests]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} SCORM 1.2 documentation test suite]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Test%20Suite.aspx SCORM 2004 documentation test suite]&lt;br /&gt;
* [https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
* [https://docs.moodle.org/en/GSOC/2011 GSoC 2011 - Moodle]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=28781</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=28781"/>
		<updated>2011-07-27T08:42:23Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: Adding steps to specify username, password combination ADL 2004&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification to be updated soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. The Moodle install need not be on the same Microsoft Windows machine and could be on a remote Linux machine too. &lt;br /&gt;
The framework would also provide the ability to schedule or run the SCORM ADL tests automatically between the desired time intervals. On the completion of the tests an HTML page, containing the test&#039;s report will be displayed to the user. &lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and writing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
==Project Deliverables==&lt;br /&gt;
* Script that downloads the latest Moodle Code from [https://github.com/moodle/moodle GitHub], ugrades the Moodle install &#039;&#039;(if necessary)&#039;&#039; and &#039;&#039;prepares&#039;&#039; it for executing the SCORM ADL tests.&lt;br /&gt;
* Script that automates the ADL SCORM 1.2 tests and produces an HTML file with the results of the tests &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* Script that automates some of the ADL SCORM 2004 tests on Moodle &#039;&#039;(it may not be possible to script all of the 2004 ADL tests due to existing failures)&#039;&#039;.&lt;br /&gt;
* Documentation for how to install the scripts on a Microsoft Windows machine and have them run on an automated cycle.&lt;br /&gt;
* Identifying the issues with SCORM 2004 support in Moodle, reporting them to the Tracker and writing patches for the same.&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
The following are the implementation details in breif:&lt;br /&gt;
* &#039;&#039;&#039;Download and Update&#039;&#039;&#039; - The ADL SCORM tests should run on the latest Moodle code. The script using [https://docs.moodle.org/en/CLI CLI] will download the latest Moodle code from GitHub and upgrade the Moodle install &#039;&#039;(if necessary)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Add Test Course&#039;&#039;&#039; - Set up the users/course/activities required for the tests. This will be done by restoring the Moodle backup file into a &#039;&#039;new&#039;&#039;. This will again be implemented using CLI at the time of upgrading the install.&lt;br /&gt;
* &#039;&#039;&#039;Execute Tests&#039;&#039;&#039; - Run the browser based test script. [http://seleniumhq.org/projects/remote-control/ Selenium RC] will be used to write the automated web tests.&lt;br /&gt;
* &#039;&#039;&#039;Test Completion Report&#039;&#039;&#039; - At the end of the tests, the user will be displayed an HTML file with the results of the test &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Delete Test Course&#039;&#039;&#039; - After the tests have been executed, the new course that was added before the execution of test will be deleted.&lt;br /&gt;
&lt;br /&gt;
=Running ADL SCORM Test=&lt;br /&gt;
&lt;br /&gt;
The ADL SCORM tests can be executed in the following two ways - &lt;br /&gt;
* Running from the &#039;&#039;&#039;Command Prompt&#039;&#039;&#039; or,&lt;br /&gt;
* Running directly from &#039;&#039;&#039;Eclipse&#039;&#039;&#039; IDE (&#039;&#039;for Java Developers&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==Environmental Setup==&lt;br /&gt;
* &#039;&#039;&#039;Install Java&#039;&#039;&#039; - If you do not have Java installed on your machine you need to download and install it. You can download it from here - [http://www.java.com/en/download/ Download Java].&lt;br /&gt;
* &#039;&#039;&#039;Download Selenium&#039;&#039;&#039; - After ensuring that you have Java installed on your machine, you next need to download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039;. To download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039; you can simply download the &#039;&#039;&#039;selenium-server-standalone&#039;&#039;&#039; jar file (&#039;&#039;selenium-server-standalone-x.x.x.jar&#039;&#039;) from here - [http://code.google.com/p/selenium/downloads/list Download Selenium]. Save the jar file in the working directory.&lt;br /&gt;
&#039;&#039;In this documentation directory &#039;&#039;C:\ADLTests&#039;&#039; will be considered as the [working-directory] for the tests.&lt;br /&gt;
*&#039;&#039;&#039;Install Junit&#039;&#039;&#039; - You also need to download and install Junit on your machine. To install Junit download the zip file from here - [https://github.com/KentBeck/junit/downloads Download Junit] and extract the zip file in a directory say - &#039;&#039;C:\ADLTests\junit&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;SCORM Test Harness Repository&#039; - Finally, you need to download the Moodle SCORM Test Harness Repository from GitHub and save it in [working_directory]. You can download the repository from here - [https://github.com/mayankgupta/moodle_scorm_test_harness Moodle SCORM Test Harness Repository].&lt;br /&gt;
&#039;&#039;Note - If you do not wish to download/clone the complete repository, you can download the individual files required and create necessary folders as indicated in the steps below.&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;Eclipse IDE&#039;&#039; - To run the ADL SCORM tests using Eclipse IDE, you need to download Eclipse IDE for Java Developers from here - [http://www.eclipse.org/downloads/ Download Eclipse].&lt;br /&gt;
----&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 1.2 Test Suite&#039;&#039;&#039; -  Download and install the ADL SCORM 1.2 Conformance Test Suite. You can download the ADL Test suite from here - [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/TestSuite/SCORM1_2_TestSuite1_2_7ST.zip?raw=true Download ADL 1.2 Test Suite].&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 1.2 compliance you need to setup a course by following the instructions here - [https://docs.moodle.org/dev/SCORM_1.2_compliance_test_instructions SCORM 1.2 compliance test instructions]. The SCORM 1.2 &#039;&#039;LMSTestCourse&#039;&#039; packages that you need are available here -[https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse01.zip?raw=true LMSTestCourse01.zip] , [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse02.zip?raw=true LMSTestCourse02.zip]. &lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL1.2/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL1.2\classFiles\ ADL 1.2 classFiles]. &lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 2004 Test Suite&#039;&#039;&#039; - Download and install the ADL SCORM 2004 Conformance Test Suite. Download the ADL 2004 Test Suite from here - [&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 2004 compliance you need to setup a course in the following manner - &lt;br /&gt;
** &#039;&#039;&#039;Course Name&#039;&#039;&#039; - Setup a course named as - &#039;&#039;&#039;ADL SCORM Test 2004&#039;&#039;&#039;. The student, whose login details you will provide later on should be able to enter this course and should be able to access all SCORM activity within this course.&lt;br /&gt;
** &#039;&#039;&#039;SCORM Package&#039;&#039;&#039; - Turn editing on and add SCORM Test packages as activity inside the course. You may add all the SCORM Test packages available in the Moodle SCORM Test Harness repository here - [https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/LMSTestCourseZipPackages ADL SCORM 2004 Test Packages]. You must ensure that you have uploaded all the Test Packages for all the ADL 2004 tests that you want to execute. While &#039;&#039;&#039;&#039;&#039;Adding a new SCORM package&#039;&#039;&#039;&#039;&#039; the name field should contain the test package name at the end of the package name that you enter. For instance - &#039;&#039;LMSTestPackage_API.zip&#039;&#039; when uploaded should have &#039;&#039;&#039;API&#039;&#039;&#039; at the end of the name, like - &#039;&#039;&#039;&#039;&#039;ADL SCORM 2004 API&#039;&#039;&#039;&#039;&#039; will be a valid name for API Test Package.&lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then, you need to download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL2004\classFiles\ ADL 2004 classFiles]&lt;br /&gt;
==Executing the Tests==&lt;br /&gt;
To execute the tests from the Command prompt follow the steps below -&lt;br /&gt;
===Set CLASSPATH===&lt;br /&gt;
* &#039;&#039;&#039;Set CLASSPATH&#039;&#039;&#039; - In order to execute the Selenium RC and Junit Tests you need to set the class path on the command prompt.&lt;br /&gt;
The elements that need to be added in classpath are - Junit class files, scormADL12 class files and Selenium jar class files.&lt;br /&gt;
To set the CLASSPATH before executing the tests use the following command - &lt;br /&gt;
 set CLASSPATH=[working_directory]\junit\junit.jar;[working_directory]\ADL1.2;[working-directory]\selenium-server-standalone.jar&lt;br /&gt;
For instance the actual &#039;&#039;(after replacing [working_directory])&#039;&#039; command to set CLASSPATH will be like -&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b2\junit-4.9b2.jar;C:\ADLTests\ADL___x\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.0.0.jar&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b2\junit-4.9b2.jar;C:\ADLTests\ADL2004\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.0.0.jar&lt;br /&gt;
===Invoke Runner===&lt;br /&gt;
* &#039;&#039;&#039;Invoke the Runner&#039;&#039;&#039; - Finally, to run the tests you need to invoke the Junit runner and specify the Moodle Test Site URL along with the full URL of the &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 or SCORM 2004 Test Suite. For ADL 2004 Test you can also specify which tests to execute. &lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
To execute the ADL 1.2 tests you need to specify the Moode Test Site and &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URLs as system property and invoke the Junit runner. Execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL12 &lt;br /&gt;
&#039;&#039;The full URL to &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; of SCORM ADL 1.2 test suite should be of LMSRTEMain.htm page, eg - http://localhost/Web/ADL/TestSuite1_2_7/TestSuite/lmsrte/LMSRTEMain.htm&#039;&#039;&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
To execute the ADL 2004 tests you need to specify the Moode Test Site URL, Moodle site student username and password, &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URL as system property and invoke the Junit runner.&lt;br /&gt;
If you do not provide username, password combination the test script will use default username - &#039;&#039;joestudent&#039;&#039; and password - &#039;&#039;password&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Execute all tests&#039;&#039;&#039; - To execute all the tests you simply need to execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL2004&lt;br /&gt;
* &#039;&#039;&#039;Specify Tests&#039;&#039;&#039; - To execute specific ADL SCORM 2004 tests you can use the following two ways to specify which tests to execute - &lt;br /&gt;
** &#039;&#039;&#039;test system property&#039;&#039;&#039; - You can specify the tests you want to execute by using &#039;&#039;-Dtest=&amp;quot;testName1,testName2,..&amp;quot; &#039;&#039;&lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -Dtest=&amp;quot;API, CM-01,CM-02a,CO-01&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
&#039;&#039;Note - you can specify as many tests as you wish to run with -Dtest, but it is recommended to enter the test names in a file and use -DfilePath instead.&lt;br /&gt;
** &#039;&#039;&#039;Specify filePath&#039;&#039;&#039; - You can specify the tests you want to execute in a in a file and feed the test script with the file path with &#039;&#039;-Dfilepath=&amp;quot;path\to\file&amp;quot; &#039;&#039;. This file should contain each test name in a new line.&lt;br /&gt;
To execute the test script with the filePath execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -Dusername=&amp;quot;studentUsername&amp;quot; -Dpassword=&amp;quot;password&amp;quot; &lt;br /&gt;
 -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -DfilePath=&amp;quot;path\to\file&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
----&lt;br /&gt;
==Compile from Source==&lt;br /&gt;
Optionally, you can compile the test scripts to generate the class files &#039;&#039;(if you do not wish to use the supplied class files)&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Compile Test Script&#039;&#039;&#039; - To compile the test script open the Command Prompt, change the directory to &#039;&#039;&#039;[working_directory]\ADL1.2&#039;&#039;&#039; or &#039;&#039;&#039;[working_directory]\ADL2004&#039;&#039;&#039; &#039;&#039;(you can also specify the full path to the scormADL12.java or scormADL2004.java file from your current directory)&#039;&#039; and execute the following command - &lt;br /&gt;
===ADL 1.2 Tests===&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
===ADL 2004 Tests===&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
If you get the error - &#039;&#039; &#039;javac&#039; is not recognized as an internal or external command, operable program or batch file.&#039;&#039; Then you need to specify the full path to the javac.exe executable inside the &#039;&#039;&#039;bin&#039;&#039;&#039; directory of the Java installation on your machine.&lt;br /&gt;
Thus the above compilation command needs to be executed on the command prompt window by specifying the full path to &#039;&#039;javac&#039;&#039; like - &lt;br /&gt;
 &amp;quot;C:\Program Files\Java\jdk1.6.0_24\bin\javac.exe&amp;quot; [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
=Schedule=&lt;br /&gt;
* April 26th - May 29th: Get familiar with the Selenium RC, discuss functionality with mentor.&lt;br /&gt;
* 30th May - 5th June: Write script to Download lates code, Upgrade Moodle, Restore and Delete test course.&lt;br /&gt;
* 6th - 15th June: Write the automated web tests.&lt;br /&gt;
* 16th - 26th June: Reproduce ADL SCORM 1.2 Tests.&lt;br /&gt;
* 27th June - 6th July: Reproduce ADL SCORM 2004 Tests.&lt;br /&gt;
* 7th - 11 July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - Script to Download, Upgrade, Restore / Delete Backup, code for Test harness,  script for ADL SCORM 1.2 and 2004 tests and preliminary report on regressions issues&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* 12th July - 17th July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
* 18th July - 13th August: Test SCORM 2004 packages report bugs in the Tracker and write patches.&lt;br /&gt;
* 14th - 19th August: Documentation for installation and configuration of scripts on Windows machine. &lt;br /&gt;
&#039;&#039;would be a nice task:&#039;&#039; A developer documentation, to explain the the test harness.&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
For more information please visit the following links:&lt;br /&gt;
* [https://docs.moodle.org/en/Administration_via_command_line Administration via command line]&lt;br /&gt;
* [https://docs.moodle.org/en/Development:SCORM_1.2_compliance_test_instructions How to manually run the 1.2 ADL tests]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} SCORM 1.2 documentation test suite]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Test%20Suite.aspx SCORM 2004 documentation test suite]&lt;br /&gt;
* [https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
* [https://docs.moodle.org/en/GSOC/2011 GSoC 2011 - Moodle]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=28759</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=28759"/>
		<updated>2011-07-27T05:20:37Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: Documentation to execute ADL 2004 Tests&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification to be updated soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. The Moodle install need not be on the same Microsoft Windows machine and could be on a remote Linux machine too. &lt;br /&gt;
The framework would also provide the ability to schedule or run the SCORM ADL tests automatically between the desired time intervals. On the completion of the tests an HTML page, containing the test&#039;s report will be displayed to the user. &lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and writing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
==Project Deliverables==&lt;br /&gt;
* Script that downloads the latest Moodle Code from [https://github.com/moodle/moodle GitHub], ugrades the Moodle install &#039;&#039;(if necessary)&#039;&#039; and &#039;&#039;prepares&#039;&#039; it for executing the SCORM ADL tests.&lt;br /&gt;
* Script that automates the ADL SCORM 1.2 tests and produces an HTML file with the results of the tests &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* Script that automates some of the ADL SCORM 2004 tests on Moodle &#039;&#039;(it may not be possible to script all of the 2004 ADL tests due to existing failures)&#039;&#039;.&lt;br /&gt;
* Documentation for how to install the scripts on a Microsoft Windows machine and have them run on an automated cycle.&lt;br /&gt;
* Identifying the issues with SCORM 2004 support in Moodle, reporting them to the Tracker and writing patches for the same.&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
The following are the implementation details in breif:&lt;br /&gt;
* &#039;&#039;&#039;Download and Update&#039;&#039;&#039; - The ADL SCORM tests should run on the latest Moodle code. The script using [https://docs.moodle.org/en/CLI CLI] will download the latest Moodle code from GitHub and upgrade the Moodle install &#039;&#039;(if necessary)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Add Test Course&#039;&#039;&#039; - Set up the users/course/activities required for the tests. This will be done by restoring the Moodle backup file into a &#039;&#039;new&#039;&#039;. This will again be implemented using CLI at the time of upgrading the install.&lt;br /&gt;
* &#039;&#039;&#039;Execute Tests&#039;&#039;&#039; - Run the browser based test script. [http://seleniumhq.org/projects/remote-control/ Selenium RC] will be used to write the automated web tests.&lt;br /&gt;
* &#039;&#039;&#039;Test Completion Report&#039;&#039;&#039; - At the end of the tests, the user will be displayed an HTML file with the results of the test &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Delete Test Course&#039;&#039;&#039; - After the tests have been executed, the new course that was added before the execution of test will be deleted.&lt;br /&gt;
&lt;br /&gt;
=Running ADL SCORM Test=&lt;br /&gt;
&lt;br /&gt;
The ADL SCORM tests can be executed in the following two ways - &lt;br /&gt;
* Running from the &#039;&#039;&#039;Command Prompt&#039;&#039;&#039; or,&lt;br /&gt;
* Running directly from &#039;&#039;&#039;Eclipse&#039;&#039;&#039; IDE (&#039;&#039;for Java Developers&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==Environmental Setup==&lt;br /&gt;
* &#039;&#039;&#039;Install Java&#039;&#039;&#039; - If you do not have Java installed on your machine you need to download and install it. You can download it from here - [http://www.java.com/en/download/ Download Java].&lt;br /&gt;
* &#039;&#039;&#039;Download Selenium&#039;&#039;&#039; - After ensuring that you have Java installed on your machine, you next need to download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039;. To download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039; you can simply download the &#039;&#039;&#039;selenium-server-standalone&#039;&#039;&#039; jar file (&#039;&#039;selenium-server-standalone-x.x.x.jar&#039;&#039;) from here - [http://code.google.com/p/selenium/downloads/list Download Selenium]. Save the jar file in the working directory.&lt;br /&gt;
&#039;&#039;In this documentation directory &#039;&#039;C:\ADLTests&#039;&#039; will be considered as the [working-directory] for the tests.&lt;br /&gt;
*&#039;&#039;&#039;Install Junit&#039;&#039;&#039; - You also need to download and install Junit on your machine. To install Junit download the zip file from here - [https://github.com/KentBeck/junit/downloads Download Junit] and extract the zip file in a directory say - &#039;&#039;C:\ADLTests\junit&#039;&#039;.&lt;br /&gt;
*&#039;&#039;&#039;SCORM Test Harness Repository&#039; - Finally, you need to download the Moodle SCORM Test Harness Repository from GitHub and save it in [working_directory]. You can download the repository from here - [https://github.com/mayankgupta/moodle_scorm_test_harness Moodle SCORM Test Harness Repository].&lt;br /&gt;
&#039;&#039;Note - If you do not wish to download/clone the complete repository, you can download the individual files required and create necessary folders as indicated in the steps below.&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;Eclipse IDE&#039;&#039; - To run the ADL SCORM tests using Eclipse IDE, you need to download Eclipse IDE for Java Developers from here - [http://www.eclipse.org/downloads/ Download Eclipse].&lt;br /&gt;
----&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 1.2 Test Suite&#039;&#039;&#039; -  Download and install the ADL SCORM 1.2 Conformance Test Suite. You can download the ADL Test suite from here - [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/TestSuite/SCORM1_2_TestSuite1_2_7ST.zip?raw=true Download ADL 1.2 Test Suite].&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 1.2 compliance you need to setup a course by following the instructions here - [https://docs.moodle.org/dev/SCORM_1.2_compliance_test_instructions SCORM 1.2 compliance test instructions]. The SCORM 1.2 &#039;&#039;LMSTestCourse&#039;&#039; packages that you need are available here -[https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse01.zip?raw=true LMSTestCourse01.zip] , [https://github.com/mayankgupta/moodle_scorm_test_harness/blob/master/ADL1.2/LMSTestCourseZipPackages/LMSTestCourse02.zip?raw=true LMSTestCourse02.zip]. &lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL1.2/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL1.2\classFiles\ ADL 1.2 classFiles]. &lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 2004 Test Suite&#039;&#039;&#039; - Download and install the ADL SCORM 2004 Conformance Test Suite. Download the ADL 2004 Test Suite from here - [&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 2004 compliance you need to setup a course in the following manner - &lt;br /&gt;
** &#039;&#039;&#039;Course Name&#039;&#039;&#039; - Setup a course named as - &#039;&#039;&#039;ADL SCORM Test 2004&#039;&#039;&#039;. The student, whose login details you will provide later on should be able to enter this course and should be able to access all SCORM activity within this course.&lt;br /&gt;
** &#039;&#039;&#039;SCORM Package&#039;&#039;&#039; - Turn editing on and add SCORM Test packages as activity inside the course. You may add all the SCORM Test packages available in the Moodle SCORM Test Harness repository here - [https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/LMSTestCourseZipPackages ADL SCORM 2004 Test Packages]. You must ensure that you have uploaded all the Test Packages for all the ADL 2004 tests that you want to execute. While &#039;&#039;&#039;&#039;&#039;Adding a new SCORM package&#039;&#039;&#039;&#039;&#039; the name field should contain the test package name at the end of the package name that you enter. For instance - &#039;&#039;LMSTestPackage_API.zip&#039;&#039; when uploaded should have &#039;&#039;&#039;API&#039;&#039;&#039; at the end of the name, like - &#039;&#039;&#039;&#039;&#039;ADL SCORM 2004 API&#039;&#039;&#039;&#039;&#039; will be a valid name for API Test Package.&lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - If you have not downloaded/cloned the full repository then, you need to download/copy the ADL 1.2 Test Script &#039;&#039;class files&#039;&#039; from [http://https://github.com/mayankgupta/moodle_scorm_test_harness/tree/master/ADL2004/classFiles ADL 1.2 class files] and save them in the folder [working_directory]\ADL2004\classFiles\ ADL 2004 classFiles]&lt;br /&gt;
==Executing the Tests==&lt;br /&gt;
To execute the tests from the Command prompt follow the steps below -&lt;br /&gt;
===Set CLASSPATH===&lt;br /&gt;
* &#039;&#039;&#039;Set CLASSPATH&#039;&#039;&#039; - In order to execute the Selenium RC and Junit Tests you need to set the class path on the command prompt.&lt;br /&gt;
The elements that need to be added in classpath are - Junit class files, scormADL12 class files and Selenium jar class files.&lt;br /&gt;
To set the CLASSPATH before executing the tests use the following command - &lt;br /&gt;
 set CLASSPATH=[working_directory]\junit\junit.jar;[working_directory]\ADL1.2;[working-directory]\selenium-server-standalone.jar&lt;br /&gt;
For instance the actual &#039;&#039;(after replacing [working_directory])&#039;&#039; command to set CLASSPATH will be like -&lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b2\junit-4.9b2.jar;C:\ADLTests\ADL___x\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.0.0.jar&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b2\junit-4.9b2.jar;C:\ADLTests\ADL2004\classFiles;&lt;br /&gt;
 C:\ADLTests\selenium-server-standalone-2.0.0.jar&lt;br /&gt;
===Invoke Runner===&lt;br /&gt;
* &#039;&#039;&#039;Invoke the Runner&#039;&#039;&#039; - Finally, to run the tests you need to invoke the Junit runner and specify the Moodle Test Site URL along with the full URL of the &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 or SCORM 2004 Test Suite. For ADL 2004 Test you can also specify which tests to execute. &lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
To execute the ADL 1.2 tests you need to specify the Moode Test Site and &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URLs as system property and invoke the Junit runner. Execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL12 &lt;br /&gt;
&#039;&#039;The full URL to &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; of SCORM ADL 1.2 test suite should be of LMSRTEMain.htm page, eg - http://localhost/Web/ADL/TestSuite1_2_7/TestSuite/lmsrte/LMSRTEMain.htm&#039;&#039;&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
To execute the ADL 2004 tests you need to specify the Moode Test Site and &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 URLs as system property and invoke the Junit runner.&lt;br /&gt;
* &#039;&#039;&#039;Execute all tests&#039;&#039;&#039; - To execute all the tests you simply need to execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL2004&lt;br /&gt;
* &#039;&#039;&#039;Specify Tests&#039;&#039;&#039; - To execute specific ADL SCORM 2004 tests you can use the following two ways to specify which tests to execute - &lt;br /&gt;
** &#039;&#039;&#039;test system property&#039;&#039;&#039; - You can specify the tests you want to execute by using &#039;&#039;-Dtest=&amp;quot;testName1,testName2,..&amp;quot; &#039;&#039;&lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -Dtest=&amp;quot;API, CM-01,CM-02a,CO-01&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
&#039;&#039;Note - you can specify as many tests as you wish to run with -Dtest, but it is recommended to enter the test names in a file and use -DfilePath instead.&lt;br /&gt;
** &#039;&#039;&#039;Specify filePath&#039;&#039;&#039; - You can specify the tests you want to execute in a in a file and feed the test script with the file path with &#039;&#039;-Dfilepath=&amp;quot;path\to\file&amp;quot; &#039;&#039;. This file should contain each test name in a new line.&lt;br /&gt;
To execute the test script with the filePath execute the following command - &lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; -DfilePath=&amp;quot;path\to\file&amp;quot; org.junit.runner.JUnitCore scormADL2004 &lt;br /&gt;
----&lt;br /&gt;
===Compile from Source===&lt;br /&gt;
Optionally, you can compile the test scripts to generate the class files &#039;&#039;(if you do not wish to use the supplied class files)&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Compile Test Script&#039;&#039;&#039; - To compile the test script open the Command Prompt, change the directory to &#039;&#039;&#039;[working_directory]\ADL1.2&#039;&#039;&#039; or &#039;&#039;&#039;[working_directory]\ADL2004&#039;&#039;&#039; &#039;&#039;(you can also specify the full path to the scormADL12.java or scormADL2004.java file from your current directory)&#039;&#039; and execute the following command - &lt;br /&gt;
====ADL 1.2 Tests====&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
====ADL 2004 Tests====&lt;br /&gt;
 javac [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
If you get the error - &#039;&#039; &#039;javac&#039; is not recognized as an internal or external command, operable program or batch file.&#039;&#039; Then you need to specify the full path to the javac.exe executable inside the &#039;&#039;&#039;bin&#039;&#039;&#039; directory of the Java installation on your machine.&lt;br /&gt;
Thus the above compilation command needs to be executed on the command prompt window by specifying the full path to &#039;&#039;javac&#039;&#039; like - &lt;br /&gt;
 &amp;quot;C:\Program Files\Java\jdk1.6.0_24\bin\javac.exe&amp;quot; [working_directory]\ADL1.2\src\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
=Schedule=&lt;br /&gt;
* April 26th - May 29th: Get familiar with the Selenium RC, discuss functionality with mentor.&lt;br /&gt;
* 30th May - 5th June: Write script to Download lates code, Upgrade Moodle, Restore and Delete test course.&lt;br /&gt;
* 6th - 15th June: Write the automated web tests.&lt;br /&gt;
* 16th - 26th June: Reproduce ADL SCORM 1.2 Tests.&lt;br /&gt;
* 27th June - 6th July: Reproduce ADL SCORM 2004 Tests.&lt;br /&gt;
* 7th - 11 July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - Script to Download, Upgrade, Restore / Delete Backup, code for Test harness,  script for ADL SCORM 1.2 and 2004 tests and preliminary report on regressions issues&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* 12th July - 17th July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
* 18th July - 13th August: Test SCORM 2004 packages report bugs in the Tracker and write patches.&lt;br /&gt;
* 14th - 19th August: Documentation for installation and configuration of scripts on Windows machine. &lt;br /&gt;
&#039;&#039;would be a nice task:&#039;&#039; A developer documentation, to explain the the test harness.&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
For more information please visit the following links:&lt;br /&gt;
* [https://docs.moodle.org/en/Administration_via_command_line Administration via command line]&lt;br /&gt;
* [https://docs.moodle.org/en/Development:SCORM_1.2_compliance_test_instructions How to manually run the 1.2 ADL tests]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} SCORM 1.2 documentation test suite]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Test%20Suite.aspx SCORM 2004 documentation test suite]&lt;br /&gt;
* [https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
* [https://docs.moodle.org/en/GSOC/2011 GSoC 2011 - Moodle]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=28719</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=28719"/>
		<updated>2011-07-24T21:46:46Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: /* Executing the Tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification to be updated soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. The Moodle install need not be on the same Microsoft Windows machine and could be on a remote Linux machine too. &lt;br /&gt;
The framework would also provide the ability to schedule or run the SCORM ADL tests automatically between the desired time intervals. On the completion of the tests an HTML page, containing the test&#039;s report will be displayed to the user. &lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and writing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
==Project Deliverables==&lt;br /&gt;
* Script that downloads the latest Moodle Code from [https://github.com/moodle/moodle GitHub], ugrades the Moodle install &#039;&#039;(if necessary)&#039;&#039; and &#039;&#039;prepares&#039;&#039; it for executing the SCORM ADL tests.&lt;br /&gt;
* Script that automates the ADL SCORM 1.2 tests and produces an HTML file with the results of the tests &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* Script that automates some of the ADL SCORM 2004 tests on Moodle &#039;&#039;(it may not be possible to script all of the 2004 ADL tests due to existing failures)&#039;&#039;.&lt;br /&gt;
* Documentation for how to install the scripts on a Microsoft Windows machine and have them run on an automated cycle.&lt;br /&gt;
* Identifying the issues with SCORM 2004 support in Moodle, reporting them to the Tracker and writing patches for the same.&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
The following are the implementation details in breif:&lt;br /&gt;
* &#039;&#039;&#039;Download and Update&#039;&#039;&#039; - The ADL SCORM tests should run on the latest Moodle code. The script using [https://docs.moodle.org/en/CLI CLI] will download the latest Moodle code from GitHub and upgrade the Moodle install &#039;&#039;(if necessary)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Add Test Course&#039;&#039;&#039; - Set up the users/course/activities required for the tests. This will be done by restoring the Moodle backup file into a &#039;&#039;new&#039;&#039;. This will again be implemented using CLI at the time of upgrading the install.&lt;br /&gt;
* &#039;&#039;&#039;Execute Tests&#039;&#039;&#039; - Run the browser based test script. [http://seleniumhq.org/projects/remote-control/ Selenium RC] will be used to write the automated web tests.&lt;br /&gt;
* &#039;&#039;&#039;Test Completion Report&#039;&#039;&#039; - At the end of the tests, the user will be displayed an HTML file with the results of the test &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Delete Test Course&#039;&#039;&#039; - After the tests have been executed, the new course that was added before the execution of test will be deleted.&lt;br /&gt;
&lt;br /&gt;
=Running ADL SCORM Test=&lt;br /&gt;
&lt;br /&gt;
The ADL SCORM tests can be executed in the following two ways - &lt;br /&gt;
* Running from the &#039;&#039;&#039;Command Prompt&#039;&#039;&#039; or,&lt;br /&gt;
* Running directly from &#039;&#039;&#039;Eclipse&#039;&#039;&#039; IDE (&#039;&#039;for Java Developers&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==Environmental Setup==&lt;br /&gt;
* &#039;&#039;&#039;Install Java&#039;&#039;&#039; - If you do not have Java installed on your machine you need to download and install it. You can download it from here - [http://www.java.com/en/download/ Download Java].&lt;br /&gt;
* &#039;&#039;&#039;Download Selenium&#039;&#039;&#039; - After ensuring that you have Java installed on your machine, you next need to download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039;. To download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039; you can simply download the &#039;&#039;&#039;selenium-server-standalone&#039;&#039;&#039; jar file (&#039;&#039;selenium-server-standalone-x.x.x.jar&#039;&#039;) from here - [http://code.google.com/p/selenium/downloads/list Download Selenium]. Save the jar file in the working directory.&lt;br /&gt;
&#039;&#039;In this documentation directory &#039;&#039;C:\ADLTests&#039;&#039; will be considered as the [working-directory] for the tests.&lt;br /&gt;
*&#039;&#039;&#039;Install Junit&#039;&#039;&#039; - Finally, you need to download and install Junit on your machine. To install Junit download the zip file from here - [https://github.com/KentBeck/junit/downloads Download Junit] and extract the zip file in a directory say - &#039;&#039;C:\ADLTests\junit&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;Eclipse IDE&#039;&#039; - To run the ADL SCORM tests using Eclipse IDE, you need to download Eclipse IDE for Java Developers from here - [http://www.eclipse.org/downloads/ Download Eclipse].&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 1.2 Test Suite&#039;&#039;&#039; -  Download and install the ADL SCORM 1.2 Conformance Test Suite. You can download the ADL Test suite from here - [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201%2e2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} Download ADL 1.2 Test Suite].&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 1.2 Compliance you need to setup a course by following the instructions here - [https://docs.moodle.org/dev/SCORM_1.2_compliance_test_instructions SCORM 1.2 compliance test instructions]. The SCORM 1.2 &#039;&#039;LMSTestCourse&#039;&#039; packages that you need are available here -[http://www.mayankgupta.beakkon.com/files/downloads/moodle/LMSTestCourse01.zip LMSTestCourse01.zip] , [http://www.mayankgupta.beakkon.com/files/downloads/moodle/LMSTestCourse02.zip LMSTestCourse02.zip]. &lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - Download and the save the ADL 1.2 Test script as &#039;&#039;&#039;scormADL12.java&#039;&#039;&#039; in [working_directory]\ADL12\ . You can download the ADL 1.2 Test script from here - [https://gist.github.com/058a6f6273ce0767ed1f#file_scorm_adl12.java ADL 1.2 Test Script] &#039;&#039;(Please note - this is a temporary URL for the test script.)&#039;&#039;&lt;br /&gt;
==Executing the Tests==&lt;br /&gt;
To execute the tests from the Command prompt follow the steps below -&lt;br /&gt;
* &#039;&#039;&#039;Set CLASSPATH&#039;&#039;&#039; - In order to execute the Selenium RC and Junit Tests you need to set the class path on the command prompt.&lt;br /&gt;
The elements that need to be added in classpath are - Junit class files, scormADL12 class files and Selenium jar class files.&lt;br /&gt;
To set the CLASSPATH before executing the tests use the following command - &lt;br /&gt;
 set CLASSPATH=[working_directory]\junit\junit.jar;[working_directory]\ADL12;[working-directory]\selenium-server-standalone.jar&lt;br /&gt;
For instance the actual &#039;&#039;(after replacing [working_directory])&#039;&#039; command to set CLASSPATH will be like -&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b2\junit-4.9b2.jar;C:\ADLTests\ADL12;C:\ADLTests\selenium-server-standalone-2.0.0.jar&lt;br /&gt;
* &#039;&#039;&#039;Compile Test Script&#039;&#039;&#039; - To compile the test script open the Command Prompt, change the directory to &#039;&#039;&#039;[working_directory]\ADL12&#039;&#039;&#039; &#039;&#039;(you can also specify the full path to the scormADL12.java file from your current directory)&#039;&#039; and run the following command - &lt;br /&gt;
 javac path\to\scormADL12.java&lt;br /&gt;
If you get the error - &#039;&#039; &#039;javac&#039; is not recognized as an internal or external command, operable program or batch file.&#039;&#039; Then you need to specify the full path to the javac.exe executable inside the &#039;&#039;&#039;bin&#039;&#039;&#039; directory of the Java installation on your machine.&lt;br /&gt;
Thus the above compilation command needs to be executed on the command prompt window by specifying the full path to &#039;&#039;javac&#039;&#039; like - &lt;br /&gt;
 &amp;quot;C:\Program Files\Java\jdk1.6.0_24\bin\javac.exe&amp;quot; path\to\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;&#039;Invoke the Runner&#039;&#039;&#039; - Finally, to run the tests you need to specify the Moodle Test Site URL along with the full URL of the &#039;&#039; &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; &#039;&#039; of SCORM ADL 1.2 Test Suite as a system property and invoke the Junit runner &#039;&#039;with the command&#039;&#039; -&lt;br /&gt;
 java -DmoodleURL=&amp;quot;http://moodletestsite.org&amp;quot; -DtestSuiteURL=&amp;quot;http://fulltestsuiteurl&amp;quot; org.junit.runner.JUnitCore scormADL12 &lt;br /&gt;
&#039;&#039;The full URL to &amp;quot;Learning Management System (LMS) Run-Time Environment Conformance Test&amp;quot; of SCORM ADL 1.2 test suite will be like - http://localhost/Web/ADL/TestSuite1_2_7/TestSuite/lmsrte/LMSRTEMain.htm&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Schedule=&lt;br /&gt;
* April 26th - May 29th: Get familiar with the Selenium RC, discuss functionality with mentor.&lt;br /&gt;
* 30th May - 5th June: Write script to Download lates code, Upgrade Moodle, Restore and Delete test course.&lt;br /&gt;
* 6th - 15th June: Write the automated web tests.&lt;br /&gt;
* 16th - 26th June: Reproduce ADL SCORM 1.2 Tests.&lt;br /&gt;
* 27th June - 6th July: Reproduce ADL SCORM 2004 Tests.&lt;br /&gt;
* 7th - 11 July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - Script to Download, Upgrade, Restore / Delete Backup, code for Test harness,  script for ADL SCORM 1.2 and 2004 tests and preliminary report on regressions issues&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* 12th July - 17th July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
* 18th July - 13th August: Test SCORM 2004 packages report bugs in the Tracker and write patches.&lt;br /&gt;
* 14th - 19th August: Documentation for installation and configuration of scripts on Windows machine. &lt;br /&gt;
&#039;&#039;would be a nice task:&#039;&#039; A developer documentation, to explain the the test harness.&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
For more information please visit the following links:&lt;br /&gt;
* [https://docs.moodle.org/en/Administration_via_command_line Administration via command line]&lt;br /&gt;
* [https://docs.moodle.org/en/Development:SCORM_1.2_compliance_test_instructions How to manually run the 1.2 ADL tests]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} SCORM 1.2 documentation test suite]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Test%20Suite.aspx SCORM 2004 documentation test suite]&lt;br /&gt;
* [https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
* [https://docs.moodle.org/en/GSOC/2011 GSoC 2011 - Moodle]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=28711</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=28711"/>
		<updated>2011-07-20T20:11:51Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: /* Executing the Tests */  steps order sequence  corrected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification to be updated soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. The Moodle install need not be on the same Microsoft Windows machine and could be on a remote Linux machine too. &lt;br /&gt;
The framework would also provide the ability to schedule or run the SCORM ADL tests automatically between the desired time intervals. On the completion of the tests an HTML page, containing the test&#039;s report will be displayed to the user. &lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and writing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
==Project Deliverables==&lt;br /&gt;
* Script that downloads the latest Moodle Code from [https://github.com/moodle/moodle GitHub], ugrades the Moodle install &#039;&#039;(if necessary)&#039;&#039; and &#039;&#039;prepares&#039;&#039; it for executing the SCORM ADL tests.&lt;br /&gt;
* Script that automates the ADL SCORM 1.2 tests and produces an HTML file with the results of the tests &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* Script that automates some of the ADL SCORM 2004 tests on Moodle &#039;&#039;(it may not be possible to script all of the 2004 ADL tests due to existing failures)&#039;&#039;.&lt;br /&gt;
* Documentation for how to install the scripts on a Microsoft Windows machine and have them run on an automated cycle.&lt;br /&gt;
* Identifying the issues with SCORM 2004 support in Moodle, reporting them to the Tracker and writing patches for the same.&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
The following are the implementation details in breif:&lt;br /&gt;
* &#039;&#039;&#039;Download and Update&#039;&#039;&#039; - The ADL SCORM tests should run on the latest Moodle code. The script using [https://docs.moodle.org/en/CLI CLI] will download the latest Moodle code from GitHub and upgrade the Moodle install &#039;&#039;(if necessary)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Add Test Course&#039;&#039;&#039; - Set up the users/course/activities required for the tests. This will be done by restoring the Moodle backup file into a &#039;&#039;new&#039;&#039;. This will again be implemented using CLI at the time of upgrading the install.&lt;br /&gt;
* &#039;&#039;&#039;Execute Tests&#039;&#039;&#039; - Run the browser based test script. [http://seleniumhq.org/projects/remote-control/ Selenium RC] will be used to write the automated web tests.&lt;br /&gt;
* &#039;&#039;&#039;Test Completion Report&#039;&#039;&#039; - At the end of the tests, the user will be displayed an HTML file with the results of the test &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Delete Test Course&#039;&#039;&#039; - After the tests have been executed, the new course that was added before the execution of test will be deleted.&lt;br /&gt;
&lt;br /&gt;
=Running ADL SCORM Test=&lt;br /&gt;
&lt;br /&gt;
The ADL SCORM tests can be executed in the following two ways - &lt;br /&gt;
* Running from the &#039;&#039;&#039;Command Prompt&#039;&#039;&#039; or,&lt;br /&gt;
* Running directly from &#039;&#039;&#039;Eclipse&#039;&#039;&#039; IDE (&#039;&#039;for Java Developers&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==Environmental Setup==&lt;br /&gt;
* &#039;&#039;&#039;Install Java&#039;&#039;&#039; - If you do not have Java installed on your machine you need to download and install it. You can download it from here - [http://www.java.com/en/download/ Download Java].&lt;br /&gt;
* &#039;&#039;&#039;Download Selenium&#039;&#039;&#039; - After ensuring that you have Java installed on your machine, you next need to download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039;. To download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039; you can simply download the &#039;&#039;&#039;selenium-server-standalone&#039;&#039;&#039; jar file (&#039;&#039;selenium-server-standalone-x.x.x.jar&#039;&#039;) from here - [http://code.google.com/p/selenium/downloads/list Download Selenium]. Save the jar file in the working directory.&lt;br /&gt;
&#039;&#039;In this documentation directory &#039;&#039;C:\ADLTests&#039;&#039; will be considered as the [working-directory] for the tests.&lt;br /&gt;
*&#039;&#039;&#039;Install Junit&#039;&#039;&#039; - Finally, you need to download and install Junit on your machine. To install Junit download the zip file from here - [https://github.com/KentBeck/junit/downloads Download Junit] and extract the zip file in a directory say - &#039;&#039;C:\ADLTests\junit&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;Eclipse IDE&#039;&#039; - To run the ADL SCORM tests using Eclipse IDE, you need to download Eclipse IDE for Java Developers from here - [http://www.eclipse.org/downloads/ Download Eclipse].&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 1.2 Test Suite&#039;&#039;&#039; -  Download and install the ADL SCORM 1.2 Conformance Test Suite. You can download the ADL Test suite from here - [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201%2e2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} Download ADL 1.2 Test Suite].&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 1.2 Compliance you need to setup a course by following the instructions here - [https://docs.moodle.org/dev/SCORM_1.2_compliance_test_instructions SCORM 1.2 compliance test instructions]. The SCORM 1.2 &#039;&#039;LMSTestCourse&#039;&#039; packages that you need are available here -[http://www.mayankgupta.beakkon.com/files/downloads/moodle/LMSTestCourse01.zip LMSTestCourse01.zip] , [http://www.mayankgupta.beakkon.com/files/downloads/moodle/LMSTestCourse02.zip LMSTestCourse02.zip]. &lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - Download and the save the ADL 1.2 Test script as &#039;&#039;&#039;scormADL12.java&#039;&#039;&#039; in [working_directory]\ADL12\ . You can download the ADL 1.2 Test script from here - [https://gist.github.com/058a6f6273ce0767ed1f#file_scorm_adl12.java ADL 1.2 Test Script] &#039;&#039;(Please note - this is a temporary URL for the test script.)&#039;&#039;&lt;br /&gt;
==Executing the Tests==&lt;br /&gt;
To execute the tests from the Command prompt follow the steps below -&lt;br /&gt;
* &#039;&#039;&#039;Modify Test Script&#039;&#039;&#039; - The current version of the test script does not have support for command line arguments. Thus you need to specify the path to the ADL SCORM test suite and Moodle test site at line numbers - 26 and 27.&lt;br /&gt;
* &#039;&#039;&#039;Set CLASSPATH&#039;&#039;&#039; - In order to execute the Selenium RC and Junit Tests you need to set the class path on the command prompt.&lt;br /&gt;
The elements that need to be added in classpath are - Junit class files, scormADL12 class files and Selenium jar class files.&lt;br /&gt;
To set the CLASSPATH before executing the tests use the following command - &lt;br /&gt;
 set CLASSPATH=[working_directory]\junit\junit.jar;[working_directory]\ADL12;[working-directory]\selenium-server-standalone.jar&lt;br /&gt;
For instance the actual &#039;&#039;(after replacing [working_directory])&#039;&#039; command to set CLASSPATH will be like -&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b2\junit-4.9b2.jar;C:\ADLTests\ADL12;C:\ADLTests\selenium-server-standalone-2.0.0.jar&lt;br /&gt;
* &#039;&#039;&#039;Compile Test Script&#039;&#039;&#039; - To compile the test script open the Command Prompt, change the directory to &#039;&#039;&#039;[working_directory]\ADL12&#039;&#039;&#039; &#039;&#039;(you can also specify the full path to the scormADL12.java file from your current directory)&#039;&#039; and run the following command - &lt;br /&gt;
 javac path\to\scormADL12.java&lt;br /&gt;
If you get the error - &#039;&#039; &#039;javac&#039; is not recognized as an internal or external command, operable program or batch file.&#039;&#039; Then you need to specify the full path to the javac.exe executable inside the &#039;&#039;&#039;bin&#039;&#039;&#039; directory of the Java installation on your machine.&lt;br /&gt;
Thus the above compilation command needs to be executed on the command prompt window by specifying the full path to &#039;&#039;javac&#039;&#039; like - &lt;br /&gt;
 &amp;quot;C:\Program Files\Java\jdk1.6.0_24\bin\javac.exe&amp;quot; path\to\scormADL12.java&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;&#039;Invoke the Runner&#039;&#039;&#039; - Finally, to run the tests you need to invoke the Junit runner with the command -&lt;br /&gt;
 java org.junit.runner.JUnitCore scormADL12&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Schedule=&lt;br /&gt;
* April 26th - May 29th: Get familiar with the Selenium RC, discuss functionality with mentor.&lt;br /&gt;
* 30th May - 5th June: Write script to Download lates code, Upgrade Moodle, Restore and Delete test course.&lt;br /&gt;
* 6th - 15th June: Write the automated web tests.&lt;br /&gt;
* 16th - 26th June: Reproduce ADL SCORM 1.2 Tests.&lt;br /&gt;
* 27th June - 6th July: Reproduce ADL SCORM 2004 Tests.&lt;br /&gt;
* 7th - 11 July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - Script to Download, Upgrade, Restore / Delete Backup, code for Test harness,  script for ADL SCORM 1.2 and 2004 tests and preliminary report on regressions issues&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* 12th July - 17th July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
* 18th July - 13th August: Test SCORM 2004 packages report bugs in the Tracker and write patches.&lt;br /&gt;
* 14th - 19th August: Documentation for installation and configuration of scripts on Windows machine. &lt;br /&gt;
&#039;&#039;would be a nice task:&#039;&#039; A developer documentation, to explain the the test harness.&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
For more information please visit the following links:&lt;br /&gt;
* [https://docs.moodle.org/en/Administration_via_command_line Administration via command line]&lt;br /&gt;
* [https://docs.moodle.org/en/Development:SCORM_1.2_compliance_test_instructions How to manually run the 1.2 ADL tests]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} SCORM 1.2 documentation test suite]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Test%20Suite.aspx SCORM 2004 documentation test suite]&lt;br /&gt;
* [https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
* [https://docs.moodle.org/en/GSOC/2011 GSoC 2011 - Moodle]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=28607</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=28607"/>
		<updated>2011-07-12T16:13:01Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: /* Executing the Tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification to be updated soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. The Moodle install need not be on the same Microsoft Windows machine and could be on a remote Linux machine too. &lt;br /&gt;
The framework would also provide the ability to schedule or run the SCORM ADL tests automatically between the desired time intervals. On the completion of the tests an HTML page, containing the test&#039;s report will be displayed to the user. &lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and writing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
==Project Deliverables==&lt;br /&gt;
* Script that downloads the latest Moodle Code from [https://github.com/moodle/moodle GitHub], ugrades the Moodle install &#039;&#039;(if necessary)&#039;&#039; and &#039;&#039;prepares&#039;&#039; it for executing the SCORM ADL tests.&lt;br /&gt;
* Script that automates the ADL SCORM 1.2 tests and produces an HTML file with the results of the tests &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* Script that automates some of the ADL SCORM 2004 tests on Moodle &#039;&#039;(it may not be possible to script all of the 2004 ADL tests due to existing failures)&#039;&#039;.&lt;br /&gt;
* Documentation for how to install the scripts on a Microsoft Windows machine and have them run on an automated cycle.&lt;br /&gt;
* Identifying the issues with SCORM 2004 support in Moodle, reporting them to the Tracker and writing patches for the same.&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
The following are the implementation details in breif:&lt;br /&gt;
* &#039;&#039;&#039;Download and Update&#039;&#039;&#039; - The ADL SCORM tests should run on the latest Moodle code. The script using [https://docs.moodle.org/en/CLI CLI] will download the latest Moodle code from GitHub and upgrade the Moodle install &#039;&#039;(if necessary)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Add Test Course&#039;&#039;&#039; - Set up the users/course/activities required for the tests. This will be done by restoring the Moodle backup file into a &#039;&#039;new&#039;&#039;. This will again be implemented using CLI at the time of upgrading the install.&lt;br /&gt;
* &#039;&#039;&#039;Execute Tests&#039;&#039;&#039; - Run the browser based test script. [http://seleniumhq.org/projects/remote-control/ Selenium RC] will be used to write the automated web tests.&lt;br /&gt;
* &#039;&#039;&#039;Test Completion Report&#039;&#039;&#039; - At the end of the tests, the user will be displayed an HTML file with the results of the test &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Delete Test Course&#039;&#039;&#039; - After the tests have been executed, the new course that was added before the execution of test will be deleted.&lt;br /&gt;
&lt;br /&gt;
=Running ADL SCORM Test=&lt;br /&gt;
&lt;br /&gt;
The ADL SCORM tests can be executed in the following two ways - &lt;br /&gt;
* Running from the &#039;&#039;&#039;Command Prompt&#039;&#039;&#039; or,&lt;br /&gt;
* Running directly from &#039;&#039;&#039;Eclipse&#039;&#039;&#039; IDE (&#039;&#039;for Java Developers&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==Environmental Setup==&lt;br /&gt;
* &#039;&#039;&#039;Install Java&#039;&#039;&#039; - If you do not have Java installed on your machine you need to download and install it. You can download it from here - [http://www.java.com/en/download/ Download Java].&lt;br /&gt;
* &#039;&#039;&#039;Download Selenium&#039;&#039;&#039; - After ensuring that you have Java installed on your machine, you next need to download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039;. To download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039; you can simply download the &#039;&#039;&#039;selenium-server-standalone&#039;&#039;&#039; jar file (&#039;&#039;selenium-server-standalone-x.x.x.jar&#039;&#039;) from here - [http://code.google.com/p/selenium/downloads/list Download Selenium]. Save the jar file in the working directory.&lt;br /&gt;
&#039;&#039;In this documentation directory &#039;&#039;C:\ADLTests&#039;&#039; will be considered as the [working-directory] for the tests.&lt;br /&gt;
*&#039;&#039;&#039;Install Junit&#039;&#039;&#039; - Finally, you need to download and install Junit on your machine. To install Junit download the zip file from here - [https://github.com/KentBeck/junit/downloads Download Junit] and extract the zip file in a directory say - &#039;&#039;C:\ADLTests\junit&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;Eclipse IDE&#039;&#039; - To run the ADL SCORM tests using Eclipse IDE, you need to download Eclipse IDE for Java Developers from here - [http://www.eclipse.org/downloads/ Download Eclipse].&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 1.2 Test Suite&#039;&#039;&#039; -  Download and install the ADL SCORM 1.2 Conformance Test Suite. You can download the ADL Test suite from here - [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201%2e2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} Download ADL 1.2 Test Suite].&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 1.2 Compliance you need to setup a course by following the instructions here - [https://docs.moodle.org/dev/SCORM_1.2_compliance_test_instructions SCORM 1.2 compliance test instructions]. The SCORM 1.2 &#039;&#039;LMSTestCourse&#039;&#039; packages that you need are available here -[http://www.mayankgupta.beakkon.com/files/downloads/moodle/LMSTestCourse01.zip LMSTestCourse01.zip] , [http://www.mayankgupta.beakkon.com/files/downloads/moodle/LMSTestCourse02.zip LMSTestCourse02.zip]. &lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - Download and the save the ADL 1.2 Test script as &#039;&#039;&#039;scormADL12.java&#039;&#039;&#039; in [working_directory]\ADL12\ . You can download the ADL 1.2 Test script from here - [https://gist.github.com/058a6f6273ce0767ed1f#file_scorm_adl12.java ADL 1.2 Test Script] &#039;&#039;(Please note - this is a temporary URL for the test script.)&#039;&#039;&lt;br /&gt;
==Executing the Tests==&lt;br /&gt;
To execute the tests from the Command prompt follow the steps below -&lt;br /&gt;
* &#039;&#039;&#039;Modify Test Script&#039;&#039;&#039; - The current version of the test script does not have support for command line arguments. Thus you need to specify the path to the ADL SCORM test suite and Moodle test site at line numbers - 26 and 27.&lt;br /&gt;
* &#039;&#039;&#039;Compile Test Script&#039;&#039;&#039; - To compile the test script open the Command Prompt, change the directory to &#039;&#039;&#039;[working_directory]\ADL12&#039;&#039;&#039; &#039;&#039;(you can also specify the full path to the scormADL12.java file from your current directory)&#039;&#039; and run the following command - &lt;br /&gt;
 javac path\to\scormADL12.java&lt;br /&gt;
If you get the error - &#039;&#039; &#039;javac&#039; is not recognized as an internal or external command, operable program or batch file.&#039;&#039; Then you need to specify the full path to the javac.exe executable inside the &#039;&#039;&#039;bin&#039;&#039;&#039; directory of the Java installation on your machine.&lt;br /&gt;
Thus the above compilation command needs to be executed on the command prompt window by specifying the full path to &#039;&#039;javac&#039;&#039; like - &lt;br /&gt;
 &amp;quot;C:\Program Files\Java\jdk1.6.0_24\bin\javac.exe&amp;quot; path\to\scormADL12.java&lt;br /&gt;
* &#039;&#039;&#039;Set CLASSPATH&#039;&#039;&#039; - In order to execute the Selenium RC and Junit Tests you need to set the class path on the command prompt.&lt;br /&gt;
The elements that need to be added in classpath are - Junit class files, scormADL12 class files and Selenium jar class files.&lt;br /&gt;
To set the CLASSPATH before executing the tests use the following command - &lt;br /&gt;
 set CLASSPATH=[working_directory]\junit\junit.jar;[working_directory]\ADL12;[working-directory]\selenium-server-standalone.jar&lt;br /&gt;
For instance the actual &#039;&#039;(after replacing [working_directory])&#039;&#039; command to set CLASSPATH will be like -&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b2\junit-4.9b2.jar;C:\ADLTests\ADL12;C:\ADLTests\selenium-server-standalone-2.0.0.jar&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;&#039;Invoke the Runner&#039;&#039;&#039; - Finally, to run the tests you need to invoke the Junit runner with the command -&lt;br /&gt;
 java org.junit.runner.JUnitCore scormADL12&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Schedule=&lt;br /&gt;
* April 26th - May 29th: Get familiar with the Selenium RC, discuss functionality with mentor.&lt;br /&gt;
* 30th May - 5th June: Write script to Download lates code, Upgrade Moodle, Restore and Delete test course.&lt;br /&gt;
* 6th - 15th June: Write the automated web tests.&lt;br /&gt;
* 16th - 26th June: Reproduce ADL SCORM 1.2 Tests.&lt;br /&gt;
* 27th June - 6th July: Reproduce ADL SCORM 2004 Tests.&lt;br /&gt;
* 7th - 11 July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - Script to Download, Upgrade, Restore / Delete Backup, code for Test harness,  script for ADL SCORM 1.2 and 2004 tests and preliminary report on regressions issues&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* 12th July - 17th July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
* 18th July - 13th August: Test SCORM 2004 packages report bugs in the Tracker and write patches.&lt;br /&gt;
* 14th - 19th August: Documentation for installation and configuration of scripts on Windows machine. &lt;br /&gt;
&#039;&#039;would be a nice task:&#039;&#039; A developer documentation, to explain the the test harness.&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
For more information please visit the following links:&lt;br /&gt;
* [https://docs.moodle.org/en/Administration_via_command_line Administration via command line]&lt;br /&gt;
* [https://docs.moodle.org/en/Development:SCORM_1.2_compliance_test_instructions How to manually run the 1.2 ADL tests]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} SCORM 1.2 documentation test suite]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Test%20Suite.aspx SCORM 2004 documentation test suite]&lt;br /&gt;
* [https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
* [https://docs.moodle.org/en/GSOC/2011 GSoC 2011 - Moodle]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=28606</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=28606"/>
		<updated>2011-07-12T16:09:44Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: Added documentation to run ADL 1.2 Tests&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification to be updated soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. The Moodle install need not be on the same Microsoft Windows machine and could be on a remote Linux machine too. &lt;br /&gt;
The framework would also provide the ability to schedule or run the SCORM ADL tests automatically between the desired time intervals. On the completion of the tests an HTML page, containing the test&#039;s report will be displayed to the user. &lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and writing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
==Project Deliverables==&lt;br /&gt;
* Script that downloads the latest Moodle Code from [https://github.com/moodle/moodle GitHub], ugrades the Moodle install &#039;&#039;(if necessary)&#039;&#039; and &#039;&#039;prepares&#039;&#039; it for executing the SCORM ADL tests.&lt;br /&gt;
* Script that automates the ADL SCORM 1.2 tests and produces an HTML file with the results of the tests &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* Script that automates some of the ADL SCORM 2004 tests on Moodle &#039;&#039;(it may not be possible to script all of the 2004 ADL tests due to existing failures)&#039;&#039;.&lt;br /&gt;
* Documentation for how to install the scripts on a Microsoft Windows machine and have them run on an automated cycle.&lt;br /&gt;
* Identifying the issues with SCORM 2004 support in Moodle, reporting them to the Tracker and writing patches for the same.&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
The following are the implementation details in breif:&lt;br /&gt;
* &#039;&#039;&#039;Download and Update&#039;&#039;&#039; - The ADL SCORM tests should run on the latest Moodle code. The script using [https://docs.moodle.org/en/CLI CLI] will download the latest Moodle code from GitHub and upgrade the Moodle install &#039;&#039;(if necessary)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Add Test Course&#039;&#039;&#039; - Set up the users/course/activities required for the tests. This will be done by restoring the Moodle backup file into a &#039;&#039;new&#039;&#039;. This will again be implemented using CLI at the time of upgrading the install.&lt;br /&gt;
* &#039;&#039;&#039;Execute Tests&#039;&#039;&#039; - Run the browser based test script. [http://seleniumhq.org/projects/remote-control/ Selenium RC] will be used to write the automated web tests.&lt;br /&gt;
* &#039;&#039;&#039;Test Completion Report&#039;&#039;&#039; - At the end of the tests, the user will be displayed an HTML file with the results of the test &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Delete Test Course&#039;&#039;&#039; - After the tests have been executed, the new course that was added before the execution of test will be deleted.&lt;br /&gt;
&lt;br /&gt;
=Running ADL SCORM Test=&lt;br /&gt;
&lt;br /&gt;
The ADL SCORM tests can be executed in the following two ways - &lt;br /&gt;
* Running from the &#039;&#039;&#039;Command Prompt&#039;&#039;&#039; or,&lt;br /&gt;
* Running directly from &#039;&#039;&#039;Eclipse&#039;&#039;&#039; IDE (&#039;&#039;for Java Developers&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
==Environmental Setup==&lt;br /&gt;
* &#039;&#039;&#039;Install Java&#039;&#039;&#039; - If you do not have Java installed on your machine you need to download and install it. You can download it from here - [http://www.java.com/en/download/ Download Java].&lt;br /&gt;
* &#039;&#039;&#039;Download Selenium&#039;&#039;&#039; - After ensuring that you have Java installed on your machine, you next need to download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039;. To download Selenium RC &#039;&#039;(or Remote WebDriver)&#039;&#039; you can simply download the &#039;&#039;&#039;selenium-server-standalone&#039;&#039;&#039; jar file (&#039;&#039;selenium-server-standalone-x.x.x.jar&#039;&#039;) from here - [http://code.google.com/p/selenium/downloads/list Download Selenium]. Save the jar file in the working directory.&lt;br /&gt;
&#039;&#039;In this documentation directory &#039;&#039;C:\ADLTests&#039;&#039; will be considered as the [working-directory] for the tests.&lt;br /&gt;
*&#039;&#039;&#039;Install Junit&#039;&#039;&#039; - Finally, you need to download and install Junit on your machine. To install Junit download the zip file from here - [https://github.com/KentBeck/junit/downloads Download Junit] and extract the zip file in a directory say - &#039;&#039;C:\ADLTests\junit&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;Eclipse IDE&#039;&#039; - To run the ADL SCORM tests using Eclipse IDE, you need to download Eclipse IDE for Java Developers from here - [http://www.eclipse.org/downloads/ Download Eclipse].&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Install ADL SCORM 1.2 Test Suite&#039;&#039;&#039; -  Download and install the ADL SCORM 1.2 Conformance Test Suite. You can download the ADL Test suite from here - [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201%2e2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} Download ADL 1.2 Test Suite].&lt;br /&gt;
* &#039;&#039;&#039;Setup course&#039;&#039;&#039; - To test Moodle for ADL SCORM 1.2 Compliance you need to setup a course by following the instructions here - [https://docs.moodle.org/dev/SCORM_1.2_compliance_test_instructions SCORM 1.2 compliance test instructions]. The SCORM 1.2 &#039;&#039;LMSTestCourse&#039;&#039; packages that you need are available here -[http://www.mayankgupta.beakkon.com/files/downloads/moodle/LMSTestCourse01.zip LMSTestCourse01.zip] , [http://www.mayankgupta.beakkon.com/files/downloads/moodle/LMSTestCourse02.zip LMSTestCourse02.zip]. &lt;br /&gt;
* &#039;&#039;&#039;ADL 1.2 Test Script&#039;&#039;&#039; - Download and the save the ADL 1.2 Test script as &#039;&#039;&#039;scormADL12.java&#039;&#039;&#039; in [working_directory]\ADL12\ . You can download the ADL 1.2 Test script from here - [https://gist.github.com/058a6f6273ce0767ed1f#file_scorm_adl12.java ADL 1.2 Test Script] &#039;&#039;(Please note - this is a temporary URL for the test script.)&#039;&#039;&lt;br /&gt;
==Executing the Tests==&lt;br /&gt;
To execute the tests from the Command prompt follow the steps below -&lt;br /&gt;
* &#039;&#039;&#039;Modify Test Script&#039;&#039;&#039; - The current version of the test script does not have support for command line arguments. Thus you need to specify the path to the ADL SCORM test suite and Moodle test site at line numbers - 26 and 27.&lt;br /&gt;
* &#039;&#039;&#039;Compile Test Script&#039;&#039;&#039; - To compile the test script open the Command Prompt, change the directory to &#039;&#039;&#039;[working_directory]\ADL12&#039;&#039;&#039; &#039;&#039;(you can also specify the full path to the scormADL12.java file from your current directory)&#039;&#039; and run the following command - &lt;br /&gt;
 javac path\to\scormADL12.java&lt;br /&gt;
If you get the error - &#039;&#039; &#039;javac&#039; is not recognized as an internal or external command, operable program or batch file.&#039;&#039; Then you need to specify the full path to the javac.exe executable inside the &#039;&#039;&#039;bin&#039;&#039;&#039; directory of the Java installation on your machine.&lt;br /&gt;
Thus the above compilation command needs to be executed on the command prompt window by specifying the full path to &#039;&#039;javac&#039;&#039; like - &lt;br /&gt;
 &amp;quot;C:\Program Files\Java\jdk1.6.0_24\bin\javac.exe&amp;quot; path\to\scormADL12.java&lt;br /&gt;
* &#039;&#039;&#039;Set CLASSPATH&#039;&#039;&#039; - In order to execute the Selenium RC and Junit Tests you need to set the class path on the command prompt.&lt;br /&gt;
The elements that need to be added in classpath are - Junit class files, scormADL12 class files and Selenium jar class files.&lt;br /&gt;
To set the CLASSPATH before executing the tests use the following command - &lt;br /&gt;
 set CLASSPATH=[working_directory]\junit\junit.jar;[working_directory]\ADL12;[working-directory]\selenium-server-standalone.jar&lt;br /&gt;
For instance the actual &#039;&#039;(after replacing [working_directory])&#039; command to set CLASSPATH will be like -&lt;br /&gt;
 set CLASSPATH=C:\ADLTests\junit\junit4.9b2\junit-4.9b2.jar;C:\ADLTests\ADL12;C:\ADLTests\selenium-server-standalone-2.0.0.jar&lt;br /&gt;
----&lt;br /&gt;
* &#039;&#039;&#039;Invoke the Runner&#039;&#039;&#039; - Finally, to run the tests you need to invoke the Junit runner with the command -&lt;br /&gt;
 java org.junit.runner.JUnitCore scormADL12&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=Schedule=&lt;br /&gt;
* April 26th - May 29th: Get familiar with the Selenium RC, discuss functionality with mentor.&lt;br /&gt;
* 30th May - 5th June: Write script to Download lates code, Upgrade Moodle, Restore and Delete test course.&lt;br /&gt;
* 6th - 15th June: Write the automated web tests.&lt;br /&gt;
* 16th - 26th June: Reproduce ADL SCORM 1.2 Tests.&lt;br /&gt;
* 27th June - 6th July: Reproduce ADL SCORM 2004 Tests.&lt;br /&gt;
* 7th - 11 July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - Script to Download, Upgrade, Restore / Delete Backup, code for Test harness,  script for ADL SCORM 1.2 and 2004 tests and preliminary report on regressions issues&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* 12th July - 17th July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
* 18th July - 13th August: Test SCORM 2004 packages report bugs in the Tracker and write patches.&lt;br /&gt;
* 14th - 19th August: Documentation for installation and configuration of scripts on Windows machine. &lt;br /&gt;
&#039;&#039;would be a nice task:&#039;&#039; A developer documentation, to explain the the test harness.&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
For more information please visit the following links:&lt;br /&gt;
* [https://docs.moodle.org/en/Administration_via_command_line Administration via command line]&lt;br /&gt;
* [https://docs.moodle.org/en/Development:SCORM_1.2_compliance_test_instructions How to manually run the 1.2 ADL tests]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} SCORM 1.2 documentation test suite]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Test%20Suite.aspx SCORM 2004 documentation test suite]&lt;br /&gt;
* [https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
* [https://docs.moodle.org/en/GSOC/2011 GSoC 2011 - Moodle]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=19215</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=19215"/>
		<updated>2011-05-05T14:01:42Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: fixed broken link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification to be updated soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. The Moodle install need not be on the same Microsoft Windows machine and could be on a remote Linux machine too. &lt;br /&gt;
The framework would also provide the ability to schedule or run the SCORM ADL tests automatically between the desired time intervals. On the completion of the tests an HTML page, containing the test&#039;s report will be displayed to the user. &lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and writing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
==Project Deliverables==&lt;br /&gt;
* Script that downloads the latest Moodle Code from [https://github.com/moodle/moodle GitHub], ugrades the Moodle install &#039;&#039;(if necessary)&#039;&#039; and &#039;&#039;prepares&#039;&#039; it for executing the SCORM ADL tests.&lt;br /&gt;
* Script that automates the ADL SCORM 1.2 tests and produces an HTML file with the results of the tests &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* Script that automates some of the ADL SCORM 2004 tests on Moodle &#039;&#039;(it may not be possible to script all of the 2004 ADL tests due to existing failures)&#039;&#039;.&lt;br /&gt;
* Documentation for how to install the scripts on a Microsoft Windows machine and have them run on an automated cycle.&lt;br /&gt;
* Identifying the issues with SCORM 2004 support in Moodle, reporting them to the Tracker and writing patches for the same.&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
The following are the implementation details in breif:&lt;br /&gt;
* &#039;&#039;&#039;Download and Update&#039;&#039;&#039; - The ADL SCORM tests should run on the latest Moodle code. The script using [https://docs.moodle.org/en/CLI CLI] will download the latest Moodle code from GitHub and upgrade the Moodle install &#039;&#039;(if necessary)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Add Test Course&#039;&#039;&#039; - Set up the users/course/activities required for the tests. This will be done by restoring the Moodle backup file into a &#039;&#039;new&#039;&#039;. This will again be implemented using CLI at the time of upgrading the install.&lt;br /&gt;
* &#039;&#039;&#039;Execute Tests&#039;&#039;&#039; - Run the browser based test script. [http://seleniumhq.org/projects/remote-control/ Selenium RC] will be used to write the automated web tests.&lt;br /&gt;
* &#039;&#039;&#039;Test Completion Report&#039;&#039;&#039; - At the end of the tests, the user will be displayed an HTML file with the results of the test &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Delete Test Course&#039;&#039;&#039; - After the tests have been executed, the new course that was added before the execution of test will be deleted.&lt;br /&gt;
&lt;br /&gt;
=Schedule=&lt;br /&gt;
* April 26th - May 29th: Get familiar with the Selenium RC, discuss functionality with mentor.&lt;br /&gt;
* 30th May - 5th June: Write script to Download lates code, Upgrade Moodle, Restore and Delete test course.&lt;br /&gt;
* 6th - 15th June: Write the automated web tests.&lt;br /&gt;
* 16th - 26th June: Reproduce ADL SCORM 1.2 Tests.&lt;br /&gt;
* 27th June - 6th July: Reproduce ADL SCORM 2004 Tests.&lt;br /&gt;
* 7th - 11 July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - Script to Download, Upgrade, Restore / Delete Backup, code for Test harness,  script for ADL SCORM 1.2 and 2004 tests and preliminary report on regressions issues&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* 12th July - 17th July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
* 18th July - 13th August: Test SCORM 2004 packages report bugs in the Tracker and write patches.&lt;br /&gt;
* 14th - 19th August: Documentation for installation and configuration of scripts on Windows machine. &lt;br /&gt;
&#039;&#039;would be a nice task:&#039;&#039; A developer documentation, to explain the the test harness.&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
For more information please visit the following links:&lt;br /&gt;
* [https://docs.moodle.org/en/Administration_via_command_line Administration via command line]&lt;br /&gt;
* [https://docs.moodle.org/en/Development:SCORM_1.2_compliance_test_instructions How to manually run the 1.2 ADL tests]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} SCORM 1.2 documentation test suite]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Test%20Suite.aspx SCORM 2004 documentation test suite]&lt;br /&gt;
* [https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
* [https://docs.moodle.org/en/GSOC/2011 GSoC 2011 - Moodle]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=19214</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=19214"/>
		<updated>2011-05-03T23:53:53Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: Deliverables, Implementation, Schedule, Further reading&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification to be updated soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. The Moodle install need not be on the same Microsoft Windows machine and could be on a remote Linux machine too. &lt;br /&gt;
The framework would also provide the ability to schedule or run the SCORM ADL tests automatically between the desired time intervals. On the completion of the tests an HTML page, containing the test&#039;s report will be displayed to the user. &lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and writing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
==Project Deliverables==&lt;br /&gt;
* Script that downloads the latest Moodle Code from [https://github.com/moodle/moodle GitHub], ugrades the Moodle install &#039;&#039;(if necessary)&#039;&#039; and &#039;&#039;prepares&#039;&#039; it for executing the SCORM ADL tests.&lt;br /&gt;
* Script that automates the ADL SCORM 1.2 tests and produces an HTML file with the results of the tests &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* Script that automates some of the ADL SCORM 2004 tests on Moodle &#039;&#039;(it may not be possible to script all of the 2004 ADL tests due to existing failures)&#039;&#039;.&lt;br /&gt;
* Documentation for how to install the scripts on a Microsoft Windows machine and have them run on an automated cycle.&lt;br /&gt;
* Identifying the issues with SCORM 2004 support in Moodle, reporting them to the Tracker and writing patches for the same.&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
The following are the implementation details in breif:&lt;br /&gt;
* &#039;&#039;&#039;Download and Update&#039;&#039;&#039; - The ADL SCORM tests should run on the latest Moodle code. The script using [https://docs.moodle.org/en/CLI CLI] will download the latest Moodle code from GitHub and upgrade the Moodle install &#039;&#039;(if necessary)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Add Test Course&#039;&#039;&#039; - Set up the users/course/activities required for the tests. This will be done by restoring the Moodle backup file into a &#039;&#039;new&#039;&#039;. This will again be implemented using CLI at the time of upgrading the install.&lt;br /&gt;
* &#039;&#039;&#039;Execute Tests&#039;&#039;&#039; - Run the browser based test script. [http://seleniumhq.org/projects/remote-control/ Selenium RC] will be used to write the automated web tests.&lt;br /&gt;
* &#039;&#039;&#039;Test Completion Report&#039;&#039;&#039; - At the end of the tests, the user will be displayed an HTML file with the results of the test &#039;&#039;(pass/fail)&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Delete Test Course&#039;&#039;&#039; - After the tests have been executed, the new course that was added before the execution of test will be deleted.&lt;br /&gt;
&lt;br /&gt;
=Schedule=&lt;br /&gt;
* April 26th - May 29th: Get familiar with the Selenium RC, discuss functionality with mentor.&lt;br /&gt;
* 30th May - 5th June: Write script to Download lates code, Upgrade Moodle, Restore and Delete test course.&lt;br /&gt;
* 6th - 15th June: Write the automated web tests.&lt;br /&gt;
* 16th - 26th June: Reproduce ADL SCORM 1.2 Tests.&lt;br /&gt;
* 27th June - 6th July: Reproduce ADL SCORM 2004 Tests.&lt;br /&gt;
* 7th - 11 July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This will be the midterm evaluation target - Script to Download, Upgrade, Restore / Delete Backup, code for Test harness,  script for ADL SCORM 1.2 and 2004 tests and preliminary report on regressions issues&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
* 12th July - 17th July: Check for regressions and fix issues related with it, if any.&lt;br /&gt;
* 18th July - 13th August: Test SCORM 2004 packages report bugs in the Tracker and write patches.&lt;br /&gt;
* 14th - 19th August: Documentation for installation and configuration of scripts on Windows machine. &lt;br /&gt;
&#039;&#039;would be a nice task:&#039;&#039; A developer documentation, to explain the the test harness.&lt;br /&gt;
&lt;br /&gt;
=Further Reading=&lt;br /&gt;
For more information please visit the following links:&lt;br /&gt;
* [https://docs.moodle.org/en/Administration_via_command_line Administration via command line]&lt;br /&gt;
* [https://docs.moodle.org/en/Development:SCORM_1.2_compliance_test_instructions How to manually run the 1.2 ADL tests]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201.2&amp;amp;FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&amp;amp;View={4D6DFFDE-3CFC-4DD9-A21A-4B687728824A} SCORM 1.2 documentation test suite]&lt;br /&gt;
* [http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/2004%204th%20Edition/Test%20Suite.aspx SCORM 2004 documentation test suite]&lt;br /&gt;
* [https://docs.moodle.org/en/SCORM_FAQ SCORM FAQ]&lt;br /&gt;
* [https://docs.moodle.org/eb/GSOC/2011 GSoC 2011 - Moodle]&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=19213</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=19213"/>
		<updated>2011-05-03T05:51:11Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification to be updated soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. On the completion of the tests a HTML page, containing the test&#039;s report will be displayed to the user.&lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves adding and identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and providing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=19212</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=19212"/>
		<updated>2011-05-03T05:50:32Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification page to be updated soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
==Abstract==&lt;br /&gt;
This document is the specification for SCORM Test Harness, a Google Summer Of Code &#039;&#039;(GSoC)&#039;&#039; 2011 project. The SCORM test harness will allow automatically running the SCORM ADL test on the latest Moodle Code.&lt;br /&gt;
&lt;br /&gt;
The project mentor is [http://moodle.org/user/profile.php?id=21591 Dan Marsden] and the program administrator is [http://moodle.org/user/profile.php?id=24152 Helen Foster].&lt;br /&gt;
&lt;br /&gt;
==Context==&lt;br /&gt;
Currently running the SCORM ADL tests is a &#039;&#039;time consuming&#039;&#039; task and requires a specific environment to be set up. The tests can only run in Internet Explorer. This project aims at setting up an automated testing framework that will allow to automatically run the tests on a Microsoft Windows machine running Internet Explorer 8 or higher. On the completion of the tests a HTML page, containing the test&#039;s report will be displayed to the user.&lt;br /&gt;
&lt;br /&gt;
The later part of the project itself involves adding and identifying the issues with SCORM 2004 support, reporting them to the [http://tracker.moodle.org Tracker] and providing patches for the same. This will help in the ongoing development of providing SCORM 2004 support in Moodle, without breaking compatibility with previous tests.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=19211</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=19211"/>
		<updated>2011-04-29T02:58:25Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness- GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification coming soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=19210</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=19210"/>
		<updated>2011-04-29T02:54:43Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [http://moodle.org/mod/forum/discuss.php?d=174286 Using Moodle: SCORM Test Harness -GSoC]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification coming soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
	<entry>
		<id>https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=19209</id>
		<title>SCORM Test Harness</title>
		<link rel="alternate" type="text/html" href="https://docs.moodle.org/dev/index.php?title=SCORM_Test_Harness&amp;diff=19209"/>
		<updated>2011-04-29T02:50:04Z</updated>

		<summary type="html">&lt;p&gt;Mayank gupta2005: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = SCORM Test Harness&lt;br /&gt;
|state = Planning&lt;br /&gt;
|tracker = MDL-26912&lt;br /&gt;
|discussion = [Using Moodle: SCORM Test Harness - GSoC|http://moodle.org/mod/forum/discuss.php?d=174286]&lt;br /&gt;
|assignee = Mayank Gupta&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Project specification coming soon...&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:SCORM]]&lt;/div&gt;</summary>
		<author><name>Mayank gupta2005</name></author>
	</entry>
</feed>