1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- // Copyright 2012 The Closure Library Authors. All Rights Reserved.
- // Use of this source code is governed by the Apache License, Version 2.0.
- goog.provide('goog.result.DeferredAdaptorTest');
- goog.setTestOnly('goog.result.DeferredAdaptorTest');
- goog.require('goog.result');
- goog.require('goog.result.DeferredAdaptor');
- goog.require('goog.result.SimpleResult');
- goog.require('goog.testing.jsunit');
- goog.require('goog.testing.recordFunction');
- var result, deferred, record;
- function setUp() {
- result = new goog.result.SimpleResult();
- deferred = new goog.result.DeferredAdaptor(result);
- record = new goog.testing.recordFunction();
- }
- function tearDown() {
- result = deferred = record = null;
- }
- function testResultSuccessfulResolution() {
- deferred.addCallback(record);
- result.setValue(1);
- assertEquals(1, record.getCallCount());
- var call = record.popLastCall();
- assertEquals(1, call.getArgument(0));
- }
- function testResultErrorResolution() {
- deferred.addErrback(record);
- result.setError(2);
- assertEquals(1, record.getCallCount());
- var call = record.popLastCall();
- assertEquals(2, call.getArgument(0));
- }
- function testResultCancelResolution() {
- deferred.addCallback(record);
- var cancelCallback = new goog.testing.recordFunction();
- deferred.addErrback(cancelCallback);
- result.cancel();
- assertEquals(0, record.getCallCount());
- assertEquals(1, cancelCallback.getCallCount());
- var call = cancelCallback.popLastCall();
- assertTrue(call.getArgument(0) instanceof
- goog.async.Deferred.CanceledError);
- }
- function testAddCallbackOnResolvedResult() {
- result.setValue(1);
- assertEquals(1, result.getValue());
- deferred.addCallback(record);
- // callback should be called immediately when result is already resolved.
- assertEquals(1, record.getCallCount());
- assertEquals(1, record.popLastCall().getArgument(0));
- }
- function testAddErrbackOnErroredResult() {
- result.setError(1);
- assertEquals(1, result.getError());
- // errback should be called immediately when result already errored.
- deferred.addErrback(record);
- assertEquals(1, record.getCallCount());
- assertEquals(1, record.popLastCall().getArgument(0));
- }
|