Source code for gaiatest.apps.clock.app

# 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_driver import expected, By, Wait

from gaiatest.apps.base import Base


[docs]class Clock(Base): name = 'Clock' _visible_clock_locator = (By.CSS_SELECTOR, '#clock-view .visible') _clock_views = {"stopwatch": "stopwatch-tab", "alarm": "alarm-tab", "timer": "timer-tab"}
[docs] def launch(self): Base.launch(self) Wait(self.marionette).until(expected.element_displayed( Wait(self.marionette).until(expected.element_present( *self._visible_clock_locator))))
[docs] def switch_view(self, view_name): Wait(self.marionette).until( expected.element_present(*(By.ID, self._clock_views.get(view_name)))).tap() if view_name == 'stopwatch': from gaiatest.apps.clock.regions.stopwatch import StopWatch return StopWatch(self.marionette) elif view_name == 'timer': from gaiatest.apps.clock.regions.timer import Timer return Timer(self.marionette) elif view_name == 'alarm': from gaiatest.apps.clock.regions.alarm import Alarm return Alarm(self.marionette) else: raise AttributeError('{} is not a view that you can switch to'.format(view_name))