aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/testing/mock_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/testing/mock_test.html')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/testing/mock_test.html264
1 files changed, 0 insertions, 264 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/testing/mock_test.html b/contexts/data/lib/closure-library/closure/goog/testing/mock_test.html
deleted file mode 100644
index 2e8c6ec..0000000
--- a/contexts/data/lib/closure-library/closure/goog/testing/mock_test.html
+++ /dev/null
@@ -1,264 +0,0 @@
-<!DOCTYPE html>
-<html>
-<!--
-Copyright 2008 The Closure Library Authors. All Rights Reserved.
-
-Use of this source code is governed by the Apache License, Version 2.0.
-See the COPYING file for details.
--->
-<head>
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<title>Closure Unit Tests - goog.testing.Mock</title>
-<script src="../base.js"></script>
-<script>
- goog.require('goog.array');
- goog.require('goog.object');
- goog.require('goog.testing.Mock');
- goog.require('goog.testing.MockControl');
- goog.require('goog.testing.MockExpectation');
- goog.require('goog.testing.jsunit');
-</script>
-</head>
-<body>
-<script>
-
- // The object that we will be mocking
- var RealObject = function() {
- };
-
- RealObject.prototype.a = function() {
- fail('real object should never be called');
- };
-
- RealObject.prototype.b = function() {
- fail('real object should never be called');
- };
-
- var matchers = goog.testing.mockmatchers;
- var mock;
-
- function setUp() {
- var obj = new RealObject();
- mock = new goog.testing.Mock(obj);
- }
-
- function testMockErrorMessage() {
- var expectation = new goog.testing.MockExpectation('a');
- assertEquals(0, expectation.getErrorMessageCount());
- assertEquals('', expectation.getErrorMessage());
-
- expectation.addErrorMessage('foo failed');
- assertEquals(1, expectation.getErrorMessageCount());
- assertEquals('foo failed', expectation.getErrorMessage());
-
- expectation.addErrorMessage('bar failed');
- assertEquals(2, expectation.getErrorMessageCount());
- assertEquals('foo failed\nbar failed', expectation.getErrorMessage());
- }
-
- function testVerifyArgumentList() {
- var expectation = new goog.testing.MockExpectation('a');
- assertEquals('', expectation.getErrorMessage());
-
- // test single string arg
- expectation.argumentList = ['foo'];
- assertTrue(mock.$verifyCall(expectation, 'a', ['foo']));
-
- // single numeric arg
- expectation.argumentList = [2]
- assertTrue(mock.$verifyCall(expectation, 'a', [2]));
-
- // single object arg (using standard === comparison)
- var obj = {prop1: 'prop1', prop2: 2};
- expectation.argumentList = [obj];
- assertTrue(mock.$verifyCall(expectation, 'a', [obj]));
-
- // make sure comparison succeeds if args are similar, but not ===
- var obj2 = {prop1: 'prop1', prop2: 2};
- expectation.argumentList = [obj];
- assertTrue(mock.$verifyCall(expectation, 'a', [obj2]));
- assertEquals('', expectation.getErrorMessage());
-
- // multiple args
- expectation.argumentList = ['foo', 2, obj, obj2];
- assertTrue(mock.$verifyCall(expectation, 'a', ['foo', 2, obj, obj2]));
-
- // test flexible arg matching.
- expectation.argumentList = ['foo', matchers.isNumber];
- assertTrue(mock.$verifyCall(expectation, 'a', ['foo', 1]));
-
- expectation.argumentList = [new matchers.InstanceOf(RealObject)];
- assertTrue(mock.$verifyCall(expectation, 'a', [new RealObject()]));
- }
-
- function testVerifyArgumentListForObjectMethods() {
- var expectation = new goog.testing.MockExpectation('toString');
- expectation.argumentList = []
- assertTrue(mock.$verifyCall(expectation, 'toString', []));
- }
-
- function testRegisterArgumentListVerifier() {
- var expectationA = new goog.testing.MockExpectation('a');
- var expectationB = new goog.testing.MockExpectation('b');
-
- // Simple matcher that return true if all args are === equivalent.
- mock.$registerArgumentListVerifier('a', function(expectedArgs, args) {
- return goog.array.equals(expectedArgs, args, function(a, b) {
- return (a === b);
- });
- });
-
- // test single string arg
- expectationA.argumentList = ['foo'];
- assertTrue(mock.$verifyCall(expectationA, 'a', ['foo']));
-
- // single numeric arg
- expectationA.argumentList = [2]
- assertTrue(mock.$verifyCall(expectationA, 'a', [2]));
-
- // single object arg (using standard === comparison)
- var obj = {prop1: 'prop1', prop2: 2};
- expectationA.argumentList = [obj];
- expectationB.argumentList = [obj];
- assertTrue(mock.$verifyCall(expectationA, 'a', [obj]));
- assertTrue(mock.$verifyCall(expectationB, 'b', [obj]));
-
- // if args are similar, but not ===, then comparison should succeed
- // for method with registered object matcher, and fail for method without
- var obj2 = {prop1: 'prop1', prop2: 2};
- expectationA.argumentList = [obj];
- expectationB.argumentList = [obj];
- assertFalse(mock.$verifyCall(expectationA, 'a', [obj2]))
- assertTrue(mock.$verifyCall(expectationB, 'b', [obj2]));
-
-
- // multiple args, should fail for method with registered arg matcher,
- // and succeed for method without.
- expectationA.argumentList = ['foo', 2, obj, obj2];
- expectationB.argumentList = ['foo', 2, obj, obj2];
- assertFalse(mock.$verifyCall(expectationA, 'a', ['foo', 2, obj2, obj]));
- assertTrue(mock.$verifyCall(expectationB, 'b', ['foo', 2, obj2, obj]));
- }
-
-
- function testCreateProxy() {
- mock = new goog.testing.Mock(RealObject, false, true);
- assertTrue(mock.$proxy instanceof RealObject);
- assertThrows(function() {
- new goog.testing.Mock(RealObject, true, true);
- });
- assertThrows(function() {
- new goog.testing.Mock(1, false, true);
- });
- }
-
-
- function testValidConstructorArgument() {
- var someNamespace = { };
- assertThrows(function() {
- new goog.testing.Mock(someNamespace.RealObjectWithTypo);
- });
- }
-
-
- function testArgumentsAsString() {
- assertEquals('()', mock.$argumentsAsString([]));
- assertEquals('(string, number, object, null)',
- mock.$argumentsAsString(['red', 1, {}, null]));
- }
-
-
- function testThrowCallExceptionBadArgs() {
- var msg;
- mock.$throwException = function(m) {
- msg = m;
- };
-
- mock.$throwCallException(
- 'fn1', [ 'b' ],
- { name: 'fn1',
- argumentList: [ 'c' ],
- getErrorMessage: function() { return ''; } });
- assertContains(
- 'Bad arguments to fn1().\nActual: (string)\nExpected: (string)', msg);
- }
-
- function testThrowCallExceptionUnexpected() {
- var msg;
- mock.$throwException = function(m) {
- msg = m;
- };
-
- mock.$throwCallException('fn1', [ 'b' ]);
- assertEquals('Unexpected call to fn1(string).', msg);
- }
-
- function testThrowCallExceptionUnexpectedWithNext() {
- var msg;
- mock.$throwException = function(m) {
- msg = m;
- };
-
- mock.$throwCallException(
- 'fn1', [ 'b' ],
- { name: 'fn2',
- argumentList: [ 3 ],
- getErrorMessage: function() { return ''; } });
- assertEquals(
- 'Unexpected call to fn1(string).\n' +
- 'Next expected call was to fn2(number)', msg);
- }
-
- // This tests that base Object functions which are not enumerable in IE can
- // be mocked correctly.
- function testBindNonEnumerableFunctions() {
- // Create Foo and override non enumerable functions.
- var Foo = function() {};
- Foo.prototype.constructor = function() {
- fail('real object should never be called');
- };
- Foo.prototype.hasOwnProperty = function() {
- fail('real object should never be called');
- };
- Foo.prototype.isPrototypeOf = function() {
- fail('real object should never be called');
- };
- Foo.prototype.propertyIsEnumerable = function() {
- fail('real object should never be called');
- };
- Foo.prototype.toLocaleString = function() {
- fail('real object should never be called');
- };
- Foo.prototype.toString = function() {
- fail('real object should never be called');
- };
- Foo.prototype.valueOf = function() {
- fail('real object should never be called');
- };
-
- // Create Mock and set $returns for toString.
- var mockControl = new goog.testing.MockControl();
- var mock = mockControl.createLooseMock(Foo);
- mock.constructor().$returns('constructor');
- mock.hasOwnProperty().$returns('hasOwnProperty');
- mock.isPrototypeOf().$returns('isPrototypeOf');
- mock.propertyIsEnumerable().$returns('propertyIsEnumerable');
- mock.toLocaleString().$returns('toLocaleString');
- mock.toString().$returns('toString');
- mock.valueOf().$returns('valueOf');
-
- // Execute and assert that the Mock is working correctly.
- mockControl.$replayAll();
- assertEquals('constructor', mock.constructor());
- assertEquals('hasOwnProperty', mock.hasOwnProperty());
- assertEquals('isPrototypeOf', mock.isPrototypeOf());
- assertEquals('propertyIsEnumerable', mock.propertyIsEnumerable());
- assertEquals('toLocaleString', mock.toLocaleString());
- assertEquals('toString', mock.toString());
- assertEquals('valueOf', mock.valueOf());
- mockControl.$verifyAll();
- }
-
-</script>
-</body>
-</html>