Adding mapbox-gl branch
This commit is contained in:
@@ -0,0 +1,210 @@
|
||||
// Copyright 2014 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.labs.testing.environmentTest');
|
||||
goog.setTestOnly('goog.labs.testing.environmentTest');
|
||||
|
||||
goog.require('goog.labs.testing.Environment');
|
||||
goog.require('goog.testing.MockControl');
|
||||
goog.require('goog.testing.TestCase');
|
||||
goog.require('goog.testing.jsunit');
|
||||
|
||||
var testCase = null;
|
||||
var mockControl = null;
|
||||
|
||||
// Use this flag to control whether the global JsUnit lifecycle events are being
|
||||
// called as part of the test lifecycle or as part of the "mocked" environment.
|
||||
var testing = false;
|
||||
|
||||
function setUp() {
|
||||
if (testing) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Temporarily override the initializeTestRunner method to avoid installing
|
||||
// our "test" TestCase.
|
||||
var initFn = goog.testing.TestCase.initializeTestRunner;
|
||||
goog.testing.TestCase.initializeTestRunner = function() {};
|
||||
testCase = new goog.labs.testing.EnvironmentTestCase_();
|
||||
goog.labs.testing.EnvironmentTestCase_.getInstance = function() {
|
||||
return testCase;
|
||||
};
|
||||
goog.testing.TestCase.initializeTestRunner = initFn;
|
||||
|
||||
mockControl = new goog.testing.MockControl();
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
if (testing) {
|
||||
return;
|
||||
}
|
||||
|
||||
mockControl.$resetAll();
|
||||
mockControl.$tearDown();
|
||||
}
|
||||
|
||||
function testLifecycle() {
|
||||
testing = true;
|
||||
|
||||
var envOne = mockControl.createStrictMock(goog.labs.testing.Environment);
|
||||
var envTwo = mockControl.createStrictMock(goog.labs.testing.Environment);
|
||||
var envThree = mockControl.createStrictMock(goog.labs.testing.Environment);
|
||||
var testMethod = mockControl.createFunctionMock('testMethod');
|
||||
|
||||
testCase.addNewTest('testFake', testMethod);
|
||||
|
||||
testCase.registerEnvironment_(envOne);
|
||||
testCase.registerEnvironment_(envTwo);
|
||||
testCase.registerEnvironment_(envThree);
|
||||
|
||||
envOne.setUpPage();
|
||||
envTwo.setUpPage();
|
||||
envThree.setUpPage();
|
||||
|
||||
envOne.setUp();
|
||||
envTwo.setUp();
|
||||
envThree.setUp();
|
||||
|
||||
testMethod();
|
||||
|
||||
envThree.tearDown();
|
||||
envTwo.tearDown();
|
||||
envOne.tearDown();
|
||||
|
||||
envThree.tearDownPage();
|
||||
envTwo.tearDownPage();
|
||||
envOne.tearDownPage();
|
||||
|
||||
mockControl.$replayAll();
|
||||
testCase.runTests();
|
||||
mockControl.$verifyAll();
|
||||
|
||||
testing = false;
|
||||
}
|
||||
|
||||
function testTearDownWithMockControl() {
|
||||
testing = true;
|
||||
|
||||
var envWith = new goog.labs.testing.Environment();
|
||||
var envWithout = new goog.labs.testing.Environment();
|
||||
|
||||
var mockControlMock = mockControl.createStrictMock(goog.testing.MockControl);
|
||||
var mockControlCtorMock = mockControl.createMethodMock(goog.testing,
|
||||
'MockControl');
|
||||
mockControlCtorMock().$times(1).$returns(mockControlMock);
|
||||
// Expecting verify / reset calls twice since two environments use the same
|
||||
// mockControl, but only one created it and is allowed to tear it down.
|
||||
mockControlMock.$verifyAll();
|
||||
mockControlMock.$replayAll();
|
||||
mockControlMock.$verifyAll();
|
||||
mockControlMock.$resetAll();
|
||||
mockControlMock.$tearDown().$times(1);
|
||||
mockControlMock.$verifyAll();
|
||||
mockControlMock.$replayAll();
|
||||
mockControlMock.$verifyAll();
|
||||
mockControlMock.$resetAll();
|
||||
|
||||
mockControl.$replayAll();
|
||||
envWith.withMockControl();
|
||||
envWithout.mockControl = mockControlMock;
|
||||
envWith.tearDown();
|
||||
envWithout.tearDown();
|
||||
mockControl.$verifyAll();
|
||||
mockControl.$resetAll();
|
||||
|
||||
testing = false;
|
||||
}
|
||||
|
||||
function testAutoDiscoverTests() {
|
||||
testing = true;
|
||||
|
||||
var setUpPageFn = testCase.setUpPage;
|
||||
var setUpFn = testCase.setUp;
|
||||
var tearDownFn = testCase.tearDownFn;
|
||||
var tearDownPageFn = testCase.tearDownPageFn;
|
||||
|
||||
testCase.autoDiscoverTests();
|
||||
|
||||
assertEquals(setUpPageFn, testCase.setUpPage);
|
||||
assertEquals(setUpFn, testCase.setUp);
|
||||
assertEquals(tearDownFn, testCase.tearDownFn);
|
||||
assertEquals(tearDownPageFn, testCase.tearDownPageFn);
|
||||
|
||||
// Note that this number changes when more tests are added to this file as
|
||||
// the environment reflects on the window global scope for JsUnit.
|
||||
assertEquals(6, testCase.tests_.length);
|
||||
|
||||
testing = false;
|
||||
}
|
||||
|
||||
function testMockClock() {
|
||||
testing = true;
|
||||
|
||||
var env = new goog.labs.testing.Environment().withMockClock();
|
||||
|
||||
testCase.addNewTest('testThatThrowsEventually', function() {
|
||||
setTimeout(function() {
|
||||
throw new Error('LateErrorMessage');
|
||||
}, 200);
|
||||
});
|
||||
|
||||
testCase.runTests();
|
||||
assertTestFailure(testCase, 'testThatThrowsEventually', 'LateErrorMessage');
|
||||
|
||||
testing = false;
|
||||
}
|
||||
|
||||
function testMockControl() {
|
||||
testing = true;
|
||||
|
||||
var env = new goog.labs.testing.Environment().withMockControl();
|
||||
var test = env.mockControl.createFunctionMock('test');
|
||||
|
||||
testCase.addNewTest('testWithoutVerify', function() {
|
||||
test();
|
||||
env.mockControl.$replayAll();
|
||||
test();
|
||||
});
|
||||
|
||||
testCase.runTests();
|
||||
assertNull(env.mockClock);
|
||||
|
||||
testing = false;
|
||||
}
|
||||
|
||||
function testMock() {
|
||||
testing = true;
|
||||
|
||||
var env = new goog.labs.testing.Environment().withMockControl();
|
||||
var mock = env.mock({
|
||||
test: function() {}
|
||||
});
|
||||
|
||||
testCase.addNewTest('testMockCalled', function() {
|
||||
mock.test().$times(2);
|
||||
|
||||
env.mockControl.$replayAll();
|
||||
mock.test();
|
||||
mock.test();
|
||||
env.mockControl.verifyAll();
|
||||
});
|
||||
|
||||
testCase.runTests();
|
||||
|
||||
testing = false;
|
||||
}
|
||||
|
||||
function assertTestFailure(testCase, name, message) {
|
||||
assertContains(message, testCase.result_.resultsByName[name][0]);
|
||||
}
|
||||
Reference in New Issue
Block a user