1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
After:
unlet! b:parse_result
if exists(':ParseTest')
delcommand ParseTest
endif
Execute(ale#args#Parse should handle empty input):
AssertEqual
\ [{}, ''],
\ ale#args#Parse([], '')
AssertEqual
\ [{}, ''],
\ ale#args#Parse(['foo', 'bar'], '')
Execute(ale#args#Parse should parse commands correctly):
AssertEqual
\ [{'foo': '', 'bar': ''}, 'leave these alone'],
\ ale#args#Parse(['foo', 'bar'], '-foo -bar leave these alone')
AssertEqual
\ [{'foo': ''}, 'leave these alone'],
\ ale#args#Parse(['foo', 'bar'], '-foo leave these alone')
Execute(ale#args#Parse should raise errors for unknown arguments):
AssertThrows call ale#args#Parse(['foo', 'bar'], '-nope leave these alone')
AssertEqual 'Invalid argument: -nope', g:vader_exception
Execute(ale#args#Parse should stop parsing arguments after --):
AssertEqual
\ [{'foo': ''}, ' --nope leave these alone'],
\ ale#args#Parse(['foo', 'bar'], '-foo -- --nope leave these alone')
AssertEqual
\ [{}, '--'],
\ ale#args#Parse(['foo', 'bar'], '-- --')
AssertEqual
\ [{}, ''],
\ ale#args#Parse(['foo', 'bar'], '--')
Execute(ale#args#Parse should work for an example command):
command! -nargs=* ParseTest let b:parse_result = ale#args#Parse(['foo', 'bar'], <q-args>)
ParseTest
AssertEqual [{}, ''], b:parse_result
ParseTest -foo
AssertEqual [{'foo': ''}, ''], b:parse_result
ParseTest -foo -bar
AssertEqual [{'foo': '', 'bar': ''}, ''], b:parse_result
ParseTest -foo -bar leave these alone
AssertEqual [{'foo': '', 'bar': ''}, 'leave these alone'], b:parse_result
|