annotate src/testdir/test_ruby.vim @ 17049:f38fcbf343ce v8.1.1524

patch 8.1.1524: tests are silently skipped commit https://github.com/vim/vim/commit/b0f94c1ff34d27d33aa9f96204985ea29c2eb0a1 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jun 13 22:19:53 2019 +0200 patch 8.1.1524: tests are silently skipped Problem: Tests are silently skipped. Solution: Throw an exception for skipped tests in more places.
author Bram Moolenaar <Bram@vim.org>
date Thu, 13 Jun 2019 22:30:07 +0200
parents 518f44125207
children 8e9e9124c7a2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9338
f23feeba7549 commit https://github.com/vim/vim/commit/85babd6db65afb0eb06a7a9a0778d692248c5c2b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Tests for ruby interface
f23feeba7549 commit https://github.com/vim/vim/commit/85babd6db65afb0eb06a7a9a0778d692248c5c2b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
f23feeba7549 commit https://github.com/vim/vim/commit/85babd6db65afb0eb06a7a9a0778d692248c5c2b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 if !has('ruby')
17049
f38fcbf343ce patch 8.1.1524: tests are silently skipped
Bram Moolenaar <Bram@vim.org>
parents: 16103
diff changeset
4 throw 'Skipped, ruby feature missing'
9338
f23feeba7549 commit https://github.com/vim/vim/commit/85babd6db65afb0eb06a7a9a0778d692248c5c2b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5 end
f23feeba7549 commit https://github.com/vim/vim/commit/85babd6db65afb0eb06a7a9a0778d692248c5c2b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6
f23feeba7549 commit https://github.com/vim/vim/commit/85babd6db65afb0eb06a7a9a0778d692248c5c2b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 func Test_ruby_change_buffer()
f23feeba7549 commit https://github.com/vim/vim/commit/85babd6db65afb0eb06a7a9a0778d692248c5c2b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 call setline(line('$'), ['1 line 1'])
f23feeba7549 commit https://github.com/vim/vim/commit/85babd6db65afb0eb06a7a9a0778d692248c5c2b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 ruby Vim.command("normal /^1\n")
f23feeba7549 commit https://github.com/vim/vim/commit/85babd6db65afb0eb06a7a9a0778d692248c5c2b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 ruby $curbuf.line = "1 changed line 1"
f23feeba7549 commit https://github.com/vim/vim/commit/85babd6db65afb0eb06a7a9a0778d692248c5c2b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 call assert_equal('1 changed line 1', getline('$'))
f23feeba7549 commit https://github.com/vim/vim/commit/85babd6db65afb0eb06a7a9a0778d692248c5c2b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 endfunc
f23feeba7549 commit https://github.com/vim/vim/commit/85babd6db65afb0eb06a7a9a0778d692248c5c2b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13
10761
721af7a9b4b4 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Christian Brabandt <cb@256bit.org>
parents: 9338
diff changeset
14 func Test_rubydo()
721af7a9b4b4 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Christian Brabandt <cb@256bit.org>
parents: 9338
diff changeset
15 " Check deleting lines does not trigger ml_get error.
721af7a9b4b4 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Christian Brabandt <cb@256bit.org>
parents: 9338
diff changeset
16 new
721af7a9b4b4 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Christian Brabandt <cb@256bit.org>
parents: 9338
diff changeset
17 call setline(1, ['one', 'two', 'three'])
721af7a9b4b4 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Christian Brabandt <cb@256bit.org>
parents: 9338
diff changeset
18 rubydo Vim.command("%d_")
721af7a9b4b4 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Christian Brabandt <cb@256bit.org>
parents: 9338
diff changeset
19 bwipe!
721af7a9b4b4 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Christian Brabandt <cb@256bit.org>
parents: 9338
diff changeset
20
721af7a9b4b4 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Christian Brabandt <cb@256bit.org>
parents: 9338
diff changeset
21 " Check switching to another buffer does not trigger ml_get error.
721af7a9b4b4 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Christian Brabandt <cb@256bit.org>
parents: 9338
diff changeset
22 new
721af7a9b4b4 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Christian Brabandt <cb@256bit.org>
parents: 9338
diff changeset
23 let wincount = winnr('$')
721af7a9b4b4 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Christian Brabandt <cb@256bit.org>
parents: 9338
diff changeset
24 call setline(1, ['one', 'two', 'three'])
721af7a9b4b4 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Christian Brabandt <cb@256bit.org>
parents: 9338
diff changeset
25 rubydo Vim.command("new")
721af7a9b4b4 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Christian Brabandt <cb@256bit.org>
parents: 9338
diff changeset
26 call assert_equal(wincount + 1, winnr('$'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
27 %bwipe!
10761
721af7a9b4b4 patch 8.0.0270: may get ml_get error when :rubydo deletes lines
Christian Brabandt <cb@256bit.org>
parents: 9338
diff changeset
28 endfunc
13148
f06a0a75d5b1 patch 8.0.1448: segfault with exception inside :rubyfile command
Christian Brabandt <cb@256bit.org>
parents: 10761
diff changeset
29
f06a0a75d5b1 patch 8.0.1448: segfault with exception inside :rubyfile command
Christian Brabandt <cb@256bit.org>
parents: 10761
diff changeset
30 func Test_rubyfile()
f06a0a75d5b1 patch 8.0.1448: segfault with exception inside :rubyfile command
Christian Brabandt <cb@256bit.org>
parents: 10761
diff changeset
31 " Check :rubyfile does not SEGV with Ruby level exception but just fails
f06a0a75d5b1 patch 8.0.1448: segfault with exception inside :rubyfile command
Christian Brabandt <cb@256bit.org>
parents: 10761
diff changeset
32 let tempfile = tempname() . '.rb'
f06a0a75d5b1 patch 8.0.1448: segfault with exception inside :rubyfile command
Christian Brabandt <cb@256bit.org>
parents: 10761
diff changeset
33 call writefile(['raise "vim!"'], tempfile)
f06a0a75d5b1 patch 8.0.1448: segfault with exception inside :rubyfile command
Christian Brabandt <cb@256bit.org>
parents: 10761
diff changeset
34 call assert_fails('rubyfile ' . tempfile)
f06a0a75d5b1 patch 8.0.1448: segfault with exception inside :rubyfile command
Christian Brabandt <cb@256bit.org>
parents: 10761
diff changeset
35 call delete(tempfile)
f06a0a75d5b1 patch 8.0.1448: segfault with exception inside :rubyfile command
Christian Brabandt <cb@256bit.org>
parents: 10761
diff changeset
36 endfunc
14395
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 13148
diff changeset
37
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 13148
diff changeset
38 func Test_set_cursor()
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 13148
diff changeset
39 " Check that setting the cursor position works.
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 13148
diff changeset
40 new
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 13148
diff changeset
41 call setline(1, ['first line', 'second line'])
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 13148
diff changeset
42 normal gg
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 13148
diff changeset
43 rubydo $curwin.cursor = [1, 5]
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 13148
diff changeset
44 call assert_equal([1, 6], [line('.'), col('.')])
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
45 call assert_equal([1, 5], rubyeval('$curwin.cursor'))
14395
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 13148
diff changeset
46
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 13148
diff changeset
47 " Check that movement after setting cursor position keeps current column.
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 13148
diff changeset
48 normal j
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 13148
diff changeset
49 call assert_equal([2, 6], [line('.'), col('.')])
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
50 call assert_equal([2, 5], rubyeval('$curwin.cursor'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
51
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
52 call assert_fails('ruby $curwin.cursor = [1]',
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
53 \ 'ArgumentError: array length must be 2')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
54 bwipe!
14395
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 13148
diff changeset
55 endfunc
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
56
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
57 " Test buffer.count and buffer.length (number of lines in buffer)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
58 func Test_buffer_count()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
59 new
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
60 call setline(1, ['one', 'two', 'three'])
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
61 call assert_equal(3, rubyeval('$curbuf.count'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
62 call assert_equal(3, rubyeval('$curbuf.length'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
63 bwipe!
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
64 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
65
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
66 " Test buffer.name (buffer name)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
67 func Test_buffer_name()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
68 new Xfoo
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
69 call assert_equal(expand('%:p'), rubyeval('$curbuf.name'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
70 bwipe
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
71 call assert_equal(v:null, rubyeval('$curbuf.name'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
72 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
73
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
74 " Test buffer.number (number of the buffer).
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
75 func Test_buffer_number()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
76 new
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
77 call assert_equal(bufnr('%'), rubyeval('$curbuf.number'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
78 new
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
79 call assert_equal(bufnr('%'), rubyeval('$curbuf.number'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
80
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
81 %bwipe
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
82 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
83
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
84 " Test buffer.delete({n}) (delete line {n})
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
85 func Test_buffer_delete()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
86 new
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
87 call setline(1, ['one', 'two', 'three'])
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
88 ruby $curbuf.delete(2)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
89 call assert_equal(['one', 'three'], getline(1, '$'))
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
90
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
91 call assert_fails('ruby $curbuf.delete(0)', 'IndexError: line number 0 out of range')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
92 call assert_fails('ruby $curbuf.delete(3)', 'IndexError: line number 3 out of range')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
93
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
94 bwipe!
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
95 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
96
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
97 " Test buffer.append({str}, str) (append line {str} after line {n})
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
98 func Test_buffer_append()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
99 new
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
100 ruby $curbuf.append(0, 'one')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
101 ruby $curbuf.append(1, 'three')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
102 ruby $curbuf.append(1, 'two')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
103 ruby $curbuf.append(4, 'four')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
104
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
105 call assert_equal(['one', 'two', 'three', '', 'four'], getline(1, '$'))
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
106
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
107 call assert_fails('ruby $curbuf.append(-1, "x")',
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
108 \ 'IndexError: line number -1 out of range')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
109 call assert_fails('ruby $curbuf.append(6, "x")',
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
110 \ 'IndexError: line number 6 out of range')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
111
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
112 bwipe!
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
113 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
114
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
115 " Test buffer.line (get or set the current line)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
116 func Test_buffer_line()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
117 new
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
118 call setline(1, ['one', 'two', 'three'])
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
119 2
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
120 call assert_equal('two', rubyeval('$curbuf.line'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
121
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
122 ruby $curbuf.line = 'TWO'
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
123 call assert_equal(['one', 'TWO', 'three'], getline(1, '$'))
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
124
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
125 bwipe!
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
126 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
127
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
128 " Test buffer.line_number (get current line number)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
129 func Test_buffer_line_number()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
130 new
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
131 call setline(1, ['one', 'two', 'three'])
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
132 2
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
133 call assert_equal(2, rubyeval('$curbuf.line_number'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
134
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
135 bwipe!
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
136 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
137
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
138 func Test_buffer_get()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
139 new
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
140 call setline(1, ['one', 'two'])
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
141 call assert_equal('one', rubyeval('$curbuf[1]'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
142 call assert_equal('two', rubyeval('$curbuf[2]'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
143
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
144 call assert_fails('ruby $curbuf[0]',
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
145 \ 'IndexError: line number 0 out of range')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
146 call assert_fails('ruby $curbuf[3]',
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
147 \ 'IndexError: line number 3 out of range')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
148
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
149 bwipe!
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
150 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
151
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
152 func Test_buffer_set()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
153 new
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
154 call setline(1, ['one', 'two'])
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
155 ruby $curbuf[2] = 'TWO'
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
156 ruby $curbuf[1] = 'ONE'
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
157
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
158 call assert_fails('ruby $curbuf[0] = "ZERO"',
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
159 \ 'IndexError: line number 0 out of range')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
160 call assert_fails('ruby $curbuf[3] = "THREE"',
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
161 \ 'IndexError: line number 3 out of range')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
162 bwipe!
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
163 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
164
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
165 " Test window.width (get or set window height).
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
166 func Test_window_height()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
167 new
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
168
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
169 " Test setting window height
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
170 ruby $curwin.height = 2
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
171 call assert_equal(2, winheight(0))
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
172
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
173 " Test getting window height
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
174 call assert_equal(2, rubyeval('$curwin.height'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
175
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
176 bwipe
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
177 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
178
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
179 " Test window.width (get or set window width).
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
180 func Test_window_width()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
181 vnew
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
182
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
183 " Test setting window width
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
184 ruby $curwin.width = 2
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
185 call assert_equal(2, winwidth(0))
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
186
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
187 " Test getting window width
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
188 call assert_equal(2, rubyeval('$curwin.width'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
189
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
190 bwipe
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
191 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
192
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
193 " Test window.buffer (get buffer object of a window object).
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
194 func Test_window_buffer()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
195 new Xfoo1
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
196 new Xfoo2
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
197 ruby $b2 = $curwin.buffer
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
198 ruby $w2 = $curwin
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
199 wincmd j
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
200 ruby $b1 = $curwin.buffer
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
201 ruby $w1 = $curwin
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
202
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
203 call assert_equal(rubyeval('$b1'), rubyeval('$w1.buffer'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
204 call assert_equal(rubyeval('$b2'), rubyeval('$w2.buffer'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
205 call assert_equal(bufnr('Xfoo1'), rubyeval('$w1.buffer.number'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
206 call assert_equal(bufnr('Xfoo2'), rubyeval('$w2.buffer.number'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
207
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
208 ruby $b1, $w1, $b2, $w2 = nil
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
209 %bwipe
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
210 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
211
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
212 " Test Vim::Window.current (get current window object)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
213 func Test_Vim_window_current()
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
214 let cw = rubyeval('$curwin')
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
215 call assert_equal(cw, rubyeval('Vim::Window.current'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
216 call assert_match('^#<Vim::Window:0x\x\+>$', cw)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
217 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
218
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
219 " Test Vim::Window.count (number of windows)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
220 func Test_Vim_window_count()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
221 new Xfoo1
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
222 new Xfoo2
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
223 split
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
224 call assert_equal(4, rubyeval('Vim::Window.count'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
225 %bwipe
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
226 call assert_equal(1, rubyeval('Vim::Window.count'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
227 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
228
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
229 " Test Vim::Window[n] (get window object of window n)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
230 func Test_Vim_window_get()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
231 new Xfoo1
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
232 new Xfoo2
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
233 call assert_match('Xfoo2$', rubyeval('Vim::Window[0].buffer.name'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
234 wincmd j
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
235 call assert_match('Xfoo1$', rubyeval('Vim::Window[1].buffer.name'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
236 wincmd j
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
237 call assert_equal(v:null, rubyeval('Vim::Window[2].buffer.name'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
238 %bwipe
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
239 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
240
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
241 " Test Vim::Buffer.current (return the buffer object of current buffer)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
242 func Test_Vim_buffer_current()
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
243 let cb = rubyeval('$curbuf')
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
244 call assert_equal(cb, rubyeval('Vim::Buffer.current'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
245 call assert_match('^#<Vim::Buffer:0x\x\+>$', cb)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
246 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
247
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
248 " Test Vim::Buffer:.count (return the number of buffers)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
249 func Test_Vim_buffer_count()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
250 new Xfoo1
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
251 new Xfoo2
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
252 call assert_equal(3, rubyeval('Vim::Buffer.count'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
253 %bwipe
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
254 call assert_equal(1, rubyeval('Vim::Buffer.count'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
255 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
256
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
257 " Test Vim::buffer[n] (return the buffer object of buffer number n)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
258 func Test_Vim_buffer_get()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
259 new Xfoo1
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
260 new Xfoo2
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
261
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
262 " Index of Vim::Buffer[n] goes from 0 to the number of buffers.
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
263 call assert_equal(v:null, rubyeval('Vim::Buffer[0].name'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
264 call assert_match('Xfoo1$', rubyeval('Vim::Buffer[1].name'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
265 call assert_match('Xfoo2$', rubyeval('Vim::Buffer[2].name'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
266 call assert_fails('ruby print Vim::Buffer[3].name',
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
267 \ "NoMethodError: undefined method `name' for nil:NilClass")
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
268 %bwipe
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
269 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
270
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
271 " Test Vim::command({cmd}) (execute a Ex command))
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
272 " Test Vim::command({cmd})
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
273 func Test_Vim_command()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
274 new
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
275 call setline(1, ['one', 'two', 'three', 'four'])
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
276 ruby Vim::command('2,3d')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
277 call assert_equal(['one', 'four'], getline(1, '$'))
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
278 bwipe!
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
279 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
280
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
281 " Test Vim::set_option (set a vim option)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
282 func Test_Vim_set_option()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
283 call assert_equal(0, &number)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
284 ruby Vim::set_option('number')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
285 call assert_equal(1, &number)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
286 ruby Vim::set_option('nonumber')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
287 call assert_equal(0, &number)
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
288 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
289
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
290 func Test_Vim_evaluate()
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
291 call assert_equal(123, rubyeval('Vim::evaluate("123")'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
292 " Vim::evaluate("123").class gives Integer or Fixnum depending
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
293 " on versions of Ruby.
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
294 call assert_match('^Integer\|Fixnum$', rubyeval('Vim::evaluate("123").class'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
295
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
296 call assert_equal(1.23, rubyeval('Vim::evaluate("1.23")'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
297 call assert_equal('Float', rubyeval('Vim::evaluate("1.23").class'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
298
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
299 call assert_equal('foo', rubyeval('Vim::evaluate("\"foo\"")'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
300 call assert_equal('String', rubyeval('Vim::evaluate("\"foo\"").class'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
301
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
302 call assert_equal(["\x01\xAB"], rubyeval('Vim::evaluate("0z01ab").unpack("M")'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
303 call assert_equal('String', rubyeval('Vim::evaluate("0z01ab").class'))
15943
e5f82e8b3c06 patch 8.1.0977: blob not tested with Ruby
Bram Moolenaar <Bram@vim.org>
parents: 14511
diff changeset
304
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
305 call assert_equal([1, 2], rubyeval('Vim::evaluate("[1, 2]")'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
306 call assert_equal('Array', rubyeval('Vim::evaluate("[1, 2]").class'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
307
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
308 call assert_equal({'1': 2}, rubyeval('Vim::evaluate("{1:2}")'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
309 call assert_equal('Hash', rubyeval('Vim::evaluate("{1:2}").class'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
310
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
311 call assert_equal(v:null, rubyeval('Vim::evaluate("v:null")'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
312 call assert_equal('NilClass', rubyeval('Vim::evaluate("v:null").class'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
313
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
314 call assert_equal(v:null, rubyeval('Vim::evaluate("v:none")'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
315 call assert_equal('NilClass', rubyeval('Vim::evaluate("v:none").class'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
316
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
317 call assert_equal(v:true, rubyeval('Vim::evaluate("v:true")'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
318 call assert_equal('TrueClass', rubyeval('Vim::evaluate("v:true").class'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
319 call assert_equal(v:false, rubyeval('Vim::evaluate("v:false")'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
320 call assert_equal('FalseClass',rubyeval('Vim::evaluate("v:false").class'))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
321 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
322
15943
e5f82e8b3c06 patch 8.1.0977: blob not tested with Ruby
Bram Moolenaar <Bram@vim.org>
parents: 14511
diff changeset
323 func Test_Vim_blob()
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
324 call assert_equal('0z', rubyeval('Vim::blob("")'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
325 call assert_equal('0z31326162', rubyeval('Vim::blob("12ab")'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
326 call assert_equal('0z00010203', rubyeval('Vim::blob("\x00\x01\x02\x03")'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
327 call assert_equal('0z8081FEFF', rubyeval('Vim::blob("\x80\x81\xfe\xff")'))
15943
e5f82e8b3c06 patch 8.1.0977: blob not tested with Ruby
Bram Moolenaar <Bram@vim.org>
parents: 14511
diff changeset
328 endfunc
e5f82e8b3c06 patch 8.1.0977: blob not tested with Ruby
Bram Moolenaar <Bram@vim.org>
parents: 14511
diff changeset
329
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
330 func Test_Vim_evaluate_list()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
331 call setline(line('$'), ['2 line 2'])
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
332 ruby Vim.command("normal /^2\n")
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
333 let l = ["abc", "def"]
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
334 ruby << EOF
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
335 curline = $curbuf.line_number
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
336 l = Vim.evaluate("l");
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
337 $curbuf.append(curline, l.join("\n"))
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
338 EOF
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
339 normal j
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
340 .rubydo $_ = $_.gsub(/\n/, '/')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
341 call assert_equal('abc/def', getline('$'))
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
342 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
343
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
344 func Test_Vim_evaluate_dict()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
345 let d = {'a': 'foo', 'b': 123}
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
346 redir => l:out
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
347 ruby d = Vim.evaluate("d"); print d
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
348 redir END
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
349 call assert_equal(['{"a"=>"foo", "b"=>123}'], split(l:out, "\n"))
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
350 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
351
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
352 " Test Vim::message({msg}) (display message {msg})
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
353 func Test_Vim_message()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
354 ruby Vim::message('A message')
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
355 let messages = split(execute('message'), "\n")
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
356 call assert_equal('A message', messages[-1])
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
357 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
358
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
359 func Test_print()
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
360 func RubyPrint(expr)
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
361 return trim(execute('ruby print ' . a:expr))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
362 endfunc
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
363
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
364 call assert_equal('123', RubyPrint('123'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
365 call assert_equal('1.23', RubyPrint('1.23'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
366 call assert_equal('Hello World!', RubyPrint('"Hello World!"'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
367 call assert_equal('[1, 2]', RubyPrint('[1, 2]'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
368 call assert_equal('{"k1"=>"v1", "k2"=>"v2"}', RubyPrint('({"k1" => "v1", "k2" => "v2"})'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
369 call assert_equal('true', RubyPrint('true'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
370 call assert_equal('false', RubyPrint('false'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
371 call assert_equal('', RubyPrint('nil'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
372 call assert_match('Vim', RubyPrint('Vim'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
373 call assert_match('Module', RubyPrint('Vim.class'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
374
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
375 delfunc RubyPrint
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
376 endfunc
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
377
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
378 func Test_p()
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
379 ruby p 'Just a test'
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
380 let messages = split(execute('message'), "\n")
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
381 call assert_equal('"Just a test"', messages[-1])
14511
e6ad77cf13e0 patch 8.1.0269: Ruby Kernel.#p method always returns nil
Christian Brabandt <cb@256bit.org>
parents: 14413
diff changeset
382
e6ad77cf13e0 patch 8.1.0269: Ruby Kernel.#p method always returns nil
Christian Brabandt <cb@256bit.org>
parents: 14413
diff changeset
383 " Check return values of p method
e6ad77cf13e0 patch 8.1.0269: Ruby Kernel.#p method always returns nil
Christian Brabandt <cb@256bit.org>
parents: 14413
diff changeset
384
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
385 call assert_equal(123, rubyeval('p(123)'))
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
386 call assert_equal([1, 2, 3], rubyeval('p(1, 2, 3)'))
14511
e6ad77cf13e0 patch 8.1.0269: Ruby Kernel.#p method always returns nil
Christian Brabandt <cb@256bit.org>
parents: 14413
diff changeset
387
e6ad77cf13e0 patch 8.1.0269: Ruby Kernel.#p method always returns nil
Christian Brabandt <cb@256bit.org>
parents: 14413
diff changeset
388 " Avoid the "message maintainer" line.
e6ad77cf13e0 patch 8.1.0269: Ruby Kernel.#p method always returns nil
Christian Brabandt <cb@256bit.org>
parents: 14413
diff changeset
389 let $LANG = ''
e6ad77cf13e0 patch 8.1.0269: Ruby Kernel.#p method always returns nil
Christian Brabandt <cb@256bit.org>
parents: 14413
diff changeset
390 messages clear
16103
518f44125207 patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents: 15943
diff changeset
391 call assert_equal(v:true, rubyeval('p() == nil'))
14511
e6ad77cf13e0 patch 8.1.0269: Ruby Kernel.#p method always returns nil
Christian Brabandt <cb@256bit.org>
parents: 14413
diff changeset
392
e6ad77cf13e0 patch 8.1.0269: Ruby Kernel.#p method always returns nil
Christian Brabandt <cb@256bit.org>
parents: 14413
diff changeset
393 let messages = split(execute('message'), "\n")
e6ad77cf13e0 patch 8.1.0269: Ruby Kernel.#p method always returns nil
Christian Brabandt <cb@256bit.org>
parents: 14413
diff changeset
394 call assert_equal(0, len(messages))
14413
c3b62844ee4e patch 8.1.0221: not enough testing for the Ruby interface
Christian Brabandt <cb@256bit.org>
parents: 14411
diff changeset
395 endfunc