From 3f265b128362fdcac2f3f92857e1e7f777adc115 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Tue, 29 Mar 2016 23:21:36 +0200 Subject: [PATCH] fix(sidenav): fix is-locked-open backdrop and incorrect backdrop tests * The md-is-locked-open class-selector wasn't valid, because it wasn't probably privatized * The disabled backdrop tests, weren't valid, because the the sidenav wasn't actually opening. Fixes #7537 --- src/components/sidenav/sidenav.js | 7 ++++++- src/components/sidenav/sidenav.scss | 2 +- src/components/sidenav/sidenav.spec.js | 10 +++++----- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/components/sidenav/sidenav.js b/src/components/sidenav/sidenav.js index ba73893324..c72fc4383d 100644 --- a/src/components/sidenav/sidenav.js +++ b/src/components/sidenav/sidenav.js @@ -228,6 +228,7 @@ function SidenavDirective($mdMedia, $mdUtil, $mdConstant, $mdTheming, $animate, */ function postLink(scope, element, attr, sidenavCtrl) { var lastParentOverFlow; + var backdrop; var triggeringElement = null; var promise = $q.when(true); var isLockedOpenParsed = $parse(attr.mdIsLockedOpen); @@ -240,7 +241,11 @@ function SidenavDirective($mdMedia, $mdUtil, $mdConstant, $mdTheming, $animate, $mdMedia: $mdMedia }); }; - var backdrop = !angular.isDefined(attr.mdDisableBackdrop) ? $mdUtil.createBackdrop(scope, "_md-sidenav-backdrop md-opaque ng-enter") : undefined; + + // Only create the backdrop if the backdrop isn't disabled. + if (!angular.isDefined(attr.mdDisableBackdrop)) { + backdrop = $mdUtil.createBackdrop(scope, "_md-sidenav-backdrop md-opaque ng-enter"); + } $mdTheming(element); diff --git a/src/components/sidenav/sidenav.scss b/src/components/sidenav/sidenav.scss index 3771abad3b..eb3b848bbc 100644 --- a/src/components/sidenav/sidenav.scss +++ b/src/components/sidenav/sidenav.scss @@ -70,7 +70,7 @@ md-sidenav { @extend .md-sidenav-left; } -.md-sidenav-backdrop._md-locked-open { +._md-sidenav-backdrop._md-locked-open { display: none; } diff --git a/src/components/sidenav/sidenav.spec.js b/src/components/sidenav/sidenav.spec.js index db26b50b5a..bdd19f3702 100644 --- a/src/components/sidenav/sidenav.spec.js +++ b/src/components/sidenav/sidenav.spec.js @@ -52,18 +52,18 @@ describe('mdSidenav', function() { expect($rootScope.show).toBe(false); })); - it('should show no backdrop if disabled', inject(function($rootScope, $material, $timeout) { - var el = setup('md-disable-backdrop="true"'); + it('should show a backdrop by default', inject(function($rootScope, $material) { + var el = setup('md-is-open="show"'); $rootScope.$apply('show = true'); $material.flushOutstandingAnimations(); var backdrop = el.parent().find('md-backdrop'); - expect(backdrop.length).toBe(0); + expect(backdrop.length).toBe(1); })); - it('should show no backdrop if disabled', inject(function($rootScope, $material, $timeout) { - var el = setup('md-disable-backdrop'); + it('should not show a backdrop if md-disable-backdrop is set to true', inject(function($rootScope, $material) { + var el = setup('md-is-open="show" md-disable-backdrop'); $rootScope.$apply('show = true'); $material.flushOutstandingAnimations();