diff options
Diffstat (limited to 'atom/packages/vim-mode/spec/spec-helper.coffee')
| -rw-r--r-- | atom/packages/vim-mode/spec/spec-helper.coffee | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/atom/packages/vim-mode/spec/spec-helper.coffee b/atom/packages/vim-mode/spec/spec-helper.coffee deleted file mode 100644 index 7cff2fc..0000000 --- a/atom/packages/vim-mode/spec/spec-helper.coffee +++ /dev/null @@ -1,76 +0,0 @@ -VimState = require '../lib/vim-state' -GlobalVimState = require '../lib/global-vim-state' -VimMode = require '../lib/vim-mode' -StatusBarManager = require '../lib/status-bar-manager' - -[globalVimState, statusBarManager] = [] - -beforeEach -> - atom.workspace ||= {} - statusBarManager = null - globalVimState = null - spyOn(atom, 'beep') - -getEditorElement = (callback) -> - textEditor = null - - waitsForPromise -> - atom.project.open().then (e) -> - textEditor = e - - runs -> - element = document.createElement("atom-text-editor") - element.setModel(textEditor) - element.classList.add('vim-mode') - statusBarManager ?= new StatusBarManager - globalVimState ?= new GlobalVimState - element.vimState = new VimState(element, statusBarManager, globalVimState) - - element.addEventListener "keydown", (e) -> - atom.keymaps.handleKeyboardEvent(e) - - # mock parent element for the text editor - document.createElement('html').appendChild(atom.views.getView(textEditor)) - - callback(element) - -mockPlatform = (editorElement, platform) -> - wrapper = document.createElement('div') - wrapper.className = platform - wrapper.appendChild(editorElement) - -unmockPlatform = (editorElement) -> - editorElement.parentNode.removeChild(editorElement) - -dispatchKeyboardEvent = (target, eventArgs...) -> - e = document.createEvent('KeyboardEvent') - e.initKeyboardEvent(eventArgs...) - # 0 is the default, and it's valid ASCII, but it's wrong. - Object.defineProperty(e, 'keyCode', get: -> undefined) if e.keyCode is 0 - target.dispatchEvent e - -dispatchTextEvent = (target, eventArgs...) -> - e = document.createEvent('TextEvent') - e.initTextEvent(eventArgs...) - target.dispatchEvent e - -keydown = (key, {element, ctrl, shift, alt, meta, raw}={}) -> - key = "U+#{key.charCodeAt(0).toString(16)}" unless key is 'escape' or raw? - element ||= document.activeElement - eventArgs = [ - true, # bubbles - true, # cancelable - null, # view - key, # key - 0, # location - ctrl, alt, shift, meta - ] - - canceled = not dispatchKeyboardEvent(element, 'keydown', eventArgs...) - dispatchKeyboardEvent(element, 'keypress', eventArgs...) - if not canceled - if dispatchTextEvent(element, 'textInput', eventArgs...) - element.value += key - dispatchKeyboardEvent(element, 'keyup', eventArgs...) - -module.exports = {keydown, getEditorElement, mockPlatform, unmockPlatform} |