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 data() throws IOException { + List data = new ArrayList<>(); + String[] files = requireNonNull(getAssetManager().list("PngSuite")); + for (String filename : files) + if (filename.endsWith(".png")) data.add(filename); + return data; + } + + private final String filename; + + public PngSuiteAttachmentCreationTaskTest(String filename) { + this.filename = filename; + } + + @Test + public void testPngSuiteCompress() throws Exception { + assumeTrue(isOptionalTestEnabled( + PngSuiteAttachmentCreationTaskTest.class)); + LOG.info("Testing " + filename); + if (filename.startsWith("x")) { + try { + testCompress("PngSuite/" + filename, "image/png"); + fail(); + } catch (IOException expected) { + // Expected + } + } else { + testCompress("PngSuite/" + filename, "image/png"); + } + } +} diff --git a/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreationTask.java b/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreationTask.java index cdeea6c5d..10a793b86 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreationTask.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreationTask.java @@ -22,17 +22,19 @@ import java.util.Collection; import java.util.logging.Logger; import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; import static android.graphics.Bitmap.CompressFormat.JPEG; import static android.graphics.BitmapFactory.decodeStream; +import static java.util.Arrays.asList; import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; import static java.util.logging.Logger.getLogger; +import static org.briarproject.bramble.util.AndroidUtils.getSupportedImageContentTypes; import static org.briarproject.bramble.util.IoUtils.tryToClose; import static org.briarproject.bramble.util.LogUtils.logDuration; import static org.briarproject.bramble.util.LogUtils.logException; import static org.briarproject.bramble.util.LogUtils.now; -import static org.briarproject.briar.api.messaging.MessagingConstants.IMAGE_MIME_TYPES; import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_IMAGE_SIZE; @NotNullByDefault @@ -107,7 +109,7 @@ class AttachmentCreationTask { long start = now(); String contentType = contentResolver.getType(uri); if (contentType == null) throw new IOException("null content type"); - if (!isValidMimeType(contentType)) { + if (!asList(getSupportedImageContentTypes()).contains(contentType)) { String uriString = uri.toString(); throw new UnsupportedMimeTypeException("", contentType, uriString); } @@ -123,14 +125,8 @@ class AttachmentCreationTask { return h; } - private boolean isValidMimeType(String mimeType) { - for (String supportedType : IMAGE_MIME_TYPES) { - if (supportedType.equals(mimeType)) return true; - } - return false; - } - - private InputStream compressImage(InputStream is, String contentType) + @VisibleForTesting + InputStream compressImage(InputStream is, String contentType) throws IOException { ByteArrayOutputStream out = new ByteArrayOutputStream(); try { @@ -170,6 +166,8 @@ class AttachmentCreationTask { LOG.info("Scaling attachment by factor of " + inSampleSize); Options options = new Options(); options.inSampleSize = inSampleSize; + if (contentType.equals("image/png")) + options.inPreferredConfig = Bitmap.Config.RGB_565; Bitmap bitmap = decodeStream(is, null, options); if (bitmap == null) throw new IOException(); return bitmap; diff --git a/briar-android/src/main/java/org/briarproject/briar/android/view/TextAttachmentController.java b/briar-android/src/main/java/org/briarproject/briar/android/view/TextAttachmentController.java index fcf3e3981..806fd9e4c 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/view/TextAttachmentController.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/view/TextAttachmentController.java @@ -40,8 +40,8 @@ import static android.widget.Toast.LENGTH_LONG; import static androidx.core.content.ContextCompat.getColor; import static androidx.customview.view.AbsSavedState.EMPTY_STATE; import static androidx.lifecycle.Lifecycle.State.DESTROYED; +import static org.briarproject.bramble.util.AndroidUtils.getSupportedImageContentTypes; import static org.briarproject.briar.android.util.UiUtils.resolveColorAttribute; -import static org.briarproject.briar.api.messaging.MessagingConstants.IMAGE_MIME_TYPES; import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_ATTACHMENTS_PER_MESSAGE; @UiThread @@ -131,7 +131,8 @@ public class TextAttachmentController extends TextSendController ACTION_OPEN_DOCUMENT : ACTION_GET_CONTENT); intent.setType("image/*"); intent.addCategory(CATEGORY_OPENABLE); - if (SDK_INT >= 19) intent.putExtra(EXTRA_MIME_TYPES, IMAGE_MIME_TYPES); + if (SDK_INT >= 19) + intent.putExtra(EXTRA_MIME_TYPES, getSupportedImageContentTypes()); if (SDK_INT >= 18) intent.putExtra(EXTRA_ALLOW_MULTIPLE, true); return intent; } diff --git a/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingConstants.java b/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingConstants.java index fda09771b..f957a404a 100644 --- a/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingConstants.java +++ b/briar-api/src/main/java/org/briarproject/briar/api/messaging/MessagingConstants.java @@ -19,15 +19,6 @@ public interface MessagingConstants { */ int MAX_CONTENT_TYPE_BYTES = 50; - /** - * The supported mime types for image attachments. - */ - String[] IMAGE_MIME_TYPES = { - "image/jpeg", - "image/png", - "image/gif", - }; - /** * The maximum allowed size of image attachments. * TODO: Different limit for GIFs?