Skip to content
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.

Bug 1090092 - Add test for activating 4 column layout on homescreen #25604

Merged
merged 1 commit into from
Oct 29, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 4 additions & 0 deletions tests/python/gaia-ui-tests/gaiatest/apps/homescreen/app.py
Expand Up @@ -131,6 +131,10 @@ def bookmark(self, bookmark_title):
if root_el.text == bookmark_title:
return self.InstalledApp(self.marionette, root_el)

@property
def number_of_columns(self):
return int(self.marionette.find_element(*self._landing_page_locator).get_attribute('cols'))

class InstalledApp(PageRegion):

_delete_app_locator = (By.CSS_SELECTOR, 'span.remove')
Expand Down
6 changes: 6 additions & 0 deletions tests/python/gaia-ui-tests/gaiatest/apps/settings/app.py
Expand Up @@ -39,6 +39,7 @@ class Settings(Base):
_device_info_menu_item_locator = (By.ID, 'menuItem-deviceInfo')
_battery_menu_item_locator = (By.CSS_SELECTOR, '.menuItem-battery')
_sim_manager_menu_item_locator = (By.ID, 'menuItem-simManager')
_homescreen_menu_item_locator = (By.ID, 'menuItem-homescreen')

def launch(self):
Base.launch(self)
Expand Down Expand Up @@ -181,6 +182,11 @@ def open_sim_manager_settings(self):
self._tap_menu_item(self._sim_manager_menu_item_locator)
return SimManager(self.marionette)

def open_homescreen_settings(self):
from gaiatest.apps.settings.regions.homescreen_settings import HomescreenSettings
self._tap_menu_item(self._homescreen_menu_item_locator)
return HomescreenSettings(self.marionette)

def _wait_for_menu_item(self, menu_item_locator):
menu_item = self.marionette.find_element(*menu_item_locator)

Expand Down
@@ -0,0 +1,16 @@
# 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/.

from marionette.by import By
from gaiatest.apps.base import Base


class HomescreenSettings(Base):

_icon_layout_locator = (By.CSS_SELECTOR, '#homescreen div.icon-dialog')

def select_icon_layout(self, value):
self.wait_for_element_displayed(*self._icon_layout_locator)
self.marionette.find_element(*self._icon_layout_locator).tap()
self.select(value)
Expand Up @@ -4,6 +4,8 @@ external = false
online = true
smoketest = false

[test_homescreen_column_layout.py]

[test_homescreen_delete_app.py]
smoketest = true

Expand Down
@@ -0,0 +1,41 @@
# 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/.

from gaiatest import GaiaTestCase
from gaiatest.apps.homescreen.app import Homescreen
from gaiatest.apps.settings.app import Settings


class TestHomescreenLayout(GaiaTestCase):

def setUp(self):
GaiaTestCase.setUp(self)

self.homescreen = Homescreen(self.marionette)
self.apps.switch_to_displayed_app()

def test_homescreen_column_layout(self):
"""
https://moztrap.mozilla.org/manage/case/13710/
"""

self.homescreen.wait_for_number_of_apps(1)
self.assertEqual(3, self.homescreen.number_of_columns)

settings = Settings(self.marionette)
settings.launch()

homescreen_settings = settings.open_homescreen_settings()
homescreen_settings.select_icon_layout('Four Columns')
self.device.touch_home_button()

self.assertEqual(4, self.homescreen.number_of_columns)

settings.launch()
# No need to open homescreen setting again
# because it remembers where it left off
homescreen_settings.select_icon_layout('Four Columns')
self.device.touch_home_button()

self.assertEqual(4, self.homescreen.number_of_columns)