aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/testing/mockmatchers_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/testing/mockmatchers_test.html')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/testing/mockmatchers_test.html388
1 files changed, 0 insertions, 388 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/testing/mockmatchers_test.html b/contexts/data/lib/closure-library/closure/goog/testing/mockmatchers_test.html
deleted file mode 100644
index 25c8747..0000000
--- a/contexts/data/lib/closure-library/closure/goog/testing/mockmatchers_test.html
+++ /dev/null
@@ -1,388 +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.
--->
-<!--
-
- @author earmbrust@google.com (Erick Armbrust)
--->
-<head>
-<meta http-equiv="X-UA-Compatible" content="IE=edge">
-<title>Closure Unit Tests - goog.testing.mockmatchers</title>
-<script src="../base.js"></script>
-<script>
- goog.require('goog.dom');
- goog.require('goog.testing.FunctionMock');
- goog.require('goog.testing.mockmatchers');
- goog.require('goog.testing.jsunit');
-</script>
-</head>
-<body>
-
-<div id="someDiv">
-</div>
-
-<script>
- // A local reference to the mockmatchers namespace.
- var matchers = goog.testing.mockmatchers;
-
- // Simple classes to test the InstanceOf matcher.
- var foo = function() {};
- var bar = function() {};
-
- // Simple class to test adding error messages to
- // MockExpectation objects
- function MockMock() {
- this.errorMessages = [];
- }
-
- var mockExpect = null;
-
- MockMock.prototype.addErrorMessage = function(msg) {
- this.errorMessages.push(msg);
- };
-
-
- MockMock.prototype.getErrorMessageCount = function() {
- return this.errorMessages.length;
- };
-
-
- function setUp() {
- mockExpect = new MockMock();
- }
-
-
- function testNoMatchName() {
- // A matcher that does not fill in the match name
- var matcher = new goog.testing.mockmatchers.ArgumentMatcher(goog.isString);
-
- // Make sure the lack of match name doesn't affect the ability
- // to return True/False
- assertTrue(matcher.matches('hello'));
- assertFalse(matcher.matches(123));
-
- // Make sure we handle the lack of a match name
- assertFalse(matcher.matches(456, mockExpect));
- assertEquals(1, mockExpect.errorMessages.length);
- assertEquals("Expected: missing mockmatcher description " +
- "but was: <456> (Number)", mockExpect.errorMessages[0]);
- }
-
-
- function testInstanceOf() {
- var matcher = new matchers.InstanceOf(foo);
- assertTrue(matcher.matches(new foo()));
- assertFalse(matcher.matches(new bar()));
-
- assertFalse(matcher.matches(new bar(), mockExpect));
- assertEquals(1, mockExpect.errorMessages.length);
- assertEquals("Expected: instanceOf() " +
- "but was: <[object Object]> (Object)",
- mockExpect.errorMessages[0]);
- }
-
-
- function testTypeOf() {
- var matcher = new matchers.TypeOf('number');
- assertTrue(matcher.matches(1));
- assertTrue(matcher.matches(2));
- assertFalse(matcher.matches('test'));
-
- assertFalse(matcher.matches(true, mockExpect));
- assertEquals(1, mockExpect.errorMessages.length);
- assertEquals("Expected: typeOf(number) but was: <true> (Boolean)",
- mockExpect.errorMessages[0]);
- }
-
-
- function testRegexpMatch() {
- var matcher = new matchers.RegexpMatch(/^cho[dtp]/);
- assertTrue(matcher.matches('chodhop'));
- assertTrue(matcher.matches('chopper'));
- assertFalse(matcher.matches('chocolate'));
- assertFalse(matcher.matches(null));
-
- assertFalse(matcher.matches('an anger', mockExpect));
- assertEquals(1, mockExpect.errorMessages.length);
- assertEquals('Expected: match(/^cho[dtp]/) but was: <an anger> (String)',
- mockExpect.errorMessages[0]);
- }
-
-
- function testObjectEquals() {
- // Test a simple match.
- var simpleMatcher = new matchers.ObjectEquals({name: 'Bob', age: 42});
- assertTrue(simpleMatcher.matches({name: 'Bob', age: 42}, mockExpect));
- assertEquals(0, mockExpect.getErrorMessageCount());
- expectObjectEqualsFailure(simpleMatcher, {name: 'Bill', age: 42},
- 'name: Expected <Bob> (String) but was <Bill> (String)');
- expectObjectEqualsFailure(simpleMatcher, {name: 'Bob', age: 21},
- 'age: Expected <42> (Number) but was <21> (Number)');
- expectObjectEqualsFailure(simpleMatcher, {name: 'Bob'},
- 'property age not present in actual Object');
- expectObjectEqualsFailure(simpleMatcher,
- {name: 'Bob', age: 42, country: 'USA'},
- 'property country not present in expected Object');
-
- // Multiple mismatches should include multiple messages.
- expectObjectEqualsFailure(simpleMatcher, {name: 'Jim', age: 36},
- 'name: Expected <Bob> (String) but was <Jim> (String)\n' +
- ' age: Expected <42> (Number) but was <36> (Number)');
- }
-
- function testComplexObjectEquals() {
- var complexMatcher = new matchers.ObjectEquals(
- {a: 'foo', b: 2, c: ['bar', 3], d: {sub1: 'baz', sub2: -1}});
- assertTrue(complexMatcher.matches(
- {a: 'foo', b: 2, c: ['bar', 3], d: {sub1: 'baz', sub2: -1}}));
- expectObjectEqualsFailure(complexMatcher,
- {a: 'foo', b: 2, c: ['bar', 3], d: {sub1: 'zap', sub2: -1}},
- 'sub1: Expected <baz> (String) but was <zap> (String)');
- expectObjectEqualsFailure(complexMatcher,
- {a: 'foo', b: 2, c: ['bar', 6], d: {sub1: 'baz', sub2: -1}},
- 'c[1]: Expected <3> (Number) but was <6> (Number)');
- }
-
-
- function testSaveArgument() {
- var saveMatcher = new matchers.SaveArgument();
- assertTrue(saveMatcher.matches(42));
- assertEquals(42, saveMatcher.arg);
-
- saveMatcher = new matchers.SaveArgument(goog.isString);
- assertTrue(saveMatcher.matches('test'));
- assertEquals('test', saveMatcher.arg);
- assertFalse(saveMatcher.matches(17));
- assertEquals(17, saveMatcher.arg);
-
- saveMatcher = new matchers.SaveArgument(new matchers.ObjectEquals({
- value: 'value'
- }));
- assertTrue(saveMatcher.matches({ value: 'value' }));
- assertEquals('value', saveMatcher.arg.value);
- assertFalse(saveMatcher.matches('test'));
- assertEquals('test', saveMatcher.arg);
- }
-
-
- function testIsArray() {
- assertTrue(matchers.isArray.matches([]));
- assertTrue(matchers.isArray.matches(new Array()));
- assertFalse(matchers.isArray.matches('test'));
-
- assertFalse(matchers.isArray.matches({}, mockExpect));
- assertEquals(1, mockExpect.errorMessages.length);
- assertEquals("Expected: isArray but was: <[object Object]> (Object)",
- mockExpect.errorMessages[0]);
- }
-
-
- function testIsArrayLike() {
- var nodeList = (function() {
- var div = document.createElement('div');
- div.appendChild(document.createElement('p'));
- div.appendChild(document.createElement('p'));
- return div.getElementsByTagName('div');
- })();
-
- assertTrue(matchers.isArrayLike.matches([]));
- assertTrue(matchers.isArrayLike.matches(new Array()));
- assertTrue(matchers.isArrayLike.matches(nodeList));
- assertFalse(matchers.isArrayLike.matches('test'));
-
- assertFalse(matchers.isArrayLike.matches(3, mockExpect));
- assertEquals(1, mockExpect.errorMessages.length);
- assertEquals("Expected: isArrayLike but was: <3> (Number)",
- mockExpect.errorMessages[0]);
- }
-
-
- function testIsDateLike() {
- assertTrue(matchers.isDateLike.matches(new Date()));
- assertFalse(matchers.isDateLike.matches('test'));
-
- assertFalse(matchers.isDateLike.matches('test', mockExpect));
- assertEquals(1, mockExpect.errorMessages.length);
- assertEquals("Expected: isDateLike but was: <test> (String)",
- mockExpect.errorMessages[0]);
- }
-
-
- function testIsString() {
- assertTrue(matchers.isString.matches('a'));
- assertTrue(matchers.isString.matches('b'));
- assertFalse(matchers.isString.matches(null));
-
- assertFalse(matchers.isString.matches(null, mockExpect));
- assertEquals(1, mockExpect.errorMessages.length);
- assertEquals("Expected: isString but was: <null>",
- mockExpect.errorMessages[0]);
- }
-
-
- function testIsBoolean() {
- assertTrue(matchers.isBoolean.matches(true));
- assertTrue(matchers.isBoolean.matches(false));
- assertFalse(matchers.isBoolean.matches(null));
-
- assertFalse(matchers.isBoolean.matches([], mockExpect));
- assertEquals(1, mockExpect.errorMessages.length);
- assertEquals("Expected: isBoolean but was: <> (Array)",
- mockExpect.errorMessages[0]);
- }
-
-
- function testIsNumber() {
- assertTrue(matchers.isNumber.matches(-1));
- assertTrue(matchers.isNumber.matches(1));
- assertTrue(matchers.isNumber.matches(1.25));
- assertFalse(matchers.isNumber.matches(null));
-
- assertFalse(matchers.isNumber.matches('hello', mockExpect));
- assertEquals(1, mockExpect.errorMessages.length);
- assertEquals("Expected: isNumber but was: <hello> (String)",
- mockExpect.errorMessages[0]);
- }
-
-
- function testIsFunction() {
- assertTrue(matchers.isFunction.matches(function() {}));
- assertFalse(matchers.isFunction.matches('test'));
-
- assertFalse(matchers.isFunction.matches({}, mockExpect));
- assertEquals(1, mockExpect.errorMessages.length);
- assertEquals("Expected: isFunction but was: <[object Object]> (Object)",
- mockExpect.errorMessages[0]);
- }
-
-
- function testIsObject() {
- assertTrue(matchers.isObject.matches({}));
- assertTrue(matchers.isObject.matches(new Object()));
- assertTrue(matchers.isObject.matches(new function() {}));
- assertTrue(matchers.isObject.matches([]));
- assertTrue(matchers.isObject.matches(new Array()));
- assertTrue(matchers.isObject.matches(function() {}));
- assertFalse(matchers.isObject.matches(null));
-
- assertFalse(matchers.isObject.matches(1234, mockExpect));
- assertEquals(1, mockExpect.errorMessages.length);
- assertEquals("Expected: isObject but was: <1234> (Number)",
- mockExpect.errorMessages[0]);
- }
-
-
- function testIsNodeLike() {
- assertFalse(matchers.isNodeLike.matches({}));
- assertFalse(matchers.isNodeLike.matches(1));
- assertFalse(matchers.isNodeLike.matches(function() {}));
- assertFalse(matchers.isNodeLike.matches(false));
- assertTrue(matchers.isNodeLike.matches(document.body));
- assertTrue(matchers.isNodeLike.matches(goog.dom.getElement('someDiv')));
-
- assertFalse(matchers.isNodeLike.matches('test', mockExpect));
- assertEquals(1, mockExpect.errorMessages.length);
- assertEquals("Expected: isNodeLike but was: <test> (String)",
- mockExpect.errorMessages[0]);
- }
-
-
- function testIgnoreArgumentsMatcher() {
- // ignoreArgument always returns true:
- assertTrue(matchers.ignoreArgument.matches());
- assertTrue(matchers.ignoreArgument.matches(356));
- assertTrue(matchers.ignoreArgument.matches('str'));
- assertTrue(matchers.ignoreArgument.matches(['array', 123, false]));
- assertTrue(matchers.ignoreArgument.matches({'map': 1, key2: 'value2'}));
- }
-
-
- function testFlexibleArrayMatcher() {
- // Test that basic lists are verified properly.
- var a1 = [1, 'test'];
- var a2 = [1, 'test'];
- var a3 = [1, 'test', 'extra'];
- assertTrue(matchers.flexibleArrayMatcher(a1, a2));
- assertFalse(matchers.flexibleArrayMatcher(a1, a3));
-
- // Test that basic lists with basic class instances are verified properly.
- var instance = new foo();
- a1 = [1, 'test', instance];
- a2 = [1, 'test', instance];
- a3 = [1, 'test', new foo()];
- assertTrue(matchers.flexibleArrayMatcher(a1, a2));
- assertTrue(matchers.flexibleArrayMatcher(a1, a3));
-
- // Create an argument verifier that returns a consistent value.
- var verifyValue = true;
- var argVerifier = function() {};
- goog.inherits(argVerifier, matchers.ArgumentMatcher);
- argVerifier.prototype.matches = function(arg) {
- return verifyValue;
- };
-
- // Test that the arguments are always verified when the verifier returns
- // true.
- a1 = [1, 'test', new argVerifier()];
- a2 = [1, 'test', 'anything'];
- a3 = [1, 'test', 12345];
- assertTrue(matchers.flexibleArrayMatcher(a1, a2));
- assertTrue(matchers.flexibleArrayMatcher(a1, a3));
-
- // Now test the case when then verifier returns false.
- verifyValue = false;
- assertFalse(matchers.flexibleArrayMatcher(a1, a2));
- assertFalse(matchers.flexibleArrayMatcher(a1, a3));
-
- // And test we report errors back up via the opt_expectation
- assertFalse(matchers.flexibleArrayMatcher(a2, a3, mockExpect));
- assertEquals(1, mockExpect.errorMessages.length);
- assertEquals(
- 'Expected <anything> (String) but was <12345> (Number)\n' +
- ' Expected <anything> (String) but was <12345> (Number)',
- mockExpect.errorMessages[0]);
-
- // And test we report errors found via the matcher
- a1 = [1, goog.testing.mockmatchers.isString ];
- a2 = [1, 'test string'];
- a3 = [1, null];
- assertTrue(matchers.flexibleArrayMatcher(a1, a2, mockExpect));
- assertFalse(matchers.flexibleArrayMatcher(a1, a3, mockExpect));
- // Old error is still there
- assertEquals(2, mockExpect.errorMessages.length);
- assertEquals(
- 'Expected <anything> (String) but was <12345> (Number)\n' +
- ' Expected <anything> (String) but was <12345> (Number)',
- mockExpect.errorMessages[0]);
- // plus the new error...
- assertEquals("Expected: isString but was: <null>",
- mockExpect.errorMessages[1]);
- }
-
-
- /**
- * Utility method for checking for an ObjectEquals match failure. Checks that
- * the expected error message was included in the error messages appended to
- * the expectation object.
- * @param {goog.testing.mockmatchers.ArgumentMatcher.ObjectEquals} matcher
- * The matcher to test against.
- * @param {Object} matchObject The object to compare.
- * @param {string=} opt_errorMsg The deep object comparison failure message
- * to check for.
- */
- function expectObjectEqualsFailure(matcher, matchObject, opt_errorMsg) {
- mockExpect.errorMessages = [];
- assertFalse(matcher.matches(matchObject, mockExpect));
- assertNotEquals(0, mockExpect.getErrorMessageCount());
- if (opt_errorMsg) {
- assertContains(opt_errorMsg, mockExpect.errorMessages[0]);
- }
- }
-</script>
-</body>
-</html>