annotate src/testdir/test_sound.vim @ 33225:52b121d4feb5 v9.0.1887

patch 9.0.1887: Vim9: class members are accessible via object Commit: https://github.com/vim/vim/commit/23c92d93c1b877edf18881b715ad51ec26386c2e Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Sat Sep 9 11:33:29 2023 +0200 patch 9.0.1887: Vim9: class members are accessible via object Problem: Vim9: class members are accessible via object Solution: Disable class member variable access using an object Class methods can be accessed only using the class name and cannot be accessed using an object. To be consistent with this, do the same for class member variables also. They can be accessed only using the class name and not using an object. closes: #13057 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
author Christian Brabandt <cb@256bit.org>
date Sat, 09 Sep 2023 11:45:06 +0200
parents 71137f73c94d
children 70c1a9c6f41d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17004
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
1 " Tests for the sound feature
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
2
24824
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
3 source check.vim
23118
24326797a9aa patch 8.2.2105: sound test is a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
4 source shared.vim
24326797a9aa patch 8.2.2105: sound test is a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
5
24824
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
6 CheckFeature sound
17004
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
7
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
8 func PlayCallback(id, result)
24824
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
9 let g:playcallback_count += 1
17004
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
10 let g:id = a:id
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
11 let g:result = a:result
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
12 endfunc
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
13
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
14 func Test_play_event()
17131
be5a5cfc991a patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents: 17026
diff changeset
15 if has('win32')
be5a5cfc991a patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents: 17026
diff changeset
16 throw 'Skipped: Playing event with callback is not supported on Windows'
be5a5cfc991a patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents: 17026
diff changeset
17 endif
24824
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
18 let g:playcallback_count = 0
23118
24326797a9aa patch 8.2.2105: sound test is a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
19 let g:id = 0
30719
71137f73c94d patch 9.0.0694: no native sound support on Mac OS
Bram Moolenaar <Bram@vim.org>
parents: 24842
diff changeset
20 let event_name = 'bell'
71137f73c94d patch 9.0.0694: no native sound support on Mac OS
Bram Moolenaar <Bram@vim.org>
parents: 24842
diff changeset
21 if has('osx')
71137f73c94d patch 9.0.0694: no native sound support on Mac OS
Bram Moolenaar <Bram@vim.org>
parents: 24842
diff changeset
22 let event_name = 'Tink'
71137f73c94d patch 9.0.0694: no native sound support on Mac OS
Bram Moolenaar <Bram@vim.org>
parents: 24842
diff changeset
23 endif
71137f73c94d patch 9.0.0694: no native sound support on Mac OS
Bram Moolenaar <Bram@vim.org>
parents: 24842
diff changeset
24 let id = event_name->sound_playevent('PlayCallback')
17004
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
25 if id == 0
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
26 throw 'Skipped: bell event not available'
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
27 endif
24824
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
28
17004
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
29 " Stop it quickly, avoid annoying the user.
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
30 sleep 20m
18017
988e5a868b60 patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17708
diff changeset
31 eval id->sound_stop()
23118
24326797a9aa patch 8.2.2105: sound test is a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
32 call WaitForAssert({-> assert_equal(id, g:id)})
17004
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
33 call assert_equal(1, g:result) " sound was aborted
24824
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
34 call assert_equal(1, g:playcallback_count)
17004
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
35 endfunc
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
36
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
37 func Test_play_silent()
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
38 let fname = fnamemodify('silent.wav', '%p')
24824
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
39 let g:playcallback_count = 0
17004
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
40
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
41 " play without callback
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
42 let id1 = sound_playfile(fname)
17016
b99b33f8475b patch 8.1.1508: sound keeps failing on Travis
Bram Moolenaar <Bram@vim.org>
parents: 17004
diff changeset
43 if id1 == 0
b99b33f8475b patch 8.1.1508: sound keeps failing on Travis
Bram Moolenaar <Bram@vim.org>
parents: 17004
diff changeset
44 throw 'Skipped: playing a sound is not working'
b99b33f8475b patch 8.1.1508: sound keeps failing on Travis
Bram Moolenaar <Bram@vim.org>
parents: 17004
diff changeset
45 endif
17004
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
46
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
47 " play until the end
18017
988e5a868b60 patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17708
diff changeset
48 let id2 = fname->sound_playfile('PlayCallback')
17004
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
49 call assert_true(id2 > 0)
23118
24326797a9aa patch 8.2.2105: sound test is a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
50 call WaitForAssert({-> assert_equal(id2, g:id)})
17004
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
51 call assert_equal(0, g:result)
24824
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
52 call assert_equal(1, g:playcallback_count)
17004
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
53
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
54 let id2 = sound_playfile(fname, 'PlayCallback')
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
55 call assert_true(id2 > 0)
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
56 sleep 20m
17026
905e1b154058 patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents: 17016
diff changeset
57 call sound_clear()
23118
24326797a9aa patch 8.2.2105: sound test is a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
58 call WaitForAssert({-> assert_equal(id2, g:id)})
24326797a9aa patch 8.2.2105: sound test is a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
59 call assert_equal(1, g:result) " sound was aborted
24824
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
60 call assert_equal(2, g:playcallback_count)
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
61
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
62 " Play 2 sounds almost at the same time to exercise
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
63 " code with multiple callbacks in the callback list.
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
64 call sound_playfile(fname, 'PlayCallback')
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
65 call sound_playfile(fname, 'PlayCallback')
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
66 call WaitForAssert({-> assert_equal(4, g:playcallback_count)})
17708
10696f279e20 patch 8.1.1851: crash when sound_playfile() callback plays sound
Bram Moolenaar <Bram@vim.org>
parents: 17131
diff changeset
67
10696f279e20 patch 8.1.1851: crash when sound_playfile() callback plays sound
Bram Moolenaar <Bram@vim.org>
parents: 17131
diff changeset
68 " recursive use was causing a crash
10696f279e20 patch 8.1.1851: crash when sound_playfile() callback plays sound
Bram Moolenaar <Bram@vim.org>
parents: 17131
diff changeset
69 func PlayAgain(id, fname)
10696f279e20 patch 8.1.1851: crash when sound_playfile() callback plays sound
Bram Moolenaar <Bram@vim.org>
parents: 17131
diff changeset
70 let g:id = a:id
10696f279e20 patch 8.1.1851: crash when sound_playfile() callback plays sound
Bram Moolenaar <Bram@vim.org>
parents: 17131
diff changeset
71 let g:id_again = sound_playfile(a:fname)
10696f279e20 patch 8.1.1851: crash when sound_playfile() callback plays sound
Bram Moolenaar <Bram@vim.org>
parents: 17131
diff changeset
72 endfunc
10696f279e20 patch 8.1.1851: crash when sound_playfile() callback plays sound
Bram Moolenaar <Bram@vim.org>
parents: 17131
diff changeset
73
10696f279e20 patch 8.1.1851: crash when sound_playfile() callback plays sound
Bram Moolenaar <Bram@vim.org>
parents: 17131
diff changeset
74 let id3 = sound_playfile(fname, {id, res -> PlayAgain(id, fname)})
10696f279e20 patch 8.1.1851: crash when sound_playfile() callback plays sound
Bram Moolenaar <Bram@vim.org>
parents: 17131
diff changeset
75 call assert_true(id3 > 0)
10696f279e20 patch 8.1.1851: crash when sound_playfile() callback plays sound
Bram Moolenaar <Bram@vim.org>
parents: 17131
diff changeset
76 sleep 50m
10696f279e20 patch 8.1.1851: crash when sound_playfile() callback plays sound
Bram Moolenaar <Bram@vim.org>
parents: 17131
diff changeset
77 call sound_clear()
23118
24326797a9aa patch 8.2.2105: sound test is a bit flaky
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
78 call WaitForAssert({-> assert_true(g:id > 0)})
17004
353ed7ef78df patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
diff changeset
79 endfunc
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 18017
diff changeset
80
24824
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
81 func Test_play_event_error()
24842
237dace53473 patch 8.2.2959: sound_playfile() is not tested on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 24824
diff changeset
82 " FIXME: sound_playevent() doesn't return 0 in case of error on Windows.
237dace53473 patch 8.2.2959: sound_playfile() is not tested on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 24824
diff changeset
83 if !has('win32')
237dace53473 patch 8.2.2959: sound_playfile() is not tested on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 24824
diff changeset
84 call assert_equal(0, sound_playevent(''))
237dace53473 patch 8.2.2959: sound_playfile() is not tested on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 24824
diff changeset
85 call assert_equal(0, sound_playevent(test_null_string()))
237dace53473 patch 8.2.2959: sound_playfile() is not tested on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 24824
diff changeset
86 call assert_equal(0, sound_playevent('doesnotexist'))
237dace53473 patch 8.2.2959: sound_playfile() is not tested on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 24824
diff changeset
87 call assert_equal(0, sound_playevent('doesnotexist', 'doesnotexist'))
237dace53473 patch 8.2.2959: sound_playfile() is not tested on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 24824
diff changeset
88 call assert_equal(0, sound_playevent(test_null_string(), test_null_string()))
237dace53473 patch 8.2.2959: sound_playfile() is not tested on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 24824
diff changeset
89 call assert_equal(0, sound_playevent(test_null_string(), test_null_function()))
237dace53473 patch 8.2.2959: sound_playfile() is not tested on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 24824
diff changeset
90 endif
24824
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
91
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
92 call assert_equal(0, sound_playfile(''))
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
93 call assert_equal(0, sound_playfile(test_null_string()))
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
94 call assert_equal(0, sound_playfile('doesnotexist'))
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
95 call assert_equal(0, sound_playfile('doesnotexist', 'doesnotexist'))
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
96 call assert_equal(0, sound_playfile(test_null_string(), test_null_string()))
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
97 call assert_equal(0, sound_playfile(test_null_string(), test_null_function()))
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
98 endfunc
a9ffc9154b32 patch 8.2.2950: sound code not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 23118
diff changeset
99
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 18017
diff changeset
100 " vim: shiftwidth=2 sts=2 expandtab