aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/testing/strictmock_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/testing/strictmock_test.html')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/testing/strictmock_test.html412
1 files changed, 0 insertions, 412 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/testing/strictmock_test.html b/contexts/data/lib/closure-library/closure/goog/testing/strictmock_test.html
deleted file mode 100644
index c868dd4..0000000
--- a/contexts/data/lib/closure-library/closure/goog/testing/strictmock_test.html
+++ /dev/null
@@ -1,412 +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.StrictMock</title>
-<script src="../base.js"></script>
-<script>
- goog.require('goog.testing.StrictMock');
- 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');
- };
-
- RealObject.prototype.c = function() {
- fail('real object should never be called');
- };
-
- var mock;
-
- function setUp() {
- var obj = new RealObject();
- mock = new goog.testing.StrictMock(obj);
- }
-
-
- function testMockFunction() {
- var mock = new goog.testing.StrictMock(RealObject);
- mock.a();
- mock.b();
- mock.c();
- mock.$replay();
- mock.a();
- mock.b();
- mock.c();
- mock.$verify();
-
- mock.$reset();
-
- assertThrows(function() {mock.x()});
- }
-
-
- function testSimpleExpectations() {
- mock.a();
- mock.$replay();
- mock.a();
- mock.$verify();
-
- mock.$reset();
-
- mock.a();
- mock.b();
- mock.a();
- mock.a();
- mock.$replay();
- mock.a();
- mock.b();
- mock.a();
- mock.a();
- mock.$verify();
- }
-
-
- function testFailToSetExpectation() {
- mock.$replay();
- assertThrows(goog.bind(mock.a, mock));
-
- mock.$reset();
-
- mock.$replay();
- assertThrows(goog.bind(mock.b, mock));
- }
-
-
- function testUnexpectedCall() {
- mock.a();
- mock.$replay();
- mock.a();
- assertThrows(goog.bind(mock.a, mock));
-
- mock.$reset();
-
- mock.a();
- mock.$replay();
- assertThrows(goog.bind(mock.b, mock));
- }
-
-
- function testNotEnoughCalls() {
- mock.a();
- mock.$replay();
- assertThrows(goog.bind(mock.$verify, mock));
-
- mock.$reset();
-
- mock.a();
- mock.b();
- mock.$replay();
- mock.a();
- assertThrows(goog.bind(mock.$verify, mock));
- }
-
-
- function testOutOfOrderCalls() {
- mock.a();
- mock.b();
- mock.$replay();
- assertThrows(goog.bind(mock.b, mock));
- }
-
-
- function testVerify() {
- mock.a();
- mock.$replay();
- mock.a();
- mock.$verify();
-
- mock.$reset();
-
- mock.a();
- mock.$replay();
- assertThrows(goog.bind(mock.$verify, mock));
- }
-
-
- function testArgumentMatching() {
- mock.a('foo');
- mock.b('bar');
- mock.$replay();
- mock.a('foo');
- assertThrows(function() {mock.b('foo')});
-
- mock.$reset();
- mock.a('foo');
- mock.a('bar');
- mock.$replay();
- mock.a('foo');
- mock.a('bar');
- mock.$verify();
-
- mock.$reset();
- mock.a('foo');
- mock.a('bar');
- mock.$replay();
- assertThrows(function() {mock.a('bar')});
- }
-
-
- function testReturnValue() {
- mock.a().$returns(5);
- mock.$replay();
-
- assertEquals('Mock should return the right value', 5, mock.a());
-
- mock.$verify();
- }
-
-
- function testAtMostOnce() {
- // Zero times SUCCESS.
- mock.a().$atMostOnce();
- mock.$replay();
- mock.$verify();
-
- mock.$reset();
-
- // One time SUCCESS.
- mock.a().$atMostOnce();
- mock.$replay();
- mock.a();
- mock.$verify();
-
- mock.$reset();
-
- // Many times FAIL.
- mock.a().$atMostOnce();
- mock.$replay();
- mock.a();
- assertThrows(goog.bind(mock.a, mock));
-
- mock.$reset();
-
- // atMostOnce only lasts until a new method is called.
- mock.a().$atMostOnce();
- mock.b();
- mock.a();
- mock.$replay();
- mock.b();
- assertThrows(goog.bind(mock.$verify, mock));
- }
-
-
- function testAtLeastOnce() {
- // atLeastOnce does not mean zero times
- mock.a().$atLeastOnce();
- mock.$replay();
- assertThrows(goog.bind(mock.$verify, mock));
-
- mock.$reset();
-
- // atLeastOnce does mean three times
- mock.a().$atLeastOnce();
- mock.$replay();
- mock.a();
- mock.a();
- mock.a();
- mock.$verify();
-
- mock.$reset();
-
- // atLeastOnce only lasts until a new method is called
- mock.a().$atLeastOnce();
- mock.b();
- mock.a();
- mock.$replay();
- mock.a();
- mock.a();
- mock.b();
- mock.a();
- assertThrows(goog.bind(mock.a, mock));
- }
-
-
- function testAtLeastOnceWithArgs() {
- mock.a('asdf').$atLeastOnce();
- mock.a('qwert');
- mock.$replay();
- mock.a('asdf');
- mock.a('asdf');
- mock.a('qwert');
- mock.$verify();
-
- mock.$reset();
-
- mock.a('asdf').$atLeastOnce();
- mock.a('qwert');
- mock.$replay();
- mock.a('asdf');
- mock.a('asdf');
- assertThrows(function() {mock.a('zxcv')});
- assertThrows(goog.bind(mock.$verify, mock));
- }
-
-
- function testAnyTimes() {
- mock.a().$anyTimes();
- mock.$replay();
- mock.$verify();
-
- mock.$reset();
-
- mock.a().$anyTimes();
- mock.$replay();
- mock.a();
- mock.a();
- mock.a();
- mock.a();
- mock.a();
- mock.$verify();
- }
-
-
- function testAnyTimesWithArguments() {
- mock.a('foo').$anyTimes();
- mock.$replay();
- mock.$verify();
-
- mock.$reset();
-
- mock.a('foo').$anyTimes();
- mock.a('bar').$anyTimes();
- mock.$replay();
- mock.a('foo');
- mock.a('foo');
- mock.a('foo');
- mock.a('bar');
- mock.a('bar');
- mock.$verify();
- }
-
-
- function testZeroTimes() {
- mock.a().$times(0);
- mock.$replay();
- mock.$verify();
-
- mock.$reset();
-
- mock.a().$times(0);
- mock.$replay();
- assertThrows(function() {mock.a()});
- }
-
-
- function testZeroTimesWithArguments() {
- mock.a('foo').$times(0);
- mock.$replay();
- mock.$verify();
-
- mock.$reset();
-
- mock.a('foo').$times(0);
- mock.$replay();
- assertThrows(function() {mock.a('foo')});
- }
-
-
- function testTooManyCalls() {
- mock.a().$times(2);
- mock.$replay();
- mock.a();
- mock.a();
- assertThrows(function() {mock.a()});
- }
-
-
- function testTooManyCallsWithArguments() {
- mock.a('foo').$times(2);
- mock.$replay();
- mock.a('foo');
- mock.a('foo');
- assertThrows(function() {mock.a('foo')});
- }
-
-
- function testMultipleSkippedAnyTimes() {
- mock.a().$anyTimes();
- mock.b().$anyTimes();
- mock.c().$anyTimes();
- mock.$replay();
- mock.c();
- mock.$verify();
- }
-
-
- function testMultipleSkippedAnyTimesWithArguments() {
- mock.a('foo').$anyTimes();
- mock.a('bar').$anyTimes();
- mock.a('baz').$anyTimes();
- mock.$replay();
- mock.a('baz');
- mock.$verify();
- }
-
-
- function testVerifyThrows() {
- mock.a(1);
- mock.$replay();
- mock.a(1);
- try {
- mock.a(2);
- fail('bad mock, should fail');
- } catch (ex) {
- // this could be an event handler, for example
- }
- assertThrows(goog.bind(mock.$verify, mock));
- }
-
-
- function testThrows() {
- mock.a().$throws('exception!');
- mock.$replay();
- assertThrows(goog.bind(mock.a, mock));
- mock.$verify();
- }
-
-
- function testDoes() {
- mock.a(1, 2).$does(function(a, b) {return a + b;});
- mock.$replay();
- assertEquals('Mock should call the function', 3, mock.a(1, 2));
- mock.$verify();
- }
-
- function testErrorMessageForBadArgs() {
- mock.a();
- mock.$anyTimes();
-
- mock.$replay();
-
- var message;
- try {
- mock.a('a');
- } catch (e) {
- message = e.message;
- }
-
- assertTrue('No exception thrown on verify', goog.isDef(message));
- assertContains('Bad arguments to a()', message);
- }
-</script>
-</body>
-</html>