Browse Source

Add spec for #70.

Cheng Zhao 11 years ago
parent
commit
e00d3d4b37
3 changed files with 52 additions and 0 deletions
  1. 33 0
      spec/api/window.coffee
  2. 10 0
      spec/fixtures/api/close.html
  3. 9 0
      spec/fixtures/api/unload.html

+ 33 - 0
spec/api/window.coffee

@@ -0,0 +1,33 @@
+assert = require 'assert'
+fs = require 'fs'
+path = require 'path'
+remote = require 'remote'
+BrowserWindow = remote.require 'browser-window'
+
+fixtures = path.resolve __dirname, '..', 'fixtures'
+
+describe 'window module', ->
+  describe 'BrowserWindow.close()', ->
+    it 'should emit unload handler', (done) ->
+      w = new BrowserWindow(show: false)
+      w.on 'loading-state-changed', (event, isLoading) ->
+        if (!isLoading)
+          w.close()
+      w.on 'destroyed', ->
+        test = path.join(fixtures, 'api', 'test')
+        content = fs.readFileSync(test)
+        fs.unlinkSync(test)
+        assert.equal String(content), 'unload'
+        done()
+      w.loadUrl 'file://' + path.join(fixtures, 'api', 'unload.html')
+
+  describe 'window.close()', ->
+    it 'should emit unload handler', (done) ->
+      w = new BrowserWindow(show: false)
+      w.on 'destroyed', ->
+        test = path.join(fixtures, 'api', 'close')
+        content = fs.readFileSync(test)
+        fs.unlinkSync(test)
+        assert.equal String(content), 'close'
+        done()
+      w.loadUrl 'file://' + path.join(fixtures, 'api', 'close.html')

+ 10 - 0
spec/fixtures/api/close.html

@@ -0,0 +1,10 @@
+<html>
+<body>
+<script type="text/javascript" charset="utf-8">
+  window.addEventListener('unload', function (e) {
+    require('fs').writeFileSync(__dirname + '/test', 'close');
+  }, false);
+  window.close();
+</script>
+</body>
+</html>

+ 9 - 0
spec/fixtures/api/unload.html

@@ -0,0 +1,9 @@
+<html>
+<body>
+<script type="text/javascript" charset="utf-8">
+  window.addEventListener('unload', function (e) {
+    require('fs').writeFileSync(__dirname + '/test', 'unload');
+  }, false);
+</script>
+</body>
+</html>