summaryrefslogtreecommitdiff
path: root/tests/UsbTests
diff options
context:
space:
mode:
authorJames Wei <jameswei@google.com>2019-12-13 19:36:36 +0800
committerJames Wei <jameswei@google.com>2019-12-13 15:49:09 +0000
commit8bc4c23906f826a3fbb0fba6eafad82af92ce124 (patch)
tree579a9d43939a568a7b33d9b90998cbda189fd5ba /tests/UsbTests
parenta4aff1e1df81010367555d93b1df18e1b23f180e (diff)
USB: Add test for UsbManager APIs
Make sure UsbManager APIs could only be accessed with required permission Bug: 142372304 Test: atest UsbTests Test: atest UsbManagerTests Test: Forrest (L06700000406507070) Change-Id: Ibe3337aaa965ba670c3ac363299612f367231f05
Diffstat (limited to 'tests/UsbTests')
-rw-r--r--tests/UsbTests/Android.bp1
-rw-r--r--tests/UsbTests/src/com/android/server/usb/UsbManagerNoPermTest.java81
2 files changed, 82 insertions, 0 deletions
diff --git a/tests/UsbTests/Android.bp b/tests/UsbTests/Android.bp
index 1b2cf638f514..7c2be9b63ac3 100644
--- a/tests/UsbTests/Android.bp
+++ b/tests/UsbTests/Android.bp
@@ -26,6 +26,7 @@ android_test {
"services.net",
"services.usb",
"truth-prebuilt",
+ "UsbManagerTestLib",
],
jni_libs: ["libdexmakerjvmtiagent"],
certificate: "platform",
diff --git a/tests/UsbTests/src/com/android/server/usb/UsbManagerNoPermTest.java b/tests/UsbTests/src/com/android/server/usb/UsbManagerNoPermTest.java
new file mode 100644
index 000000000000..a0fd9d40506b
--- /dev/null
+++ b/tests/UsbTests/src/com/android/server/usb/UsbManagerNoPermTest.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.usb;
+
+import android.content.Context;
+import android.hardware.usb.UsbManager;
+
+import androidx.test.InstrumentationRegistry;
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import com.android.server.usblib.UsbManagerTestLib;
+
+/**
+ * Unit tests for {@link android.hardware.usb.UsbManager}.
+ * Note: NOT claimed MANAGE_USB permission in Manifest
+ */
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class UsbManagerNoPermTest {
+ private Context mContext;
+
+ private final UsbManagerTestLib mUsbManagerTestLib =
+ new UsbManagerTestLib(mContext = InstrumentationRegistry.getContext());
+
+ /**
+ * Verify SecurityException resulting from required permissions missing
+ * Go through System Server
+ */
+ @Test(expected = SecurityException.class)
+ public void testUsbApi_GetCurrentFunctionsSys_OnSecurityException() throws Exception {
+ mUsbManagerTestLib.testGetCurrentFunctionsSysEx();
+ }
+
+ /**
+ * Verify SecurityException resulting from required permissions missing
+ * Go through System Server
+ */
+ @Test(expected = SecurityException.class)
+ public void testUsbApi_SetCurrentFunctionsSys_OnSecurityException() throws Exception {
+ mUsbManagerTestLib.testSetCurrentFunctionsSysEx(UsbManager.FUNCTION_NONE);
+ }
+
+ /**
+ * Verify SecurityException resulting from required permissions missing
+ * Go through Direct API, will not be denied by @RequiresPermission annotation
+ */
+ @Test(expected = SecurityException.class)
+ @Ignore
+ public void testUsbApi_GetCurrentFunctions_OnSecurityException() throws Exception {
+ mUsbManagerTestLib.testGetCurrentFunctionsEx();
+ }
+
+ /**
+ * Verify SecurityException resulting from required permissions missing
+ * Go through Direct API, will not be denied by @RequiresPermission annotation
+ */
+ @Test(expected = SecurityException.class)
+ @Ignore
+ public void testUsbApi_SetCurrentFunctions_OnSecurityException() throws Exception {
+ mUsbManagerTestLib.testSetCurrentFunctionsEx(UsbManager.FUNCTION_NONE);
+ }
+}