summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Diksha Gohlyan <dikshag@google.com> 2020-05-15 19:39:10 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-05-15 19:39:10 +0000
commited218c11a70e60806088feb3241dfe8284b7b370 (patch)
tree25565f6b00448ed6f96b3dbb7eae253568aa12ee
parentaef23c0e556e1a02ee0ac18c3b5548b89b903f8b (diff)
parentef5e4d7630b5d80beb41c3191535d2d9421a153b (diff)
Merge "Add manifest file for only DocumentsUI res for tests" into rvc-dev
-rw-r--r--Android.bp23
-rw-r--r--AndroidManifestForUnitTests.xml131
-rw-r--r--tests/Android.bp8
-rw-r--r--tests/functional/com/android/documentsui/ArchivesProviderTest.java (renamed from tests/unit/com/android/documentsui/archives/ArchivesProviderTest.java)19
-rw-r--r--tests/functional/com/android/documentsui/PickActivityTest.java (renamed from tests/unit/com/android/documentsui/PickActivityTest.java)24
-rw-r--r--tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java (renamed from tests/unit/com/android/documentsui/theme/ThemeOverlayManagerTest.java)4
6 files changed, 187 insertions, 22 deletions
diff --git a/Android.bp b/Android.bp
index 04605702d..3494449cb 100644
--- a/Android.bp
+++ b/Android.bp
@@ -99,6 +99,29 @@ android_library {
min_sdk_version: "29",
}
+android_library {
+ name: "DocumentsUI-res-lib-tests",
+
+ manifest: "AndroidManifestForUnitTests.xml",
+
+ static_libs: [
+ "androidx.appcompat_appcompat",
+ "com.google.android.material_material",
+ ],
+
+ resource_dirs: [
+ "res",
+ ],
+
+ aaptflags: [
+ "--auto-add-overlay",
+ ],
+
+ sdk_version: "system_current",
+ target_sdk_version: "29",
+ min_sdk_version: "29",
+}
+
android_app {
name: "DocumentsUI",
diff --git a/AndroidManifestForUnitTests.xml b/AndroidManifestForUnitTests.xml
new file mode 100644
index 000000000..717cddff1
--- /dev/null
+++ b/AndroidManifestForUnitTests.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+/*
+ * Copyright (C) 2007-2017 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.
+ */
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.documentsui">
+
+ <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29" />
+
+ <uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
+ <uses-permission android:name="android.permission.REMOVE_TASKS" />
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
+ <uses-permission android:name="android.permission.WAKE_LOCK" />
+ <uses-permission android:name="android.permission.CACHE_CONTENT" />
+ <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+ <uses-permission
+ android:name="android.permission.CHANGE_OVERLAY_PACKAGES" />
+ <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
+ <uses-permission android:name="android.permission.MODIFY_QUIET_MODE" />
+ <!-- Permissions required for reading and logging compat changes -->
+ <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE" />
+ <uses-permission
+ android:name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
+
+ <application android:name=".DocumentsApplication"
+ android:label="@string/app_label" android:icon="@drawable/app_icon"
+ android:supportsRtl="true" android:allowBackup="true"
+ android:backupAgent=".prefs.BackupAgent"
+ android:fullBackupOnly="false" android:crossProfile="true">
+
+ <activity android:name=".picker.PickActivity"
+ android:theme="@style/DocumentsTheme"
+ android:visibleToInstantApps="true">
+ <intent-filter android:priority="100">
+ <action android:name="android.intent.action.OPEN_DOCUMENT" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.OPENABLE" />
+ <data android:mimeType="*/*" />
+ </intent-filter>
+ <intent-filter android:priority="100">
+ <action android:name="android.intent.action.CREATE_DOCUMENT" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.OPENABLE" />
+ <data android:mimeType="*/*" />
+ </intent-filter>
+ <intent-filter android:priority="100">
+ <action android:name="android.intent.action.GET_CONTENT" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.OPENABLE" />
+ <data android:mimeType="*/*" />
+ </intent-filter>
+ <intent-filter android:priority="100">
+ <action android:name="android.intent.action.OPEN_DOCUMENT_TREE" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
+
+ <activity android:name=".files.LauncherActivity"
+ android:label="@string/launcher_label"
+ android:icon="@drawable/launcher_icon"
+ android:theme="@android:style/Theme.NoDisplay"></activity>
+
+ <activity android:name=".inspector.InspectorActivity"
+ android:label="@string/menu_inspect"
+ android:icon="@drawable/launcher_icon"
+ android:theme="@style/DocumentsTheme"></activity>
+
+ <!-- Preserve original launcher activity from Nougat. -->
+ <activity-alias android:name=".LauncherActivity"
+ android:targetActivity=".files.LauncherActivity"
+ android:label="@string/launcher_label"
+ android:icon="@drawable/launcher_icon">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ <category android:name="android.intent.category.APP_FILES" />
+ </intent-filter>
+ <meta-data android:name="android.app.shortcuts"
+ android:resource="@xml/shortcuts" />
+ </activity-alias>
+
+ <activity android:name=".files.FilesActivity"
+ android:documentLaunchMode="intoExisting"
+ android:theme="@style/DocumentsTheme">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="vnd.android.document/root" />
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="vnd.android.document/directory" />
+ </intent-filter>
+ </activity>
+
+ <activity-alias android:name=".ViewDownloadsActivity"
+ android:targetActivity=".files.FilesActivity"
+ android:enabled="@bool/handle_view_downloads_intent">
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW_DOWNLOADS" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity-alias>
+
+ <activity android:name=".ScopedAccessActivity"
+ android:theme="@android:style/Theme.Translucent.NoTitleBar">
+ <intent-filter>
+ <action android:name="android.os.storage.action.OPEN_EXTERNAL_DIRECTORY" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest>
diff --git a/tests/Android.bp b/tests/Android.bp
index 10393421c..e0b427de7 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -29,6 +29,14 @@ filegroup {
],
}
+filegroup {
+ name: "DocumentsUIUnitTests-srcs",
+ srcs: [
+ "common/**/*.java",
+ "unit/**/*.java",
+ ],
+}
+
android_library {
name: "DocumentsUITests-res-lib",
diff --git a/tests/unit/com/android/documentsui/archives/ArchivesProviderTest.java b/tests/functional/com/android/documentsui/ArchivesProviderTest.java
index 484342525..1a2333168 100644
--- a/tests/unit/com/android/documentsui/archives/ArchivesProviderTest.java
+++ b/tests/functional/com/android/documentsui/ArchivesProviderTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.documentsui.archives;
+package com.android.documentsui;
import static android.content.ContentResolver.wrap;
@@ -35,27 +35,28 @@ import android.database.Cursor;
import android.media.ExifInterface;
import android.net.Uri;
import android.os.Bundle;
-import android.os.FileUtils;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.provider.DocumentsContract;
import android.text.TextUtils;
-import android.util.Log;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.MediumTest;
import androidx.test.runner.AndroidJUnit4;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
+import com.android.documentsui.archives.ArchivesProvider;
+import com.android.documentsui.archives.ResourcesProvider;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
@RunWith(AndroidJUnit4.class)
@MediumTest
public class ArchivesProviderTest {
@@ -79,9 +80,9 @@ public class ArchivesProviderTest {
public void testQueryRoots() throws InterruptedException, RemoteException {
final ContentResolver resolver = mContext.getContentResolver();
final Uri rootsUri = DocumentsContract.buildRootsUri(ArchivesProvider.AUTHORITY);
- try (final ContentProviderClient client = resolver.acquireUnstableContentProviderClient(
+ try (ContentProviderClient client = resolver.acquireUnstableContentProviderClient(
rootsUri)) {
- final Cursor cursor = client.query(rootsUri, null, null, null, null, null);
+ Cursor cursor = client.query(rootsUri, null, null, null, null, null);
assertNotNull("Cursor must not be null.", cursor);
assertEquals(0, cursor.getCount());
}
diff --git a/tests/unit/com/android/documentsui/PickActivityTest.java b/tests/functional/com/android/documentsui/PickActivityTest.java
index 1fbc20d9b..cd042b1f5 100644
--- a/tests/unit/com/android/documentsui/PickActivityTest.java
+++ b/tests/functional/com/android/documentsui/PickActivityTest.java
@@ -49,8 +49,8 @@ public class PickActivityTest {
private static final String RESULT_DATA = "123321";
private Context mTargetContext;
- private Intent intentGetContent;
- private TestDialogController testDialogs;
+ private Intent mIntentGetContent;
+ private TestDialogController mTestDialogs;
@Rule
public final ActivityTestRule<PickActivity> mRule =
@@ -60,13 +60,13 @@ public class PickActivityTest {
public void setUp() throws Exception {
mTargetContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
- intentGetContent = new Intent(Intent.ACTION_GET_CONTENT);
- intentGetContent.addCategory(Intent.CATEGORY_OPENABLE);
- intentGetContent.setType("*/*");
+ mIntentGetContent = new Intent(Intent.ACTION_GET_CONTENT);
+ mIntentGetContent.addCategory(Intent.CATEGORY_OPENABLE);
+ mIntentGetContent.setType("*/*");
Uri hintUri = DocumentsContract.buildRootUri(AUTHORITY_STORAGE, "primary");
- intentGetContent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, hintUri);
+ mIntentGetContent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, hintUri);
- testDialogs = new TestDialogController();
+ mTestDialogs = new TestDialogController();
}
@Test
@@ -76,7 +76,7 @@ public class PickActivityTest {
doc.authority = "authority";
doc.documentId = "documentId";
- PickActivity pickActivity = mRule.launchActivity(intentGetContent);
+ PickActivity pickActivity = mRule.launchActivity(mIntentGetContent);
pickActivity.mState.canShareAcrossProfile = true;
pickActivity.onDocumentPicked(doc);
SystemClock.sleep(3000);
@@ -95,7 +95,7 @@ public class PickActivityTest {
doc.authority = "authority";
doc.documentId = "documentId";
- PickActivity pickActivity = mRule.launchActivity(intentGetContent);
+ PickActivity pickActivity = mRule.launchActivity(mIntentGetContent);
pickActivity.mState.canShareAcrossProfile = true;
pickActivity.onDocumentPicked(doc);
SystemClock.sleep(3000);
@@ -113,13 +113,13 @@ public class PickActivityTest {
doc.authority = "authority";
doc.documentId = "documentId";
- PickActivity pickActivity = mRule.launchActivity(intentGetContent);
+ PickActivity pickActivity = mRule.launchActivity(mIntentGetContent);
pickActivity.mState.canShareAcrossProfile = false;
- pickActivity.getInjector().dialogs = testDialogs;
+ pickActivity.getInjector().dialogs = mTestDialogs;
pickActivity.onDocumentPicked(doc);
SystemClock.sleep(3000);
assertThat(pickActivity.isFinishing()).isFalse();
- testDialogs.assertActionNotAllowedShown();
+ mTestDialogs.assertActionNotAllowedShown();
}
}
diff --git a/tests/unit/com/android/documentsui/theme/ThemeOverlayManagerTest.java b/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java
index 2e5e1a700..93ff89f05 100644
--- a/tests/unit/com/android/documentsui/theme/ThemeOverlayManagerTest.java
+++ b/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.documentsui.theme;
+package com.android.documentsui;
import static com.google.common.truth.Truth.assertThat;
@@ -38,6 +38,8 @@ import androidx.test.filters.SmallTest;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
+import com.android.documentsui.theme.ThemeOverlayManager;
+
import com.google.common.collect.Lists;
import org.junit.Before;