3 Copyright (c) 2014 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
7 <link rel="import" href="/tvcm/unittest/assertions.html">
8 <link rel="import" href="/tvcm/quad.html">
9 <link rel="import" href="/tvcm/rect.html">
10 <link rel="import" href="/tvcm/gl_matrix.html">
14 tvcm.unittest.testSuite(function() {
15 function assertionTestSetup() {
16 global.rawAssertThrows = function(fn) {
20 if (e instanceof tvcm.unittest.TestError)
22 throw new Error('Unexpected error from <' + fn + '>: ' + e);
24 throw new Error('Expected <' + fn + '> to throw');
27 global.rawAssertNotThrows = function(fn) {
31 throw new Error('Expected <' + fn + '> to not throw: ' + e.message);
36 function assertionTestTeardown() {
37 global.rawAssertThrows = undefined;
38 global.rawAssertNotThrows = undefined;
41 function assertionTest(name, testFn) {
43 setUp: assertionTestSetup,
44 tearDown: assertionTestTeardown
48 assertionTest('assertTrue', function() {
49 rawAssertThrows(function() {
52 rawAssertNotThrows(function() {
57 assertionTest('assertFalse', function() {
58 rawAssertThrows(function() {
61 rawAssertNotThrows(function() {
66 assertionTest('assertUndefined', function() {
67 rawAssertThrows(function() {
70 rawAssertNotThrows(function() {
71 assertUndefined(undefined);
75 assertionTest('assertNotUndefined', function() {
76 rawAssertThrows(function() {
77 assertNotUndefined(undefined);
79 rawAssertNotThrows(function() {
80 assertNotUndefined('');
84 assertionTest('assertNull', function() {
85 rawAssertThrows(function() {
88 rawAssertNotThrows(function() {
93 assertionTest('assertNotNull', function() {
94 rawAssertThrows(function() {
97 rawAssertNotThrows(function() {
102 assertionTest('assertEquals', function() {
103 rawAssertThrows(function() {
106 rawAssertNotThrows(function() {
114 throw new tvcm.unittest.TestError('Failed to throw');
116 assertNotEquals('Converting circular structure to JSON', e.message);
123 throw new tvcm.unittest.TestError('Failed to throw');
125 assertNotEquals('Converting circular structure to JSON', e.message);
129 assertionTest('assertNotEquals', function() {
130 rawAssertThrows(function() {
131 assertNotEquals(1, 1);
133 rawAssertNotThrows(function() {
134 assertNotEquals(1, 2);
138 assertionTest('assertArrayEquals', function() {
139 rawAssertThrows(function() {
140 assertArrayEquals([2, 3], [2, 4]);
142 rawAssertThrows(function() {
143 assertArrayEquals([1], [1, 2]);
145 rawAssertNotThrows(function() {
146 assertArrayEquals(['a', 'b'], ['a', 'b']);
150 assertionTest('assertArrayEqualsShallow', function() {
151 rawAssertThrows(function() {
152 assertArrayShallowEquals([2, 3], [2, 4]);
154 rawAssertThrows(function() {
155 assertArrayShallowEquals([1], [1, 2]);
157 rawAssertNotThrows(function() {
158 assertArrayShallowEquals(['a', 'b'], ['a', 'b']);
162 assertionTest('assertAlmostEquals', function() {
163 rawAssertThrows(function() {
164 assertAlmostEquals(1, 0);
166 rawAssertThrows(function() {
167 assertAlmostEquals(1, 1.000011);
170 rawAssertNotThrows(function() {
171 assertAlmostEquals(1, 1);
173 rawAssertNotThrows(function() {
174 assertAlmostEquals(1, 1.000001);
176 rawAssertNotThrows(function() {
177 assertAlmostEquals(1, 1 - 0.000001);
181 assertionTest('assertVec2Equals', function() {
182 rawAssertThrows(function() {
183 assertVec2Equals(vec2.fromValues(0, 1), vec2.fromValues(0, 2));
185 rawAssertThrows(function() {
186 assertVec2Equals(vec2.fromValues(1, 2), vec2.fromValues(2, 2));
188 rawAssertNotThrows(function() {
189 assertVec2Equals(vec2.fromValues(1, 1), vec2.fromValues(1, 1));
193 assertionTest('assertVec3Equals', function() {
194 rawAssertThrows(function() {
195 assertVec3Equals(vec3.fromValues(0, 1, 2), vec3.fromValues(0, 1, 3));
197 rawAssertThrows(function() {
198 assertVec3Equals(vec3.fromValues(0, 1, 2), vec3.fromValues(0, 3, 2));
200 rawAssertThrows(function() {
201 assertVec3Equals(vec3.fromValues(0, 1, 2), vec3.fromValues(3, 1, 2));
203 rawAssertNotThrows(function() {
204 assertVec3Equals(vec3.fromValues(1, 2, 3), vec3.fromValues(1, 2, 3));
208 assertionTest('assertQuadEquals', function() {
209 rawAssertThrows(function() {
211 tvcm.Quad.fromXYWH(1, 1, 2, 2), tvcm.Quad.fromXYWH(1, 1, 2, 3));
213 rawAssertNotThrows(function() {
215 tvcm.Quad.fromXYWH(1, 1, 2, 2), tvcm.Quad.fromXYWH(1, 1, 2, 2));
219 assertionTest('assertRectEquals', function() {
220 rawAssertThrows(function() {
222 tvcm.Rect.fromXYWH(1, 1, 2, 2), tvcm.Rect.fromXYWH(1, 1, 2, 3));
224 rawAssertNotThrows(function() {
226 tvcm.Rect.fromXYWH(1, 1, 2, 2), tvcm.Rect.fromXYWH(1, 1, 2, 2));
230 assertionTest('assertObjectEquals', function() {
231 rawAssertThrows(function() {
232 assertObjectEquals({a: 1}, {a: 2});
234 rawAssertThrows(function() {
235 assertObjectEquals({a: 1}, []);
237 rawAssertThrows(function() {
238 assertObjectEquals({a: 1, b: {}}, {a: 1, c: {}, b: {}});
240 rawAssertNotThrows(function() {
241 assertObjectEquals({}, {});
243 rawAssertNotThrows(function() {
244 assertObjectEquals({a: 1}, {a: 1});
248 assertionTest('assertThrows', function() {
249 rawAssertThrows(function() {
250 assertThrows(function() {
253 rawAssertNotThrows(function() {
254 assertThrows(function() {
255 throw new Error('expected_error');
260 assertionTest('assertDoesNotThrow', function() {
261 rawAssertThrows(function() {
262 assertDoesNotThrow(function() {
263 throw new Error('expected_error');
266 rawAssertNotThrows(function() {
267 assertDoesNotThrow(function() {
272 assertionTest('assertApproxEquals', function() {
273 rawAssertThrows(function() {
274 assertApproxEquals(1, 5, 0.5);
276 rawAssertNotThrows(function() {
277 assertApproxEquals(1, 2, 1);
281 assertionTest('assertVisible', function() {
282 rawAssertThrows(function() {
285 rawAssertThrows(function() {
286 assertVisible({offsetHeight: 0});
288 rawAssertThrows(function() {
289 assertVisible({offsetWidth: 0});
291 rawAssertNotThrows(function() {
292 assertVisible({offsetWidth: 1, offsetHeight: 1});