1" Test the netbeans interface.
2
3source check.vim
4CheckFeature netbeans_intg
5
6source shared.vim
7
8let s:python = PythonProg()
9if s:python == ''
10  throw 'Skipped: python program missing'
11endif
12
13" Run "testfunc" after starting the server and stop the server afterwards.
14func s:run_server(testfunc, ...)
15  call RunServer('test_netbeans.py', a:testfunc, a:000)
16endfunc
17
18func Nb_basic(port)
19  call delete("Xnetbeans")
20  call writefile([], "Xnetbeans")
21  call writefile(repeat(['abcdefghijklmnopqrstuvwxyz'], 5), "XREADME.txt")
22  exe 'nbstart :localhost:' . a:port . ':bunny'
23  call assert_true(has("netbeans_enabled"))
24
25  call WaitFor('len(readfile("Xnetbeans")) > 2')
26  split +$ XREADME.txt
27
28  " Opening XREADME.txt will result in a setDot command
29  call WaitFor('len(readfile("Xnetbeans")) > 4')
30  call WaitFor('getcurpos()[1] == 3')
31  let pos = getcurpos()
32  call assert_equal(3, pos[1])
33  call assert_equal(20, pos[2])
34  close
35  nbclose
36
37  call WaitFor('len(readfile("Xnetbeans")) > 6')
38  call assert_false(has("netbeans_enabled"))
39  let lines = readfile("Xnetbeans")
40  call assert_equal('AUTH bunny', lines[0])
41  call assert_equal('0:version=0 "2.5"', lines[1])
42  call assert_equal('0:startupDone=0', lines[2])
43  call assert_equal('0:fileOpened=0 "XREADME.txt" T F', substitute(lines[3], '".*/', '"', ''))
44
45  call assert_equal('0:disconnect=1', lines[6])
46
47  call delete("Xnetbeans")
48  call delete("XREADME.txt")
49endfunc
50
51func Test_nb_basic()
52  call ch_log('Test_nb_basic')
53  call s:run_server('Nb_basic')
54endfunc
55
56func Nb_file_auth(port)
57  call delete("Xnetbeans")
58  call writefile([], "Xnetbeans")
59
60  call assert_fails('nbstart =notexist', 'E660:')
61  call writefile(['host=localhost', 'port=' . a:port, 'auth=bunny'], 'Xnbauth')
62  if has('unix')
63    call setfperm('Xnbauth', "rw-r--r--")
64    call assert_fails('nbstart =Xnbauth', 'E668:')
65  endif
66  call setfperm('Xnbauth', "rw-------")
67  exe 'nbstart =Xnbauth'
68  call assert_true(has("netbeans_enabled"))
69
70  call WaitFor('len(readfile("Xnetbeans")) > 2')
71  nbclose
72  let lines = readfile("Xnetbeans")
73  call assert_equal('AUTH bunny', lines[0])
74  call assert_equal('0:version=0 "2.5"', lines[1])
75  call assert_equal('0:startupDone=0', lines[2])
76
77  call delete("Xnbauth")
78  call delete("Xnetbeans")
79endfunc
80
81func Test_nb_file_auth()
82  call ch_log('Test_nb_file_auth')
83  call s:run_server('Nb_file_auth')
84endfunc
85