@@ -34,6 +34,19 @@ class TestScrollController extends ScrollController {
3434 }
3535}
3636
37+ Widget primaryScrollControllerBoilerplate ({ required Widget child, required ScrollController controller }) {
38+ return Directionality (
39+ textDirection: TextDirection .ltr,
40+ child: MediaQuery (
41+ data: const MediaQueryData (),
42+ child: PrimaryScrollController (
43+ controller: controller,
44+ child: child,
45+ ),
46+ ),
47+ );
48+ }
49+
3750void main () {
3851 testWidgets ('SingleChildScrollView overflow and clipRect test' , (WidgetTester tester) async {
3952 // the test widowSize is Size(800.0, 600.0)
@@ -210,23 +223,41 @@ void main() {
210223 ));
211224 });
212225
213- testWidgets ('Vertical SingleChildScrollViews are primary by default' , (WidgetTester tester) async {
226+ testWidgets ('Vertical SingleChildScrollViews are not primary by default' , (WidgetTester tester) async {
214227 const SingleChildScrollView view = SingleChildScrollView ();
215- expect (view.primary, isTrue );
228+ expect (view.primary, isNull );
216229 });
217230
218- testWidgets ('Horizontal SingleChildScrollViews are non- primary by default' , (WidgetTester tester) async {
231+ testWidgets ('Horizontal SingleChildScrollViews are not primary by default' , (WidgetTester tester) async {
219232 const SingleChildScrollView view = SingleChildScrollView (scrollDirection: Axis .horizontal);
220- expect (view.primary, isFalse );
233+ expect (view.primary, isNull );
221234 });
222235
223- testWidgets ('SingleChildScrollViews with controllers are non- primary by default' , (WidgetTester tester) async {
236+ testWidgets ('SingleChildScrollViews with controllers are not primary by default' , (WidgetTester tester) async {
224237 final SingleChildScrollView view = SingleChildScrollView (
225238 controller: ScrollController (),
226239 );
227- expect (view.primary, isFalse );
240+ expect (view.primary, isNull );
228241 });
229242
243+ testWidgets ('Vertical SingleChildScrollViews use PrimaryScrollController by default on mobile' , (WidgetTester tester) async {
244+ final ScrollController controller = ScrollController ();
245+ await tester.pumpWidget (primaryScrollControllerBoilerplate (
246+ child: const SingleChildScrollView (),
247+ controller: controller,
248+ ));
249+ expect (controller.hasClients, isTrue);
250+ }, variant: TargetPlatformVariant .mobile ());
251+
252+ testWidgets ("Vertical SingleChildScrollViews don't use PrimaryScrollController by default on desktop" , (WidgetTester tester) async {
253+ final ScrollController controller = ScrollController ();
254+ await tester.pumpWidget (primaryScrollControllerBoilerplate (
255+ child: const SingleChildScrollView (),
256+ controller: controller,
257+ ));
258+ expect (controller.hasClients, isFalse);
259+ }, variant: TargetPlatformVariant .desktop ());
260+
230261 testWidgets ('Nested scrollables have a null PrimaryScrollController' , (WidgetTester tester) async {
231262 const Key innerKey = Key ('inner' );
232263 final ScrollController primaryScrollController = ScrollController ();
0 commit comments