spec: Test cases for win.setModal(modal)
authorCheng Zhao <zcbenz@gmail.com>
Sat, 18 Jun 2016 00:51:37 +0000 (09:51 +0900)
committerCheng Zhao <zcbenz@gmail.com>
Mon, 20 Jun 2016 02:16:41 +0000 (11:16 +0900)
spec/api-browser-window-spec.js

index 6579da2..5b7794a 100644 (file)
@@ -876,6 +876,57 @@ describe('browser-window module', function () {
         c.close()
       })
     })
+
+    describe('win.setModal(modal)', function () {
+      it('disables parent window', function () {
+        assert.equal(w.isEnabled(), true)
+        c.setParentWindow(w)
+        c.setModal(true)
+        assert.equal(w.isEnabled(), false)
+      })
+
+      it('enables parent window when closed', function (done) {
+        c.once('closed', () => {
+          assert.equal(w.isEnabled(), true)
+          done()
+        })
+        c.setParentWindow(w)
+        c.setModal(true)
+        c.close()
+      })
+
+      it('enables parent window when setting not modal', function () {
+        assert.equal(w.isEnabled(), true)
+        c.setParentWindow(w)
+        c.setModal(true)
+        assert.equal(w.isEnabled(), false)
+        c.setModal(false)
+        assert.equal(w.isEnabled(), true)
+      })
+
+      it('enables parent window when removing parent', function () {
+        assert.equal(w.isEnabled(), true)
+        c.setParentWindow(w)
+        c.setModal(true)
+        assert.equal(w.isEnabled(), false)
+        c.setParentWindow(null)
+        assert.equal(w.isEnabled(), true)
+      })
+
+      it('disables parent window recursively', function () {
+        let c2 = new BrowserWindow({show: false})
+        c.setParentWindow(w)
+        c.setModal(true)
+        c2.setParentWindow(w)
+        c2.setModal(true)
+        assert.equal(w.isEnabled(), false)
+        c.setModal(false)
+        assert.equal(w.isEnabled(), false)
+        c2.setModal(false)
+        assert.equal(w.isEnabled(), true)
+        c2.destroy()
+      })
+    })
   })
 
   describe('window.webContents.send(channel, args...)', function () {