123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- // Copyright 2008 The Closure Library Authors. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS-IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- goog.provide('goog.testing.ExpectedFailuresTest');
- goog.setTestOnly('goog.testing.ExpectedFailuresTest');
- goog.require('goog.debug.Logger');
- goog.require('goog.testing.ExpectedFailures');
- goog.require('goog.testing.JsUnitException');
- goog.require('goog.testing.TestCase');
- goog.require('goog.testing.jsunit');
- var count, expectedFailures, lastLevel, lastMessage;
- // Stub out the logger.
- goog.testing.ExpectedFailures.prototype.logger_.log = function(level, message) {
- lastLevel = level;
- lastMessage = message;
- count++;
- };
- function setUp() {
- // TODO(b/25875505): Fix unreported assertions (go/failonunreportedasserts).
- goog.testing.TestCase.getActiveTestCase().failOnUnreportedAsserts = false;
- expectedFailures = new goog.testing.ExpectedFailures();
- count = 0;
- lastLevel = lastMessage = '';
- }
- // Individual test methods.
- function testNoExpectedFailure() {
- expectedFailures.handleTearDown();
- }
- function testPreventExpectedFailure() {
- expectedFailures.expectFailureFor(true);
- expectedFailures.handleException(new goog.testing.JsUnitException('', ''));
- assertEquals('Should have logged a message', 1, count);
- assertEquals(
- 'Should have logged an info message', goog.debug.Logger.Level.INFO,
- lastLevel);
- assertContains(
- 'Should log a suppression message', 'Suppressing test failure',
- lastMessage);
- expectedFailures.handleTearDown();
- assertEquals('Should not have logged another message', 1, count);
- }
- function testDoNotPreventException() {
- var ex = 'exception';
- expectedFailures.expectFailureFor(false);
- var e = assertThrows('Should have rethrown exception', function() {
- expectedFailures.handleException(ex);
- });
- assertEquals('Should rethrow same exception', ex, e);
- }
- function testExpectedFailureDidNotOccur() {
- expectedFailures.expectFailureFor(true);
- expectedFailures.handleTearDown();
- assertEquals('Should have logged a message', 1, count);
- assertEquals(
- 'Should have logged a warning', goog.debug.Logger.Level.WARNING,
- lastLevel);
- assertContains(
- 'Should log a suppression message', 'Expected a test failure',
- lastMessage);
- }
- function testRun() {
- expectedFailures.expectFailureFor(true);
- expectedFailures.run(function() { fail('Expected failure'); });
- assertEquals('Should have logged a message', 1, count);
- assertEquals(
- 'Should have logged an info message', goog.debug.Logger.Level.INFO,
- lastLevel);
- assertContains(
- 'Should log a suppression message', 'Suppressing test failure',
- lastMessage);
- expectedFailures.handleTearDown();
- assertEquals('Should not have logged another message', 1, count);
- }
- function testRunStrict() {
- expectedFailures.expectFailureFor(true);
- var ex = assertThrows(function() {
- expectedFailures.run(function() {
- // Doesn't fail!
- });
- });
- assertContains(
- "Expected a test failure in 'testRunStrict' but the test passed.",
- ex.message);
- }
- function testRunLenient() {
- expectedFailures.expectFailureFor(true);
- expectedFailures.run(function() {
- // Doesn't fail!
- }, true);
- expectedFailures.handleTearDown();
- assertEquals('Should have logged a message', 1, count);
- assertEquals(
- 'Should have logged a warning', goog.debug.Logger.Level.WARNING,
- lastLevel);
- assertContains(
- 'Should log a suppression message', 'Expected a test failure',
- lastMessage);
- }
|