blob: 071ba40947b6ec72fde56042147c7df0da45a415 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright 2011 Software Freedom Conservancy. 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.
-->
<html>
<head>
<title>testutil_test.html</title>
<script src="test_bootstrap.js"></script>
<script>
goog.require('goog.testing.jsunit');
goog.require('webdriver.test.testutil');
</script>
</head>
<body>
<script>
// Aliases for readability.
var callbackHelper = webdriver.test.testutil.callbackHelper,
callbackPair = webdriver.test.testutil.callbackPair,
clock;
function setUp() {
clock = webdriver.test.testutil.createMockClock();
}
function tearDown() {
clock.dispose();
}
function testCallbackHelper_functionCalled() {
var callback = callbackHelper();
callback();
assertNotThrows(callback.assertCalled);
assertThrows(callback.assertNotCalled);
}
function testCallbackHelper_functionCalledMoreThanOnce() {
var callback = callbackHelper();
callback();
callback(123, 'abc');
assertThrows(callback.assertCalled);
assertThrows(callback.assertNotCalled);
}
function testCallbackHelper_functionNotCalled() {
var callback = callbackHelper();
assertNotThrows(callback.assertNotCalled);
assertThrows(callback.assertCalled);
}
function testCallbackHelper_wrappedFunctionIsCalled() {
var count = 0;
var callback = callbackHelper(function() {
count += 1;
});
callback();
assertNotThrows(callback.assertCalled);
assertThrows(callback.assertNotCalled);
assertEquals(1, count);
}
function testCallbackPair_callbackExpected() {
var pair = callbackPair();
assertThrows(pair.assertCallback);
pair.callback();
assertNotThrows(pair.assertCallback);
pair.errback();
assertThrows(pair.assertCallback);
pair.reset();
pair.callback();
assertNotThrows(pair.assertCallback);
pair.callback();
assertThrows('Should expect to be called only once',
pair.assertCallback);
}
function testCallbackPair_errbackExpected() {
var pair = callbackPair();
assertThrows(pair.assertErrback);
pair.errback();
assertNotThrows(pair.assertErrback);
pair.callback();
assertThrows(pair.assertErrback);
}
function testCallbackPair_eitherExpected() {
var pair = callbackPair();
assertThrows(pair.assertEither);
pair.errback();
assertNotThrows(pair.assertEither);
pair.reset();
pair.callback();
assertNotThrows(pair.assertEither);
pair.errback();
assertNotThrows(pair.assertEither);
}
function testCallbackPair_neitherExpected() {
var pair = callbackPair();
assertNotThrows(pair.assertNeither);
pair.errback();
assertThrows(pair.assertNeither);
pair.reset();
pair.callback();
assertThrows(pair.assertNeither);
pair.errback();
assertThrows(pair.assertNeither);
}
function testZeroBasedTimeoutsRunInNextEventLoop() {
var count = 0;
setTimeout(function() {
count += 1;
setTimeout(function() { count += 1; }, 0);
setTimeout(function() { count += 1; }, 0);
}, 0);
clock.tick();
assertEquals(1, count); // Fails; count == 3
clock.tick();
assertEquals(3, count);
}
function testNewZeroBasedTimeoutsRunInNextEventLoopAfterExistingTasks() {
var events = [];
setInterval(function() { events.push('a'); }, 1);
setTimeout(function() { events.push('b'); }, 0);
clock.tick();
assertEquals('ab', events.join(''));
}
</script>
</body>
</html>