#filter substitution package @ANDROID_PACKAGE_NAME@.tests; import @ANDROID_PACKAGE_NAME@.*; import android.app.Activity; import android.view.MenuItem; import android.widget.TextView; import android.widget.TabHost; import android.content.ContentResolver; import android.app.Instrumentation; import android.util.DisplayMetrics; public class testAddonManager extends PixelTest { Actions.EventExpecter tabEventExpecter; Actions.EventExpecter contentEventExpecter; String url = "about:addons"; @Override protected int getTestType() { return TEST_MOCHITEST; } /* This test will check the behavior of the Addons Manager: First the test will open the Addons Manager from the Menu and then close it Then the test will open the Addons Manager by visiting about:addons The test will tap/click on the addons.mozilla.org icon to open the AMO page in a new tab With the Addons Manager open the test will verify that when it is opened again from the menu no new tab will be opened*/ public void testAddonManager() { blockForGeckoReady(); // Use the menu to open the Addon Manger selectMenuItem("Add-ons"); // Set up listeners to catch the page load we're about to do tabEventExpecter = mActions.expectGeckoEvent("Tab:Added"); contentEventExpecter = mActions.expectGeckoEvent("DOMContentLoaded"); // Wait for the new tab and page to load tabEventExpecter.blockForEvent(); contentEventExpecter.blockForEvent(); // Verify the url verifyPageTitle("Add-ons"); // Close the Add-on Manager mActions.sendSpecialKey(Actions.SpecialKey.BACK); // Load the about:addons page and verify it was loaded loadAndPaint(url); verifyPageTitle("Add-ons"); // Load AMO page by clicking the AMO icon DisplayMetrics dm = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); /* Setup the tap to top value + 25px and right value - 25px. Since the AMO icon is 50x50px this values should set the tap in the middle of the icon */ float top = mDriver.getGeckoTop() + 25 * dm.density;; float right = mDriver.getGeckoLeft() + mDriver.getGeckoWidth() - 25 * dm.density;; // Setup wait for tab to spawn and load tabEventExpecter = mActions.expectGeckoEvent("Tab:Added"); contentEventExpecter = mActions.expectGeckoEvent("DOMContentLoaded"); // Tap on the AMO icon mSolo.clickOnScreen(right, top); // Wait for the new tab and page to load tabEventExpecter.blockForEvent(); contentEventExpecter.blockForEvent(); // Verify tab count has increased verifyTabCount(2); // Verify the page was opened verifyPageTitle("Add-ons for Android"); // Addons Manager is not opened 2 separate times when opened from the menu selectMenuItem("Add-ons"); contentEventExpecter.blockForEvent(); // Verify tab count not increased verifyTabCount(2); } }