gecko/mobile/android/base/tests/testAppMenuPathways.java

59 lines
2.6 KiB
Java

package org.mozilla.gecko.tests;
import org.json.JSONObject;
import org.mozilla.gecko.Tabs;
import org.mozilla.gecko.tests.components.AppMenuComponent;
import org.mozilla.gecko.tests.helpers.GeckoHelper;
import org.mozilla.gecko.tests.helpers.NavigationHelper;
/**
* Set of tests to test UI App menu and submenus the user interact with.
*/
public class testAppMenuPathways extends UITest {
/**
* Robocop supports only a single test function per test class. Therefore, we
* have a single top-level test function that dispatches to sub-tests.
*/
public void testAppMenuPathways() {
GeckoHelper.blockForReady();
_testSaveAsPDFPathway();
}
public void _testSaveAsPDFPathway() {
// Page menu should be disabled in about:home.
mAppMenu.assertMenuItemIsDisabledAndVisible(AppMenuComponent.PageMenuItem.SAVE_AS_PDF);
// Generate a mock Content:LocationChange message with video mime-type for the current tab (tabId = 0).
final JSONObject message = new JSONObject();
try {
message.put("contentType", "video/webm");
message.put("baseDomain", "webmfiles.org");
message.put("type", "Content:LocationChange");
message.put("sameDocument", false);
message.put("userRequested", "");
message.put("uri", getAbsoluteIpUrl("/big-buck-bunny_trailer.webm"));
message.put("tabID", 0);
} catch (Exception ex) {
mAsserter.ok(false, "exception in testSaveAsPDFPathway", ex.toString());
}
// Mock video playback with the generated message and Content:LocationChange event.
Tabs.getInstance().handleMessage("Content:LocationChange", message);
// Save as pdf menu is disabled while playing video.
mAppMenu.assertMenuItemIsDisabledAndVisible(AppMenuComponent.PageMenuItem.SAVE_AS_PDF);
// The above mock video playback test changes Java state, but not the associated JS state.
// Navigate to a new page so that the Java state is cleared.
NavigationHelper.enterAndLoadUrl(StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
mToolbar.assertTitle(StringHelper.ROBOCOP_BLANK_PAGE_01_TITLE,
StringHelper.ROBOCOP_BLANK_PAGE_01_URL);
// Test save as pdf functionality.
// The following call doesn't wait for the resulting pdf but checks that no exception are thrown.
// NOTE: save as pdf functionality must be done at the end as it is slow and cause other test operations to fail.
mAppMenu.pressMenuItem(AppMenuComponent.PageMenuItem.SAVE_AS_PDF);
}
}