1
+ import 'dart:async' ;
1
2
import 'dart:io' ;
2
3
import 'dart:ui' ;
3
4
@@ -19,110 +20,175 @@ Future<void> main() async {
19
20
},
20
21
);
21
22
22
- testWidgets ('getBounds' , (tester) async {
23
- expect (
24
- await windowManager.getBounds (),
25
- isA <Rect >().having ((r) => r.size, 'size' , const Size (640 , 480 )),
23
+ group ('Getters' , () {
24
+ testWidgets ('getBounds' , (tester) async {
25
+ expect (
26
+ await windowManager.getBounds (),
27
+ isA <Rect >().having ((r) => r.size, 'size' , const Size (640 , 480 )),
28
+ );
29
+ });
30
+
31
+ testWidgets (
32
+ 'isAlwaysOnBottom' ,
33
+ (tester) async {
34
+ expect (await windowManager.isAlwaysOnBottom (), isFalse);
35
+ },
36
+ skip: Platform .isMacOS || Platform .isWindows,
26
37
);
27
- });
28
-
29
- testWidgets (
30
- 'isAlwaysOnBottom' ,
31
- (tester) async {
32
- expect (await windowManager.isAlwaysOnBottom (), isFalse);
33
- },
34
- skip: Platform .isMacOS || Platform .isWindows,
35
- );
36
38
37
- testWidgets ('isAlwaysOnTop' , (tester) async {
38
- expect (await windowManager.isAlwaysOnTop (), isFalse);
39
- });
39
+ testWidgets ('isAlwaysOnTop' , (tester) async {
40
+ expect (await windowManager.isAlwaysOnTop (), isFalse);
41
+ });
40
42
41
- testWidgets ('isClosable' , (tester) async {
42
- expect (await windowManager.isClosable (), isTrue);
43
- });
43
+ testWidgets ('isClosable' , (tester) async {
44
+ expect (await windowManager.isClosable (), isTrue);
45
+ });
44
46
45
- testWidgets ('isFocused' , (tester) async {
46
- expect (await windowManager.isFocused (), isTrue);
47
- });
47
+ testWidgets ('isFocused' , (tester) async {
48
+ expect (await windowManager.isFocused (), isTrue);
49
+ });
48
50
49
- testWidgets ('isFullScreen' , (tester) async {
50
- expect (await windowManager.isFullScreen (), isFalse);
51
- });
51
+ testWidgets ('isFullScreen' , (tester) async {
52
+ expect (await windowManager.isFullScreen (), isFalse);
53
+ });
52
54
53
- testWidgets (
54
- 'hasShadow' ,
55
- (tester) async {
56
- expect (await windowManager.hasShadow (), isTrue);
57
- },
58
- skip: Platform .isLinux,
59
- );
55
+ testWidgets (
56
+ 'hasShadow' ,
57
+ (tester) async {
58
+ expect (await windowManager.hasShadow (), isTrue);
59
+ },
60
+ skip: Platform .isLinux,
61
+ );
60
62
61
- testWidgets ('isMaximizable' , (tester) async {
62
- expect (await windowManager.isMaximizable (), isTrue);
63
- });
63
+ testWidgets ('isMaximizable' , (tester) async {
64
+ expect (await windowManager.isMaximizable (), isTrue);
65
+ });
64
66
65
- testWidgets ('isMaximized' , (tester) async {
66
- expect (await windowManager.isMaximized (), isFalse);
67
- });
67
+ testWidgets ('isMaximized' , (tester) async {
68
+ expect (await windowManager.isMaximized (), isFalse);
69
+ });
68
70
69
- testWidgets (
70
- 'isMinimizable' ,
71
- (tester) async {
72
- expect (await windowManager.isMinimizable (), isTrue);
73
- },
74
- skip: Platform .isMacOS,
75
- );
71
+ testWidgets (
72
+ 'isMinimizable' ,
73
+ (tester) async {
74
+ expect (await windowManager.isMinimizable (), isTrue);
75
+ },
76
+ skip: Platform .isMacOS,
77
+ );
76
78
77
- testWidgets ('isMinimized' , (tester) async {
78
- expect (await windowManager.isMinimized (), isFalse);
79
- });
79
+ testWidgets ('isMinimized' , (tester) async {
80
+ expect (await windowManager.isMinimized (), isFalse);
81
+ });
80
82
81
- testWidgets (
82
- 'isMovable' ,
83
- (tester) async {
84
- expect (await windowManager.isMovable (), isTrue);
85
- },
86
- skip: Platform .isLinux || Platform .isWindows,
87
- );
83
+ testWidgets (
84
+ 'isMovable' ,
85
+ (tester) async {
86
+ expect (await windowManager.isMovable (), isTrue);
87
+ },
88
+ skip: Platform .isLinux || Platform .isWindows,
89
+ );
88
90
89
- testWidgets ('getOpacity' , (tester) async {
90
- expect (await windowManager.getOpacity (), 1.0 );
91
- });
91
+ testWidgets ('getOpacity' , (tester) async {
92
+ expect (await windowManager.getOpacity (), 1.0 );
93
+ });
92
94
93
- testWidgets ('getPosition' , (tester) async {
94
- expect (await windowManager.getPosition (), isA <Offset >());
95
- });
95
+ testWidgets ('getPosition' , (tester) async {
96
+ expect (await windowManager.getPosition (), isA <Offset >());
97
+ });
96
98
97
- testWidgets ('isPreventClose' , (tester) async {
98
- expect (await windowManager.isPreventClose (), isFalse);
99
- });
99
+ testWidgets ('isPreventClose' , (tester) async {
100
+ expect (await windowManager.isPreventClose (), isFalse);
101
+ });
100
102
101
- testWidgets ('isResizable' , (tester) async {
102
- expect (await windowManager.isResizable (), isTrue);
103
- });
103
+ testWidgets ('isResizable' , (tester) async {
104
+ expect (await windowManager.isResizable (), isTrue);
105
+ });
104
106
105
- testWidgets ('getSize' , (tester) async {
106
- expect (await windowManager.getSize (), const Size (640 , 480 ));
107
- });
107
+ testWidgets ('getSize' , (tester) async {
108
+ expect (await windowManager.getSize (), const Size (640 , 480 ));
109
+ });
108
110
109
- testWidgets (
110
- 'isSkipTaskbar' ,
111
- (tester) async {
112
- expect (await windowManager.isSkipTaskbar (), isFalse);
113
- },
114
- skip: Platform .isWindows,
115
- );
111
+ testWidgets (
112
+ 'isSkipTaskbar' ,
113
+ (tester) async {
114
+ expect (await windowManager.isSkipTaskbar (), isFalse);
115
+ },
116
+ skip: Platform .isWindows,
117
+ );
116
118
117
- testWidgets ('getTitle' , (tester) async {
118
- expect (await windowManager.getTitle (), 'window_manager_test' );
119
+ testWidgets ('getTitle' , (tester) async {
120
+ expect (await windowManager.getTitle (), 'window_manager_test' );
121
+ });
122
+
123
+ testWidgets ('getTitleBarHeight' , (tester) async {
124
+ expect (await windowManager.getTitleBarHeight (), isNonNegative);
125
+ });
126
+
127
+ testWidgets ('isVisible' , (tester) async {
128
+ expect (await windowManager.isVisible (), isTrue);
129
+ });
130
+ });
131
+
132
+ group ('Setters and Listeners' , () {
133
+ late StreamController <String > streamController;
134
+ late WindowListener windowListener;
135
+
136
+ setUp (() async {
137
+ streamController = StreamController <String >();
138
+ windowListener = WindowListenerImpl (streamController: streamController);
139
+ windowManager.addListener (windowListener);
140
+ });
141
+
142
+ tearDown (() async {
143
+ windowManager.removeListener (windowListener);
144
+ await streamController.close ();
145
+ });
146
+
147
+ testWidgets ('minimize & restore' , (tester) async {
148
+ await windowManager.minimize ();
149
+ await windowManager.restore ();
150
+ expect (
151
+ streamController.stream,
152
+ emitsInOrder ([
153
+ emitsThrough ('minimize' ),
154
+ emitsThrough ('restore' ),
155
+ ]),
156
+ );
157
+ });
158
+
159
+ testWidgets ('maximize & unmaximize' , (tester) async {
160
+ await windowManager.maximize ();
161
+ await windowManager.unmaximize ();
162
+ expect (
163
+ streamController.stream,
164
+ emitsInOrder ([
165
+ emitsThrough ('maximize' ),
166
+ emitsThrough ('unmaximize' ),
167
+ ]),
168
+ );
169
+ });
170
+
171
+ testWidgets ('setFullscreen true & false' , (tester) async {
172
+ await windowManager.setFullScreen (true );
173
+ await windowManager.setFullScreen (false );
174
+ expect (
175
+ streamController.stream,
176
+ emitsInOrder ([
177
+ emitsThrough ('enter-full-screen' ),
178
+ emitsThrough ('leave-full-screen' ),
179
+ ]),
180
+ );
181
+ });
119
182
});
183
+ }
120
184
121
- testWidgets ('getTitleBarHeight' , (tester) async {
122
- expect (await windowManager.getTitleBarHeight (), isNonNegative);
123
- });
185
+ class WindowListenerImpl with WindowListener {
186
+ WindowListenerImpl ({required this .streamController});
124
187
125
- testWidgets ('isVisible' , (tester) async {
126
- expect (await windowManager.isVisible (), isTrue);
127
- });
188
+ final StreamController <String > streamController;
189
+
190
+ @override
191
+ void onWindowEvent (String eventName) {
192
+ streamController.add (eventName);
193
+ }
128
194
}
0 commit comments