diff --git a/bramble-android/src/main/java/org/briarproject/bramble/util/AndroidUtils.java b/bramble-android/src/main/java/org/briarproject/bramble/util/AndroidUtils.java index 0e10aa12e..6182bed9b 100644 --- a/bramble-android/src/main/java/org/briarproject/bramble/util/AndroidUtils.java +++ b/bramble-android/src/main/java/org/briarproject/bramble/util/AndroidUtils.java @@ -106,4 +106,15 @@ public class AndroidUtils { public static File getReportDir(Context ctx) { return ctx.getDir(STORED_REPORTS, MODE_PRIVATE); } + + /** + * Returns an array of supported content types for image attachments. + * GIFs can't be compressed on API < 24 so they're not supported. + *
+ * TODO: Remove this restriction when large message support is added
+ */
+ public static String[] getSupportedImageContentTypes() {
+ if (SDK_INT < 24) return new String[] {"image/jpeg", "image/png"};
+ else return new String[] {"image/jpeg", "image/png", "image/gif"};
+ }
}
diff --git a/briar-android/build.gradle b/briar-android/build.gradle
index a6b3045f4..e00a30e17 100644
--- a/briar-android/build.gradle
+++ b/briar-android/build.gradle
@@ -135,6 +135,7 @@ dependencies {
testImplementation "org.jmock:jmock-junit4:$jmockVersion"
testImplementation "org.jmock:jmock-legacy:$jmockVersion"
+ androidTestImplementation project(path: ':bramble-api', configuration: 'testOutput')
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion"
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/PngSuite.LICENSE b/briar-android/src/androidTestOfficial/assets/PngSuite/PngSuite.LICENSE
new file mode 100644
index 000000000..8d4d1d077
--- /dev/null
+++ b/briar-android/src/androidTestOfficial/assets/PngSuite/PngSuite.LICENSE
@@ -0,0 +1,9 @@
+PngSuite
+--------
+
+Permission to use, copy, modify and distribute these images for any
+purpose and without fee is hereby granted.
+
+
+(c) Willem van Schaik, 1996, 2011
+
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/PngSuite.README b/briar-android/src/androidTestOfficial/assets/PngSuite/PngSuite.README
new file mode 100644
index 000000000..3ef8f24db
--- /dev/null
+++ b/briar-android/src/androidTestOfficial/assets/PngSuite/PngSuite.README
@@ -0,0 +1,25 @@
+ PNGSUITE
+----------------
+
+ testset for PNG-(de)coders
+ created by Willem van Schaik
+------------------------------------
+
+This is a collection of graphics images created to test the png applications
+like viewers, converters and editors. All (as far as that is possible)
+formats supported by the PNG standard are represented.
+
+The suite consists of the following files:
+
+- PngSuite.README - this file
+- PngSuite.LICENSE - the PngSuite is freeware
+- PngSuite.png - image with PngSuite logo
+- PngSuite.tgz - archive of all PNG testfiles
+- PngSuite.zip - same in .zip format for PCs
+
+
+--------
+ (c) Willem van Schaik
+ willem@schaik.com
+ Calgary, April 2011
+
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/PngSuite.png b/briar-android/src/androidTestOfficial/assets/PngSuite/PngSuite.png
new file mode 100644
index 000000000..205460d82
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/PngSuite.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g01.png
new file mode 100644
index 000000000..556fa7270
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g02.png
new file mode 100644
index 000000000..ce09821ef
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g04.png
new file mode 100644
index 000000000..3853273f9
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g08.png
new file mode 100644
index 000000000..faed8bec4
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g16.png
new file mode 100644
index 000000000..a9f28165e
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi0g16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi2c08.png
new file mode 100644
index 000000000..2aab44d42
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi2c16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi2c16.png
new file mode 100644
index 000000000..cd7e50f91
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi2c16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi3p01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi3p01.png
new file mode 100644
index 000000000..00a7cea6c
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi3p01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi3p02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi3p02.png
new file mode 100644
index 000000000..bb16b44b3
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi3p02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi3p04.png
new file mode 100644
index 000000000..b4e888e24
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi3p08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi3p08.png
new file mode 100644
index 000000000..50a6d1cac
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi3p08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi4a08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi4a08.png
new file mode 100644
index 000000000..398132be5
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi4a08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi4a16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi4a16.png
new file mode 100644
index 000000000..51192e731
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi4a16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi6a08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi6a08.png
new file mode 100644
index 000000000..aecb32e0d
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi6a08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basi6a16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basi6a16.png
new file mode 100644
index 000000000..4181533ad
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basi6a16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g01.png
new file mode 100644
index 000000000..1d722423a
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g02.png
new file mode 100644
index 000000000..508332418
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g04.png
new file mode 100644
index 000000000..0bf368786
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g08.png
new file mode 100644
index 000000000..23c82379a
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g16.png
new file mode 100644
index 000000000..e7c82f78e
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn0g16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn2c08.png
new file mode 100644
index 000000000..db5ad1586
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn2c16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn2c16.png
new file mode 100644
index 000000000..50c1cb91a
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn2c16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn3p01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn3p01.png
new file mode 100644
index 000000000..b145c2b8e
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn3p01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn3p02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn3p02.png
new file mode 100644
index 000000000..8985b3d81
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn3p02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn3p04.png
new file mode 100644
index 000000000..0fbf9e827
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn3p08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn3p08.png
new file mode 100644
index 000000000..0ddad07e5
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn3p08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn4a08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn4a08.png
new file mode 100644
index 000000000..3e1305220
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn4a08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn4a16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn4a16.png
new file mode 100644
index 000000000..8243644d0
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn4a16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn6a08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn6a08.png
new file mode 100644
index 000000000..e60873876
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn6a08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/basn6a16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/basn6a16.png
new file mode 100644
index 000000000..984a99525
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/basn6a16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/bgai4a08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/bgai4a08.png
new file mode 100644
index 000000000..398132be5
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/bgai4a08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/bgai4a16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/bgai4a16.png
new file mode 100644
index 000000000..51192e731
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/bgai4a16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/bgan6a08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/bgan6a08.png
new file mode 100644
index 000000000..e60873876
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/bgan6a08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/bgan6a16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/bgan6a16.png
new file mode 100644
index 000000000..984a99525
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/bgan6a16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/bgbn4a08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/bgbn4a08.png
new file mode 100644
index 000000000..7cbefc3bf
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/bgbn4a08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/bggn4a16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/bggn4a16.png
new file mode 100644
index 000000000..13fd85ba1
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/bggn4a16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/bgwn6a08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/bgwn6a08.png
new file mode 100644
index 000000000..a67ff205b
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/bgwn6a08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/bgyn6a16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/bgyn6a16.png
new file mode 100644
index 000000000..ae3e9be58
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/bgyn6a16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/ccwn2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/ccwn2c08.png
new file mode 100644
index 000000000..47c24817b
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/ccwn2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/ccwn3p08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/ccwn3p08.png
new file mode 100644
index 000000000..8bb2c1098
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/ccwn3p08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cdfn2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cdfn2c08.png
new file mode 100644
index 000000000..559e5261e
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cdfn2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cdhn2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cdhn2c08.png
new file mode 100644
index 000000000..3e07e8ecb
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cdhn2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cdsn2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cdsn2c08.png
new file mode 100644
index 000000000..076c32cc0
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cdsn2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cdun2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cdun2c08.png
new file mode 100644
index 000000000..846033be6
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cdun2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/ch1n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/ch1n3p04.png
new file mode 100644
index 000000000..17cd12dfc
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/ch1n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/ch2n3p08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/ch2n3p08.png
new file mode 100644
index 000000000..25c17987a
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/ch2n3p08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cm0n0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cm0n0g04.png
new file mode 100644
index 000000000..9fba5db3b
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cm0n0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cm7n0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cm7n0g04.png
new file mode 100644
index 000000000..f7dc46e68
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cm7n0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cm9n0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cm9n0g04.png
new file mode 100644
index 000000000..dd70911ad
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cm9n0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cs3n2c16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cs3n2c16.png
new file mode 100644
index 000000000..bf5fd20a2
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cs3n2c16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cs3n3p08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cs3n3p08.png
new file mode 100644
index 000000000..f4a66237b
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cs3n3p08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cs5n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cs5n2c08.png
new file mode 100644
index 000000000..40f947c33
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cs5n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cs5n3p08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cs5n3p08.png
new file mode 100644
index 000000000..dfd6e6e6e
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cs5n3p08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cs8n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cs8n2c08.png
new file mode 100644
index 000000000..8e01d3294
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cs8n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cs8n3p08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cs8n3p08.png
new file mode 100644
index 000000000..a44066eb6
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cs8n3p08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/ct0n0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/ct0n0g04.png
new file mode 100644
index 000000000..40d1e062f
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/ct0n0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/ct1n0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/ct1n0g04.png
new file mode 100644
index 000000000..3ba110aa7
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/ct1n0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cten0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cten0g04.png
new file mode 100644
index 000000000..a6a56faf2
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cten0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/ctfn0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/ctfn0g04.png
new file mode 100644
index 000000000..353873ebb
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/ctfn0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/ctgn0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/ctgn0g04.png
new file mode 100644
index 000000000..453f2b0a4
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/ctgn0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/cthn0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/cthn0g04.png
new file mode 100644
index 000000000..8fce253e6
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/cthn0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/ctjn0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/ctjn0g04.png
new file mode 100644
index 000000000..a77b8d2fe
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/ctjn0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/ctzn0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/ctzn0g04.png
new file mode 100644
index 000000000..b4401c9cf
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/ctzn0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/exif2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/exif2c08.png
new file mode 100644
index 000000000..56eb73499
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/exif2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/f00n0g08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/f00n0g08.png
new file mode 100644
index 000000000..45a007596
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/f00n0g08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/f00n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/f00n2c08.png
new file mode 100644
index 000000000..d6a1ffff6
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/f00n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/f01n0g08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/f01n0g08.png
new file mode 100644
index 000000000..4a1107b46
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/f01n0g08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/f01n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/f01n2c08.png
new file mode 100644
index 000000000..26fee958c
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/f01n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/f02n0g08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/f02n0g08.png
new file mode 100644
index 000000000..bfe410c5e
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/f02n0g08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/f02n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/f02n2c08.png
new file mode 100644
index 000000000..e590f1234
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/f02n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/f03n0g08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/f03n0g08.png
new file mode 100644
index 000000000..ed01e2923
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/f03n0g08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/f03n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/f03n2c08.png
new file mode 100644
index 000000000..758115059
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/f03n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/f04n0g08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/f04n0g08.png
new file mode 100644
index 000000000..663fdae3e
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/f04n0g08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/f04n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/f04n2c08.png
new file mode 100644
index 000000000..3c8b5116e
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/f04n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/f99n0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/f99n0g04.png
new file mode 100644
index 000000000..0b521c1d5
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/f99n0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g03n0g16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g03n0g16.png
new file mode 100644
index 000000000..41083ca80
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g03n0g16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g03n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g03n2c08.png
new file mode 100644
index 000000000..a9354dbee
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g03n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g03n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g03n3p04.png
new file mode 100644
index 000000000..60396c95a
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g03n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g04n0g16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g04n0g16.png
new file mode 100644
index 000000000..32395b76c
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g04n0g16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g04n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g04n2c08.png
new file mode 100644
index 000000000..a652b0ce8
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g04n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g04n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g04n3p04.png
new file mode 100644
index 000000000..5661cc313
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g04n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g05n0g16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g05n0g16.png
new file mode 100644
index 000000000..70b37f01e
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g05n0g16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g05n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g05n2c08.png
new file mode 100644
index 000000000..932c13653
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g05n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g05n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g05n3p04.png
new file mode 100644
index 000000000..961993058
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g05n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g07n0g16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g07n0g16.png
new file mode 100644
index 000000000..d6a47c2d5
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g07n0g16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g07n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g07n2c08.png
new file mode 100644
index 000000000..597346460
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g07n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g07n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g07n3p04.png
new file mode 100644
index 000000000..c73fb6136
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g07n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g10n0g16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g10n0g16.png
new file mode 100644
index 000000000..85f2c958e
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g10n0g16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g10n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g10n2c08.png
new file mode 100644
index 000000000..b3039970c
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g10n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g10n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g10n3p04.png
new file mode 100644
index 000000000..1b6a6be2c
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g10n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g25n0g16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g25n0g16.png
new file mode 100644
index 000000000..a9f6787c7
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g25n0g16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g25n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g25n2c08.png
new file mode 100644
index 000000000..03f505a64
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g25n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/g25n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/g25n3p04.png
new file mode 100644
index 000000000..4f943c617
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/g25n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/oi1n0g16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/oi1n0g16.png
new file mode 100644
index 000000000..e7c82f78e
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/oi1n0g16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/oi1n2c16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/oi1n2c16.png
new file mode 100644
index 000000000..50c1cb91a
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/oi1n2c16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/oi2n0g16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/oi2n0g16.png
new file mode 100644
index 000000000..14d64c583
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/oi2n0g16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/oi2n2c16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/oi2n2c16.png
new file mode 100644
index 000000000..4c2e3e335
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/oi2n2c16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/oi4n0g16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/oi4n0g16.png
new file mode 100644
index 000000000..69e73ede3
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/oi4n0g16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/oi4n2c16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/oi4n2c16.png
new file mode 100644
index 000000000..93691e373
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/oi4n2c16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/oi9n0g16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/oi9n0g16.png
new file mode 100644
index 000000000..924841357
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/oi9n0g16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/oi9n2c16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/oi9n2c16.png
new file mode 100644
index 000000000..f0512e49f
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/oi9n2c16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/pp0n2c16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/pp0n2c16.png
new file mode 100644
index 000000000..8f2aad733
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/pp0n2c16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/pp0n6a08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/pp0n6a08.png
new file mode 100644
index 000000000..4ed7a30e4
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/pp0n6a08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/ps1n0g08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/ps1n0g08.png
new file mode 100644
index 000000000..99625fa4b
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/ps1n0g08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/ps1n2c16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/ps1n2c16.png
new file mode 100644
index 000000000..0c7a6b380
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/ps1n2c16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/ps2n0g08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/ps2n0g08.png
new file mode 100644
index 000000000..90b297968
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/ps2n0g08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/ps2n2c16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/ps2n2c16.png
new file mode 100644
index 000000000..a4a181e4e
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/ps2n2c16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s01i3p01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s01i3p01.png
new file mode 100644
index 000000000..6c0fad1fc
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s01i3p01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s01n3p01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s01n3p01.png
new file mode 100644
index 000000000..cb2c8c782
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s01n3p01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s02i3p01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s02i3p01.png
new file mode 100644
index 000000000..2defaed91
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s02i3p01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s02n3p01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s02n3p01.png
new file mode 100644
index 000000000..2b1b66964
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s02n3p01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s03i3p01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s03i3p01.png
new file mode 100644
index 000000000..c23fdc463
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s03i3p01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s03n3p01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s03n3p01.png
new file mode 100644
index 000000000..6d96ee4f8
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s03n3p01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s04i3p01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s04i3p01.png
new file mode 100644
index 000000000..0e710c2c3
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s04i3p01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s04n3p01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s04n3p01.png
new file mode 100644
index 000000000..956396c45
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s04n3p01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s05i3p02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s05i3p02.png
new file mode 100644
index 000000000..d14cbd351
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s05i3p02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s05n3p02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s05n3p02.png
new file mode 100644
index 000000000..bf940f057
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s05n3p02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s06i3p02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s06i3p02.png
new file mode 100644
index 000000000..456ada320
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s06i3p02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s06n3p02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s06n3p02.png
new file mode 100644
index 000000000..501064dc2
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s06n3p02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s07i3p02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s07i3p02.png
new file mode 100644
index 000000000..44b66bab9
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s07i3p02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s07n3p02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s07n3p02.png
new file mode 100644
index 000000000..6a582593d
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s07n3p02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s08i3p02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s08i3p02.png
new file mode 100644
index 000000000..acf74f3fc
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s08i3p02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s08n3p02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s08n3p02.png
new file mode 100644
index 000000000..b7094e1b4
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s08n3p02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s09i3p02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s09i3p02.png
new file mode 100644
index 000000000..0bfae8e45
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s09i3p02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s09n3p02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s09n3p02.png
new file mode 100644
index 000000000..711ab8245
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s09n3p02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s32i3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s32i3p04.png
new file mode 100644
index 000000000..0841910b7
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s32i3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s32n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s32n3p04.png
new file mode 100644
index 000000000..fa58e3e3f
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s32n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s33i3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s33i3p04.png
new file mode 100644
index 000000000..ab0dc14ab
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s33i3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s33n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s33n3p04.png
new file mode 100644
index 000000000..764f1a3dc
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s33n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s34i3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s34i3p04.png
new file mode 100644
index 000000000..bd99039be
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s34i3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s34n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s34n3p04.png
new file mode 100644
index 000000000..9cbc68b3b
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s34n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s35i3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s35i3p04.png
new file mode 100644
index 000000000..e2a5e0a65
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s35i3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s35n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s35n3p04.png
new file mode 100644
index 000000000..90b892eba
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s35n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s36i3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s36i3p04.png
new file mode 100644
index 000000000..eb61b6f9a
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s36i3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s36n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s36n3p04.png
new file mode 100644
index 000000000..b38d17977
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s36n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s37i3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s37i3p04.png
new file mode 100644
index 000000000..6e2b1e9b7
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s37i3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s37n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s37n3p04.png
new file mode 100644
index 000000000..4d3054da5
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s37n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s38i3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s38i3p04.png
new file mode 100644
index 000000000..a0a8a140a
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s38i3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s38n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s38n3p04.png
new file mode 100644
index 000000000..1233ed048
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s38n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s39i3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s39i3p04.png
new file mode 100644
index 000000000..04fee93ea
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s39i3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s39n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s39n3p04.png
new file mode 100644
index 000000000..c750100d5
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s39n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s40i3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s40i3p04.png
new file mode 100644
index 000000000..68f358b82
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s40i3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/s40n3p04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/s40n3p04.png
new file mode 100644
index 000000000..864b6b967
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/s40n3p04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/tbbn0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/tbbn0g04.png
new file mode 100644
index 000000000..39a7050d2
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/tbbn0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/tbbn2c16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/tbbn2c16.png
new file mode 100644
index 000000000..dd3168e5c
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/tbbn2c16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/tbbn3p08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/tbbn3p08.png
new file mode 100644
index 000000000..0ede3574d
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/tbbn3p08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/tbgn2c16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/tbgn2c16.png
new file mode 100644
index 000000000..85cec395c
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/tbgn2c16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/tbgn3p08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/tbgn3p08.png
new file mode 100644
index 000000000..8cf2e6fb6
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/tbgn3p08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/tbrn2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/tbrn2c08.png
new file mode 100644
index 000000000..5cca0d621
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/tbrn2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/tbwn0g16.png b/briar-android/src/androidTestOfficial/assets/PngSuite/tbwn0g16.png
new file mode 100644
index 000000000..99bdeed2b
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/tbwn0g16.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/tbwn3p08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/tbwn3p08.png
new file mode 100644
index 000000000..eacab7a14
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/tbwn3p08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/tbyn3p08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/tbyn3p08.png
new file mode 100644
index 000000000..656db0989
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/tbyn3p08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/tm3n3p02.png b/briar-android/src/androidTestOfficial/assets/PngSuite/tm3n3p02.png
new file mode 100644
index 000000000..fb3ef1d0c
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/tm3n3p02.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/tp0n0g08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/tp0n0g08.png
new file mode 100644
index 000000000..333465fcd
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/tp0n0g08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/tp0n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/tp0n2c08.png
new file mode 100644
index 000000000..fc6e42cb4
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/tp0n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/tp0n3p08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/tp0n3p08.png
new file mode 100644
index 000000000..69a69e587
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/tp0n3p08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/tp1n3p08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/tp1n3p08.png
new file mode 100644
index 000000000..a6c9f35a8
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/tp1n3p08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/xc1n0g08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/xc1n0g08.png
new file mode 100644
index 000000000..940422737
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/xc1n0g08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/xc9n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/xc9n2c08.png
new file mode 100644
index 000000000..b11c2a7b4
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/xc9n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/xcrn0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/xcrn0g04.png
new file mode 100644
index 000000000..48abba193
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/xcrn0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/xcsn0g01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/xcsn0g01.png
new file mode 100644
index 000000000..9863a262c
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/xcsn0g01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/xd0n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/xd0n2c08.png
new file mode 100644
index 000000000..2f001610a
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/xd0n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/xd3n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/xd3n2c08.png
new file mode 100644
index 000000000..9e4a3ff7a
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/xd3n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/xd9n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/xd9n2c08.png
new file mode 100644
index 000000000..2c3b91aa4
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/xd9n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/xdtn0g01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/xdtn0g01.png
new file mode 100644
index 000000000..1a81abef8
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/xdtn0g01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/xhdn0g08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/xhdn0g08.png
new file mode 100644
index 000000000..fcb8737fa
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/xhdn0g08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/xlfn0g04.png b/briar-android/src/androidTestOfficial/assets/PngSuite/xlfn0g04.png
new file mode 100644
index 000000000..d9ec53ed9
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/xlfn0g04.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/xs1n0g01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/xs1n0g01.png
new file mode 100644
index 000000000..1817c5144
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/xs1n0g01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/xs2n0g01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/xs2n0g01.png
new file mode 100644
index 000000000..b8147f2a8
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/xs2n0g01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/xs4n0g01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/xs4n0g01.png
new file mode 100644
index 000000000..45237a1d2
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/xs4n0g01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/xs7n0g01.png b/briar-android/src/androidTestOfficial/assets/PngSuite/xs7n0g01.png
new file mode 100644
index 000000000..3f307f14e
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/xs7n0g01.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/z00n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/z00n2c08.png
new file mode 100644
index 000000000..7669eb838
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/z00n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/z03n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/z03n2c08.png
new file mode 100644
index 000000000..bfb10de8d
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/z03n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/z06n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/z06n2c08.png
new file mode 100644
index 000000000..b90ebc10f
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/z06n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/PngSuite/z09n2c08.png b/briar-android/src/androidTestOfficial/assets/PngSuite/z09n2c08.png
new file mode 100644
index 000000000..5f191a78e
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/PngSuite/z09n2c08.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/blue-500x500.png b/briar-android/src/androidTestOfficial/assets/blue-500x500.png
new file mode 100644
index 000000000..c7c8cd88f
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/blue-500x500.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/gimp_crash.gif b/briar-android/src/androidTestOfficial/assets/gimp_crash.gif
new file mode 100644
index 000000000..f55d45417
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/gimp_crash.gif differ
diff --git a/briar-android/src/androidTestOfficial/assets/green-1000x2000.png b/briar-android/src/androidTestOfficial/assets/green-1000x2000.png
new file mode 100644
index 000000000..b8127e346
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/green-1000x2000.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/image_io_crash.png b/briar-android/src/androidTestOfficial/assets/image_io_crash.png
new file mode 100644
index 000000000..36c456b75
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/image_io_crash.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/kitten.png b/briar-android/src/androidTestOfficial/assets/kitten.png
new file mode 100644
index 000000000..5f5d43791
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/kitten.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/kitten_original.jpg b/briar-android/src/androidTestOfficial/assets/kitten_original.jpg
new file mode 100644
index 000000000..1f3838ff3
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/kitten_original.jpg differ
diff --git a/briar-android/src/androidTestOfficial/assets/kitten_small.jpg b/briar-android/src/androidTestOfficial/assets/kitten_small.jpg
new file mode 100644
index 000000000..a8ecd92d7
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/kitten_small.jpg differ
diff --git a/briar-android/src/androidTestOfficial/assets/libraw_error.jpg b/briar-android/src/androidTestOfficial/assets/libraw_error.jpg
new file mode 100644
index 000000000..0f3bbd0a7
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/libraw_error.jpg differ
diff --git a/briar-android/src/androidTestOfficial/assets/lottapixel.jpg b/briar-android/src/androidTestOfficial/assets/lottapixel.jpg
new file mode 100644
index 000000000..e25c2d301
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/lottapixel.jpg differ
diff --git a/briar-android/src/androidTestOfficial/assets/opti_png_afl.gif b/briar-android/src/androidTestOfficial/assets/opti_png_afl.gif
new file mode 100644
index 000000000..c4fbe309b
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/opti_png_afl.gif differ
diff --git a/briar-android/src/androidTestOfficial/assets/red-100x100.png b/briar-android/src/androidTestOfficial/assets/red-100x100.png
new file mode 100644
index 000000000..f57e3a1b3
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/red-100x100.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/transparent-100x100.png b/briar-android/src/androidTestOfficial/assets/transparent-100x100.png
new file mode 100644
index 000000000..deb7ea3dd
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/transparent-100x100.png differ
diff --git a/briar-android/src/androidTestOfficial/assets/uber.gif b/briar-android/src/androidTestOfficial/assets/uber.gif
new file mode 100644
index 000000000..a7a6d7d1b
Binary files /dev/null and b/briar-android/src/androidTestOfficial/assets/uber.gif differ
diff --git a/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/AbstractAttachmentCreationTaskTest.java b/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/AbstractAttachmentCreationTaskTest.java
new file mode 100644
index 000000000..6b112fa55
--- /dev/null
+++ b/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/AbstractAttachmentCreationTaskTest.java
@@ -0,0 +1,41 @@
+package org.briarproject.briar.android.attachment;
+
+import android.content.res.AssetManager;
+
+import org.junit.Before;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import static androidx.test.InstrumentationRegistry.getContext;
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+
+abstract class AbstractAttachmentCreationTaskTest {
+
+ private final ImageHelper imageHelper = new ImageHelperImpl();
+ private final ImageSizeCalculator imageSizeCalculator =
+ new ImageSizeCalculator(imageHelper);
+
+ private AttachmentCreationTask task;
+
+ @Before
+ @SuppressWarnings("ConstantConditions") // add real objects when needed
+ public void setUp() {
+ task = new AttachmentCreationTask(null,
+ getApplicationContext().getContentResolver(), null,
+ imageSizeCalculator, null, null, true);
+ }
+
+ void testCompress(String filename, String contentType)
+ throws IOException {
+ InputStream is = getAssetManager().open(filename);
+ task.compressImage(is, contentType);
+ }
+
+ static AssetManager getAssetManager() {
+ // pm.getResourcesForApplication(packageName).getAssets() did not work
+ //noinspection deprecation
+ return getContext().getAssets();
+ }
+
+}
diff --git a/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/AttachmentCreationTaskTest.java b/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/AttachmentCreationTaskTest.java
new file mode 100644
index 000000000..59b6ebf0a
--- /dev/null
+++ b/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/AttachmentCreationTaskTest.java
@@ -0,0 +1,65 @@
+package org.briarproject.briar.android.attachment;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import static android.os.Build.VERSION.SDK_INT;
+import static org.junit.Assume.assumeTrue;
+
+@RunWith(AndroidJUnit4.class)
+public class AttachmentCreationTaskTest
+ extends AbstractAttachmentCreationTaskTest {
+
+ @Test
+ public void testCompressSmallPng() throws Exception {
+ testCompress("red-100x100.png", "image/png");
+ }
+
+ @Test
+ public void testCompressMediumPng() throws Exception {
+ testCompress("blue-500x500.png", "image/png");
+ }
+
+ @Test
+ public void testCompressLargePng() throws Exception {
+ testCompress("green-1000x2000.png", "image/png");
+ }
+
+ @Test
+ public void testCompressTransparentPng() throws Exception {
+ testCompress("transparent-100x100.png", "image/png");
+ }
+
+ @Test
+ public void testCompressVeryHighJpg() throws Exception {
+ testCompress("error_high.jpg", "image/jpeg");
+ }
+
+ @Test
+ public void testCompressVeryWideJpg() throws Exception {
+ testCompress("error_wide.jpg", "image/jpeg");
+ }
+
+ @Test
+ public void testCompressAnimatedGif1() throws Exception {
+ // TODO: Remove this assumption when we support large messages
+ assumeTrue(SDK_INT >= 24);
+ testCompress("animated.gif", "image/gif");
+ }
+
+ @Test
+ public void testCompressAnimatedGif2() throws Exception {
+ // TODO: Remove this assumption when we support large messages
+ assumeTrue(SDK_INT >= 24);
+ testCompress("animated2.gif", "image/gif");
+ }
+
+ @Test
+ public void testCompressVeryLargeGif() throws Exception {
+ // TODO: Remove this assumption when we support large messages
+ assumeTrue(SDK_INT >= 24);
+ testCompress("error_large.gif", "image/gif");
+ }
+}
diff --git a/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/AttachmentRetrieverIntegrationTest.java b/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/AttachmentRetrieverIntegrationTest.java
index aa21c0913..55e847ce0 100644
--- a/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/AttachmentRetrieverIntegrationTest.java
+++ b/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/AttachmentRetrieverIntegrationTest.java
@@ -1,7 +1,5 @@
package org.briarproject.briar.android.attachment;
-import android.content.res.AssetManager;
-
import org.briarproject.bramble.api.UniqueId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.messaging.Attachment;
@@ -9,14 +7,12 @@ import org.briarproject.briar.api.messaging.AttachmentHeader;
import org.junit.Test;
import org.junit.runner.RunWith;
-import java.io.IOException;
import java.io.InputStream;
-import java.net.URL;
import java.util.Random;
import androidx.test.ext.junit.runners.AndroidJUnit4;
-import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+import static androidx.test.InstrumentationRegistry.getContext;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -24,25 +20,6 @@ import static org.junit.Assert.assertTrue;
@RunWith(AndroidJUnit4.class)
public class AttachmentRetrieverIntegrationTest {
- private static final String smallKitten =
- "https://upload.wikimedia.org/wikipedia/commons/thumb/0/06/Kitten_in_Rizal_Park%2C_Manila.jpg/160px-Kitten_in_Rizal_Park%2C_Manila.jpg";
- private static final String originalKitten =
- "https://upload.wikimedia.org/wikipedia/commons/0/06/Kitten_in_Rizal_Park%2C_Manila.jpg";
- private static final String pngKitten =
- "https://upload.wikimedia.org/wikipedia/commons/c/c8/Young_cat.png";
- private static final String uberGif =
- "https://raw.githubusercontent.com/fuzzdb-project/fuzzdb/master/attack/file-upload/malicious-images/uber.gif";
- private static final String lottaPixel =
- "https://raw.githubusercontent.com/fuzzdb-project/fuzzdb/master/attack/file-upload/malicious-images/lottapixel.jpg";
- private static final String imageIoCrash =
- "https://www.landaire.net/img/crasher.png";
- private static final String gimpCrash =
- "https://gitlab.gnome.org/GNOME/gimp/uploads/75f5b7ed3b09b3f1c13f1f65bffe784f/31153c919d3aa634e8e6cff82219fe7352dd8a37.png";
- private static final String optiPngAfl =
- "https://sourceforge.net/p/optipng/bugs/64/attachment/test.gif";
- private static final String librawError =
- "https://www.libraw.org/sites/libraw.org/files/P1010671.JPG";
-
private final AttachmentDimensions dimensions = new AttachmentDimensions(
100, 50, 200, 75, 300
);
@@ -56,7 +33,7 @@ public class AttachmentRetrieverIntegrationTest {
@Test
public void testSmallJpegImage() throws Exception {
AttachmentHeader h = new AttachmentHeader(msgId, "image/jpeg");
- InputStream is = getUrlInputStream(smallKitten);
+ InputStream is = getAssetInputStream("kitten_small.jpg");
Attachment a = new Attachment(h, is);
AttachmentItem item = retriever.getAttachmentItem(a, true);
assertEquals(msgId, item.getMessageId());
@@ -65,14 +42,14 @@ public class AttachmentRetrieverIntegrationTest {
assertEquals(160, item.getThumbnailWidth());
assertEquals(240, item.getThumbnailHeight());
assertEquals("image/jpeg", item.getMimeType());
- assertEquals("jpg", item.getExtension());
+ assertJpgOrJpeg(item.getExtension());
assertFalse(item.hasError());
}
@Test
public void testBigJpegImage() throws Exception {
AttachmentHeader h = new AttachmentHeader(msgId, "image/jpeg");
- InputStream is = getUrlInputStream(originalKitten);
+ InputStream is = getAssetInputStream("kitten_original.jpg");
Attachment a = new Attachment(h, is);
AttachmentItem item = retriever.getAttachmentItem(a, true);
assertEquals(msgId, item.getMessageId());
@@ -81,14 +58,14 @@ public class AttachmentRetrieverIntegrationTest {
assertEquals(dimensions.maxWidth, item.getThumbnailWidth());
assertEquals(dimensions.maxHeight, item.getThumbnailHeight());
assertEquals("image/jpeg", item.getMimeType());
- assertEquals("jpg", item.getExtension());
+ assertJpgOrJpeg(item.getExtension());
assertFalse(item.hasError());
}
@Test
public void testSmallPngImage() throws Exception {
AttachmentHeader h = new AttachmentHeader(msgId, "image/png");
- InputStream is = getUrlInputStream(pngKitten);
+ InputStream is = getAssetInputStream("kitten.png");
Attachment a = new Attachment(h, is);
AttachmentItem item = retriever.getAttachmentItem(a, true);
assertEquals(msgId, item.getMessageId());
@@ -103,8 +80,8 @@ public class AttachmentRetrieverIntegrationTest {
@Test
public void testUberGif() throws Exception {
- AttachmentHeader h = new AttachmentHeader(msgId, "image/jpeg");
- InputStream is = getUrlInputStream(uberGif);
+ AttachmentHeader h = new AttachmentHeader(msgId, "image/gif");
+ InputStream is = getAssetInputStream("uber.gif");
Attachment a = new Attachment(h, is);
AttachmentItem item = retriever.getAttachmentItem(a, true);
assertEquals(1, item.getWidth());
@@ -119,7 +96,7 @@ public class AttachmentRetrieverIntegrationTest {
@Test
public void testLottaPixels() throws Exception {
AttachmentHeader h = new AttachmentHeader(msgId, "image/jpeg");
- InputStream is = getUrlInputStream(lottaPixel);
+ InputStream is = getAssetInputStream("lottapixel.jpg");
Attachment a = new Attachment(h, is);
AttachmentItem item = retriever.getAttachmentItem(a, true);
assertEquals(64250, item.getWidth());
@@ -127,14 +104,14 @@ public class AttachmentRetrieverIntegrationTest {
assertEquals(dimensions.maxWidth, item.getThumbnailWidth());
assertEquals(dimensions.maxWidth, item.getThumbnailHeight());
assertEquals("image/jpeg", item.getMimeType());
- assertEquals("jpg", item.getExtension());
+ assertJpgOrJpeg(item.getExtension());
assertFalse(item.hasError());
}
@Test
public void testImageIoCrash() throws Exception {
- AttachmentHeader h = new AttachmentHeader(msgId, "image/jpeg");
- InputStream is = getUrlInputStream(imageIoCrash);
+ AttachmentHeader h = new AttachmentHeader(msgId, "image/png");
+ InputStream is = getAssetInputStream("image_io_crash.png");
Attachment a = new Attachment(h, is);
AttachmentItem item = retriever.getAttachmentItem(a, true);
assertEquals(1184, item.getWidth());
@@ -148,8 +125,8 @@ public class AttachmentRetrieverIntegrationTest {
@Test
public void testGimpCrash() throws Exception {
- AttachmentHeader h = new AttachmentHeader(msgId, "image/jpeg");
- InputStream is = getUrlInputStream(gimpCrash);
+ AttachmentHeader h = new AttachmentHeader(msgId, "image/gif");
+ InputStream is = getAssetInputStream("gimp_crash.gif");
Attachment a = new Attachment(h, is);
AttachmentItem item = retriever.getAttachmentItem(a, true);
assertEquals(1, item.getWidth());
@@ -163,8 +140,8 @@ public class AttachmentRetrieverIntegrationTest {
@Test
public void testOptiPngAfl() throws Exception {
- AttachmentHeader h = new AttachmentHeader(msgId, "image/jpeg");
- InputStream is = getUrlInputStream(optiPngAfl);
+ AttachmentHeader h = new AttachmentHeader(msgId, "image/gif");
+ InputStream is = getAssetInputStream("opti_png_afl.gif");
Attachment a = new Attachment(h, is);
AttachmentItem item = retriever.getAttachmentItem(a, true);
assertEquals(32, item.getWidth());
@@ -179,7 +156,7 @@ public class AttachmentRetrieverIntegrationTest {
@Test
public void testLibrawError() throws Exception {
AttachmentHeader h = new AttachmentHeader(msgId, "image/jpeg");
- InputStream is = getUrlInputStream(librawError);
+ InputStream is = getAssetInputStream("libraw_error.jpg");
Attachment a = new Attachment(h, is);
AttachmentItem item = retriever.getAttachmentItem(a, true);
assertTrue(item.hasError());
@@ -241,7 +218,7 @@ public class AttachmentRetrieverIntegrationTest {
assertEquals(dimensions.minWidth, item.getThumbnailWidth());
assertEquals(dimensions.maxHeight, item.getThumbnailHeight());
assertEquals("image/jpeg", item.getMimeType());
- assertEquals("jpg", item.getExtension());
+ assertJpgOrJpeg(item.getExtension());
assertFalse(item.hasError());
}
@@ -256,17 +233,18 @@ public class AttachmentRetrieverIntegrationTest {
assertEquals(dimensions.maxWidth, item.getThumbnailWidth());
assertEquals(dimensions.minHeight, item.getThumbnailHeight());
assertEquals("image/jpeg", item.getMimeType());
- assertEquals("jpg", item.getExtension());
+ assertJpgOrJpeg(item.getExtension());
assertFalse(item.hasError());
}
- private InputStream getUrlInputStream(String url) throws IOException {
- return new URL(url).openStream();
+ private InputStream getAssetInputStream(String name) throws Exception {
+ // pm.getResourcesForApplication(packageName).getAssets() did not work
+ //noinspection deprecation
+ return getContext().getAssets().open(name);
}
- private InputStream getAssetInputStream(String name) throws IOException {
- AssetManager assets = getApplicationContext().getAssets();
- return assets.open(name);
+ private void assertJpgOrJpeg(String extension) {
+ assertTrue("jpg".equals(extension) || "jpeg".equals(extension));
}
public static byte[] getRandomBytes(int length) {
diff --git a/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/PngSuiteAttachmentCreationTaskTest.java b/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/PngSuiteAttachmentCreationTaskTest.java
new file mode 100644
index 000000000..d3c2b80b8
--- /dev/null
+++ b/briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/PngSuiteAttachmentCreationTaskTest.java
@@ -0,0 +1,57 @@
+package org.briarproject.briar.android.attachment;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
+import static java.util.logging.Logger.getLogger;
+import static org.briarproject.bramble.api.nullsafety.NullSafety.requireNonNull;
+import static org.briarproject.bramble.test.TestUtils.isOptionalTestEnabled;
+import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeTrue;
+
+@RunWith(Parameterized.class)
+public class PngSuiteAttachmentCreationTaskTest
+ extends AbstractAttachmentCreationTaskTest {
+
+ private static final Logger LOG =
+ getLogger(PngSuiteAttachmentCreationTaskTest.class.getName());
+
+ @Parameters
+ public static Iterable