1 // TODO disable reordering for this suite!
  2 
  3 
  4 var begin = 0,
  5 	moduleStart = 0,
  6 	moduleDone = 0,
  7 	testStart = 0,
  8 	testDone = 0,
  9 	log = 0,
 10 	moduleContext,
 11 	moduleDoneContext,
 12 	testContext,
 13 	testDoneContext,
 14 	logContext;
 15 
 16 QUnit.begin = function() {
 17 	begin++;
 18 };
 19 QUnit.done = function() {
 20 };
 21 QUnit.moduleStart = function(context) {
 22 	moduleStart++;
 23 	moduleContext = context;
 24 };
 25 QUnit.moduleDone = function(context) {
 26 	moduleDone++;
 27 	moduleDoneContext = context;
 28 };
 29 QUnit.testStart = function(context) {
 30 	testStart++;
 31 	testContext = context;
 32 };
 33 QUnit.testDone = function(context) {
 34 	testDone++;
 35 	testDoneContext = context;
 36 };
 37 QUnit.log = function(context) {
 38 	log++;
 39 	logContext = context;
 40 };
 41 
 42 var logs = ["begin", "testStart", "testDone", "log", "moduleStart", "moduleDone", "done"];
 43 for (var i = 0; i < logs.length; i++) {
 44 	(function() {
 45 		var log = logs[i],
 46 			logger = QUnit[log];
 47 		QUnit[log] = function() {
 48 			console.log(log, arguments);
 49 			logger.apply(this, arguments);
 50 		};
 51 	})();
 52 }
 53 
 54 module("logs1");
 55 
 56 test("test1", 13, function() {
 57 	equal(begin, 1);
 58 	equal(moduleStart, 1);
 59 	equal(testStart, 1);
 60 	equal(testDone, 0);
 61 	equal(moduleDone, 0);
 62 
 63 	deepEqual(logContext, {
 64 		result: true,
 65 		message: undefined,
 66 		actual: 0,
 67 		expected: 0
 68 	});
 69 	equal("foo", "foo", "msg");
 70 	deepEqual(logContext, {
 71 		result: true,
 72 		message: "msg",
 73 		actual: "foo",
 74 		expected: "foo"
 75 	});
 76 	strictEqual(testDoneContext, undefined);
 77 	deepEqual(testContext, {
 78 		name: "test1"
 79 	});
 80 	strictEqual(moduleDoneContext, undefined);
 81 	deepEqual(moduleContext, {
 82 		name: "logs1"
 83 	});
 84 
 85 	equal(log, 12);
 86 });
 87 test("test2", 10, function() {
 88 	equal(begin, 1);
 89 	equal(moduleStart, 1);
 90 	equal(testStart, 2);
 91 	equal(testDone, 1);
 92 	equal(moduleDone, 0);
 93 
 94 	deepEqual(testDoneContext, {
 95 		name: "test1",
 96 		failed: 0,
 97 		passed: 13,
 98 		total: 13
 99 	});
100 	deepEqual(testContext, {
101 		name: "test2"
102 	});
103 	strictEqual(moduleDoneContext, undefined);
104 	deepEqual(moduleContext, {
105 		name: "logs1"
106 	});
107 
108 	equal(log, 22);
109 });
110 
111 module("logs2");
112 	
113 test("test1", 9, function() {
114 	equal(begin, 1);
115 	equal(moduleStart, 2);
116 	equal(testStart, 3);
117 	equal(testDone, 2);
118 	equal(moduleDone, 1);
119 
120 	deepEqual(testContext, {
121 		name: "test1"
122 	});
123 	deepEqual(moduleDoneContext, {
124 		name: "logs1",
125 		failed: 0,
126 		passed: 23,
127 		total: 23
128 	});
129 	deepEqual(moduleContext, {
130 		name: "logs2"
131 	});
132 
133 	equal(log, 31);
134 });
135 test("test2", 8, function() {
136 	equal(begin, 1);
137 	equal(moduleStart, 2);
138 	equal(testStart, 4);
139 	equal(testDone, 3);
140 	equal(moduleDone, 1);
141 
142 	deepEqual(testContext, {
143 		name: "test2"
144 	});
145 	deepEqual(moduleContext, {
146 		name: "logs2"
147 	});
148 
149 	equal(log, 39);
150 });
151