ensureTestPlugins static method

void ensureTestPlugins()

Implementation

static void ensureTestPlugins() {
  TestWidgetsFlutterBinding.ensureInitialized();
  if (!_sqfliteInitialized) {
    sqfliteFfiInit();
    databaseFactory = databaseFactoryFfi;
    _sqfliteInitialized = true;
  }
  ensureFirebaseCoreMocksForTest();
  ensureAdobeAnalyticsMocksForTest();
  HttpOverrides.global = _RealNetworkHttpOverrides();
  const pathProviderChannel =
      MethodChannel('plugins.flutter.io/path_provider');
  TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
      .setMockMethodCallHandler(pathProviderChannel, (call) async {
    switch (call.method) {
      case 'getApplicationDocumentsDirectory':
      case 'getTemporaryDirectory':
      case 'getApplicationSupportDirectory':
        return _testStoragePath;
      default:
        return null;
    }
  });

  const packageInfoChannel =
      MethodChannel('dev.fluttercommunity.plus/package_info');
  TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
      .setMockMethodCallHandler(packageInfoChannel, (call) async {
    if (call.method == 'getAll') {
      return _resolvePackageInfo(Directory.current);
    }
    return null;
  });

  const secureStorageChannel =
      MethodChannel('plugins.it_nomads.com/flutter_secure_storage');
  TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
      .setMockMethodCallHandler(secureStorageChannel, (call) async {
    final args = Map<String, Object?>.from(call.arguments as Map? ?? {});
    final key = args['key']?.toString();
    switch (call.method) {
      case 'write':
        if (key != null) {
          _secureStorage[key] = args['value']?.toString() ?? '';
        }
        return null;
      case 'read':
        return key == null ? null : _secureStorage[key];
      case 'readAll':
        return Map<String, String>.from(_secureStorage);
      case 'delete':
        if (key != null) _secureStorage.remove(key);
        return null;
      case 'deleteAll':
        _secureStorage.clear();
        return null;
      case 'containsKey':
        return key != null && _secureStorage.containsKey(key);
      default:
        return null;
    }
  });

  const deviceInfoChannel =
      MethodChannel('dev.fluttercommunity.plus/device_info');
  TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
      .setMockMethodCallHandler(deviceInfoChannel, (call) async {
    if (call.method == 'getDeviceInfo') {
      return {
        'computerName': 'Ensemble Test',
        'hostName': 'ensemble-test',
        'arch': 'arm64',
        'model': 'Mac',
        'kernelVersion': 'test',
        'osRelease': 'test',
        'majorVersion': 15,
        'minorVersion': 0,
        'patchVersion': 0,
        'activeCPUs': 8,
        'memorySize': 8589934592,
        'cpuFrequency': 0,
        'systemGUID': 'ensemble-test-device',
      };
    }
    return null;
  });

  const connectivityChannel =
      MethodChannel('dev.fluttercommunity.plus/connectivity');
  TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
      .setMockMethodCallHandler(connectivityChannel, (call) async {
    if (call.method == 'check') {
      return ['wifi'];
    }
    return null;
  });

  const connectivityStatusChannel =
      MethodChannel('dev.fluttercommunity.plus/connectivity_status');
  TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
      .setMockMethodCallHandler(connectivityStatusChannel, (call) async {
    switch (call.method) {
      case 'listen':
      case 'cancel':
        return null;
      default:
        return null;
    }
  });

  const appLinksEventsChannel =
      MethodChannel('com.llfbandit.app_links/events');
  TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
      .setMockMethodCallHandler(appLinksEventsChannel, (call) async {
    switch (call.method) {
      case 'listen':
      case 'cancel':
        return null;
      default:
        return null;
    }
  });

  const workmanagerChannel = MethodChannel(
      'be.tramckrijte.workmanager/foreground_channel_work_manager');
  TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
      .setMockMethodCallHandler(workmanagerChannel, (call) async {
    switch (call.method) {
      case 'initialize':
        return true;
      default:
        return null;
    }
  });

  YamlTestSession.navigationFlow.startListening();
}