mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
remote.require should return the same object for the same module.
This is required to use jasmine to test methods of the remote module.
This commit is contained in:
@@ -87,9 +87,14 @@ window.addEventListener 'unload', (event) ->
|
||||
ipc.sendChannelSync 'ATOM_BROWSER_RELEASE_RENDER_VIEW'
|
||||
|
||||
# Get remote module.
|
||||
# (Just like node's require, the modules are cached permanently, note that this
|
||||
# is safe leak since the object is not expected to get freed in browser)
|
||||
moduleCache = {}
|
||||
exports.require = (module) ->
|
||||
return moduleCache[module] if moduleCache[module]?
|
||||
|
||||
meta = ipc.sendChannelSync 'ATOM_BROWSER_REQUIRE', module
|
||||
metaToValue meta
|
||||
moduleCache[module] = metaToValue meta
|
||||
|
||||
# Get object with specified id.
|
||||
exports.getObject = (id) ->
|
||||
|
||||
9
spec/api/ipc.coffee
Normal file
9
spec/api/ipc.coffee
Normal file
@@ -0,0 +1,9 @@
|
||||
assert = require 'assert'
|
||||
remote = require 'remote'
|
||||
|
||||
describe 'ipc', ->
|
||||
describe 'remote.require', ->
|
||||
it 'should returns same object for the same module', ->
|
||||
dialog1 = remote.require 'dialog'
|
||||
dialog2 = remote.require 'dialog'
|
||||
assert.equal dialog1, dialog2
|
||||
Reference in New Issue
Block a user