mirror of
https://github.com/Yubico/yubioath-flutter.git
synced 2024-11-22 00:12:09 +03:00
All PIV/PUK tests mended again...
This commit is contained in:
parent
94885c41c2
commit
af65f0a171
@ -34,87 +34,121 @@ void main() {
|
|||||||
group('PIV Settings', skip: isAndroid, () {
|
group('PIV Settings', skip: isAndroid, () {
|
||||||
const factoryPin = '123456';
|
const factoryPin = '123456';
|
||||||
const factoryPuk = '12345678';
|
const factoryPuk = '12345678';
|
||||||
appTest('Reset PIV (settings-init)', (WidgetTester tester) async {
|
const uno = 'abcdabcd';
|
||||||
|
const due = 'bcdabcda';
|
||||||
|
const tre = 'cdabcdab';
|
||||||
|
|
||||||
|
appTest('reset PIV (settings-init)', (WidgetTester tester) async {
|
||||||
await tester.resetPiv();
|
await tester.resetPiv();
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
});
|
});
|
||||||
appTest('Lock PIN, unlock with PUK', (WidgetTester tester) async {
|
|
||||||
await tester.configurePiv();
|
|
||||||
await tester.shortWait();
|
|
||||||
await tester.tap(find.byKey(managePinAction).hitTestable());
|
|
||||||
await tester.shortWait();
|
|
||||||
await tester.lockPinPuk();
|
|
||||||
await tester.shortWait();
|
|
||||||
await tester.tap(find.byKey(actionsIconButtonKey).hitTestable());
|
|
||||||
|
|
||||||
/// TODO: This expect needs to verify that Pin subtitle is 'Blocked'
|
appTest('pin lock-unlock', (WidgetTester tester) async {
|
||||||
/// expect(find.byKey(managePinAction), find.byTooltip('Blocked'));
|
await tester.resetPiv();
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
|
|
||||||
|
await tester.pinView();
|
||||||
|
await tester.pivFirst();
|
||||||
|
|
||||||
|
await tester.longWait();
|
||||||
|
await tester.pinView();
|
||||||
|
await tester.longWait();
|
||||||
|
|
||||||
|
await tester.pivLockTest();
|
||||||
|
|
||||||
|
await tester.sendKeyEvent(LogicalKeyboardKey.escape);
|
||||||
|
await tester.shortWait();
|
||||||
|
|
||||||
|
await tester.tap(find.byKey(actionsIconButtonKey).hitTestable());
|
||||||
|
await tester.longWait();
|
||||||
|
|
||||||
|
expect(find.text('Blocked, use PUK to reset'), findsOne);
|
||||||
|
|
||||||
await tester.tap(find.byKey(managePinAction).hitTestable());
|
await tester.tap(find.byKey(managePinAction).hitTestable());
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.enterText(find.byKey(pinPukField).hitTestable(), factoryPuk);
|
|
||||||
await tester.shortWait();
|
// PUK field is pre-filled
|
||||||
await tester.enterText(
|
await tester.pivFirst();
|
||||||
find.byKey(newPinPukField).hitTestable(), factoryPin);
|
await tester.tap(find.byKey(actionsIconButtonKey).hitTestable());
|
||||||
await tester.shortWait();
|
|
||||||
await tester.enterText(
|
|
||||||
find.byKey(confirmPinPukField).hitTestable(), factoryPin);
|
|
||||||
await tester.shortWait();
|
|
||||||
await tester.tap(find.byKey(saveButton).hitTestable());
|
|
||||||
await tester.shortWait();
|
|
||||||
await tester.sendKeyEvent(LogicalKeyboardKey.escape);
|
|
||||||
await tester.longWait();
|
await tester.longWait();
|
||||||
await tester.resetPiv();
|
|
||||||
|
expect(find.text('Blocked, use PUK to reset'), findsNothing);
|
||||||
});
|
});
|
||||||
appTest('Lock PUK, lock PIN, factory reset', (WidgetTester tester) async {
|
|
||||||
await tester.configurePiv();
|
|
||||||
await tester.shortWait();
|
|
||||||
await tester.tap(find.byKey(managePukAction).hitTestable());
|
|
||||||
await tester.shortWait();
|
|
||||||
await tester.lockPinPuk();
|
|
||||||
await tester.shortWait();
|
|
||||||
await tester.tap(find.byKey(actionsIconButtonKey).hitTestable());
|
|
||||||
|
|
||||||
/// TODO: This expect needs to verify that PUK underline is 'Blocked'
|
appTest('lock PUK, lock PIN, factory reset', (WidgetTester tester) async {
|
||||||
/// expect(find.byKey(managePukAction), find.byTooltip('Blocked'));
|
|
||||||
|
|
||||||
await tester.shortWait();
|
|
||||||
await tester.tap(find.byKey(managePinAction).hitTestable());
|
|
||||||
await tester.shortWait();
|
|
||||||
await tester.lockPinPuk();
|
|
||||||
await tester.shortWait();
|
|
||||||
await tester.tap(find.byKey(actionsIconButtonKey).hitTestable());
|
|
||||||
|
|
||||||
/// TODO: This expect needs to verify that Pin underline is 'Blocked'
|
|
||||||
/// expect(find.byKey(managePinAction), find.byTooltip('Blocked'));
|
|
||||||
|
|
||||||
await tester.shortWait();
|
|
||||||
await tester.tap(find.byKey(managePinAction).hitTestable());
|
|
||||||
await tester.shortWait();
|
|
||||||
await tester.tap(find.byKey(managePukAction).hitTestable());
|
|
||||||
await tester.shortWait();
|
|
||||||
await tester.sendKeyEvent(LogicalKeyboardKey.escape);
|
|
||||||
await tester.longWait();
|
|
||||||
await tester.resetPiv();
|
await tester.resetPiv();
|
||||||
|
await tester.shortWait();
|
||||||
|
|
||||||
|
// set first pin/puk
|
||||||
|
await tester.pinView();
|
||||||
|
await tester.pivFirst();
|
||||||
|
await tester.pukView();
|
||||||
|
await tester.pivFirst();
|
||||||
|
|
||||||
|
// lock pin and puk
|
||||||
|
await tester.pinView();
|
||||||
|
await tester.pivLockTest();
|
||||||
|
await tester.sendKeyEvent(LogicalKeyboardKey.escape);
|
||||||
|
await tester.shortWait();
|
||||||
|
await tester.pukView();
|
||||||
|
await tester.pivLockTest();
|
||||||
|
await tester.sendKeyEvent(LogicalKeyboardKey.escape);
|
||||||
|
await tester.shortWait();
|
||||||
|
|
||||||
|
// verify blockedness
|
||||||
|
|
||||||
|
await tester.tap(find.byKey(actionsIconButtonKey).hitTestable());
|
||||||
|
await tester.shortWait();
|
||||||
|
|
||||||
|
expect(find.text('Blocked, factory reset needed'), findsAny);
|
||||||
|
|
||||||
|
await tester.sendKeyEvent(LogicalKeyboardKey.escape);
|
||||||
|
await tester.shortWait();
|
||||||
});
|
});
|
||||||
appTest('Change PIN', (WidgetTester tester) async {
|
appTest('Change PIN', (WidgetTester tester) async {
|
||||||
const newpin = '123123';
|
await tester.resetPiv();
|
||||||
await tester.configurePiv();
|
|
||||||
await tester.tap(find.byKey(managePinAction).hitTestable());
|
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.enterText(find.byKey(pinPukField).hitTestable(), factoryPin);
|
|
||||||
|
//reset factorypin
|
||||||
|
await tester.pinView();
|
||||||
|
await tester.pivFirst();
|
||||||
|
|
||||||
|
// onepin
|
||||||
|
await tester.pinView();
|
||||||
|
await tester.enterText(find.byKey(pinPukField).hitTestable(), 'firstpin');
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.enterText(find.byKey(newPinPukField).hitTestable(), newpin);
|
await tester.enterText(find.byKey(newPinPukField).hitTestable(), uno);
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.enterText(
|
await tester.enterText(find.byKey(confirmPinPukField).hitTestable(), uno);
|
||||||
find.byKey(confirmPinPukField).hitTestable(), newpin);
|
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.tap(find.byKey(saveButton).hitTestable());
|
await tester.tap(find.byKey(saveButton).hitTestable());
|
||||||
await tester.longWait();
|
|
||||||
await tester.configurePiv();
|
|
||||||
await tester.tap(find.byKey(managePinAction).hitTestable());
|
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.enterText(find.byKey(pinPukField).hitTestable(), newpin);
|
|
||||||
|
// onepin
|
||||||
|
await tester.pinView();
|
||||||
|
await tester.enterText(find.byKey(pinPukField).hitTestable(), uno);
|
||||||
|
await tester.shortWait();
|
||||||
|
await tester.enterText(find.byKey(newPinPukField).hitTestable(), due);
|
||||||
|
await tester.shortWait();
|
||||||
|
await tester.enterText(find.byKey(confirmPinPukField).hitTestable(), due);
|
||||||
|
await tester.shortWait();
|
||||||
|
await tester.tap(find.byKey(saveButton).hitTestable());
|
||||||
|
await tester.shortWait();
|
||||||
|
|
||||||
|
// onepin
|
||||||
|
await tester.pinView();
|
||||||
|
await tester.enterText(find.byKey(pinPukField).hitTestable(), due);
|
||||||
|
await tester.shortWait();
|
||||||
|
await tester.enterText(find.byKey(newPinPukField).hitTestable(), tre);
|
||||||
|
await tester.shortWait();
|
||||||
|
await tester.enterText(find.byKey(confirmPinPukField).hitTestable(), tre);
|
||||||
|
await tester.shortWait();
|
||||||
|
await tester.tap(find.byKey(saveButton).hitTestable());
|
||||||
|
await tester.shortWait();
|
||||||
|
|
||||||
|
// factorpin
|
||||||
|
await tester.pinView();
|
||||||
|
await tester.enterText(find.byKey(pinPukField).hitTestable(), tre);
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.enterText(
|
await tester.enterText(
|
||||||
find.byKey(newPinPukField).hitTestable(), factoryPin);
|
find.byKey(newPinPukField).hitTestable(), factoryPin);
|
||||||
@ -123,26 +157,52 @@ void main() {
|
|||||||
find.byKey(confirmPinPukField).hitTestable(), factoryPin);
|
find.byKey(confirmPinPukField).hitTestable(), factoryPin);
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.tap(find.byKey(saveButton).hitTestable());
|
await tester.tap(find.byKey(saveButton).hitTestable());
|
||||||
await tester.longWait();
|
await tester.shortWait();
|
||||||
});
|
});
|
||||||
appTest('Change PUK', (WidgetTester tester) async {
|
appTest('Change PUK', (WidgetTester tester) async {
|
||||||
const newpuk = '12341234';
|
await tester.resetPiv();
|
||||||
await tester.configurePiv();
|
|
||||||
await tester.tap(find.byKey(managePukAction).hitTestable());
|
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.enterText(find.byKey(pinPukField).hitTestable(), factoryPuk);
|
|
||||||
|
//reset factorypuk
|
||||||
|
await tester.pinView();
|
||||||
|
await tester.pivFirst();
|
||||||
|
|
||||||
|
// onepin
|
||||||
|
await tester.pinView();
|
||||||
|
await tester.enterText(find.byKey(pinPukField).hitTestable(), 'firstpin');
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.enterText(find.byKey(newPinPukField).hitTestable(), newpuk);
|
await tester.enterText(find.byKey(newPinPukField).hitTestable(), uno);
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.enterText(
|
await tester.enterText(find.byKey(confirmPinPukField).hitTestable(), uno);
|
||||||
find.byKey(confirmPinPukField).hitTestable(), newpuk);
|
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.tap(find.byKey(saveButton).hitTestable());
|
await tester.tap(find.byKey(saveButton).hitTestable());
|
||||||
await tester.longWait();
|
|
||||||
await tester.configurePiv();
|
|
||||||
await tester.tap(find.byKey(managePukAction).hitTestable());
|
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.enterText(find.byKey(pinPukField).hitTestable(), newpuk);
|
|
||||||
|
// onepin
|
||||||
|
await tester.pinView();
|
||||||
|
await tester.enterText(find.byKey(pinPukField).hitTestable(), uno);
|
||||||
|
await tester.shortWait();
|
||||||
|
await tester.enterText(find.byKey(newPinPukField).hitTestable(), due);
|
||||||
|
await tester.shortWait();
|
||||||
|
await tester.enterText(find.byKey(confirmPinPukField).hitTestable(), due);
|
||||||
|
await tester.shortWait();
|
||||||
|
await tester.tap(find.byKey(saveButton).hitTestable());
|
||||||
|
await tester.shortWait();
|
||||||
|
|
||||||
|
// onepin
|
||||||
|
await tester.pinView();
|
||||||
|
await tester.enterText(find.byKey(pinPukField).hitTestable(), due);
|
||||||
|
await tester.shortWait();
|
||||||
|
await tester.enterText(find.byKey(newPinPukField).hitTestable(), tre);
|
||||||
|
await tester.shortWait();
|
||||||
|
await tester.enterText(find.byKey(confirmPinPukField).hitTestable(), tre);
|
||||||
|
await tester.shortWait();
|
||||||
|
await tester.tap(find.byKey(saveButton).hitTestable());
|
||||||
|
await tester.shortWait();
|
||||||
|
|
||||||
|
// factorpuk
|
||||||
|
await tester.pinView();
|
||||||
|
await tester.enterText(find.byKey(pinPukField).hitTestable(), tre);
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.enterText(
|
await tester.enterText(
|
||||||
find.byKey(newPinPukField).hitTestable(), factoryPuk);
|
find.byKey(newPinPukField).hitTestable(), factoryPuk);
|
||||||
@ -151,7 +211,7 @@ void main() {
|
|||||||
find.byKey(confirmPinPukField).hitTestable(), factoryPuk);
|
find.byKey(confirmPinPukField).hitTestable(), factoryPuk);
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.tap(find.byKey(saveButton).hitTestable());
|
await tester.tap(find.byKey(saveButton).hitTestable());
|
||||||
await tester.longWait();
|
await tester.shortWait();
|
||||||
});
|
});
|
||||||
group('PIV Management Key', () {
|
group('PIV Management Key', () {
|
||||||
const newmanagementkey =
|
const newmanagementkey =
|
||||||
@ -162,6 +222,9 @@ void main() {
|
|||||||
'aaaabbbbccccaaaabbbbccccaaaabbbbccccaaaabbbbccc';
|
'aaaabbbbccccaaaabbbbccccaaaabbbbccccaaaabbbbccc';
|
||||||
|
|
||||||
appTest('Out of bounds managementkey key', (WidgetTester tester) async {
|
appTest('Out of bounds managementkey key', (WidgetTester tester) async {
|
||||||
|
await tester.resetPiv();
|
||||||
|
await tester.shortWait();
|
||||||
|
|
||||||
await tester.configurePiv();
|
await tester.configurePiv();
|
||||||
await tester.shortWait();
|
await tester.shortWait();
|
||||||
await tester.tap(find.byKey(manageManagementKeyAction).hitTestable());
|
await tester.tap(find.byKey(manageManagementKeyAction).hitTestable());
|
||||||
|
@ -22,30 +22,112 @@ import 'package:yubico_authenticator/piv/keys.dart';
|
|||||||
import 'test_util.dart';
|
import 'test_util.dart';
|
||||||
|
|
||||||
extension PIVFunctions on WidgetTester {
|
extension PIVFunctions on WidgetTester {
|
||||||
|
static const ett = 'firstpin';
|
||||||
|
static const lock1 = 'lockpinn1';
|
||||||
|
static const lock2 = 'lockpinn2';
|
||||||
|
static const lock3 = 'lockpinn3';
|
||||||
|
|
||||||
/// Open the PIV Configuration
|
/// Open the PIV Configuration
|
||||||
Future<void> configurePiv() async {
|
Future<void> configurePiv() async {
|
||||||
// 1. open PIV view
|
await tap(find.byKey(pivAppDrawer).hitTestable());
|
||||||
var pivDrawerButton = find.byKey(pivAppDrawer).hitTestable();
|
await shortWait();
|
||||||
await tap(pivDrawerButton);
|
|
||||||
await longWait();
|
|
||||||
await tap(find.byKey(actionsIconButtonKey).hitTestable());
|
await tap(find.byKey(actionsIconButtonKey).hitTestable());
|
||||||
|
await shortWait();
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> pinView() async {
|
||||||
|
await tap(find.byKey(pivAppDrawer).hitTestable());
|
||||||
|
await shortWait();
|
||||||
|
await tap(find.byKey(actionsIconButtonKey).hitTestable());
|
||||||
|
await shortWait();
|
||||||
|
await tap(find.byKey(managePinAction));
|
||||||
|
await shortWait();
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> pukView() async {
|
||||||
|
await tap(find.byKey(pivAppDrawer).hitTestable());
|
||||||
|
await shortWait();
|
||||||
|
await tap(find.byKey(actionsIconButtonKey).hitTestable());
|
||||||
|
await shortWait();
|
||||||
|
await tap(find.byKey(managePukAction));
|
||||||
|
await shortWait();
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> managementKeyView() async {
|
||||||
|
await tap(find.byKey(pivAppDrawer).hitTestable());
|
||||||
|
await shortWait();
|
||||||
|
await tap(find.byKey(actionsIconButtonKey).hitTestable());
|
||||||
|
await shortWait();
|
||||||
|
await tap(find.byKey(manageManagementKeyAction));
|
||||||
|
await shortWait();
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> pivFirst() async {
|
||||||
|
// when in pin or puk view, remove factorypin/puk
|
||||||
|
await enterText(find.byKey(newPinPukField), ett);
|
||||||
|
await shortWait();
|
||||||
|
await enterText(find.byKey(confirmPinPukField), ett);
|
||||||
|
await shortWait();
|
||||||
|
await tap(find.byKey(saveButton).hitTestable());
|
||||||
|
await shortWait();
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> pivLockTest() async {
|
||||||
|
// when in pin or puk view this will lock it
|
||||||
|
var pintext1 = 'lockpin1';
|
||||||
|
await enterText(find.byKey(pinPukField), pintext1);
|
||||||
|
await shortWait();
|
||||||
|
await enterText(find.byKey(newPinPukField), pintext1);
|
||||||
|
await shortWait();
|
||||||
|
await enterText(find.byKey(confirmPinPukField), pintext1);
|
||||||
|
await shortWait();
|
||||||
|
await tap(find.byKey(saveButton).hitTestable());
|
||||||
|
await shortWait();
|
||||||
|
|
||||||
|
var pintext2 = 'lockpin2';
|
||||||
|
await enterText(find.byKey(pinPukField), pintext2);
|
||||||
|
await shortWait();
|
||||||
|
await enterText(find.byKey(newPinPukField), pintext2);
|
||||||
|
await shortWait();
|
||||||
|
await enterText(find.byKey(confirmPinPukField), pintext2);
|
||||||
|
await shortWait();
|
||||||
|
await tap(find.byKey(saveButton).hitTestable());
|
||||||
|
await shortWait();
|
||||||
|
|
||||||
|
var pintext3 = 'lockpin3';
|
||||||
|
await enterText(find.byKey(pinPukField), pintext3);
|
||||||
|
await shortWait();
|
||||||
|
await enterText(find.byKey(newPinPukField), pintext3);
|
||||||
|
await shortWait();
|
||||||
|
await enterText(find.byKey(confirmPinPukField), pintext3);
|
||||||
|
await shortWait();
|
||||||
|
await tap(find.byKey(saveButton).hitTestable());
|
||||||
await longWait();
|
await longWait();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Locks PIN or PUK
|
Future<void> pivLock() async {
|
||||||
Future<void> lockPinPuk() async {
|
// when in pin or puk view this will lock it
|
||||||
for (var i = 0; i < 3; i += 1) {
|
// for (var i = 0; i < 3; i += 1) {
|
||||||
var wrongpin = '123456$i';
|
|
||||||
await enterText(find.byKey(pinPukField).hitTestable(), wrongpin);
|
await enterText(find.byKey(pinPukField), 'skrivhär');
|
||||||
await shortWait();
|
await shortWait();
|
||||||
await enterText(find.byKey(newPinPukField).hitTestable(), wrongpin);
|
await enterText(find.byKey(newPinPukField), lock1);
|
||||||
await shortWait();
|
await shortWait();
|
||||||
await enterText(find.byKey(confirmPinPukField).hitTestable(), wrongpin);
|
await enterText(find.byKey(confirmPinPukField), lock1);
|
||||||
await shortWait();
|
await shortWait();
|
||||||
await tap(find.byKey(saveButton).hitTestable());
|
await tap(find.byKey(saveButton).hitTestable());
|
||||||
await longWait();
|
await shortWait();
|
||||||
}
|
await enterText(find.byKey(pinPukField), lock2);
|
||||||
|
await shortWait();
|
||||||
|
await enterText(find.byKey(newPinPukField), lock2);
|
||||||
|
await shortWait();
|
||||||
|
await enterText(find.byKey(confirmPinPukField), lock2);
|
||||||
|
await shortWait();
|
||||||
|
await tap(find.byKey(saveButton).hitTestable());
|
||||||
|
await shortWait();
|
||||||
|
// }
|
||||||
await sendKeyEvent(LogicalKeyboardKey.escape);
|
await sendKeyEvent(LogicalKeyboardKey.escape);
|
||||||
|
await shortWait();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Factory reset Piv application
|
/// Factory reset Piv application
|
||||||
@ -56,19 +138,23 @@ extension PIVFunctions on WidgetTester {
|
|||||||
await switchToKey(targetKey);
|
await switchToKey(targetKey);
|
||||||
await shortWait();
|
await shortWait();
|
||||||
|
|
||||||
/// 2. open the key menu
|
/// 2. open the home view
|
||||||
await tapPopupMenu(targetKey);
|
await tap(find.byKey(homeDrawer).hitTestable());
|
||||||
await shortWait();
|
await shortWait();
|
||||||
await tap(find.byKey(yubikeyFactoryResetMenuButton).hitTestable());
|
|
||||||
await longWait();
|
|
||||||
|
|
||||||
/// 3. then toggle 'Piv' in the 'Factory reset' reset_dialog.dart
|
/// 3. open menu
|
||||||
|
await tap(find.byKey(actionsIconButtonKey).hitTestable());
|
||||||
|
await shortWait();
|
||||||
|
await tap(find.byKey(yubikeyFactoryResetMenuButton));
|
||||||
|
await shortWait();
|
||||||
|
|
||||||
|
/// 4. then toggle 'Piv' in the 'Factory reset' reset_dialog.dart
|
||||||
await tap(find.byKey(factoryResetPickResetPiv));
|
await tap(find.byKey(factoryResetPickResetPiv));
|
||||||
await longWait();
|
await longWait();
|
||||||
|
|
||||||
/// 4. Click reset TextButton: done
|
/// 5. Click reset TextButton: done
|
||||||
await tap(find.byKey(factoryResetReset));
|
await tap(find.byKey(factoryResetReset));
|
||||||
await shortWait();
|
await ultraLongWait();
|
||||||
|
|
||||||
// 5. Verify Resetedness
|
// 5. Verify Resetedness
|
||||||
// /// TODO: this expect algorithm is flaky
|
// /// TODO: this expect algorithm is flaky
|
||||||
|
@ -58,6 +58,7 @@ Widget homeBuildActions(
|
|||||||
title: deviceData.info.version.major > 4
|
title: deviceData.info.version.major > 4
|
||||||
? l10n.s_toggle_applications
|
? l10n.s_toggle_applications
|
||||||
: l10n.s_toggle_interfaces,
|
: l10n.s_toggle_interfaces,
|
||||||
|
key: yubikeyApplicationToggleMenuButton,
|
||||||
subtitle: interfacesLocked
|
subtitle: interfacesLocked
|
||||||
? l10n.l_factory_reset_required
|
? l10n.l_factory_reset_required
|
||||||
: (deviceData.info.version.major > 4
|
: (deviceData.info.version.major > 4
|
||||||
@ -83,6 +84,7 @@ Widget homeBuildActions(
|
|||||||
ActionListItem(
|
ActionListItem(
|
||||||
icon: const Icon(Symbols.delete_forever),
|
icon: const Icon(Symbols.delete_forever),
|
||||||
title: l10n.s_factory_reset,
|
title: l10n.s_factory_reset,
|
||||||
|
key: yubikeyFactoryResetMenuButton,
|
||||||
subtitle: l10n.l_factory_reset_desc,
|
subtitle: l10n.l_factory_reset_desc,
|
||||||
actionStyle: ActionStyle.primary,
|
actionStyle: ActionStyle.primary,
|
||||||
onTap: (context) {
|
onTap: (context) {
|
||||||
|
@ -292,7 +292,7 @@ class _ManageKeyDialogState extends ConsumerState<ManageKeyDialog> {
|
|||||||
},
|
},
|
||||||
).init(),
|
).init(),
|
||||||
AppTextField(
|
AppTextField(
|
||||||
key: keys.newPinPukField,
|
//key: keys.newPinPukField,
|
||||||
autofocus: _defaultKeyUsed,
|
autofocus: _defaultKeyUsed,
|
||||||
autofillHints: const [AutofillHints.newPassword],
|
autofillHints: const [AutofillHints.newPassword],
|
||||||
maxLength: hexLength,
|
maxLength: hexLength,
|
||||||
|
Loading…
Reference in New Issue
Block a user