@@ -99,6 +99,171 @@ void main() {
99
99
await tester.pumpAndSettle ();
100
100
expect (DummyWidget .built, isFalse);
101
101
});
102
+
103
+ // Test the `maybeActiveBreakpointFromSlotLayout` method.
104
+ group ('maybeActiveBreakpointFromSlotLayout' , () {
105
+ testWidgets ('returns correct breakpoint from SlotLayout on mobile devices' ,
106
+ (WidgetTester tester) async {
107
+ // Small layout on mobile.
108
+ await tester.pumpWidget (SimulatedLayout .small.slot (tester));
109
+ await tester.pumpAndSettle ();
110
+ expect (
111
+ Breakpoint .maybeActiveBreakpointFromSlotLayout (
112
+ tester.element (find.byKey (const Key ('Breakpoints.smallMobile' )))),
113
+ Breakpoints .smallMobile);
114
+
115
+ // Medium layout on mobile.
116
+ await tester.pumpWidget (SimulatedLayout .medium.slot (tester));
117
+ await tester.pumpAndSettle ();
118
+ expect (
119
+ Breakpoint .maybeActiveBreakpointFromSlotLayout (tester
120
+ .element (find.byKey (const Key ('Breakpoints.mediumMobile' )))),
121
+ Breakpoints .mediumMobile);
122
+
123
+ // Large layout on mobile.
124
+ await tester.pumpWidget (SimulatedLayout .large.slot (tester));
125
+ await tester.pumpAndSettle ();
126
+ expect (
127
+ Breakpoint .maybeActiveBreakpointFromSlotLayout (
128
+ tester.element (find.byKey (const Key ('Breakpoints.largeMobile' )))),
129
+ Breakpoints .largeMobile);
130
+ }, variant: TargetPlatformVariant .mobile ());
131
+
132
+ testWidgets ('returns correct breakpoint from SlotLayout on desktop devices' ,
133
+ (WidgetTester tester) async {
134
+ // Small layout on desktop.
135
+ await tester.pumpWidget (SimulatedLayout .small.slot (tester));
136
+ await tester.pumpAndSettle ();
137
+ expect (
138
+ Breakpoint .maybeActiveBreakpointFromSlotLayout (tester
139
+ .element (find.byKey (const Key ('Breakpoints.smallDesktop' )))),
140
+ Breakpoints .smallDesktop);
141
+
142
+ // Medium layout on desktop.
143
+ await tester.pumpWidget (SimulatedLayout .medium.slot (tester));
144
+ await tester.pumpAndSettle ();
145
+ expect (
146
+ Breakpoint .maybeActiveBreakpointFromSlotLayout (tester
147
+ .element (find.byKey (const Key ('Breakpoints.mediumDesktop' )))),
148
+ Breakpoints .mediumDesktop);
149
+
150
+ // Large layout on desktop.
151
+ await tester.pumpWidget (SimulatedLayout .large.slot (tester));
152
+ await tester.pumpAndSettle ();
153
+ expect (
154
+ Breakpoint .maybeActiveBreakpointFromSlotLayout (tester
155
+ .element (find.byKey (const Key ('Breakpoints.largeDesktop' )))),
156
+ Breakpoints .largeDesktop);
157
+ }, variant: TargetPlatformVariant .desktop ());
158
+ });
159
+
160
+ // Test the `defaultBreakpointOf` method.
161
+ group ('defaultBreakpointOf' , () {
162
+ testWidgets ('returns correct default breakpoint on mobile devices' ,
163
+ (WidgetTester tester) async {
164
+ // Small layout on mobile.
165
+ await tester.pumpWidget (SimulatedLayout .small.slot (tester));
166
+ await tester.pumpAndSettle ();
167
+ expect (Breakpoint .defaultBreakpointOf (tester.element (find.byType (Theme ))),
168
+ Breakpoints .smallMobile);
169
+
170
+ // Medium layout on mobile.
171
+ await tester.pumpWidget (SimulatedLayout .medium.slot (tester));
172
+ await tester.pumpAndSettle ();
173
+ expect (Breakpoint .defaultBreakpointOf (tester.element (find.byType (Theme ))),
174
+ Breakpoints .mediumMobile);
175
+
176
+ // Large layout on mobile.
177
+ await tester.pumpWidget (SimulatedLayout .large.slot (tester));
178
+ await tester.pumpAndSettle ();
179
+ expect (Breakpoint .defaultBreakpointOf (tester.element (find.byType (Theme ))),
180
+ Breakpoints .largeMobile);
181
+ }, variant: TargetPlatformVariant .mobile ());
182
+
183
+ testWidgets ('returns correct default breakpoint on desktop devices' ,
184
+ (WidgetTester tester) async {
185
+ // Small layout on desktop.
186
+ await tester.pumpWidget (SimulatedLayout .small.slot (tester));
187
+ await tester.pumpAndSettle ();
188
+ expect (
189
+ Breakpoint .defaultBreakpointOf (
190
+ tester.element (find.byType (Directionality ))),
191
+ Breakpoints .smallDesktop);
192
+
193
+ // Medium layout on desktop.
194
+ await tester.pumpWidget (SimulatedLayout .medium.slot (tester));
195
+ await tester.pumpAndSettle ();
196
+ expect (
197
+ Breakpoint .defaultBreakpointOf (
198
+ tester.element (find.byType (Directionality ))),
199
+ Breakpoints .mediumDesktop);
200
+
201
+ // Large layout on desktop.
202
+ await tester.pumpWidget (SimulatedLayout .large.slot (tester));
203
+ await tester.pumpAndSettle ();
204
+ expect (
205
+ Breakpoint .defaultBreakpointOf (
206
+ tester.element (find.byType (Directionality ))),
207
+ Breakpoints .largeDesktop);
208
+ }, variant: TargetPlatformVariant .desktop ());
209
+ });
210
+
211
+ // Test the `activeBreakpointOf` method.
212
+ group ('activeBreakpointOf' , () {
213
+ testWidgets ('returns correct active breakpoint on mobile devices' ,
214
+ (WidgetTester tester) async {
215
+ // Small layout on mobile.
216
+ await tester.pumpWidget (SimulatedLayout .small.slot (tester));
217
+ await tester.pumpAndSettle ();
218
+ expect (
219
+ Breakpoint .activeBreakpointOf (
220
+ tester.element (find.byKey (const Key ('Breakpoints.smallMobile' )))),
221
+ Breakpoints .smallMobile);
222
+
223
+ // Medium layout on mobile.
224
+ await tester.pumpWidget (SimulatedLayout .medium.slot (tester));
225
+ await tester.pumpAndSettle ();
226
+ expect (
227
+ Breakpoint .activeBreakpointOf (tester
228
+ .element (find.byKey (const Key ('Breakpoints.mediumMobile' )))),
229
+ Breakpoints .mediumMobile);
230
+
231
+ // Large layout on mobile.
232
+ await tester.pumpWidget (SimulatedLayout .large.slot (tester));
233
+ await tester.pumpAndSettle ();
234
+ expect (
235
+ Breakpoint .activeBreakpointOf (
236
+ tester.element (find.byKey (const Key ('Breakpoints.largeMobile' )))),
237
+ Breakpoints .largeMobile);
238
+ }, variant: TargetPlatformVariant .mobile ());
239
+
240
+ testWidgets ('returns correct active breakpoint on desktop devices' ,
241
+ (WidgetTester tester) async {
242
+ // Small layout on desktop.
243
+ await tester.pumpWidget (SimulatedLayout .small.slot (tester));
244
+ await tester.pumpAndSettle ();
245
+ expect (
246
+ Breakpoint .activeBreakpointOf (tester
247
+ .element (find.byKey (const Key ('Breakpoints.smallDesktop' )))),
248
+ Breakpoints .smallDesktop);
249
+
250
+ // Medium layout on desktop.
251
+ await tester.pumpWidget (SimulatedLayout .medium.slot (tester));
252
+ await tester.pumpAndSettle ();
253
+ expect (
254
+ Breakpoint .activeBreakpointOf (tester
255
+ .element (find.byKey (const Key ('Breakpoints.mediumDesktop' )))),
256
+ Breakpoints .mediumDesktop);
257
+
258
+ // Large layout on desktop.
259
+ await tester.pumpWidget (SimulatedLayout .large.slot (tester));
260
+ await tester.pumpAndSettle ();
261
+ expect (
262
+ Breakpoint .activeBreakpointOf (tester
263
+ .element (find.byKey (const Key ('Breakpoints.largeDesktop' )))),
264
+ Breakpoints .largeDesktop);
265
+ }, variant: TargetPlatformVariant .desktop ());
266
+ });
102
267
}
103
268
104
269
class DummyWidget extends StatelessWidget {
0 commit comments