This is required to use jasmine to test methods of the remote module.
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) ->
--- /dev/null
+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