diff --git a/mobile/android/base/AppConstants.java.in b/mobile/android/base/AppConstants.java.in index ba11ff2289b6..69efc53ea48f 100644 --- a/mobile/android/base/AppConstants.java.in +++ b/mobile/android/base/AppConstants.java.in @@ -24,16 +24,10 @@ public class AppConstants { public static final String ANDROID_PACKAGE_NAME = "@ANDROID_PACKAGE_NAME@"; public static final String MANGLED_ANDROID_PACKAGE_NAME = "@MANGLED_ANDROID_PACKAGE_NAME@"; - /** - * The Java Class instance that launches the browser. - *

- * This should always agree with BROWSER_INTENT_CLASS_NAME. - */ - public static final Class BROWSER_INTENT_CLASS = @ANDROID_PACKAGE_NAME@.App.class; /** * The name of the Java class that launches the browser. */ - public static final String BROWSER_INTENT_CLASS_NAME = BROWSER_INTENT_CLASS.getName(); + public static final String BROWSER_INTENT_CLASS_NAME = ANDROID_PACKAGE_NAME + ".App"; public static final String GRE_MILESTONE = "@GRE_MILESTONE@"; diff --git a/mobile/android/base/tests/BaseRobocopTest.java b/mobile/android/base/tests/BaseRobocopTest.java index 6e249173098a..9eae635d972d 100644 --- a/mobile/android/base/tests/BaseRobocopTest.java +++ b/mobile/android/base/tests/BaseRobocopTest.java @@ -6,7 +6,6 @@ package org.mozilla.gecko.tests; import java.util.Map; -import org.mozilla.gecko.AppConstants; import org.mozilla.gecko.Assert; import org.mozilla.gecko.FennecInstrumentationTestRunner; import org.mozilla.gecko.FennecMochitestAssert; @@ -39,7 +38,7 @@ public abstract class BaseRobocopTest extends ActivityInstrumentationTestCase2) AppConstants.BROWSER_INTENT_CLASS); + this((Class) TestConstants.BROWSER_INTENT_CLASS); } /** diff --git a/mobile/android/base/tests/DatabaseHelper.java b/mobile/android/base/tests/DatabaseHelper.java index 7cdfbe2330f8..d3d9d2a074fb 100644 --- a/mobile/android/base/tests/DatabaseHelper.java +++ b/mobile/android/base/tests/DatabaseHelper.java @@ -2,6 +2,7 @@ package org.mozilla.gecko.tests; import java.util.ArrayList; +import org.mozilla.gecko.AppConstants; import org.mozilla.gecko.Assert; import org.mozilla.gecko.GeckoProfile; import org.mozilla.gecko.db.BrowserDB; @@ -31,7 +32,7 @@ class DatabaseHelper { protected Uri buildUri(BrowserDataType dataType) { Uri uri = null; if (dataType == BrowserDataType.BOOKMARKS || dataType == BrowserDataType.HISTORY) { - uri = Uri.parse("content://" + TestConstants.ANDROID_PACKAGE_NAME + ".db.browser/" + dataType.toString().toLowerCase()); + uri = Uri.parse("content://" + AppConstants.ANDROID_PACKAGE_NAME + ".db.browser/" + dataType.toString().toLowerCase()); } else { mAsserter.ok(false, "The wrong data type has been provided = " + dataType.toString(), "Please provide the correct data type"); } diff --git a/mobile/android/base/tests/TestConstants.java.in b/mobile/android/base/tests/TestConstants.java.in index 8ff90efa101f..366862f77829 100644 --- a/mobile/android/base/tests/TestConstants.java.in +++ b/mobile/android/base/tests/TestConstants.java.in @@ -6,6 +6,13 @@ package org.mozilla.gecko.tests; +import android.app.Activity; + public class TestConstants { - public static final String ANDROID_PACKAGE_NAME = "@ANDROID_PACKAGE_NAME@"; + /** + * The Java Class instance that launches the browser. + *

+ * This should always agree with {@link AppConstants#BROWSER_INTENT_CLASS_NAME}. + */ + public static final Class BROWSER_INTENT_CLASS = @ANDROID_PACKAGE_NAME@.App.class; } diff --git a/mobile/android/base/tests/testImportFromAndroid.java b/mobile/android/base/tests/testImportFromAndroid.java index 48cd8463388a..786aed6002e4 100644 --- a/mobile/android/base/tests/testImportFromAndroid.java +++ b/mobile/android/base/tests/testImportFromAndroid.java @@ -3,6 +3,7 @@ package org.mozilla.gecko.tests; import java.util.ArrayList; import org.mozilla.gecko.Actions; +import org.mozilla.gecko.AppConstants; import org.mozilla.gecko.GeckoProfile; import android.content.ContentResolver; @@ -112,7 +113,7 @@ public class testImportFromAndroid extends AboutHomeTest { // Add a few history items in Firefox Mobile ContentResolver resolver = getActivity().getContentResolver(); - Uri uri = Uri.parse("content://" + TestConstants.ANDROID_PACKAGE_NAME + ".db.browser/history"); + Uri uri = Uri.parse("content://" + AppConstants.ANDROID_PACKAGE_NAME + ".db.browser/history"); uri = uri.buildUpon().appendQueryParameter("profile", GeckoProfile.DEFAULT_PROFILE) .appendQueryParameter("sync", "true").build(); for (String url:androidData) { diff --git a/mobile/android/tests/browser/junit3/src/tests/BrowserTestCase.java b/mobile/android/tests/browser/junit3/src/tests/BrowserTestCase.java index 0b86b2b9019b..20b83eb314c6 100644 --- a/mobile/android/tests/browser/junit3/src/tests/BrowserTestCase.java +++ b/mobile/android/tests/browser/junit3/src/tests/BrowserTestCase.java @@ -12,13 +12,34 @@ import android.test.ActivityInstrumentationTestCase2; /** * BrowserTestCase provides helper methods for testing. */ +@SuppressWarnings("unchecked") public class BrowserTestCase extends ActivityInstrumentationTestCase2 { @SuppressWarnings("unused") private static String LOG_TAG = "BrowserTestCase"; - @SuppressWarnings("unchecked") + /** + * The Java Class instance that launches the browser. + *

+ * This should always agree with {@link AppConstants#BROWSER_INTENT_CLASS_NAME}. + */ + public static final Class BROWSER_INTENT_CLASS; + + // Use reflection here so we don't have to either (a) preprocess this + // file, or (b) get access to Robocop's TestConstants class from these + // instrumentation tests. + static { + Class cl; + try { + cl = (Class) Class.forName(AppConstants.BROWSER_INTENT_CLASS_NAME); + } catch (ClassNotFoundException e) { + // Oh well. + cl = Activity.class; + } + BROWSER_INTENT_CLASS = cl; + } + public BrowserTestCase() { - super((Class) AppConstants.BROWSER_INTENT_CLASS); + super((Class) BROWSER_INTENT_CLASS); } public Context getApplicationContext() {