2012-01-27 03:45:49 +04:00
|
|
|
Buffer = require 'buffer'
|
|
|
|
Editor = require 'editor'
|
|
|
|
$ = require 'jquery'
|
|
|
|
_ = require 'underscore'
|
|
|
|
fs = require 'fs'
|
|
|
|
|
|
|
|
describe "Cursor", ->
|
2012-01-28 05:33:02 +04:00
|
|
|
[buffer, editor, cursor] = []
|
2012-01-27 03:45:49 +04:00
|
|
|
|
|
|
|
beforeEach ->
|
|
|
|
buffer = new Buffer(require.resolve('fixtures/sample.js'))
|
2012-02-06 23:12:45 +04:00
|
|
|
editor = new Editor
|
2012-01-27 03:45:49 +04:00
|
|
|
editor.enableKeymap()
|
|
|
|
editor.setBuffer(buffer)
|
2012-04-04 02:36:10 +04:00
|
|
|
cursor = editor.getCursors()[0]
|
2012-01-27 03:45:49 +04:00
|
|
|
|
2012-01-28 05:33:02 +04:00
|
|
|
describe "adding and removing of the idle class", ->
|
|
|
|
it "removes the idle class while moving, then adds it back when it stops", ->
|
|
|
|
advanceClock(200)
|
2012-01-27 03:45:49 +04:00
|
|
|
|
2012-01-28 05:33:02 +04:00
|
|
|
expect(cursor).toHaveClass 'idle'
|
2012-02-24 22:53:18 +04:00
|
|
|
cursor.setScreenPosition([1, 2])
|
2012-01-28 05:33:02 +04:00
|
|
|
expect(cursor).not.toHaveClass 'idle'
|
|
|
|
|
|
|
|
window.advanceClock(200)
|
|
|
|
expect(cursor).toHaveClass 'idle'
|
|
|
|
|
2012-02-24 22:53:18 +04:00
|
|
|
cursor.setScreenPosition([1, 3])
|
2012-01-28 05:33:02 +04:00
|
|
|
advanceClock(100)
|
|
|
|
|
2012-02-24 22:53:18 +04:00
|
|
|
cursor.setScreenPosition([1, 4])
|
2012-01-28 05:33:02 +04:00
|
|
|
advanceClock(100)
|
|
|
|
expect(cursor).not.toHaveClass 'idle'
|
|
|
|
|
|
|
|
advanceClock(100)
|
|
|
|
expect(cursor).toHaveClass 'idle'
|
2012-01-27 03:45:49 +04:00
|
|
|
|
2012-02-07 00:01:52 +04:00
|
|
|
describe ".isOnEOL()", ->
|
|
|
|
it "only returns true when cursor is on the end of a line", ->
|
2012-02-24 22:53:18 +04:00
|
|
|
cursor.setScreenPosition([1,29])
|
2012-02-07 00:01:52 +04:00
|
|
|
expect(cursor.isOnEOL()).toBeFalsy()
|
|
|
|
|
2012-02-24 22:53:18 +04:00
|
|
|
cursor.setScreenPosition([1,30])
|
2012-04-04 21:09:30 +04:00
|
|
|
expect(cursor.isOnEOL()).toBeTruthy()
|