blob: b6cba8da981c136c915bf0c0eb9850f99bb7cc0e [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:io';
import 'dart:ui';
import 'package:camera_android_camerax/camera_android_camerax.dart';
import 'package:camera_android_camerax_example/camera_controller.dart';
import 'package:camera_platform_interface/camera_platform_interface.dart';
import 'package:flutter/painting.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
setUpAll(() async {
CameraPlatform.instance = AndroidCameraCameraX();
});
testWidgets('availableCameras only supports valid back or front cameras',
(WidgetTester tester) async {
final List<CameraDescription> availableCameras =
await CameraPlatform.instance.availableCameras();
for (final CameraDescription cameraDescription in availableCameras) {
expect(
cameraDescription.lensDirection, isNot(CameraLensDirection.external));
expect(cameraDescription.sensorOrientation, anyOf(0, 90, 180, 270));
}
});
testWidgets('takePictures stores a valid image in memory',
(WidgetTester tester) async {
final List<CameraDescription> availableCameras =
await CameraPlatform.instance.availableCameras();
if (availableCameras.isEmpty) {
return;
}
for (final CameraDescription cameraDescription in availableCameras) {
final CameraController controller =
CameraController(cameraDescription, ResolutionPreset.high);
await controller.initialize();
// Take Picture
final XFile file = await controller.takePicture();
// Try loading picture
final File fileImage = File(file.path);
final Image image =
await decodeImageFromList(fileImage.readAsBytesSync());
expect(image, isNotNull);
}
});
}