michael@0: package org.mozilla.gecko.tests; michael@0: michael@0: import org.mozilla.gecko.tests.components.AboutHomeComponent.PanelType; michael@0: import org.mozilla.gecko.tests.helpers.DeviceHelper; michael@0: import org.mozilla.gecko.tests.helpers.GeckoHelper; michael@0: michael@0: /** michael@0: * Tests functionality related to navigating between the various about:home panels. michael@0: */ michael@0: public class testAboutHomePageNavigation extends UITest { michael@0: // TODO: Define this test dynamically by creating dynamic representations of the Page michael@0: // enum for both phone and tablet, then swiping through the panels. This will also michael@0: // benefit having a HomePager with custom panels. michael@0: public void testAboutHomePageNavigation() { michael@0: GeckoHelper.blockForDelayedStartup(); michael@0: michael@0: mAboutHome.assertVisible() michael@0: .assertCurrentPanel(PanelType.TOP_SITES); michael@0: michael@0: mAboutHome.swipeToPanelOnRight(); michael@0: mAboutHome.assertCurrentPanel(PanelType.BOOKMARKS); michael@0: michael@0: mAboutHome.swipeToPanelOnRight(); michael@0: mAboutHome.assertCurrentPanel(PanelType.READING_LIST); michael@0: michael@0: // Ideally these helpers would just be their own tests. However, by keeping this within michael@0: // one method, we're saving test setUp and tearDown resources. michael@0: if (DeviceHelper.isTablet()) { michael@0: helperTestTablet(); michael@0: } else { michael@0: helperTestPhone(); michael@0: } michael@0: } michael@0: michael@0: private void helperTestTablet() { michael@0: mAboutHome.swipeToPanelOnRight(); michael@0: mAboutHome.assertCurrentPanel(PanelType.HISTORY); michael@0: michael@0: // Edge case. michael@0: mAboutHome.swipeToPanelOnRight(); michael@0: mAboutHome.assertCurrentPanel(PanelType.HISTORY); michael@0: michael@0: mAboutHome.swipeToPanelOnLeft(); michael@0: mAboutHome.assertCurrentPanel(PanelType.READING_LIST); michael@0: michael@0: mAboutHome.swipeToPanelOnLeft(); michael@0: mAboutHome.assertCurrentPanel(PanelType.BOOKMARKS); michael@0: michael@0: mAboutHome.swipeToPanelOnLeft(); michael@0: mAboutHome.assertCurrentPanel(PanelType.TOP_SITES); michael@0: michael@0: // Edge case. michael@0: mAboutHome.swipeToPanelOnLeft(); michael@0: mAboutHome.assertCurrentPanel(PanelType.TOP_SITES); michael@0: } michael@0: michael@0: private void helperTestPhone() { michael@0: // Edge case. michael@0: mAboutHome.swipeToPanelOnRight(); michael@0: mAboutHome.assertCurrentPanel(PanelType.READING_LIST); michael@0: michael@0: mAboutHome.swipeToPanelOnLeft(); michael@0: mAboutHome.assertCurrentPanel(PanelType.BOOKMARKS); michael@0: michael@0: mAboutHome.swipeToPanelOnLeft(); michael@0: mAboutHome.assertCurrentPanel(PanelType.TOP_SITES); michael@0: michael@0: mAboutHome.swipeToPanelOnLeft(); michael@0: mAboutHome.assertCurrentPanel(PanelType.HISTORY); michael@0: michael@0: // Edge case. michael@0: mAboutHome.swipeToPanelOnLeft(); michael@0: mAboutHome.assertCurrentPanel(PanelType.HISTORY); michael@0: michael@0: mAboutHome.swipeToPanelOnRight(); michael@0: mAboutHome.assertCurrentPanel(PanelType.TOP_SITES); michael@0: } michael@0: michael@0: // TODO: bug 943706 - reimplement this old test code. michael@0: /* michael@0: // Removed by Bug 896576 - [fig] Remove [getAllPagesList] from BaseTest michael@0: // ListView list = getAllPagesList("about:firefox"); michael@0: michael@0: // Test normal sliding of the list left and right michael@0: ViewPager pager = (ViewPager)mSolo.getView(ViewPager.class, 0); michael@0: mAsserter.is(pager.getCurrentItem(), 0, "All pages is selected"); michael@0: michael@0: int width = mDriver.getGeckoWidth() / 2; michael@0: int y = mDriver.getGeckoHeight() / 2; michael@0: mActions.drag(width, 0, y, y); michael@0: mAsserter.is(pager.getCurrentItem(), 1, "Bookmarks page is selected"); michael@0: michael@0: mActions.drag(0, width, y, y); michael@0: mAsserter.is(pager.getCurrentItem(), 0, "All pages is selected"); michael@0: michael@0: // Test tapping on the tab strip changes tabs michael@0: TabWidget tabwidget = (TabWidget)mSolo.getView(TabWidget.class, 0); michael@0: mSolo.clickOnView(tabwidget.getChildAt(1)); michael@0: mAsserter.is(pager.getCurrentItem(), 1, "Clicking on tab selected bookmarks page"); michael@0: michael@0: // Test typing in the awesomebar changes tabs and prevents panning michael@0: mSolo.typeText(0, "woot"); michael@0: mAsserter.is(pager.getCurrentItem(), 0, "Searching switched to all pages tab"); michael@0: mSolo.scrollToSide(Solo.LEFT); michael@0: mAsserter.is(pager.getCurrentItem(), 0, "Dragging left is not allowed when searching"); michael@0: michael@0: mSolo.scrollToSide(Solo.RIGHT); michael@0: mAsserter.is(pager.getCurrentItem(), 0, "Dragging right is not allowed when searching"); michael@0: michael@0: mActions.sendSpecialKey(Actions.SpecialKey.BACK); michael@0: */ michael@0: }