<!DOCTYPE html> <html> <head> <title>require.js: Multiversion Test</title> <script type="text/javascript" src="../require.js"></script> <script type="text/javascript" src="doh/runner.js"></script> <script type="text/javascript" src="doh/_browserRunner.js"></script> <script type="text/javascript"> var doneCount = 0; var master = new doh.Deferred(); function done() { doneCount += 1; //alert("done"); if (doneCount == 2) { //alert("master callback"); master.callback(true); } } doh.register( "multiversion", [ { name: "multiversion", timeout: 5000, runTest: function() { require( { context: "version1", baseUrl: "version1/" }, ["require", "alpha", "beta", "version1/gamma.js"], function(require, alpha, beta) { //Notice no module arg name for gamma in the function call. //gamma in the log call below will be a global created by gamma.js. doh.is("green", gamma.color); doh.is(1, alpha.version); doh.is(1, beta.version); setTimeout(function(){ require( ["omega"], function(omega) { doh.is(1, omega.version); doh.is("1", alpha.version); done(); } ); }, 100); } ); require.config( { context: "version2", baseUrl: "version2/" })( ["require", "alpha", "beta", "version2/epsilon.js"], function(require, alpha, beta) { //Notice no module arg name for epsilon in the function call. //epsilon in the log call below will be a global created by epsilon.js. doh.is("red", epsilon.color); doh.is(2, alpha.version); doh.is(2, beta.version); setTimeout(function(){ require( ["omega"], function(omega) { doh.is(2, omega.version); doh.is("2", alpha.version); done(); } ); }, 100); }); return master; } } ] ); doh.run(); </script> </head> <body> <h1>require.js: Multiversion Test</h1> <p>Check console for messages.</p> <p>This test loads two different versions of a module by using the "context" settings for require.</p> <p>It also tests loading a plain js file.</p> </body> </html>