fun! TestCase_returns_instuction_string() let path = expand('%:p:h')."/".'fixtures/GetCurrentInstruction/instructions.php' below 1new exe ":silent! edit ".path call cursor(3, 8) let res = phpcomplete#GetCurrentInstruction(3, 8, [1, 1]) call VUAssertEquals('use Foo1', res, 'should read in the first line as-is') call cursor(7, 7) let res = phpcomplete#GetCurrentInstruction(7, 7, [1, 1]) call VUAssertEquals('use Foo2, Bar', res, 'should return the previous line if the instruction spans multiple line') call cursor(12, 7) let res = phpcomplete#GetCurrentInstruction(12, 7, [1, 1]) call VUAssertEquals('use Foo3, Baz', res, 'should skip content of a comment inside an instruction') call cursor(17, 7) let res = phpcomplete#GetCurrentInstruction(17, 7, [1, 1]) call VUAssertEquals('new Foo', res, 'should simply ignore empty lines') call cursor(23, 3) let res = phpcomplete#GetCurrentInstruction(23, 3, [1, 1]) call VUAssertEquals( \ '$foo()->bar( array('';''))->', \ res, \ 'semicolons in comments or string should be ignored') call cursor(37, 6) let res = phpcomplete#GetCurrentInstruction(37, 6, [1, 1]) call VUAssertEquals( \ '$some_long_variable->love()->me()->love()->me()->say()->that()->you()->love', \ res) call cursor(42, 20) let res = phpcomplete#GetCurrentInstruction(42, 20, [1, 1]) call VUAssertEquals( \ '$this->foo->', \ res) call cursor(48, 6) let res = phpcomplete#GetCurrentInstruction(48, 6, [1, 1]) call VUAssertEquals( \ '$foo->', \ res) call cursor(53, 36) let res = phpcomplete#GetCurrentInstruction(53, 36, [1, 1]) call VUAssertEquals( \ '$date->', \ res) call cursor(55, 38) let res = phpcomplete#GetCurrentInstruction(55, 38, [1, 1]) call VUAssertEquals( \ '$date->', \ res) call cursor(57, 40) let res = phpcomplete#GetCurrentInstruction(57, 40, [1, 1]) call VUAssertEquals( \ '$date->', \ res) call cursor(59, 35) let res = phpcomplete#GetCurrentInstruction(59, 35, [1, 1]) call VUAssertEquals( \ '$date->', \ res) call cursor(64, 28) let res = phpcomplete#GetCurrentInstruction(64, 28, [1, 1]) call VUAssertEquals( \ '$bar2->', \ res) call cursor(65, 46) let res = phpcomplete#GetCurrentInstruction(65, 46, [1, 1]) call VUAssertEquals( \ '(new foo)->', \ res) call cursor(68, 8) let res = phpcomplete#GetCurrentInstruction(68, 8, [1, 1]) call VUAssertEquals( \ '$foo->', \ res) call cursor(70, 8) let res = phpcomplete#GetCurrentInstruction(70, 8, [1, 1]) call VUAssertEquals( \ '$foo->', \ res) call cursor(72, 14) let res = phpcomplete#GetCurrentInstruction(72, 14, [1, 1]) call VUAssertEquals( \ '$foo->', \ res) call cursor(74, 14) let res = phpcomplete#GetCurrentInstruction(74, 14, [1, 1]) call VUAssertEquals( \ '$foo->', \ res) call cursor(76, 28) let res = phpcomplete#GetCurrentInstruction(76, 28, [1, 1]) call VUAssertEquals( \ '$baz->', \ res) call cursor(78, 14) let res = phpcomplete#GetCurrentInstruction(78, 14, [1, 1]) call VUAssertEquals( \ '$foo->', \ res) call cursor(80, 15) let res = phpcomplete#GetCurrentInstruction(80, 15, [1, 1]) call VUAssertEquals( \ '$foo->', \ res) call cursor(82, 16) let res = phpcomplete#GetCurrentInstruction(82, 16, [1, 1]) call VUAssertEquals( \ '$foo->', \ res) call cursor(84, 13) let res = phpcomplete#GetCurrentInstruction(84, 13, [1, 1]) call VUAssertEquals( \ '$foo[$bar]->', \ res) call cursor(86, 12) let res = phpcomplete#GetCurrentInstruction(86, 12, [1, 1]) call VUAssertEquals( \ '$bar->', \ res) call cursor(88, 31) let res = phpcomplete#GetCurrentInstruction(88, 31, [1, 1]) call VUAssertEquals( \ 'DateTime::createFromFormat()->', \ res) call cursor(91, 13) let res = phpcomplete#GetCurrentInstruction(91, 13, [1, 1]) call VUAssertEquals( \ '$foo->', \ res) call cursor(93, 14) let res = phpcomplete#GetCurrentInstruction(93, 14, [1, 1]) call VUAssertEquals( \ '$foo->', \ res) call cursor(96, 48) let res = phpcomplete#GetCurrentInstruction(96, 48, [1, 1]) call VUAssertEquals( \ 'class Foo extends Bar implements ArrayAccess, It', \ res) silent! bw! % endf " vim: foldmethod=marker:expandtab:ts=4:sts=4