From eae9eead14fe00f3d48661581f6b316a09743e00 Mon Sep 17 00:00:00 2001 From: Elad Bezalel Date: Wed, 7 Oct 2015 18:59:21 +0300 Subject: [PATCH] fix(interimElement): Removed unnecessary resolve fallback values Removed SHOW_CLOSED fallback that caused false, empty string or undefined in the resolved promise to become true fixes #4094. fixes #4150. closes #4982. --- src/components/dialog/dialog.spec.js | 2 +- src/components/toast/toast.spec.js | 4 +-- .../services/interimElement/interimElement.js | 9 +++--- .../interimElement/interimElement.spec.js | 28 ++++++++++++++++++- 4 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/components/dialog/dialog.spec.js b/src/components/dialog/dialog.spec.js index 2d434315e09..4bf79df83f1 100644 --- a/src/components/dialog/dialog.spec.js +++ b/src/components/dialog/dialog.spec.js @@ -354,7 +354,7 @@ describe('$mdDialog', function() { container = angular.element(parent[0].querySelector('.md-dialog-container')); expect(container.length).toBe(0); - expect(response).toBe(false); + expect(response).toBe(undefined); })); }); diff --git a/src/components/toast/toast.spec.js b/src/components/toast/toast.spec.js index 1ea78cc1ed6..5ecc20a5a10 100644 --- a/src/components/toast/toast.spec.js +++ b/src/components/toast/toast.spec.js @@ -229,7 +229,7 @@ describe('$mdToast service', function() { $material.flushInterimElement(); - expect(result).toBe(true); + expect(result).toBe(undefined); expect(angular.isUndefined(fault)).toBe(true); })); @@ -269,7 +269,7 @@ describe('$mdToast service', function() { $material.flushInterimElement(); - expect(result).toBe(true); + expect(result).toBe(undefined); expect(angular.isUndefined(fault)).toBe(true); })); diff --git a/src/core/services/interimElement/interimElement.js b/src/core/services/interimElement/interimElement.js index 00b41017477..279f425f8ab 100644 --- a/src/core/services/interimElement/interimElement.js +++ b/src/core/services/interimElement/interimElement.js @@ -244,7 +244,6 @@ function InterimElementProvider() { $mdUtil, $mdCompiler, $mdTheming, $log ) { return function createInterimElementService() { var SHOW_CANCELLED = false; - var SHOW_CLOSED = true; /* * @ngdoc service @@ -318,7 +317,7 @@ function InterimElementProvider() { * */ function hide(reason, options) { - if ( !stack.length ) return $q.when(reason || SHOW_CLOSED); + if ( !stack.length ) return $q.when(reason); options = options || {}; if (options.closeAll) { @@ -334,7 +333,7 @@ function InterimElementProvider() { function closeElement(interim) { interim - .remove(reason || SHOW_CLOSED, false, options || { }) + .remove(reason, false, options || { }) .catch(function( reason ) { //$log.error("InterimElement.hide() error: " + reason ); return reason; @@ -357,10 +356,10 @@ function InterimElementProvider() { */ function cancel(reason, options) { var interim = stack.shift(); - if ( !interim ) return $q.when(reason || SHOW_CANCELLED); + if ( !interim ) return $q.when(reason); interim - .remove(reason || SHOW_CANCELLED, true, options || { }) + .remove(reason, true, options || { }) .catch(function( reason ) { //$log.error("InterimElement.cancel() error: " + reason ); return reason; diff --git a/src/core/services/interimElement/interimElement.spec.js b/src/core/services/interimElement/interimElement.spec.js index de19f2b76f0..852c01a9a83 100644 --- a/src/core/services/interimElement/interimElement.spec.js +++ b/src/core/services/interimElement/interimElement.spec.js @@ -534,7 +534,7 @@ describe('$$interimElement service', function() { } })); - it('resolves the show promise', inject(function( ) { + it('resolves the show promise with string', inject(function( ) { var resolved = false; Service.show().then(function(arg) { @@ -547,6 +547,32 @@ describe('$$interimElement service', function() { expect(resolved).toBe(true); })); + it('resolves the show promise with false', inject(function( ) { + var resolved = false; + + Service.show().then(function(arg) { + expect(arg).toBe(false); + resolved = true; + }); + + Service.hide(false); + + expect(resolved).toBe(true); + })); + + it('resolves the show promise with undefined', inject(function( ) { + var resolved = false; + + Service.show().then(function(arg) { + expect(arg).toBe(undefined); + resolved = true; + }); + + Service.hide(); + + expect(resolved).toBe(true); + })); + describe('captures and fails with ',function(){ it('internal exception during hide()', inject(function($q, $timeout) {