assertions_test.js revision 66a37686207944273ced825e0e8b6b6375f8c3de
1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5'use strict';
6
7base.require('base.unittest.assertions');
8
9base.unittest.testSuite('base.unittest.assertions', function() {
10  setup(function() {
11    global.rawAssertThrows = function(fn) {
12      try {
13        fn();
14      } catch (e) {
15        return;
16      }
17      throw new Error('Expected <' + fn + '> to throw');
18    };
19
20    global.rawAssertNotThrows = function(fn) {
21      try {
22        fn();
23      } catch (e) {
24        throw new Error('Expected <' + fn + '> to not throw');
25      }
26    };
27  });
28
29  teardown(function() {
30    global.rawAssertThrows = undefined;
31    global.rawAssertNotThrows = undefined;
32  });
33
34  test('assertTrue', function() {
35    rawAssertThrows(function() {
36      assertTrue(false);
37    });
38    rawAssertNotThrows(function() {
39      assertTrue(true);
40    });
41  });
42
43  test('assertObjectEquals', function() {
44    rawAssertThrows(function() {
45      assertObjectEquals({a: 1}, {a: 2});
46    });
47    rawAssertThrows(function() {
48      assertObjectEquals({a: 1}, []);
49    });
50    rawAssertThrows(function() {
51      assertObjectEquals({a: 1, b: {}}, {a: 1, c: {}, b: {}});
52    });
53    rawAssertNotThrows(function() {
54      assertObjectEquals({}, {});
55    });
56    rawAssertNotThrows(function() {
57      assertObjectEquals({a: 1}, {a: 1});
58    });
59  });
60
61  test('assertThrows', function() {
62    rawAssertThrows(function() {
63      assertThrows(function() {
64      });
65    });
66    rawAssertNotThrows(function() {
67      assertThrows(function() {
68        throw new Error('expected_error');
69      });
70    });
71  });
72});
73