122 lines
3.7 KiB
JavaScript
122 lines
3.7 KiB
JavaScript
// 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.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() {
|
|
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);
|
|
}
|