aboutsummaryrefslogtreecommitdiff
path: root/atom/packages/vim-mode/spec/insert-mode-spec.coffee
diff options
context:
space:
mode:
authorBen Beltran <ben@nsovocal.com>2015-09-28 12:39:59 -0500
committerBen Beltran <ben@nsovocal.com>2015-09-28 12:39:59 -0500
commit455f099b504ec07dd492ab31987ae05a6f6774c7 (patch)
tree22b0c7fd8e492733b97e661750a2d79c46da451d /atom/packages/vim-mode/spec/insert-mode-spec.coffee
parent24c7594d62d8d7fbbcdb64b11ce4adc5d8e6991a (diff)
Adds atom packages
Diffstat (limited to 'atom/packages/vim-mode/spec/insert-mode-spec.coffee')
-rw-r--r--atom/packages/vim-mode/spec/insert-mode-spec.coffee73
1 files changed, 73 insertions, 0 deletions
diff --git a/atom/packages/vim-mode/spec/insert-mode-spec.coffee b/atom/packages/vim-mode/spec/insert-mode-spec.coffee
new file mode 100644
index 0000000..061cb50
--- /dev/null
+++ b/atom/packages/vim-mode/spec/insert-mode-spec.coffee
@@ -0,0 +1,73 @@
+helpers = require './spec-helper'
+
+describe "Insert mode commands", ->
+ [editor, editorElement, vimState] = []
+
+ beforeEach ->
+ vimMode = atom.packages.loadPackage('vim-mode')
+ vimMode.activateResources()
+
+ helpers.getEditorElement (element) ->
+ editorElement = element
+ editor = editorElement.getModel()
+ vimState = editorElement.vimState
+ vimState.activateNormalMode()
+ vimState.resetNormalMode()
+
+ keydown = (key, options={}) ->
+ options.element ?= editorElement
+ helpers.keydown(key, options)
+
+ describe "Copy from line above/below", ->
+ beforeEach ->
+ editor.setText("12345\n\nabcd\nefghi")
+ editor.setCursorBufferPosition([1, 0])
+ editor.addCursorAtBufferPosition([3, 0])
+ keydown 'i'
+
+ describe "the ctrl-y command", ->
+ it "copies from the line above", ->
+ keydown 'y', ctrl: true
+ expect(editor.getText()).toBe '12345\n1\nabcd\naefghi'
+
+ editor.insertText ' '
+ keydown 'y', ctrl: true
+ expect(editor.getText()).toBe '12345\n1 3\nabcd\na cefghi'
+
+ it "does nothing if there's nothing above the cursor", ->
+ editor.insertText 'fill'
+ keydown 'y', ctrl: true
+ expect(editor.getText()).toBe '12345\nfill5\nabcd\nfillefghi'
+
+ keydown 'y', ctrl: true
+ expect(editor.getText()).toBe '12345\nfill5\nabcd\nfillefghi'
+
+ it "does nothing on the first line", ->
+ editor.setCursorBufferPosition([0, 2])
+ editor.addCursorAtBufferPosition([3, 2])
+ editor.insertText 'a'
+ expect(editor.getText()).toBe '12a345\n\nabcd\nefaghi'
+ keydown 'y', ctrl: true
+ expect(editor.getText()).toBe '12a345\n\nabcd\nefadghi'
+
+ describe "the ctrl-e command", ->
+ beforeEach ->
+ atom.keymaps.add "test",
+ 'atom-text-editor.vim-mode.insert-mode':
+ 'ctrl-e': 'vim-mode:copy-from-line-below'
+
+ it "copies from the line below", ->
+ keydown 'e', ctrl: true
+ expect(editor.getText()).toBe '12345\na\nabcd\nefghi'
+
+ editor.insertText ' '
+ keydown 'e', ctrl: true
+ expect(editor.getText()).toBe '12345\na c\nabcd\n efghi'
+
+ it "does nothing if there's nothing below the cursor", ->
+ editor.insertText 'foo'
+ keydown 'e', ctrl: true
+ expect(editor.getText()).toBe '12345\nfood\nabcd\nfooefghi'
+
+ keydown 'e', ctrl: true
+ expect(editor.getText()).toBe '12345\nfood\nabcd\nfooefghi'