blob: 399acd3698ceb89e413e54aa85869860042f3b0b [file] [log] [blame]
// Copyright 2019 The Chromium 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 'package:camera/new/src/support_android/camera_info.dart';
import 'package:camera/new/src/support_android/camera.dart';
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:camera/new/src/camera_testing.dart';
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
group('Support Android Camera', () {
group('$Camera', () {
final List<MethodCall> log = <MethodCall>[];
setUpAll(() {
CameraTesting.channel
.setMockMethodCallHandler((MethodCall methodCall) async {
log.add(methodCall);
switch (methodCall.method) {
case 'Camera#getNumberOfCameras':
return 3;
case 'Camera#open':
return null;
case 'Camera#getCameraInfo':
return <dynamic, dynamic>{
'id': 3,
'orientation': 90,
'facing': Facing.front.toString(),
};
case 'Camera#startPreview':
return null;
case 'Camera#stopPreview':
return null;
case 'Camera#release':
return null;
}
throw ArgumentError.value(
methodCall.method,
'methodCall.method',
'No method found for',
);
});
});
setUp(() {
log.clear();
CameraTesting.nextHandle = 0;
});
test('getNumberOfCameras', () async {
final int result = await Camera.getNumberOfCameras();
expect(result, 3);
expect(log, <Matcher>[
isMethodCall(
'$Camera#getNumberOfCameras',
arguments: null,
)
]);
});
test('open', () {
Camera.open(14);
expect(log, <Matcher>[
isMethodCall(
'$Camera#open',
arguments: <String, dynamic>{
'cameraId': 14,
'cameraHandle': 0,
},
)
]);
});
test('getCameraInfo', () async {
final CameraInfo info = await Camera.getCameraInfo(14);
expect(info.id, 3);
expect(info.orientation, 90);
expect(info.facing, Facing.front);
expect(log, <Matcher>[
isMethodCall(
'$Camera#getCameraInfo',
arguments: <String, dynamic>{'cameraId': 14},
)
]);
});
test('startPreview', () {
final Camera camera = Camera.open(0);
log.clear();
camera.startPreview();
expect(log, <Matcher>[
isMethodCall(
'$Camera#startPreview',
arguments: <String, dynamic>{
'handle': 0,
},
)
]);
});
test('stopPreview', () {
final Camera camera = Camera.open(0);
log.clear();
camera.stopPreview();
expect(log, <Matcher>[
isMethodCall(
'$Camera#stopPreview',
arguments: <String, dynamic>{
'handle': 0,
},
)
]);
});
test('release', () {
final Camera camera = Camera.open(0);
log.clear();
camera.release();
expect(log, <Matcher>[
isMethodCall(
'$Camera#release',
arguments: <String, dynamic>{
'handle': 0,
},
)
]);
});
});
});
}