blob: 836bddff3c18b3635da2df0a880f333bc143defd [file] [log] [blame]
Bram Moolenaar321efdd2016-07-15 17:09:11 +02001" Test the netbeans interface.
2
3if !has('netbeans_intg')
Bram Moolenaarb0f94c12019-06-13 22:19:53 +02004 throw 'Skipped, netbeans_intg feature missing'
Bram Moolenaar321efdd2016-07-15 17:09:11 +02005endif
6
7source shared.vim
8
9let s:python = PythonProg()
10if s:python == ''
Bram Moolenaarb0f94c12019-06-13 22:19:53 +020011 throw 'Skipped, python program missing'
Bram Moolenaar321efdd2016-07-15 17:09:11 +020012endif
13
14" Run "testfunc" after sarting the server and stop the server afterwards.
15func s:run_server(testfunc, ...)
16 call RunServer('test_netbeans.py', a:testfunc, a:000)
17endfunc
18
19func Nb_basic(port)
20 call delete("Xnetbeans")
Bram Moolenaarc20e0d52017-11-02 18:19:19 +010021 call writefile([], "Xnetbeans")
Bram Moolenaar10efcd52018-11-26 21:22:07 +010022 call writefile(repeat(['abcdefghijklmnopqrstuvwxyz'], 5), "XREADME.txt")
Bram Moolenaar321efdd2016-07-15 17:09:11 +020023 exe 'nbstart :localhost:' . a:port . ':bunny'
24 call assert_true(has("netbeans_enabled"))
25
26 call WaitFor('len(readfile("Xnetbeans")) > 2')
Bram Moolenaar10efcd52018-11-26 21:22:07 +010027 split +$ XREADME.txt
Bram Moolenaar321efdd2016-07-15 17:09:11 +020028
Bram Moolenaar10efcd52018-11-26 21:22:07 +010029 " Opening XREADME.txt will result in a setDot command
Bram Moolenaar321efdd2016-07-15 17:09:11 +020030 call WaitFor('len(readfile("Xnetbeans")) > 4')
Bram Moolenaar3e1c6172017-11-02 16:58:00 +010031 call WaitFor('getcurpos()[1] == 3')
Bram Moolenaar321efdd2016-07-15 17:09:11 +020032 let pos = getcurpos()
Bram Moolenaarff330ff2016-09-09 15:31:34 +020033 call assert_equal(3, pos[1])
Bram Moolenaar321efdd2016-07-15 17:09:11 +020034 call assert_equal(20, pos[2])
35 close
36 nbclose
37
38 call WaitFor('len(readfile("Xnetbeans")) > 6')
Bram Moolenaar8ddef482016-10-09 15:43:25 +020039 call assert_false(has("netbeans_enabled"))
Bram Moolenaar321efdd2016-07-15 17:09:11 +020040 let lines = readfile("Xnetbeans")
41 call assert_equal('AUTH bunny', lines[0])
42 call assert_equal('0:version=0 "2.5"', lines[1])
43 call assert_equal('0:startupDone=0', lines[2])
Bram Moolenaar10efcd52018-11-26 21:22:07 +010044 call assert_equal('0:fileOpened=0 "XREADME.txt" T F', substitute(lines[3], '".*/', '"', ''))
Bram Moolenaar321efdd2016-07-15 17:09:11 +020045
46 call assert_equal('0:disconnect=1', lines[6])
47
48 call delete("Xnetbeans")
Bram Moolenaar10efcd52018-11-26 21:22:07 +010049 call delete("XREADME.txt")
Bram Moolenaar321efdd2016-07-15 17:09:11 +020050endfunc
51
52func Test_nb_basic()
53 call ch_log('Test_nb_basic')
54 call s:run_server('Nb_basic')
55endfunc
Bram Moolenaar603d6572016-07-15 17:41:56 +020056
57func Nb_file_auth(port)
Bram Moolenaarc20e0d52017-11-02 18:19:19 +010058 call delete("Xnetbeans")
59 call writefile([], "Xnetbeans")
60
Bram Moolenaar603d6572016-07-15 17:41:56 +020061 call assert_fails('nbstart =notexist', 'E660:')
62 call writefile(['host=localhost', 'port=' . a:port, 'auth=bunny'], 'Xnbauth')
Bram Moolenaar53bdec22016-07-20 00:03:18 +020063 if has('unix')
64 call setfperm('Xnbauth', "rw-r--r--")
65 call assert_fails('nbstart =Xnbauth', 'E668:')
66 endif
Bram Moolenaar603d6572016-07-15 17:41:56 +020067 call setfperm('Xnbauth', "rw-------")
Bram Moolenaarffdf08c2016-08-27 19:52:47 +020068 exe 'nbstart =Xnbauth'
Bram Moolenaar603d6572016-07-15 17:41:56 +020069 call assert_true(has("netbeans_enabled"))
70
71 call WaitFor('len(readfile("Xnetbeans")) > 2')
72 nbclose
73 let lines = readfile("Xnetbeans")
74 call assert_equal('AUTH bunny', lines[0])
75 call assert_equal('0:version=0 "2.5"', lines[1])
76 call assert_equal('0:startupDone=0', lines[2])
77
78 call delete("Xnbauth")
79 call delete("Xnetbeans")
80endfunc
81
82func Test_nb_file_auth()
83 call ch_log('Test_nb_file_auth')
84 call s:run_server('Nb_file_auth')
85endfunc