// Copyright (c) 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. 'use strict'; base.require('base.unittest.assertions'); base.unittest.testSuite('base.unittest.assertions', function() { setup(function() { global.rawAssertThrows = function(fn) { try { fn(); } catch (e) { return; } throw new Error('Expected <' + fn + '> to throw'); }; global.rawAssertNotThrows = function(fn) { try { fn(); } catch (e) { throw new Error('Expected <' + fn + '> to not throw'); } }; }); teardown(function() { global.rawAssertThrows = undefined; global.rawAssertNotThrows = undefined; }); test('assertTrue', function() { rawAssertThrows(function() { assertTrue(false); }); rawAssertNotThrows(function() { assertTrue(true); }); }); test('assertObjectEquals', function() { rawAssertThrows(function() { assertObjectEquals({a: 1}, {a: 2}); }); rawAssertThrows(function() { assertObjectEquals({a: 1}, []); }); rawAssertThrows(function() { assertObjectEquals({a: 1, b: {}}, {a: 1, c: {}, b: {}}); }); rawAssertNotThrows(function() { assertObjectEquals({}, {}); }); rawAssertNotThrows(function() { assertObjectEquals({a: 1}, {a: 1}); }); }); test('assertThrows', function() { rawAssertThrows(function() { assertThrows(function() { }); }); rawAssertNotThrows(function() { assertThrows(function() { throw new Error('expected_error'); }); }); }); });