|
|
|
@ -11,15 +11,15 @@ describe 'AsciiIo.AnsiInterpreter', ->
|
|
|
|
|
expectCall = (args...) ->
|
|
|
|
|
n = checkNumber
|
|
|
|
|
checkNumber += 1
|
|
|
|
|
console.log calls[n]
|
|
|
|
|
# console.log calls[n]
|
|
|
|
|
expect(calls[n]).toEqual args
|
|
|
|
|
|
|
|
|
|
expectNoCall = ->
|
|
|
|
|
console.log calls[0]
|
|
|
|
|
# console.log calls[0]
|
|
|
|
|
expect(calls.length).toEqual 0
|
|
|
|
|
|
|
|
|
|
isSwallowed = ->
|
|
|
|
|
parse data, ''
|
|
|
|
|
isSwallowed = (d = data) ->
|
|
|
|
|
parse d, ''
|
|
|
|
|
expectNoCall()
|
|
|
|
|
|
|
|
|
|
beforeEach ->
|
|
|
|
@ -29,7 +29,7 @@ describe 'AsciiIo.AnsiInterpreter', ->
|
|
|
|
|
|
|
|
|
|
describe '#parse', ->
|
|
|
|
|
|
|
|
|
|
it 'returns not parsed data', ->
|
|
|
|
|
it 'returns not parsed data back', ->
|
|
|
|
|
parse '\x1b', '\x1b'
|
|
|
|
|
expectNoCall()
|
|
|
|
|
|
|
|
|
@ -98,8 +98,7 @@ describe 'AsciiIo.AnsiInterpreter', ->
|
|
|
|
|
describe 'other', ->
|
|
|
|
|
it "is swallowed", ->
|
|
|
|
|
for c in ['\x00', '\x0e', '\x0f', '\x82', '\x94']
|
|
|
|
|
parse c, ''
|
|
|
|
|
expectNoCall()
|
|
|
|
|
isSwallowed c
|
|
|
|
|
|
|
|
|
|
describe 'printable character', ->
|
|
|
|
|
|
|
|
|
@ -149,6 +148,15 @@ describe 'AsciiIo.AnsiInterpreter', ->
|
|
|
|
|
beforeEach ->
|
|
|
|
|
data += '('
|
|
|
|
|
|
|
|
|
|
describe '0', ->
|
|
|
|
|
|
|
|
|
|
beforeEach ->
|
|
|
|
|
data += '0'
|
|
|
|
|
|
|
|
|
|
it 'calls setSpecialCharset', ->
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'setSpecialCharset'
|
|
|
|
|
|
|
|
|
|
describe 'A', ->
|
|
|
|
|
|
|
|
|
|
beforeEach ->
|
|
|
|
@ -321,6 +329,18 @@ describe 'AsciiIo.AnsiInterpreter', ->
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'priorColumn', 3
|
|
|
|
|
|
|
|
|
|
describe 'E', ->
|
|
|
|
|
it 'calls nextRowFirstColumn(n)', ->
|
|
|
|
|
data += '3E'
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'nextRowFirstColumn', 3
|
|
|
|
|
|
|
|
|
|
describe 'F', ->
|
|
|
|
|
it 'calls priorRowFirstColumn(n)', ->
|
|
|
|
|
data += '3F'
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'priorRowFirstColumn', 3
|
|
|
|
|
|
|
|
|
|
describe 'G', ->
|
|
|
|
|
it 'calls goToColumn(n)', ->
|
|
|
|
|
data += '3G'
|
|
|
|
@ -353,6 +373,12 @@ describe 'AsciiIo.AnsiInterpreter', ->
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'goToRowAndColumn', 1, 1
|
|
|
|
|
|
|
|
|
|
describe 'I', ->
|
|
|
|
|
it 'calls goToNextHorizontalTabStop', ->
|
|
|
|
|
data += '2I'
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'goToNextHorizontalTabStop', 2
|
|
|
|
|
|
|
|
|
|
describe 'J', ->
|
|
|
|
|
it 'calls eraseToScreenEnd when no n given', ->
|
|
|
|
|
data += 'J'
|
|
|
|
@ -417,12 +443,65 @@ describe 'AsciiIo.AnsiInterpreter', ->
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'deleteLines', 3
|
|
|
|
|
|
|
|
|
|
describe 'P', ->
|
|
|
|
|
it 'calls deleteCharacters(1) when no n given', ->
|
|
|
|
|
data += 'P'
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'deleteCharacters', 1
|
|
|
|
|
|
|
|
|
|
it 'calls deleteCharacters(n) when n given', ->
|
|
|
|
|
data += '3P'
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'deleteCharacters', 3
|
|
|
|
|
|
|
|
|
|
describe 'S', ->
|
|
|
|
|
it 'calls scrollUp(n)', ->
|
|
|
|
|
data += '4S'
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'scrollUp', 4
|
|
|
|
|
|
|
|
|
|
describe 'T', ->
|
|
|
|
|
it 'calls scrollDown(n)', ->
|
|
|
|
|
data += '4T'
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'scrollDown', 4
|
|
|
|
|
|
|
|
|
|
describe 'X', ->
|
|
|
|
|
it 'calls eraseCharacters(n)', ->
|
|
|
|
|
data += '4X'
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'eraseCharacters', 4
|
|
|
|
|
|
|
|
|
|
describe 'Z', ->
|
|
|
|
|
it 'calls goToPriorHorizontalTabStop(n)', ->
|
|
|
|
|
data += '5Z'
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'goToPriorHorizontalTabStop', 5
|
|
|
|
|
|
|
|
|
|
describe 'b', ->
|
|
|
|
|
# TODO
|
|
|
|
|
|
|
|
|
|
describe 'c', ->
|
|
|
|
|
beforeEach ->
|
|
|
|
|
data += '>c'
|
|
|
|
|
|
|
|
|
|
it 'is swallowed', isSwallowed
|
|
|
|
|
|
|
|
|
|
describe 'd', ->
|
|
|
|
|
it 'calls goToRow(n)', ->
|
|
|
|
|
data += '3d'
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'goToRow', 3
|
|
|
|
|
|
|
|
|
|
describe 'f', ->
|
|
|
|
|
# TODO
|
|
|
|
|
|
|
|
|
|
describe 'g', ->
|
|
|
|
|
# TODO
|
|
|
|
|
|
|
|
|
|
describe 'l', ->
|
|
|
|
|
# TODO
|
|
|
|
|
|
|
|
|
|
describe 'm', ->
|
|
|
|
|
it 'calls handleSGR([n, m, ...]) when n and m given', ->
|
|
|
|
|
data += '1;4;33m'
|
|
|
|
@ -436,22 +515,11 @@ describe 'AsciiIo.AnsiInterpreter', ->
|
|
|
|
|
parse data
|
|
|
|
|
expect(interpreter.handleSGR).toHaveBeenCalledWith([])
|
|
|
|
|
|
|
|
|
|
describe 'P', ->
|
|
|
|
|
it 'calls deleteCharacters(1) when no n given', ->
|
|
|
|
|
data += 'P'
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'deleteCharacters', 1
|
|
|
|
|
describe 'n', ->
|
|
|
|
|
# TODO
|
|
|
|
|
|
|
|
|
|
it 'calls deleteCharacters(n) when n given', ->
|
|
|
|
|
data += '3P'
|
|
|
|
|
parse data
|
|
|
|
|
expectCall 'deleteCharacters', 3
|
|
|
|
|
|
|
|
|
|
describe 'c', ->
|
|
|
|
|
beforeEach ->
|
|
|
|
|
data += '>c'
|
|
|
|
|
|
|
|
|
|
it 'is swallowed', isSwallowed
|
|
|
|
|
describe 'r', ->
|
|
|
|
|
# TODO
|
|
|
|
|
|
|
|
|
|
describe 'from private standards', ->
|
|
|
|
|
# first character after CSI is one of: " < = > (074-077 octal, 3C-3F )
|
|
|
|
|