aboutsummaryrefslogtreecommitdiffstats
path: root/test/ng/timeoutSpec.js
diff options
context:
space:
mode:
authorJulie2013-09-13 12:47:05 -0700
committerVojta Jina2013-10-07 13:45:40 -0700
commit2b5ce84fca7b41fca24707e163ec6af84bc12e83 (patch)
treed3fbcfd3c7e2e62fe60df6faa9823abda57b9bd7 /test/ng/timeoutSpec.js
parenta80e96cea184b392505f0a292785a5c66d45e165 (diff)
downloadangular.js-2b5ce84fca7b41fca24707e163ec6af84bc12e83.tar.bz2
feat($interval): add a service wrapping setInterval
The $interval service simplifies creating and testing recurring tasks. This service does not increment $browser's outstanding request count, which means that scenario tests and Protractor tests will not timeout when a site uses a polling function registered by $interval. Provides a workaround for #2402. For unit tests, repeated tasks can be controlled using ngMock$interval's tick(), tickNext(), and tickAll() functions.
Diffstat (limited to 'test/ng/timeoutSpec.js')
-rw-r--r--test/ng/timeoutSpec.js14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/ng/timeoutSpec.js b/test/ng/timeoutSpec.js
index 8de63bec..97c8448e 100644
--- a/test/ng/timeoutSpec.js
+++ b/test/ng/timeoutSpec.js
@@ -165,6 +165,20 @@ describe('$timeout', function() {
}));
+ it('should cancel the promise', inject(function($timeout, log) {
+ var promise = $timeout(noop);
+ promise.then(function(value) { log('promise success: ' + value); },
+ function(err) { log('promise error: ' + err); },
+ function(note) { log('promise update: ' + note); });
+ expect(log).toEqual([]);
+
+ $timeout.cancel(promise);
+ $timeout.flush();
+
+ expect(log).toEqual(['promise error: canceled']);
+ }));
+
+
it('should return true if a task was successfully canceled', inject(function($timeout) {
var task1 = jasmine.createSpy('task1'),
task2 = jasmine.createSpy('task2'),