Bug 1158979 - Removed StringHelper.get and changed StringHelper.initialize to return the StringHelper instance. r?nechen
Uses of StringHelper.get are replaced with the StringHelper instance in BaseRobocopTest.java and UITestContext.
MozReview-Commit-ID: FfMhdNCX1vC
--- a/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/BaseRobocopTest.java
+++ b/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/BaseRobocopTest.java
@@ -169,18 +169,17 @@ public abstract class BaseRobocopTest ex
// Start the activity.
final Intent intent = createActivityIntent();
setActivityIntent(intent);
// Set up Robotium.solo and Driver objects
Activity tempActivity = getActivity();
- StringHelper.initialize(tempActivity.getResources());
- mStringHelper = StringHelper.get();
+ mStringHelper = StringHelper.initialize(tempActivity.getResources());
mSolo = new Solo(getInstrumentation(), tempActivity);
mDriver = new FennecNativeDriver(tempActivity, mSolo, mRootPath);
mActions = new FennecNativeActions(tempActivity, mSolo, getInstrumentation(), mAsserter);
}
@Override
protected void runTest() throws Throwable {
--- a/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/StringHelper.java
+++ b/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/StringHelper.java
@@ -415,27 +415,21 @@ public class StringHelper {
NEVER = res.getString(R.string.pref_update_autodownload_disabled);
// Restore Tabs Settings
DONT_RESTORE_TABS = res.getString(R.string.pref_restore_quit);
ALWAYS_RESTORE_TABS = res.getString(R.string.pref_restore_always);
DONT_RESTORE_QUIT = res.getString(R.string.pref_restore_quit);
}
- public static void initialize(Resources res) {
+ public static StringHelper initialize(Resources res) {
if (instance != null) {
throw new IllegalStateException(StringHelper.class.getSimpleName() + " already Initialized");
}
instance = new StringHelper(res);
- }
-
- public static StringHelper get() {
- if (instance == null) {
- throw new IllegalStateException(StringHelper.class.getSimpleName() + " instance is not yet initialized. Use StringHelper.initialize(Resources) first.");
- }
return instance;
}
/**
* Build a URL for loading a Javascript file in the Robocop Javascript
* harness.
* <p>
* We append a random slug to avoid caching: see
--- a/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/helpers/GeckoClickHelper.java
+++ b/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/helpers/GeckoClickHelper.java
@@ -11,49 +11,50 @@ import org.mozilla.gecko.tests.UITestCon
/**
* Provides helper functions for clicking elements rendered by the Gecko engine.
*/
public class GeckoClickHelper {
private static Solo sSolo;
private static Activity sActivity;
private static Driver sDriver;
-
+ private static StringHelper sStringHelper;
protected static void init(final UITestContext context) {
sSolo = context.getSolo();
sActivity = context.getActivity();
sDriver = context.getDriver();
+ sStringHelper = context.getStringHelper();
}
private GeckoClickHelper() { /* To disallow instantiation. */ }
/**
* Long press the link and select "Open Link in New Tab" from the context menu.
*
* The link should be positioned at the top of the page, at least 60px high and
* aligned to the middle.
*/
public static void openCentralizedLinkInNewTab() {
openLinkContextMenu();
// Click on "Open Link in New Tab"
- sSolo.clickOnText(StringHelper.get().CONTEXT_MENU_ITEMS_IN_NORMAL_TAB[0]);
+ sSolo.clickOnText(sStringHelper.CONTEXT_MENU_ITEMS_IN_NORMAL_TAB[0]);
}
/**
* Long press the link and select "Open Link in New Private Tab" from the context menu.
*
* The link should be positioned at the top of the page, at least 60px high and
* aligned to the middle.
*/
public static void openCentralizedLinkInNewPrivateTab() {
openLinkContextMenu();
// Click on "Open Link in New Private Tab"
- sSolo.clickOnText(StringHelper.get().CONTEXT_MENU_ITEMS_IN_NORMAL_TAB[1]);
+ sSolo.clickOnText(sStringHelper.CONTEXT_MENU_ITEMS_IN_NORMAL_TAB[1]);
}
private static void openLinkContextMenu() {
DisplayMetrics dm = new DisplayMetrics();
sActivity.getWindowManager().getDefaultDisplay().getMetrics(dm);
sSolo.clickLongOnScreen(
sDriver.getGeckoLeft() + sDriver.getGeckoWidth() / 2,
--- a/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/testActivityStreamPocketReferrer.java
+++ b/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/testActivityStreamPocketReferrer.java
@@ -1,14 +1,13 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.gecko.tests;
-
import android.util.Log;
import com.robotium.solo.Condition;
import org.mozilla.gecko.R;
import org.mozilla.gecko.activitystream.homepanel.topstories.PocketStoriesLoader;
import org.mozilla.gecko.tests.helpers.NavigationHelper;
import org.mozilla.gecko.tests.helpers.WaitHelper;
import org.mozilla.gecko.util.StringUtils;
@@ -40,17 +39,17 @@ public class testActivityStreamPocketRef
private boolean tabLoadContainsPocketReferrer = false;
@Override
public void setUp() throws Exception {
super.setUp();
// Override the default placeholder URL so we don't access the network during testing.
// Note: this actually only seems to take effect after we load a page and go back to about:home.
- PocketStoriesLoader.configureForTesting(getAbsoluteHostnameUrl(StringHelper.get().ROBOCOP_BLANK_PAGE_01_URL));
+ PocketStoriesLoader.configureForTesting(getAbsoluteHostnameUrl(mStringHelper.ROBOCOP_BLANK_PAGE_01_URL));
}
public void testActivityStreamPocketReferrer() throws Exception {
if (!getActivity().getResources().getBoolean(R.bool.pref_activitystream_pocket_enabled_default)) {
// I don't have time to add code to force enable Pocket suggestions so we'll just assume
// this won't break until we re-enable Pocket by default (bug 1411657).
Log.d(LOGTAG, "Pocket recommendations are disabled by default; returning success...");
return;
@@ -82,21 +81,21 @@ public class testActivityStreamPocketRef
assertTabLoadEventContainsPocketReferrer(true);
NavigationHelper.goBack(); // to top sites.
}
private void checkReferrerInTopStoriesContextMenu() throws Exception {
Log.d(LOGTAG, "testReferrerInTopStoriesContextMenu");
mSolo.clickLongOnText(PocketStoriesLoader.PLACEHOLDER_TITLE); // Open Top Story context menu.
- mSolo.clickOnText(StringHelper.get().CONTEXT_MENU_OPEN_IN_NEW_TAB);
+ mSolo.clickOnText(mStringHelper.CONTEXT_MENU_OPEN_IN_NEW_TAB);
WaitHelper.waitFor("context menu to close after item selection.", new Condition() {
@Override
public boolean isSatisfied() {
- return !mSolo.searchText(StringHelper.get().CONTEXT_MENU_OPEN_IN_NEW_TAB);
+ return !mSolo.searchText(mStringHelper.CONTEXT_MENU_OPEN_IN_NEW_TAB);
}
}, 5000);
// There's no simple way to block until a background page loads so instead, we sleep for 500ms.
// Our JS listener is attached the whole time so if the message is sent, we'll receive it and cache it
// while we're sleeping.
Thread.sleep(500);
assertTabLoadEventContainsPocketReferrer(true);