summaryrefslogtreecommitdiffstats
path: root/mobile/android/app/src
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/app/src')
-rw-r--r--mobile/android/app/src/androidTest/AndroidManifest.xml61
-rw-r--r--mobile/android/app/src/test/java/org/mozilla/gecko/TestGeckoApplication.java27
2 files changed, 88 insertions, 0 deletions
diff --git a/mobile/android/app/src/androidTest/AndroidManifest.xml b/mobile/android/app/src/androidTest/AndroidManifest.xml
new file mode 100644
index 000000000..9478f5b07
--- /dev/null
+++ b/mobile/android/app/src/androidTest/AndroidManifest.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="org.mozilla.roboexample.test"
+ android:sharedUserId="${MOZ_ANDROID_SHARED_ID}"
+ android:versionCode="1"
+ android:versionName="1.0" >
+
+ <uses-sdk android:minSdkVersion="${MOZ_ANDROID_MIN_SDK_VERSION}"
+ android:targetSdkVersion="23"/>
+ <!-- TODO: re-instate maxSdkVersion. -->
+
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+
+ <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+ <uses-permission android:name="android.permission.WAKE_LOCK" />
+
+ <instrumentation
+ android:name="org.mozilla.gecko.FennecInstrumentationTestRunner"
+ android:targetPackage="${ANDROID_PACKAGE_NAME}" />
+
+ <application
+ android:label="@string/app_name">
+
+ <uses-library android:name="android.test.runner" />
+
+ <!-- Fake handlers to ensure that we have some share intents to show in our share handler list -->
+ <activity android:name="org.mozilla.gecko.RobocopShare1"
+ android:label="Robocop fake activity">
+
+ <intent-filter android:label="Fake robocop share handler 1">
+ <action android:name="android.intent.action.SEND" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="text/*" />
+ <data android:mimeType="image/*" />
+ </intent-filter>
+
+ </activity>
+
+ <activity android:name="org.mozilla.gecko.RobocopShare2"
+ android:label="Robocop fake activity 2">
+
+ <intent-filter android:label="Fake robocop share handler 2">
+ <action android:name="android.intent.action.SEND" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="text/*" />
+ <data android:mimeType="image/*" />
+ </intent-filter>
+
+ </activity>
+
+ <activity android:name="org.mozilla.gecko.LaunchFennecWithConfigurationActivity"
+ android:label="Robocop Fennec">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
+
+ </application>
+
+</manifest>
diff --git a/mobile/android/app/src/test/java/org/mozilla/gecko/TestGeckoApplication.java b/mobile/android/app/src/test/java/org/mozilla/gecko/TestGeckoApplication.java
new file mode 100644
index 000000000..fee9a426d
--- /dev/null
+++ b/mobile/android/app/src/test/java/org/mozilla/gecko/TestGeckoApplication.java
@@ -0,0 +1,27 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+package org.mozilla.gecko;
+
+import android.app.Application;
+
+import org.robolectric.TestLifecycleApplication;
+
+import java.lang.reflect.Method;
+
+/**
+ * GeckoApplication isn't test-lifecycle friendly: onCreate is called multiple times, which
+ * re-registers Gecko event listeners, which fails. This class is magically named so that
+ * Robolectric uses it instead of the application defined in the Android manifest. See
+ * http://robolectric.blogspot.ca/2013/04/the-test-lifecycle-in-20.html.
+ */
+public class TestGeckoApplication extends Application implements TestLifecycleApplication {
+ @Override public void beforeTest(Method method) {
+ }
+
+ @Override public void prepareTest(Object test) {
+ }
+
+ @Override public void afterTest(Method method) {
+ }
+}