blob: d734a63b15ca8a4a02b694f027f1a329d47ed3fc [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.
package io.flutter.plugins.camera;
import static junit.framework.TestCase.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import android.content.pm.PackageManager;
import io.flutter.plugins.camera.CameraPermissions.CameraRequestPermissionsListener;
import io.flutter.plugins.camera.CameraPermissions.ResultCallback;
import org.junit.Test;
public class CameraPermissionsTest {
@Test
public void listener_respondsOnce() {
final int[] calledCounter = {0};
CameraRequestPermissionsListener permissionsListener =
new CameraRequestPermissionsListener((String code, String desc) -> calledCounter[0]++);
permissionsListener.onRequestPermissionsResult(
9796, null, new int[] {PackageManager.PERMISSION_DENIED});
permissionsListener.onRequestPermissionsResult(
9796, null, new int[] {PackageManager.PERMISSION_GRANTED});
assertEquals(1, calledCounter[0]);
}
@Test
public void callback_respondsWithCameraAccessDenied() {
ResultCallback fakeResultCallback = mock(ResultCallback.class);
CameraRequestPermissionsListener permissionsListener =
new CameraRequestPermissionsListener(fakeResultCallback);
permissionsListener.onRequestPermissionsResult(
9796, null, new int[] {PackageManager.PERMISSION_DENIED});
verify(fakeResultCallback)
.onResult("CameraAccessDenied", "Camera access permission was denied.");
}
@Test
public void callback_respondsWithAudioAccessDenied() {
ResultCallback fakeResultCallback = mock(ResultCallback.class);
CameraRequestPermissionsListener permissionsListener =
new CameraRequestPermissionsListener(fakeResultCallback);
permissionsListener.onRequestPermissionsResult(
9796,
null,
new int[] {PackageManager.PERMISSION_GRANTED, PackageManager.PERMISSION_DENIED});
verify(fakeResultCallback).onResult("AudioAccessDenied", "Audio access permission was denied.");
}
@Test
public void callback_doesNotRespond() {
ResultCallback fakeResultCallback = mock(ResultCallback.class);
CameraRequestPermissionsListener permissionsListener =
new CameraRequestPermissionsListener(fakeResultCallback);
permissionsListener.onRequestPermissionsResult(
9796,
null,
new int[] {PackageManager.PERMISSION_GRANTED, PackageManager.PERMISSION_GRANTED});
verify(fakeResultCallback, never())
.onResult("CameraAccessDenied", "Camera access permission was denied.");
verify(fakeResultCallback, never())
.onResult("AudioAccessDenied", "Audio access permission was denied.");
}
}