From 9bb8e5ba5e7531ffbc4c1796d5aededf3346e579 Mon Sep 17 00:00:00 2001 From: "Manu Mtz.-Almeida" Date: Sat, 19 Nov 2016 18:42:47 +0100 Subject: [PATCH] test(modal): make sure enableBackdropDismiss works correctly references #9185 --- src/components/action-sheet/test/basic/main.html | 5 ++++- src/components/loading/loading-component.ts | 1 + src/components/modal/modal-component.ts | 5 ++++- src/components/modal/modal.ts | 3 ++- src/components/modal/test/basic/app-module.ts | 8 +++++++- src/components/modal/test/basic/main.html | 8 +++++++- 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/components/action-sheet/test/basic/main.html b/src/components/action-sheet/test/basic/main.html index 9e601979f2..36ec8176e8 100644 --- a/src/components/action-sheet/test/basic/main.html +++ b/src/components/action-sheet/test/basic/main.html @@ -10,7 +10,10 @@ - +
diff --git a/src/components/loading/loading-component.ts b/src/components/loading/loading-component.ts
index a86ed89153..a6f45adea5 100644
--- a/src/components/loading/loading-component.ts
+++ b/src/components/loading/loading-component.ts
@@ -40,6 +40,7 @@ export class LoadingCmp {
     params: NavParams,
     renderer: Renderer
   ) {
+    assert(params.data, 'params data must be valid');
     this.gestureBlocker = gestureCtrl.createBlocker(BLOCK_ALL);
     this.d = params.data;
 
diff --git a/src/components/modal/modal-component.ts b/src/components/modal/modal-component.ts
index 3df20fb76b..43737ed5e2 100644
--- a/src/components/modal/modal-component.ts
+++ b/src/components/modal/modal-component.ts
@@ -32,10 +32,13 @@ export class ModalCmp {
     public _viewCtrl: ViewController,
     gestureCtrl: GestureController
   ) {
+    let opts = _navParams.get('opts');
+    assert(opts, 'modal data must be valid');
+
     this._gestureBlocker = gestureCtrl.createBlocker({
       disable: [GESTURE_MENU_SWIPE, GESTURE_GO_BACK_SWIPE]
     });
-    this._bdDismiss = _navParams.data.opts.enableBackdropDismiss;
+    this._bdDismiss = opts.enableBackdropDismiss;
   }
 
   ionViewPreLoad() {
diff --git a/src/components/modal/modal.ts b/src/components/modal/modal.ts
index 686f661744..63e193e8e2 100644
--- a/src/components/modal/modal.ts
+++ b/src/components/modal/modal.ts
@@ -15,7 +15,8 @@ import { ViewController } from '../../navigation/view-controller';
 export class Modal extends ViewController {
   private _app: App;
 
-  constructor(app: App, component: any, data: any = {}, opts: ModalOptions = {}) {
+  constructor(app: App, component: any, data: any, opts: ModalOptions = {}) {
+    data = data || {};
     data.component = component;
     opts.showBackdrop = isPresent(opts.showBackdrop) ? !!opts.showBackdrop : true;
     opts.enableBackdropDismiss = isPresent(opts.enableBackdropDismiss) ? !!opts.enableBackdropDismiss : true;
diff --git a/src/components/modal/test/basic/app-module.ts b/src/components/modal/test/basic/app-module.ts
index f441b89730..088895eab1 100644
--- a/src/components/modal/test/basic/app-module.ts
+++ b/src/components/modal/test/basic/app-module.ts
@@ -62,6 +62,10 @@ export class E2EPage {
     this.platforms = platform.platforms();
   }
 
+  push() {
+    this.navCtrl.push(E2EPage);
+  }
+
   presentModal() {
     let modal = this.modalCtrl.create(ModalPassData, { userId: 8675309 });
     modal.present();
@@ -77,7 +81,9 @@ export class E2EPage {
   }
 
   presentModalChildNav() {
-    this.modalCtrl.create(ContactUs).present();
+    this.modalCtrl.create(ContactUs, null, {
+      enableBackdropDismiss: false
+    }).present();
   }
 
   presentToolbarModal() {
diff --git a/src/components/modal/test/basic/main.html b/src/components/modal/test/basic/main.html
index 9e99f95d90..a8f79bac8a 100644
--- a/src/components/modal/test/basic/main.html
+++ b/src/components/modal/test/basic/main.html
@@ -2,6 +2,9 @@
 
   
     Modals
+    
+      
+    
   
 
 
@@ -13,7 +16,10 @@
     
   

- +