1 assert = require('./assert')
2 testUtils = require('./utils')
3 createConfigAPI = require('../lib/api-frame')
5 exports['test exports'] = ($vim) ->
6 vimfx = createConfigAPI($vim)
8 assert.equal(typeof vimfx.listen, 'function', 'listen')
9 assert.equal(typeof vimfx.setHintMatcher, 'function', 'setHintMatcher')
10 assert.equal(typeof vimfx.getMarkerElement, 'function', 'getMarkerElement')
12 exports['test vimfx.listen'] = ($vim, teardown) ->
14 onShutdown = (fn) -> shutdownHandlers.push(fn)
15 vimfx = createConfigAPI($vim, onShutdown)
19 reset() for reset in resets
23 messageManager = new testUtils.MockMessageManager()
24 for name, fn of messageManager when typeof fn == 'function'
26 testUtils.stub(FRAME_SCRIPT_ENVIRONMENT, name, fn.bind(messageManager))
29 vimfx.listen('message', ->)
30 assert.equal(messageManager.sendAsyncMessageCalls, 0)
31 assert.equal(messageManager.addMessageListenerCalls, 1)
32 assert.equal(messageManager.removeMessageListenerCalls, 0)
34 assert.equal(shutdownHandlers.length, 1)
36 assert.equal(messageManager.sendAsyncMessageCalls, 0)
37 assert.equal(messageManager.addMessageListenerCalls, 1)
38 assert.equal(messageManager.removeMessageListenerCalls, 1)
40 exports['test vimfx.setHintMatcher'] = ($vim) ->
42 onShutdown = (fn) -> shutdownHandlers.push(fn)
43 vimfx = createConfigAPI($vim, onShutdown)
45 assert.ok(not $vim.hintMatcher)
48 vimfx.setHintMatcher(hintMatcher)
49 assert.equal($vim.hintMatcher, hintMatcher)
51 assert.equal(shutdownHandlers.length, 1)
53 assert.ok(not $vim.hintMatcher)
55 exports['test vimfx.getMarkerElement'] = ($vim, teardown) ->
57 $vim.state.markerElements = []
60 vimfx = createConfigAPI($vim)
62 $vim.state.markerElements = [{element}]
64 assert.equal(vimfx.getMarkerElement(0), element)
65 assert.equal(vimfx.getMarkerElement(1), null)
66 assert.equal(vimfx.getMarkerElement(null), null)
68 $vim.state.markerElements = []
69 assert.equal(vimfx.getMarkerElement(0), null)
71 exports['test vimfx.listen errors'] = ($vim) ->
72 vimfx = createConfigAPI($vim)
74 assert.throws(/message string/i, 'undefined', ->
78 assert.throws(/message string/i, 'false', ->
82 assert.throws(/listener function/i, 'undefined', ->
83 vimfx.listen('message')
86 assert.throws(/listener function/i, 'false', ->
87 vimfx.listen('message', false)
90 exports['test vimfx.setHintMatcher errors'] = ($vim) ->
91 vimfx = createConfigAPI($vim)
93 assert.throws(/function/i, 'undefined', ->
94 vimfx.setHintMatcher()
97 assert.throws(/function/i, 'false', ->
98 vimfx.setHintMatcher(false)