mirror of
https://github.com/Yubico/yubioath-flutter.git
synced 2024-12-22 17:51:29 +03:00
Use env variable for test keys serial numbers
This commit is contained in:
parent
a8349e4484
commit
40f806ed17
@ -1,20 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2022 Yubico.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/// list of YubiKey serial numbers which are approved to be used with integration tests
|
|
||||||
var approvedYubiKeys = <String>[
|
|
||||||
'',
|
|
||||||
];
|
|
@ -23,7 +23,6 @@ import 'package:yubico_authenticator/core/state.dart';
|
|||||||
import 'package:yubico_authenticator/management/views/keys.dart';
|
import 'package:yubico_authenticator/management/views/keys.dart';
|
||||||
|
|
||||||
import 'android/util.dart' as android_test_util;
|
import 'android/util.dart' as android_test_util;
|
||||||
import '../_approved_yubikeys.dart';
|
|
||||||
import 'desktop/util.dart' as desktop_test_util;
|
import 'desktop/util.dart' as desktop_test_util;
|
||||||
|
|
||||||
const shortWaitMs = 500;
|
const shortWaitMs = 500;
|
||||||
@ -115,16 +114,30 @@ extension AppWidgetTester on WidgetTester {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<void> startUp([Map<dynamic, dynamic> startUpParams = const {}]) async {
|
Future<void> startUp([Map<dynamic, dynamic> startUpParams = const {}]) async {
|
||||||
|
// YA_TEST_APPROVED_KEY_SN should contain comma separated list of
|
||||||
|
// YubiKey serial numbers which are approved for tests
|
||||||
|
// To pass the variable to the test use:
|
||||||
|
// flutter --dart-define=YA_TEST_APPROVED_KEY_SN=SN1,SN2,...,SNn test t
|
||||||
|
const envVar = String.fromEnvironment('YA_TEST_APPROVED_KEY_SN');
|
||||||
|
final approvedSerialNumbers = envVar.split(',');
|
||||||
|
|
||||||
var result = isAndroid == true
|
var result = isAndroid == true
|
||||||
? await android_test_util.startUp(this, startUpParams)
|
? await android_test_util.startUp(this, startUpParams)
|
||||||
: await desktop_test_util.startUp(this, startUpParams);
|
: await desktop_test_util.startUp(this, startUpParams);
|
||||||
|
|
||||||
await collectYubiKeyInformation();
|
await collectYubiKeyInformation();
|
||||||
|
|
||||||
if (!approvedYubiKeys.contains(yubiKeySerialNumber)) {
|
if (!approvedSerialNumbers.contains(yubiKeySerialNumber)) {
|
||||||
testLog(false,
|
if (yubiKeySerialNumber == null) {
|
||||||
'The connected key is refused by the tests: $yubiKeySerialNumber');
|
expect(
|
||||||
expect(approvedYubiKeys.contains(yubiKeySerialNumber), equals(true));
|
approvedSerialNumbers.contains(yubiKeySerialNumber), equals(true),
|
||||||
|
reason: 'No YubiKey connected');
|
||||||
|
} else {
|
||||||
|
expect(
|
||||||
|
approvedSerialNumbers.contains(yubiKeySerialNumber), equals(true),
|
||||||
|
reason:
|
||||||
|
'YubiKey with S/N $yubiKeySerialNumber is not approved for integration tests.');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@ -151,7 +164,7 @@ extension AppWidgetTester on WidgetTester {
|
|||||||
.evaluate()
|
.evaluate()
|
||||||
.single
|
.single
|
||||||
.widget as ListTile;
|
.widget as ListTile;
|
||||||
//ListTile lt = deviceInfo.evaluate().single.widget as ListTile;
|
|
||||||
yubiKeyName = (lt.title as Text).data;
|
yubiKeyName = (lt.title as Text).data;
|
||||||
var subtitle = (lt.subtitle as Text?)?.data;
|
var subtitle = (lt.subtitle as Text?)?.data;
|
||||||
|
|
||||||
@ -176,17 +189,6 @@ extension AppWidgetTester on WidgetTester {
|
|||||||
testLog(false,
|
testLog(false,
|
||||||
'Connected YubiKey: $yubiKeySerialNumber/$yubiKeyFirmware - $yubiKeyName');
|
'Connected YubiKey: $yubiKeySerialNumber/$yubiKeyFirmware - $yubiKeyName');
|
||||||
|
|
||||||
if (!approvedYubiKeys.contains(yubiKeySerialNumber)) {
|
|
||||||
if (yubiKeySerialNumber == null) {
|
|
||||||
expect(approvedYubiKeys.contains(yubiKeySerialNumber), equals(true),
|
|
||||||
reason: 'No YubiKey connected');
|
|
||||||
} else {
|
|
||||||
expect(approvedYubiKeys.contains(yubiKeySerialNumber), equals(true),
|
|
||||||
reason:
|
|
||||||
'YubiKey with S/N $yubiKeySerialNumber is not approved for integration tests.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
collectedYubiKeyInformation = true;
|
collectedYubiKeyInformation = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user