Bug 1158979 - Removed StringHelper.get and changed StringHelper.initialize to return the StringHelper instance. r?nechen draft
authorsreeise <reeisesean@gmail.com>
Sun, 27 May 2018 02:44:59 -0400
changeset 804512 7c78eb34ac74648e42c837713111a965d5ba6b58
parent 800491 a466172aed4bc2afc21169b749b8068a4b98c93f
push id112398
push userbmo:reeisesean@gmail.com
push dateWed, 06 Jun 2018 06:34:44 +0000
reviewersnechen
bugs1158979
milestone62.0a1
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
mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/BaseRobocopTest.java
mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/StringHelper.java
mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/helpers/GeckoClickHelper.java
mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/testActivityStreamPocketReferrer.java
--- 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);