From 12ebcff665afcec70ac20045d8ff59a0dc330715 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 16 Jun 2022 10:42:16 -0300 Subject: [PATCH] [app] Fix ApkVerifierTest by removing index v0 XML parsing and adding permissions directly in the test --- app/build.gradle | 2 + app/src/androidTest/assets/extendedPerms.xml | 125 ----------- .../fdroid/installer/ApkVerifierTest.java | 80 +++++-- app/src/androidTest/proguard-rules.pro | 10 +- .../main/java/org/fdroid/fdroid/data/Apk.java | 5 +- .../fdroid/fdroid/installer/ApkVerifier.java | 5 +- app/src/test/resources/extendedPerms.xml | 195 ------------------ .../fdroid/fdroid/nearby/LocalHTTPDTest.java | 8 +- 8 files changed, 87 insertions(+), 343 deletions(-) delete mode 100644 app/src/androidTest/assets/extendedPerms.xml delete mode 100644 app/src/test/resources/extendedPerms.xml diff --git a/app/build.gradle b/app/build.gradle index 8cf9346d8..e895536ac 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,6 +63,8 @@ android { applicationIdSuffix ".debug" resValue "string", "applicationId", fullApplicationId + applicationIdSuffix versionNameSuffix "-debug" + // testProguardFiles gets partially ignored for instrumentation tests + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'src/androidTest/proguard-rules.pro' println 'buildTypes.debug defaultConfig.versionCode ' + defaultConfig.versionCode } } diff --git a/app/src/androidTest/assets/extendedPerms.xml b/app/src/androidTest/assets/extendedPerms.xml deleted file mode 100644 index d3b612c75..000000000 --- a/app/src/androidTest/assets/extendedPerms.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - This is just a test of the extended permissions attributes. - - - - - at.bitfire.davdroid - 2013-10-13 - 2016-06-26 - DAVdroid - Contacts and Calendar sync - at.bitfire.davdroid.107.png - apk generated from urzip to test extended permissions - GPLv3 - Internet - Internet - https://davdroid.bitfire.at/ - https://davdroid.bitfire.at/source/ - https://davdroid.bitfire.at/forums/ - https://gitlab.com/bitfireAT/davdroid/tags - https://davdroid.bitfire.at/donate/ - 1KSCy7RHztKuhW9fLLaUYqdwdC2iwbejZU - 2100160 - 1.1.1.2 - 107 - - 1.3.2-FAKE - 117 - org.fdroid.extendedpermissionstest.apk - at.bitfire.davdroid_116_src.tar.gz - f1aa02257e99c167d2ea9b0e9525c3ce7c181fe2e7f4dd00b65dd81ed2e27a62 - - 03542175324d067b4c36582242f8aecc - 3298864 - 14 - 23 - 2016-09-22 - - READ_EXTERNAL_STORAGE,WRITE_SYNC_SETTINGS,ACCESS_NETWORK_STATE,WRITE_EXTERNAL_STORAGE,WRITE_CONTACTS,ACCESS_WIFI_STATE,REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,WRITE_CALENDAR,READ_CONTACTS,READ_SYNC_SETTINGS,MANAGE_ACCOUNTS,INTERNET,AUTHENTICATE_ACCOUNTS,GET_ACCOUNTS,READ_CALENDAR,READ_SYNC_STATS - - - - - - - - - - - 1.3.1-ose - 116 - at.bitfire.davdroid_116.apk - at.bitfire.davdroid_116_src.tar.gz - f1aa02257e99c167d2ea9b0e9525c3ce7c181fe2e7f4dd00b65dd81ed2e27a62 - - 03542175324d067b4c36582242f8aecc - 3298864 - 14 - 24 - 2016-09-21 - - READ_EXTERNAL_STORAGE,WRITE_SYNC_SETTINGS,ACCESS_NETWORK_STATE,WRITE_EXTERNAL_STORAGE,org.dmfs.permission.READ_TASKS,WRITE_CONTACTS,ACCESS_WIFI_STATE,REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,WRITE_CALENDAR,READ_CONTACTS,READ_SYNC_SETTINGS,MANAGE_ACCOUNTS,INTERNET,AUTHENTICATE_ACCOUNTS,GET_ACCOUNTS,READ_CALENDAR,org.dmfs.permission.WRITE_TASKS - - - - - - - - - 1.1.1.2 - 107 - at.bitfire.davdroid_107.apk - at.bitfire.davdroid_107_src.tar.gz - 9a616f2e97bf8cf012baf896f95667dea4e3ce3252b31c5715073638a9fcc3d4 - - 03542175324d067b4c36582242f8aecc - 3134363 - 14 - 23 - 2016-06-26 - - org.dmfs.permission.READ_TASKS,WRITE_CONTACTS,GET_ACCOUNTS,AUTHENTICATE_ACCOUNTS,WRITE_EXTERNAL_STORAGE,READ_CALENDAR,ACCESS_WIFI_STATE,org.dmfs.permission.WRITE_TASKS,ACCESS_NETWORK_STATE,WRITE_CALENDAR,READ_CONTACTS,READ_SYNC_SETTINGS,INTERNET,MANAGE_ACCOUNTS,WRITE_SYNC_SETTINGS - - - - 1.1.1.1 - 105 - at.bitfire.davdroid_105.apk - at.bitfire.davdroid_105_src.tar.gz - 4a0408c61536a1cc1028cea4273adbde2e57dfa2b12d93c3b52f4c3d095e2849 - - 03542175324d067b4c36582242f8aecc - 3131567 - 14 - 23 - 2016-06-24 - - org.dmfs.permission.READ_TASKS,READ_EXTERNAL_STORAGE,WRITE_CONTACTS,GET_ACCOUNTS,AUTHENTICATE_ACCOUNTS,WRITE_EXTERNAL_STORAGE,READ_CALENDAR,ACCESS_WIFI_STATE,org.dmfs.permission.WRITE_TASKS,ACCESS_NETWORK_STATE,WRITE_CALENDAR,READ_CONTACTS,READ_SYNC_SETTINGS,INTERNET,MANAGE_ACCOUNTS,WRITE_SYNC_SETTINGS - - - - 1.1.1 - 104 - at.bitfire.davdroid_104.apk - at.bitfire.davdroid_104_src.tar.gz - 09ba34996177efe8b1498a93fe6521ab84efab3bccb0f42449116e80b59e5b56 - - 03542175324d067b4c36582242f8aecc - 3131367 - 14 - 23 - 2016-06-22 - - org.dmfs.permission.READ_TASKS,READ_EXTERNAL_STORAGE,WRITE_CONTACTS,GET_ACCOUNTS,AUTHENTICATE_ACCOUNTS,WRITE_EXTERNAL_STORAGE,READ_CALENDAR,ACCESS_WIFI_STATE,org.dmfs.permission.WRITE_TASKS,ACCESS_NETWORK_STATE,WRITE_CALENDAR,READ_CONTACTS,READ_SYNC_SETTINGS,INTERNET,MANAGE_ACCOUNTS,WRITE_SYNC_SETTINGS - - - - - diff --git a/app/src/androidTest/java/org/fdroid/fdroid/installer/ApkVerifierTest.java b/app/src/androidTest/java/org/fdroid/fdroid/installer/ApkVerifierTest.java index 195fe0634..b32c4e4b6 100644 --- a/app/src/androidTest/java/org/fdroid/fdroid/installer/ApkVerifierTest.java +++ b/app/src/androidTest/java/org/fdroid/fdroid/installer/ApkVerifierTest.java @@ -29,6 +29,7 @@ import androidx.test.platform.app.InstrumentationRegistry; import org.fdroid.fdroid.AssetUtils; import org.fdroid.fdroid.compat.FileCompatTest; import org.fdroid.fdroid.data.Apk; +import org.fdroid.index.v2.PermissionV2; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -57,10 +58,10 @@ import static org.junit.Assert.fail; public class ApkVerifierTest { public static final String TAG = "ApkVerifierTest"; - Instrumentation instrumentation; + private Instrumentation instrumentation; - File sdk14Apk; - File minMaxApk; + private File sdk14Apk; + private File minMaxApk; private File extendedPermissionsApk; @Before @@ -81,14 +82,9 @@ public class ApkVerifierTest { "org.fdroid.extendedpermissionstest.apk", dir ); - File extendedPermsXml = AssetUtils.copyAssetToDir(instrumentation.getContext(), - "extendedPerms.xml", - dir - ); assertTrue(sdk14Apk.exists()); assertTrue(minMaxApk.exists()); assertTrue(extendedPermissionsApk.exists()); - assertTrue(extendedPermsXml.exists()); // TODO remove file when test was ported } @Test @@ -274,8 +270,30 @@ public class ApkVerifierTest { expectedSet.add("android.permission.CALL_PHONE"); } } - // TODO get this from "extendedPerms.xml" and use setRequestedPermissions Apk apk = new Apk(); + apk.packageName = "urzip.at.or.at.urzip"; + ArrayList perms = new ArrayList<>(); + perms.add(new PermissionV2("android.permission.READ_EXTERNAL_STORAGE", 18)); + perms.add(new PermissionV2("android.permission.WRITE_SYNC_SETTINGS", null)); + perms.add(new PermissionV2("android.permission.ACCESS_NETWORK_STATE", null)); + perms.add(new PermissionV2("android.permission.WRITE_EXTERNAL_STORAGE", 18)); + perms.add(new PermissionV2("android.permission.WRITE_CONTACTS", null)); + perms.add(new PermissionV2("android.permission.ACCESS_WIFI_STATE", null)); + perms.add(new PermissionV2("android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS", null)); + perms.add(new PermissionV2("android.permission.WRITE_CALENDAR", null)); + perms.add(new PermissionV2("android.permission.READ_CONTACTS", null)); + perms.add(new PermissionV2("android.permission.READ_SYNC_SETTINGS", null)); + perms.add(new PermissionV2("android.permission.MANAGE_ACCOUNTS", 22)); + perms.add(new PermissionV2("android.permission.INTERNET", null)); + perms.add(new PermissionV2("android.permission.AUTHENTICATE_ACCOUNTS", 22)); + perms.add(new PermissionV2("android.permission.GET_ACCOUNTS", 22)); + perms.add(new PermissionV2("android.permission.READ_CALENDAR", null)); + perms.add(new PermissionV2("android.permission.READ_SYNC_STATS", null)); + apk.setRequestedPermissions(perms, 0); + ArrayList perms23 = new ArrayList<>(); + perms23.add(new PermissionV2("android.permission.CAMERA", null)); + perms23.add(new PermissionV2("android.permission.CALL_PHONE", 23)); + apk.setRequestedPermissions(perms23, 23); HashSet actualSet = new HashSet<>(Arrays.asList(apk.requestedPermissions)); for (String permission : expectedSet) { if (!actualSet.contains(permission)) { @@ -330,9 +348,28 @@ public class ApkVerifierTest { if (Build.VERSION.SDK_INT >= 29) { expectedSet.add("android.permission.ACCESS_MEDIA_LOCATION"); } - // TODO get this from "extendedPerms.xml" and use setRequestedPermissions Apk apk = new Apk(); - Log.i(TAG, "APK: " + apk.apkName); + apk.packageName = "urzip.at.or.at.urzip"; + apk.targetSdkVersion = 24; + ArrayList perms = new ArrayList<>(); + perms.add(new PermissionV2("android.permission.READ_EXTERNAL_STORAGE", 18)); + perms.add(new PermissionV2("android.permission.WRITE_SYNC_SETTINGS", null)); + perms.add(new PermissionV2("android.permission.ACCESS_NETWORK_STATE", null)); + perms.add(new PermissionV2("android.permission.WRITE_EXTERNAL_STORAGE", null)); + perms.add(new PermissionV2("android.permission.WRITE_CONTACTS", null)); + perms.add(new PermissionV2("android.permission.ACCESS_WIFI_STATE", null)); + perms.add(new PermissionV2("android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS", null)); + perms.add(new PermissionV2("android.permission.WRITE_CALENDAR", null)); + perms.add(new PermissionV2("android.permission.READ_CONTACTS", null)); + perms.add(new PermissionV2("android.permission.READ_SYNC_SETTINGS", null)); + perms.add(new PermissionV2("android.permission.MANAGE_ACCOUNTS", 22)); + perms.add(new PermissionV2("android.permission.INTERNET", null)); + perms.add(new PermissionV2("android.permission.AUTHENTICATE_ACCOUNTS", 22)); + perms.add(new PermissionV2("android.permission.GET_ACCOUNTS", 22)); + perms.add(new PermissionV2("android.permission.READ_CALENDAR", null)); + perms.add(new PermissionV2("org.dmfs.permission.READ_TASKS", null)); + perms.add(new PermissionV2("org.dmfs.permission.WRITE_TASKS", null)); + apk.setRequestedPermissions(perms, 0); HashSet actualSet = new HashSet<>(Arrays.asList(apk.requestedPermissions)); for (String permission : expectedSet) { if (!actualSet.contains(permission)) { @@ -371,9 +408,26 @@ public class ApkVerifierTest { expectedSet.add("android.permission.ACCESS_MEDIA_LOCATION"); } expectedPermissions = expectedSet.toArray(new String[expectedSet.size()]); - // TODO get this from "extendedPerms.xml" and use setRequestedPermissions apk = new Apk(); - Log.i(TAG, "APK: " + apk.apkName); + apk.packageName = "urzip.at.or.at.urzip"; + apk.targetSdkVersion = 23; + perms = new ArrayList<>(); + perms.add(new PermissionV2("android.permission.WRITE_SYNC_SETTINGS", null)); + perms.add(new PermissionV2("android.permission.ACCESS_NETWORK_STATE", null)); + perms.add(new PermissionV2("android.permission.WRITE_EXTERNAL_STORAGE", null)); + perms.add(new PermissionV2("android.permission.WRITE_CONTACTS", null)); + perms.add(new PermissionV2("android.permission.ACCESS_WIFI_STATE", null)); + perms.add(new PermissionV2("android.permission.WRITE_CALENDAR", null)); + perms.add(new PermissionV2("android.permission.READ_CONTACTS", null)); + perms.add(new PermissionV2("android.permission.READ_SYNC_SETTINGS", null)); + perms.add(new PermissionV2("android.permission.MANAGE_ACCOUNTS", null)); + perms.add(new PermissionV2("android.permission.INTERNET", null)); + perms.add(new PermissionV2("android.permission.AUTHENTICATE_ACCOUNTS", null)); + perms.add(new PermissionV2("android.permission.GET_ACCOUNTS", null)); + perms.add(new PermissionV2("android.permission.READ_CALENDAR", null)); + perms.add(new PermissionV2("org.dmfs.permission.READ_TASKS", null)); + perms.add(new PermissionV2("org.dmfs.permission.WRITE_TASKS", null)); + apk.setRequestedPermissions(perms, 0); actualSet = new HashSet<>(Arrays.asList(apk.requestedPermissions)); for (String permission : expectedSet) { if (!actualSet.contains(permission)) { diff --git a/app/src/androidTest/proguard-rules.pro b/app/src/androidTest/proguard-rules.pro index e991b07a0..6331efee6 100644 --- a/app/src/androidTest/proguard-rules.pro +++ b/app/src/androidTest/proguard-rules.pro @@ -19,7 +19,11 @@ -keep class junit.** { *; } -dontwarn junit.** -# This is necessary so that RemoteWorkManager can be initialized (also marked with @Keep) --keep class androidx.work.multiprocess.RemoteWorkManagerClient { - public (...); +-keep class androidx.arch.core.executor.ArchTaskExecutor {*;} + +-keep class org.fdroid.download.Mirror { + public static *** fromStrings(***); } + +# This is necessary so that RemoteWorkManager can be initialized (also marked with @Keep) +-keep class androidx.work.WorkManager { *; } diff --git a/app/src/main/java/org/fdroid/fdroid/data/Apk.java b/app/src/main/java/org/fdroid/fdroid/data/Apk.java index f0dee9c1d..00d51b746 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/Apk.java +++ b/app/src/main/java/org/fdroid/fdroid/data/Apk.java @@ -41,6 +41,7 @@ import java.util.zip.ZipFile; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; /** * Represents a single package of an application. This represents one particular @@ -448,8 +449,10 @@ public class Apk implements Comparable, Parcelable { * so they are not included here. * * @see Manifest.permission#READ_EXTERNAL_STORAGE + * @see platform.xml */ - private void setRequestedPermissions(List permissions, int minSdk) { + @VisibleForTesting + public void setRequestedPermissions(List permissions, int minSdk) { HashSet set = new HashSet<>(); if (requestedPermissions != null) { Collections.addAll(set, requestedPermissions); diff --git a/app/src/main/java/org/fdroid/fdroid/installer/ApkVerifier.java b/app/src/main/java/org/fdroid/fdroid/installer/ApkVerifier.java index 6cd6888f3..26072b380 100644 --- a/app/src/main/java/org/fdroid/fdroid/installer/ApkVerifier.java +++ b/app/src/main/java/org/fdroid/fdroid/installer/ApkVerifier.java @@ -74,7 +74,8 @@ class ApkVerifier { // check if the apk has the expected packageName if (!TextUtils.equals(localApkInfo.packageName, expectedApk.packageName)) { - throw new ApkVerificationException("Apk file has unexpected packageName!"); + throw new ApkVerificationException("Apk file has unexpected packageName! " + + localApkInfo.packageName); } if (localApkInfo.versionCode < 0) { @@ -83,7 +84,7 @@ class ApkVerifier { // verify permissions, important for unattended installer if (!requestedPermissionsEqual(expectedApk.requestedPermissions, localApkInfo.requestedPermissions)) { - throw new ApkPermissionUnequalException("Permissions in APK and index.xml do not match!"); + throw new ApkPermissionUnequalException("Permissions in APK and index do not match!"); } int localTargetSdkVersion = localApkInfo.applicationInfo.targetSdkVersion; diff --git a/app/src/test/resources/extendedPerms.xml b/app/src/test/resources/extendedPerms.xml deleted file mode 100644 index 4329e53c9..000000000 --- a/app/src/test/resources/extendedPerms.xml +++ /dev/null @@ -1,195 +0,0 @@ - - - - - This is just a test of the extended permissions attributes. - - - - - at.bitfire.davdroid - 2013-10-13 - 2016-09-21 - DAVdroid - Contacts and Calendar sync - at.bitfire.davdroid.116.png - -

DAVdroid is a CalDAV/CardDAV synchronisation adapter for Android 4+ devices.

-

Use it with your own server (likeOwnCloud,Baïkal, - DAViCal - orradiCALe) or with a trusted hoster to keep your - contacts and events under your control. -

-

Integrates natively in Android calendar/contact apps. See homepage for configuration - details, including info about self-signed certificates. -

-

For a comparison of server software, see the - Debian wiki. -

-
- GPLv3 - Internet - Internet - https://davdroid.bitfire.at/ - https://davdroid.bitfire.at/source/ - https://davdroid.bitfire.at/forums/ - https://gitlab.com/bitfireAT/davdroid/tags - https://davdroid.bitfire.at/donate/ - 1KSCy7RHztKuhW9fLLaUYqdwdC2iwbejZU - 2100160 - 1.3.1-ose - 116 - - 1.3.1-ose - 116 - at.bitfire.davdroid_116.apk - at.bitfire.davdroid_116_src.tar.gz - f1aa02257e99c167d2ea9b0e9525c3ce7c181fe2e7f4dd00b65dd81ed2e27a62 - - 03542175324d067b4c36582242f8aecc - 3298864 - 14 - 24 - 2016-09-21 - - READ_EXTERNAL_STORAGE,WRITE_SYNC_SETTINGS,ACCESS_NETWORK_STATE,WRITE_EXTERNAL_STORAGE,org.dmfs.permission.READ_TASKS,WRITE_CONTACTS,ACCESS_WIFI_STATE,REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,WRITE_CALENDAR,READ_CONTACTS,READ_SYNC_SETTINGS,MANAGE_ACCOUNTS,INTERNET,AUTHENTICATE_ACCOUNTS,GET_ACCOUNTS,READ_CALENDAR,org.dmfs.permission.WRITE_TASKS - - - - - - - - - 1.3-ose - 114 - at.bitfire.davdroid_114.apk - at.bitfire.davdroid_114_src.tar.gz - aaf956539aad7400269997bf1a6689f191b592e70146ffe5484312f9375df9d9 - - 03542175324d067b4c36582242f8aecc - 3295326 - 14 - 24 - 2016-09-05 - - READ_EXTERNAL_STORAGE,WRITE_SYNC_SETTINGS,ACCESS_NETWORK_STATE,WRITE_EXTERNAL_STORAGE,org.dmfs.permission.READ_TASKS,WRITE_CONTACTS,ACCESS_WIFI_STATE,REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,WRITE_CALENDAR,READ_CONTACTS,READ_SYNC_SETTINGS,MANAGE_ACCOUNTS,INTERNET,AUTHENTICATE_ACCOUNTS,GET_ACCOUNTS,READ_CALENDAR,org.dmfs.permission.WRITE_TASKS - - - - - - - - - 1.2.3-ose - 112 - at.bitfire.davdroid_112.apk - at.bitfire.davdroid_112_src.tar.gz - 045480c571f4dfabb23a5efb803b594c432c20ab33b6eb575b4476a8df22bb05 - - 03542175324d067b4c36582242f8aecc - 3172611 - 14 - 24 - 2016-08-12 - - READ_EXTERNAL_STORAGE,WRITE_SYNC_SETTINGS,ACCESS_NETWORK_STATE,WRITE_EXTERNAL_STORAGE,org.dmfs.permission.READ_TASKS,WRITE_CONTACTS,ACCESS_WIFI_STATE,REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,WRITE_CALENDAR,READ_CONTACTS,READ_SYNC_SETTINGS,MANAGE_ACCOUNTS,INTERNET,AUTHENTICATE_ACCOUNTS,GET_ACCOUNTS,READ_CALENDAR,org.dmfs.permission.WRITE_TASKS - - - - - -
- - com.murrayc.galaxyzoo.app - 2014-11-23 - 2016-09-02 - Galaxy Zoo - Help to classify galaxies - com.murrayc.galaxyzoo.app.64.png - -

Classify - Galaxy Zoo - subjects. Official approved by theZooniverse - project. -

-

Asks you questions about a picture of a galaxy, with each question depending on the - previous question. This "Citizen Science" helps astronomers to analyze the huge - amount of images of galaxies provided, for instance, by the Hubble Space Telescope. -

-
- GPLv3 - Science & Education - Science & Education - - https://github.com/murraycu/android-galaxyzoo - https://github.com/murraycu/android-galaxyzoo/issues - 1.64 - 64 - - 1.64 - 64 - com.murrayc.galaxyzoo.app_64.apk - com.murrayc.galaxyzoo.app_64_src.tar.gz - 6f10487c8ef84078232aafe115228c6252ef982a228666454005b8d62c27fe42 - - f1a84be1ce965e270f64318cfdb41861 - 4095584 - 11 - 24 - 2016-09-02 - - READ_EXTERNAL_STORAGE,WRITE_SYNC_SETTINGS,ACCESS_NETWORK_STATE,WRITE_EXTERNAL_STORAGE,USE_CREDENTIALS,READ_SYNC_SETTINGS,MANAGE_ACCOUNTS,INTERNET,AUTHENTICATE_ACCOUNTS,GET_ACCOUNTS - - - - - - - - 1.61 - 61 - com.murrayc.galaxyzoo.app_61.apk - com.murrayc.galaxyzoo.app_61_src.tar.gz - c35bc15885d57a2ddfcb2c702c9147b63b63a9765a6eeacf98d6a1534f6f8ff2 - - f1a84be1ce965e270f64318cfdb41861 - 4588315 - 11 - 24 - 2016-08-26 - - READ_EXTERNAL_STORAGE,WRITE_SYNC_SETTINGS,ACCESS_NETWORK_STATE,WRITE_EXTERNAL_STORAGE,USE_CREDENTIALS,READ_SYNC_SETTINGS,MANAGE_ACCOUNTS,INTERNET,AUTHENTICATE_ACCOUNTS,GET_ACCOUNTS - - - - - - - - 1.59 - 59 - com.murrayc.galaxyzoo.app_59.apk - com.murrayc.galaxyzoo.app_59_src.tar.gz - 719d1440dd2f16ad29b45edba5b43262f22ef68cee0c6b478e40fe8eb0e53227 - - f1a84be1ce965e270f64318cfdb41861 - 4116175 - 11 - 24 - 2016-08-25 - - READ_EXTERNAL_STORAGE,WRITE_SYNC_SETTINGS,ACCESS_NETWORK_STATE,WRITE_EXTERNAL_STORAGE,USE_CREDENTIALS,READ_SYNC_SETTINGS,MANAGE_ACCOUNTS,INTERNET,AUTHENTICATE_ACCOUNTS,GET_ACCOUNTS - - - - - - -
-
\ No newline at end of file diff --git a/app/src/testFull/java/org/fdroid/fdroid/nearby/LocalHTTPDTest.java b/app/src/testFull/java/org/fdroid/fdroid/nearby/LocalHTTPDTest.java index 233b7c644..23306f824 100644 --- a/app/src/testFull/java/org/fdroid/fdroid/nearby/LocalHTTPDTest.java +++ b/app/src/testFull/java/org/fdroid/fdroid/nearby/LocalHTTPDTest.java @@ -168,13 +168,13 @@ public class LocalHTTPDTest { assertTrue(string.indexOf("test.html") > 0); connection.disconnect(); - IOUtils.copy(classLoader.getResourceAsStream("extendedPerms.xml"), - new FileOutputStream(new File(webRoot, "extendedPerms.xml"))); - url = new URL(baseUrl + "/extendedPerms.xml"); + IOUtils.copy(classLoader.getResourceAsStream("additional_repos.xml"), + new FileOutputStream(new File(webRoot, "additional_repos.xml"))); + url = new URL(baseUrl + "/additional_repos.xml"); connection = (HttpURLConnection) url.openConnection(); assertEquals(200, connection.getResponseCode()); byte[] actual = IOUtils.toByteArray(connection.getInputStream()); - byte[] expected = IOUtils.toByteArray(classLoader.getResourceAsStream("extendedPerms.xml")); + byte[] expected = IOUtils.toByteArray(classLoader.getResourceAsStream("additional_repos.xml")); Assert.assertArrayEquals(expected, actual); connection.disconnect(); }