Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
6056 efrain 1
/*global test, equal, module, ok*/
2
(function(global, jQuery, undefined) {
3
"use strict";
4
 
5
function undefine() { // Undefine registered modules from previously run tests.
6
	require.undef("jsrender");
7
	require.undef("jquery");
8
	delete window.jQuery;
9
}
10
 
11
if (!window.attachEvent || window.addEventListener) { // Running RequireJS in qunit async test seems to fail in IE8
12
 
13
QUnit.module("AMD Script Loader");
14
 
15
QUnit.test("Loading JsRender, without jQuery, using RequireJS", function(assert) {
16
	var done = assert.async(),
17
		jq = window.jQuery;
18
	undefine();
19
 
20
	require(["//www.jsviews.com/download/jsrender.js"], function($) { // Or point to correct local path for jsrender.js on your system
21
//	require(["../../download/jsrender.js"], function($) { // Or point to correct local path for jsrender.js on your system
22
		// Here $ is the global jQuery object, (jq - loaded by script block in page header, for QUnit)
23
		// If there was no global jQuery it would be the jsviews object - but no global would be created.
24
 
25
		var result = $.templates("Name: {{:name}}").render({name: "Jo"}) + " " + (!!$.jsrender);
26
		assert.equal(result, "Name: Jo true", "JsRender Loaded");
27
		done();
28
	});
29
});
30
 
31
QUnit.test("Loading JsRender and jQuery, without forcing load order, using RequireJS", function(assert) {
32
	var done = assert.async(),
33
		jq = window.jQuery;
34
	undefine();
35
 
36
// Note JsRender does not require jQuery - so its AMD definition does not specify jQuery dependency.
37
 
38
	require(["./unit-tests/requirejs-config"], function() {
39
		require(["jquery", "jsrender"], function($jq, $) {
40
			// Note: $ is either the jQuery loaded by RequireJS, or the window.jsrender object, depending on load order
41
			// Either way, it is the jQuery instance that has a $.views, $.templates etc.
42
 
43
			var result = $.templates("Name: {{:name}}").render({name: "Jo"}) + " " + ($ === $jq || !!$.jsrender);
44
			assert.equal(result, "Name: Jo true", "JsRender Loaded");
45
			done();
46
		});
47
	});
48
});
49
 
50
QUnit.test("Loading JsRender with jQuery, and force jQuery to load before JsRender, using RequireJS", function(assert) {
51
	var done = assert.async(),
52
		jq = window.jQuery;
53
	undefine();
54
 
55
// Note JsRender does not require jQuery - so its AMD definition does not specify jQuery dependency.
56
// So we will force loading order here by nesting require call for JsRender inside require call for jQuery.
57
// This is not optimized for loading speed.
58
 
59
	require(["./unit-tests/requirejs-config"], function() {
60
		require(["jquery"], function($jq) {
61
			require(["jsrender"], function($) {
62
				// Note: $ is a new instance of jQuery (=== $jq) loaded by RequireJS, not the instance loaded by script block in page header, for QUnit.
63
 
64
				var result = $.templates("Name: {{:name}}").render({name: "Jo"}) + " " + (jq !== $ && $ === window.jQuery && $ === $jq);
65
				assert.equal(result, "Name: Jo true", "JsRender LoadedX");
66
				done();
67
			});
68
		});
69
	});
70
});
71
 
72
}
73
})(this, this.jQuery);