@@ -9,6 +9,13 @@ import * as assert from 'assert';
9
9
import { window , commands } from 'vscode' ;
10
10
import { closeAllEditors } from '../utils' ;
11
11
12
+ interface QuickPickExpected {
13
+ events : string [ ] ;
14
+ activeItems : string [ ] [ ] ;
15
+ selectionItems : string [ ] [ ] ;
16
+ acceptedItems : string [ ] [ ] ;
17
+ }
18
+
12
19
suite ( 'window namespace tests' , function ( ) {
13
20
14
21
suite ( 'QuickInput tests' , function ( ) {
@@ -20,59 +27,87 @@ suite('window namespace tests', function () {
20
27
_done ( err ) ;
21
28
} ;
22
29
23
- const expectedEvents = [ 'active' , 'active' , 'selection' , 'accept' , 'hide' ] ;
24
- const expectedActiveItems = [ [ 'eins' ] , [ 'zwei' ] ] ;
25
- const expectedSelectionItems = [ [ 'zwei' ] ] ;
30
+ const quickPick = createQuickPick ( {
31
+ events : [ 'active' , 'active' , 'selection' , 'accept' , 'hide' ] ,
32
+ activeItems : [ [ 'eins' ] , [ 'zwei' ] ] ,
33
+ selectionItems : [ [ 'zwei' ] ] ,
34
+ acceptedItems : [ [ 'zwei' ] ] ,
35
+ } , done ) ;
36
+ quickPick . items = [ 'eins' , 'zwei' , 'drei' ] . map ( label => ( { label } ) ) ;
37
+ quickPick . show ( ) ;
26
38
27
- const quickPick = window . createQuickPick ( ) ;
28
- quickPick . onDidChangeActive ( items => {
29
- try {
30
- assert . equal ( 'active' , expectedEvents . shift ( ) ) ;
31
- const expected = expectedActiveItems . shift ( ) ;
32
- assert . deepEqual ( items . map ( item => item . label ) , expected ) ;
33
- assert . deepEqual ( quickPick . activeItems . map ( item => item . label ) , expected ) ;
34
- } catch ( err ) {
35
- done ( err ) ;
36
- }
37
- } ) ;
38
- quickPick . onDidChangeSelection ( items => {
39
- try {
40
- assert . equal ( 'selection' , expectedEvents . shift ( ) ) ;
41
- const expected = expectedSelectionItems . shift ( ) ;
42
- assert . deepEqual ( items . map ( item => item . label ) , expected ) ;
43
- assert . deepEqual ( quickPick . selectedItems . map ( item => item . label ) , expected ) ;
44
- } catch ( err ) {
45
- done ( err ) ;
46
- }
47
- } ) ;
48
- quickPick . onDidAccept ( ( ) => {
49
- try {
50
- assert . equal ( 'accept' , expectedEvents . shift ( ) ) ;
51
- const expected = [ 'zwei' ] ;
52
- assert . deepEqual ( quickPick . activeItems . map ( item => item . label ) , expected ) ;
53
- assert . deepEqual ( quickPick . selectedItems . map ( item => item . label ) , expected ) ;
54
- quickPick . dispose ( ) ;
55
- } catch ( err ) {
56
- done ( err ) ;
57
- }
58
- } ) ;
59
- quickPick . onDidHide ( ( ) => {
60
- try {
61
- assert . equal ( 'hide' , expectedEvents . shift ( ) ) ;
62
- done ( ) ;
63
- } catch ( err ) {
64
- done ( err ) ;
65
- }
66
- } ) ;
39
+ ( async ( ) => {
40
+ await commands . executeCommand ( 'workbench.action.quickOpenSelectNext' ) ;
41
+ await commands . executeCommand ( 'workbench.action.acceptSelectedQuickOpenItem' ) ;
42
+ } ) ( )
43
+ . catch ( err => done ( err ) ) ;
44
+ } ) ;
67
45
46
+ test ( 'createQuickPick, focus second' , function ( _done ) {
47
+ let done = ( err ?: any ) => {
48
+ done = ( ) => { } ;
49
+ _done ( err ) ;
50
+ } ;
51
+
52
+ const quickPick = createQuickPick ( {
53
+ events : [ 'active' , 'selection' , 'accept' , 'hide' ] ,
54
+ activeItems : [ [ 'zwei' ] ] ,
55
+ selectionItems : [ [ 'zwei' ] ] ,
56
+ acceptedItems : [ [ 'zwei' ] ] ,
57
+ } , done ) ;
68
58
quickPick . items = [ 'eins' , 'zwei' , 'drei' ] . map ( label => ( { label } ) ) ;
59
+ quickPick . activeItems = [ quickPick . items [ 1 ] ] ;
69
60
quickPick . show ( ) ;
70
61
71
62
( async ( ) => {
72
- await commands . executeCommand ( 'workbench.action.quickOpenSelectNext' ) ;
73
63
await commands . executeCommand ( 'workbench.action.acceptSelectedQuickOpenItem' ) ;
74
64
} ) ( )
75
65
. catch ( err => done ( err ) ) ;
76
66
} ) ;
77
67
} ) ;
78
68
} ) ;
69
+
70
+ function createQuickPick ( expected : QuickPickExpected , done : ( err ?: any ) => void ) {
71
+ const quickPick = window . createQuickPick ( ) ;
72
+ quickPick . onDidChangeActive ( items => {
73
+ try {
74
+ assert . equal ( 'active' , expected . events . shift ( ) ) ;
75
+ const expectedItems = expected . activeItems . shift ( ) ;
76
+ assert . deepEqual ( items . map ( item => item . label ) , expectedItems ) ;
77
+ assert . deepEqual ( quickPick . activeItems . map ( item => item . label ) , expectedItems ) ;
78
+ } catch ( err ) {
79
+ done ( err ) ;
80
+ }
81
+ } ) ;
82
+ quickPick . onDidChangeSelection ( items => {
83
+ try {
84
+ assert . equal ( 'selection' , expected . events . shift ( ) ) ;
85
+ const expectedItems = expected . selectionItems . shift ( ) ;
86
+ assert . deepEqual ( items . map ( item => item . label ) , expectedItems ) ;
87
+ assert . deepEqual ( quickPick . selectedItems . map ( item => item . label ) , expectedItems ) ;
88
+ } catch ( err ) {
89
+ done ( err ) ;
90
+ }
91
+ } ) ;
92
+ quickPick . onDidAccept ( ( ) => {
93
+ try {
94
+ assert . equal ( 'accept' , expected . events . shift ( ) ) ;
95
+ const expectedItems = expected . acceptedItems . shift ( ) ;
96
+ assert . deepEqual ( quickPick . activeItems . map ( item => item . label ) , expectedItems ) ;
97
+ assert . deepEqual ( quickPick . selectedItems . map ( item => item . label ) , expectedItems ) ;
98
+ quickPick . dispose ( ) ;
99
+ } catch ( err ) {
100
+ done ( err ) ;
101
+ }
102
+ } ) ;
103
+ quickPick . onDidHide ( ( ) => {
104
+ try {
105
+ assert . equal ( 'hide' , expected . events . shift ( ) ) ;
106
+ done ( ) ;
107
+ } catch ( err ) {
108
+ done ( err ) ;
109
+ }
110
+ } ) ;
111
+
112
+ return quickPick ;
113
+ }
0 commit comments