From 3d3f8e85a608613bc46e59c31bd905921de33093 Mon Sep 17 00:00:00 2001 From: Taha Tesser Date: Tue, 10 Jan 2023 21:49:22 +0200 Subject: [PATCH] Update `CupertinoPicker` example (#118248) * Update `CupertinoPicker` example * format lines * Revert making variable public * revert variable change --- .../cupertino/picker/cupertino_picker.0.dart | 16 +++++++++------- .../picker/cupertino_picker.0_test.dart | 17 ++++++++++++++--- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/examples/api/lib/cupertino/picker/cupertino_picker.0.dart b/examples/api/lib/cupertino/picker/cupertino_picker.0.dart index ca626d29c844..73d57cc11d10 100644 --- a/examples/api/lib/cupertino/picker/cupertino_picker.0.dart +++ b/examples/api/lib/cupertino/picker/cupertino_picker.0.dart @@ -29,6 +29,7 @@ class CupertinoPickerApp extends StatelessWidget { ); } } + class CupertinoPickerExample extends StatefulWidget { const CupertinoPickerExample({super.key}); @@ -57,7 +58,7 @@ class _CupertinoPickerExampleState extends State { top: false, child: child, ), - ) + ), ); } @@ -86,6 +87,10 @@ class _CupertinoPickerExampleState extends State { squeeze: 1.2, useMagnifier: true, itemExtent: _kItemExtent, + // This sets the initial item. + scrollController: FixedExtentScrollController( + initialItem: _selectedFruit, + ), // This is called when selected item is changed. onSelectedItemChanged: (int selectedItem) { setState(() { @@ -93,16 +98,13 @@ class _CupertinoPickerExampleState extends State { }); }, children: List.generate(_fruitNames.length, (int index) { - return Center( - child: Text( - _fruitNames[index], - ), - ); + return Center(child: Text(_fruitNames[index])); }), ), ), // This displays the selected fruit name. - child: Text(_fruitNames[_selectedFruit], + child: Text( + _fruitNames[_selectedFruit], style: const TextStyle( fontSize: 22.0, ), diff --git a/examples/api/test/cupertino/picker/cupertino_picker.0_test.dart b/examples/api/test/cupertino/picker/cupertino_picker.0_test.dart index f2e9a97fa605..178764ae7c44 100644 --- a/examples/api/test/cupertino/picker/cupertino_picker.0_test.dart +++ b/examples/api/test/cupertino/picker/cupertino_picker.0_test.dart @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'package:flutter/cupertino.dart'; import 'package:flutter_api_samples/cupertino/picker/cupertino_picker.0.dart' as example; import 'package:flutter_test/flutter_test.dart'; @@ -14,12 +15,15 @@ void main() { ); // Open the Cupertino picker. - await tester.tap(find.text('Apple')); + await tester.tap(find.widgetWithText(CupertinoButton, 'Apple')); await tester.pumpAndSettle(); + // Test the initial item. + CupertinoPicker picker = tester.widget(find.byType(CupertinoPicker)); + expect(picker.scrollController!.initialItem, 0); + // Drag the wheel to change fruit selection. await tester.drag(find.text('Mango'), _kRowOffset, touchSlopY: 0, warnIfMissed: false); // see top of file - await tester.pump(); await tester.pump(const Duration(milliseconds: 500)); @@ -27,6 +31,13 @@ void main() { await tester.tapAt(const Offset(1.0, 1.0)); await tester.pumpAndSettle(); - expect(find.text('Banana'), findsOneWidget); + expect(find.widgetWithText(CupertinoButton, 'Banana'), findsOneWidget); + + // Test if the initial item has updated. + await tester.tap(find.widgetWithText(CupertinoButton, 'Banana')); + await tester.pumpAndSettle(); + + picker = tester.widget(find.byType(CupertinoPicker)); + expect(picker.scrollController!.initialItem, 2); }); }