166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// Copyright (c) 2013 The Chromium Authors. All rights reserved. 266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// Use of this source code is governed by a BSD-style license that can be 366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// found in the LICENSE file. 466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis'use strict'; 666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('base.unittest.assertions'); 866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.unittest.testSuite('base.unittest.assertions', function() { 1066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis setup(function() { 1166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis global.rawAssertThrows = function(fn) { 1266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis try { 1366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis fn(); 1466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis } catch (e) { 1566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis return; 1666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis } 1766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis throw new Error('Expected <' + fn + '> to throw'); 1866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }; 1966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 2066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis global.rawAssertNotThrows = function(fn) { 2166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis try { 2266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis fn(); 2366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis } catch (e) { 2466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis throw new Error('Expected <' + fn + '> to not throw'); 2566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis } 2666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }; 2766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 2866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 2966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis teardown(function() { 3066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis global.rawAssertThrows = undefined; 3166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis global.rawAssertNotThrows = undefined; 3266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 3366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 3466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('assertTrue', function() { 3566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis rawAssertThrows(function() { 3666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(false); 3766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 3866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis rawAssertNotThrows(function() { 3966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(true); 4066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 4166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 4266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 4366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('assertObjectEquals', function() { 4466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis rawAssertThrows(function() { 4566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertObjectEquals({a: 1}, {a: 2}); 4666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 4766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis rawAssertThrows(function() { 4866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertObjectEquals({a: 1}, []); 4966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 5066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis rawAssertThrows(function() { 5166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertObjectEquals({a: 1, b: {}}, {a: 1, c: {}, b: {}}); 5266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 5366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis rawAssertNotThrows(function() { 5466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertObjectEquals({}, {}); 5566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 5666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis rawAssertNotThrows(function() { 5766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertObjectEquals({a: 1}, {a: 1}); 5866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 5966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 6066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 6166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('assertThrows', function() { 6266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis rawAssertThrows(function() { 6366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertThrows(function() { 6466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 6566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 6666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis rawAssertNotThrows(function() { 6766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertThrows(function() { 6866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis throw new Error('expected_error'); 6966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 7066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 7166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 7266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis}); 73