         waitsForPromise -> editor.checkoutHeadRevision()
 
   describe ".moveToPreviousSubwordBoundary", ->
-    it 'does not change an empty file', ->
+    it "does not move the cursor when there is no previous subword boundary", ->
       editor.setText('')
       editor.moveToPreviousSubwordBoundary()
       expect(editor.getCursorBufferPosition()).toEqual([0, 0])
 
-    it "traverses normal words", ->
+    it "stops at word and underscore boundaries", ->
       editor.setText("_word \n")
       editor.setCursorBufferPosition([0, 6])
       editor.moveToPreviousSubwordBoundary()

      editor.moveToPreviousSubwordBoundary()
      expect(editor.getCursorBufferPosition()).toEqual([0, 1])

    describe "when 2 cursors", ->
      it "traverses both camelCase words", ->
        editor.setText("curOp\ncursorOptions\n")
        editor.setCursorBufferPosition([0, 8])
        editor.addCursorAtBufferPosition([1, 13])
        [cursor1, cursor2] = editor.getCursors()

        editor.moveToPreviousSubwordBoundary()

        expect(cursor1.getBufferPosition()).toEqual([0, 3])
        expect(cursor2.getBufferPosition()).toEqual([1, 6])

  describe ".moveToNextSubwordBoundary", ->
    it 'does not change an empty file', ->
      editor.setText('')
      editor.moveToNextSubwordBoundary()
      expect(editor.getCursorBufferPosition()).toEqual([0, 0])

    it "traverses normal words", ->
      editor.setText(" word_ \n")
      editor.setCursorBufferPosition([0, 0])
      editor.moveToNextSubwordBoundary()

      editor.moveToPreviousSubwordBoundary()
      expect(editor.getCursorBufferPosition()).toEqual([0, 1])

    it "skips consecutive uppercase characters", ->
      editor.setText(" AAADF \n")
      editor.setCursorBufferPosition([0, 7])
      editor.moveToPreviousSubwordBoundary()
