@@ -572,12 +572,14 @@ void main() {
572
572
/// the keyboard.
573
573
///
574
574
/// Returns the `clientId` used in the platform message.
575
- int showKeyboard ({String inputType, String inputAction}) {
575
+ int showKeyboard (
576
+ {String inputType, String inputAction, bool decimal = false }) {
576
577
final MethodCall setClient = MethodCall (
577
578
'TextInput.setClient' ,
578
579
< dynamic > [
579
580
++ clientId,
580
- createFlutterConfig (inputType, inputAction: inputAction),
581
+ createFlutterConfig (inputType,
582
+ inputAction: inputAction, decimal: decimal),
581
583
],
582
584
);
583
585
sendFrameworkMessage (codec.encodeMethodCall (setClient));
@@ -867,8 +869,7 @@ void main() {
867
869
expect (document.getElementsByTagName ('form' ), isEmpty);
868
870
});
869
871
870
- test (
871
- 'No capitilization: setClient, setEditingState, show' , () {
872
+ test ('No capitilization: setClient, setEditingState, show' , () {
872
873
// Create a configuration with an AutofillGroup of four text fields.
873
874
final Map <String , dynamic > capitilizeWordsConfig = createFlutterConfig (
874
875
'text' ,
@@ -908,8 +909,7 @@ void main() {
908
909
hideKeyboard ();
909
910
});
910
911
911
- test (
912
- 'All characters capitilization: setClient, setEditingState, show' , () {
912
+ test ('All characters capitilization: setClient, setEditingState, show' , () {
913
913
// Create a configuration with an AutofillGroup of four text fields.
914
914
final Map <String , dynamic > capitilizeWordsConfig = createFlutterConfig (
915
915
'text' ,
@@ -1356,6 +1356,12 @@ void main() {
1356
1356
showKeyboard (inputType: 'number' );
1357
1357
expect (getEditingInputMode (), 'numeric' );
1358
1358
1359
+ showKeyboard (inputType: 'number' , decimal: false );
1360
+ expect (getEditingInputMode (), 'numeric' );
1361
+
1362
+ showKeyboard (inputType: 'number' , decimal: true );
1363
+ expect (getEditingInputMode (), 'decimal' );
1364
+
1359
1365
showKeyboard (inputType: 'phone' );
1360
1366
expect (getEditingInputMode (), 'tel' );
1361
1367
@@ -1369,29 +1375,36 @@ void main() {
1369
1375
});
1370
1376
1371
1377
test ('sets correct input type in iOS' , () {
1372
- debugOperatingSystemOverride = OperatingSystem .iOs;
1373
- debugBrowserEngineOverride = BrowserEngine .webkit;
1378
+ // Test on ios-safari only.
1379
+ if (browserEngine == BrowserEngine .webkit &&
1380
+ operatingSystem == OperatingSystem .iOs) {
1381
+ /// During initialization [HybridTextEditing] will pick the correct
1382
+ /// text editing strategy for [OperatingSystem.iOs] .
1383
+ textEditing = HybridTextEditing ();
1374
1384
1375
- /// During initialization [HybridTextEditing] will pick the correct
1376
- /// text editing strategy for [OperatingSystem.iOs] .
1377
- textEditing = HybridTextEditing ();
1385
+ showKeyboard (inputType: 'text' );
1386
+ expect (getEditingInputMode (), 'text' );
1378
1387
1379
- showKeyboard (inputType: 'text ' );
1380
- expect (getEditingInputMode (), 'text ' );
1388
+ showKeyboard (inputType: 'number ' );
1389
+ expect (getEditingInputMode (), 'numeric ' );
1381
1390
1382
- showKeyboard (inputType: 'number' );
1383
- expect (getEditingInputMode (), 'numeric' );
1391
+ showKeyboard (inputType: 'number' , decimal : false );
1392
+ expect (getEditingInputMode (), 'numeric' );
1384
1393
1385
- showKeyboard (inputType: 'phone' );
1386
- expect (getEditingInputMode (), 'tel ' );
1394
+ showKeyboard (inputType: 'number' , decimal : true );
1395
+ expect (getEditingInputMode (), 'decimal ' );
1387
1396
1388
- showKeyboard (inputType: 'emailAddress ' );
1389
- expect (getEditingInputMode (), 'email ' );
1397
+ showKeyboard (inputType: 'phone ' );
1398
+ expect (getEditingInputMode (), 'tel ' );
1390
1399
1391
- showKeyboard (inputType: 'url ' );
1392
- expect (getEditingInputMode (), 'url ' );
1400
+ showKeyboard (inputType: 'emailAddress ' );
1401
+ expect (getEditingInputMode (), 'email ' );
1393
1402
1394
- hideKeyboard ();
1403
+ showKeyboard (inputType: 'url' );
1404
+ expect (getEditingInputMode (), 'url' );
1405
+
1406
+ hideKeyboard ();
1407
+ }
1395
1408
});
1396
1409
1397
1410
test ('sends the correct input action as a platform message' , () {
@@ -1798,10 +1811,12 @@ Map<String, dynamic> createFlutterConfig(
1798
1811
String inputAction,
1799
1812
String autofillHint,
1800
1813
List <String > autofillHintsForFields,
1814
+ bool decimal = false ,
1801
1815
}) {
1802
1816
return < String , dynamic > {
1803
- 'inputType' : < String , String > {
1817
+ 'inputType' : < String , dynamic > {
1804
1818
'name' : 'TextInputType.$inputType ' ,
1819
+ if (decimal) 'decimal' : true ,
1805
1820
},
1806
1821
'obscureText' : obscureText,
1807
1822
'autocorrect' : autocorrect,
0 commit comments