1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
# Copyright 2013 Canonical
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 3, as published
# by the Free Software Foundation.
"""Calendar app autopilot emulators."""
from autopilot.introspection import dbus
from ubuntuuitoolkit import emulators as toolkit_emulators
class MainView(toolkit_emulators.MainView):
"""
An emulator class that makes it easy to interact with the calendar-app.
"""
def get_event_view(self):
return self.wait_select_single("EventView")
def get_month_view(self):
return self.wait_select_single("MonthView")
def get_year_view(self):
return self.wait_select_single("YearView")
def get_day_view(self):
return self.wait_select_single("DayView")
def get_week_view(self):
return self.wait_select_single("WeekView")
def get_label_with_text(self, text, root=None):
if root is None:
root = self
labels = root.select_many("Label", text=text)
if (len(labels) > 0):
return labels[0]
else:
return None
def get_new_event(self):
try:
return self.wait_select_single("NewEvent")
except dbus.StateNotFoundError:
return None
def get_new_event_name_input_box(self):
new_event = self.get_new_event()
return new_event.wait_select_single("NewEventEntryField",
objectName="newEventName")
def get_event_start_time_field(self):
new_event = self.get_new_event()
return new_event.wait_select_single("NewEventEntryField",
objectName="startTimeInput")
def get_event_end_time_field(self):
new_event = self.get_new_event()
return new_event.wait_select_single("NewEventEntryField",
objectName="endTimeInput")
def get_event_location_field(self):
new_event = self.get_new_event()
return new_event.wait_select_single("NewEventEntryField",
objectName="eventLocationInput")
def get_event_people_field(self):
new_event = self.get_new_event()
return new_event.wait_select_single("NewEventEntryField",
objectName="eventPeopleInput")
def get_time_picker(self):
try:
return self.wait_select_single("TimePicker")
except dbus.StateNotFoundError:
return None
def swipe_view(self, direction, view, x_pad=0.15):
"""Swipe the given view to left or right.
Args:
direction: if 1 it swipes from right to left, if -1 from
left right.
"""
start = ((-direction * x_pad) % 1) / 1.5
stop = (direction * x_pad) % 1 / 1.5
y_line = view.globalRect[1] + view.globalRect[3] / 2
x_start = view.globalRect[0] + view.globalRect[2] * start
x_stop = view.globalRect[0] + view.globalRect[2] * stop
self.pointing_device.drag(x_start, y_line, x_stop, y_line)
def get_year(self, component):
return int(component.wait_select_single(
"Label", objectName="yearLabel").text)
def get_month_name(self, component):
return component.wait_select_single(
"Label", objectName="monthLabel").text
|