mirror of
https://github.com/Ujwal223/FocusGram.git
synced 2026-07-02 09:35:31 +02:00
77 lines
2.2 KiB
Dart
77 lines
2.2 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
import 'package:focusgram/services/app_lock_service.dart';
|
|
|
|
void main() {
|
|
TestWidgetsFlutterBinding.ensureInitialized();
|
|
|
|
setUp(() {
|
|
SharedPreferences.setMockInitialValues({});
|
|
});
|
|
|
|
group('AppLockService — PIN verification', () {
|
|
test('verifyPin returns true for correct PIN', () async {
|
|
final service = AppLockService();
|
|
await service.init();
|
|
|
|
await service.setPin('1234', forAppWide: true);
|
|
|
|
final valid = await service.verifyPin('1234', forAppWide: true);
|
|
expect(valid, isTrue);
|
|
});
|
|
|
|
test('verifyPin returns false for wrong PIN', () async {
|
|
final service = AppLockService();
|
|
await service.init();
|
|
|
|
await service.setPin('1234', forAppWide: true);
|
|
|
|
final valid = await service.verifyPin('0000', forAppWide: true);
|
|
expect(valid, isFalse);
|
|
});
|
|
|
|
test('verifyPin with forAppWide:false checks messages PIN', () async {
|
|
final service = AppLockService();
|
|
await service.init();
|
|
|
|
await service.setPin('5678', forAppWide: false);
|
|
|
|
final valid = await service.verifyPin('5678', forAppWide: false);
|
|
expect(valid, isTrue);
|
|
});
|
|
|
|
test('onUnlocked resets lock state', () async {
|
|
final service = AppLockService();
|
|
await service.init();
|
|
|
|
await service.setPin('1234', forAppWide: true);
|
|
service.onBackgrounded();
|
|
expect(service.shouldLockOnResume, isTrue);
|
|
|
|
service.onUnlocked();
|
|
expect(service.shouldLockOnResume, isFalse);
|
|
expect(service.isShowingLock, isFalse);
|
|
});
|
|
});
|
|
|
|
group('AppLockService — PIN management', () {
|
|
test('hasPin returns true after PIN is set', () async {
|
|
final service = AppLockService();
|
|
await service.init();
|
|
|
|
expect(service.hasPin, isFalse);
|
|
|
|
await service.setPin('1234', forAppWide: true);
|
|
expect(service.hasPin, isTrue);
|
|
});
|
|
|
|
test('verifyPin returns false when no PIN is set', () async {
|
|
final service = AppLockService();
|
|
await service.init();
|
|
|
|
final valid = await service.verifyPin('1234', forAppWide: true);
|
|
expect(valid, isFalse);
|
|
});
|
|
});
|
|
}
|