ubuntu-touch-coreapps-reviewers team mailing list archive
-
ubuntu-touch-coreapps-reviewers team
-
Mailing list archive
-
Message #01597
[Merge] lp:~carla-sella/ubuntu-calendar-app/calendar-management-tests into lp:ubuntu-calendar-app
Carla Sella has proposed merging lp:~carla-sella/ubuntu-calendar-app/calendar-management-tests into lp:ubuntu-calendar-app.
Commit message:
New Calendar App management tests.
Requested reviews:
Nicholas Skaggs (nskaggs)
Related bugs:
Bug #1300354 in Ubuntu Calendar App: "Autopilot Testcase Needed: calendar management"
https://bugs.launchpad.net/ubuntu-calendar-app/+bug/1300354
For more details, see:
https://code.launchpad.net/~carla-sella/ubuntu-calendar-app/calendar-management-tests/+merge/256202
New Calendar App management tests.
--
Your team Ubuntu Calendar Developers is subscribed to branch lp:ubuntu-calendar-app.
=== modified file 'CalendarChoicePopup.qml'
--- CalendarChoicePopup.qml 2014-11-08 11:26:37 +0000
+++ CalendarChoicePopup.qml 2015-04-14 19:53:55 +0000
@@ -24,7 +24,7 @@
Page {
id: root
-
+ objectName: "calendarchoicepopup"
property var model;
signal collectionUpdated();
@@ -67,6 +67,7 @@
width: aadCalendar.width
Button {
id:aadCalendar
+ objectName: "aadCalendar"
text: i18n.tr("Add new Calendar")
anchors.top :parent.top
anchors.topMargin:units.gu(2)
@@ -80,9 +81,11 @@
model : root.model.getCollections();
delegate: ListItem.Standard {
id: delegateComp
+ objectName: "calendarItem"
Rectangle {
id: calendarColorCode
+ objectName: "calendarColorCode"
width: parent.height - units.gu(2)
height: width
@@ -111,6 +114,7 @@
}
Label{
+ objectName: "calendarName"
text: modelData.name
elide: Text.ElideRight
opacity: checkBox.checked ? 1.0 : 0.8
@@ -125,6 +129,7 @@
control: CheckBox {
id: checkBox
+ objectName: "checkBox"
checked: modelData.extendedMetaData("collection-selected")
enabled: !root.isInEditMode
onCheckedChanged: {
=== modified file 'ColorPickerDialog.qml'
--- ColorPickerDialog.qml 2014-09-19 08:46:30 +0000
+++ ColorPickerDialog.qml 2015-04-14 19:53:55 +0000
@@ -21,6 +21,7 @@
Dialog {
id: root
+ objectName: "colorPickerDialog"
title: i18n.tr("Select Color")
signal accepted(var color)
signal rejected()
@@ -34,6 +35,7 @@
Repeater{
model: ["#2C001E","#333333","#DD4814","#DF382C","#EFB73E","#19B6EE","#38B44A","#001F5C"];
delegate:Rectangle{
+ objectName: "color" + index
width: parent.width/5
height: width
color: modelData
=== modified file 'EventActions.qml'
--- EventActions.qml 2015-03-20 14:25:01 +0000
+++ EventActions.qml 2015-04-14 19:53:55 +0000
@@ -55,6 +55,7 @@
Action{
id: _showCalendarAction
+ objectName: "calendarsbutton"
iconName: "calendar"
text: i18n.tr("Calendars")
onTriggered: {
=== modified file 'tests/autopilot/calendar_app/__init__.py'
--- tests/autopilot/calendar_app/__init__.py 2015-04-10 19:33:42 +0000
+++ tests/autopilot/calendar_app/__init__.py 2015-04-14 19:53:55 +0000
@@ -142,6 +142,18 @@
header.click_action_button('neweventbutton')
return self.wait_select_single(NewEvent, objectName='newEventPage')
+ @autopilot.logging.log_action(logger.info)
+ def go_to_calendar_choice_popup(self):
+ """Open the calendar chioce popup.
+
+ :return: CalendaChoicePopup.
+
+ """
+ header = self.get_header()
+ header.click_action_button('calendarsbutton')
+ return self.wait_select_single(
+ CalendarChoicePopup, objectName="calendarchoicepopup")
+
def set_picker(self, field, mode, value):
# open picker
self.pointing_device.click_object(field)
@@ -285,6 +297,11 @@
header = self.get_header()
header.click_action_button('todaybutton')
+ @autopilot.logging.log_action(logger.info)
+ def get_ColorPickerDialog(self):
+ return self.wait_select_single(
+ "ColorPickerDialog", objectName="colorPickerDialog")
+
class YearView(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase):
@@ -1003,3 +1020,56 @@
delete_button = self.select_single(
'Button', objectName='deleteEventButton')
self.pointing_device.click_object(delete_button)
+
+
+class CalendarChoicePopup(
+ ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase):
+
+ """Autopilot helper for the Calendar Choice Popup."""
+
+ @autopilot.logging.log_action(logger.debug)
+ def press_check_box_button(self, calendarName):
+ """ press check box button to select or unselect it """
+ calendar = self._get_calendar(calendarName)
+ check_box = calendar.wait_select_single(
+ "CheckBox", objectName="checkBox")
+ self.pointing_device.click_object(check_box)
+
+ def _get_calendar(self, calendarName):
+ calendarItems = self.select_many("Standard", objectName="calendarItem")
+ for item in calendarItems:
+ if item.select_single(
+ "Label", objectName="calendarName").text == calendarName:
+ return item
+
+ @autopilot.logging.log_action(logger.debug)
+ def get_checkbox_status(self, calendarName):
+ """ press check box button to select or unselect it """
+ calendar = self._get_calendar(calendarName)
+ return calendar.wait_select_single(
+ "CheckBox", objectName="checkBox").checked
+
+ @autopilot.logging.log_action(logger.debug)
+ def get_calendar_color(self, calendarName):
+ """ get calendar color """
+ calendar = self._get_calendar(calendarName)
+ return calendar.select_single(
+ "QQuickRectangle", objectName="calendarColorCode").color
+
+ @autopilot.logging.log_action(logger.debug)
+ def open_color_picker_dialog(self, calendarName):
+ """ press color rectangle to open calendar color picker"""
+ calendar = self._get_calendar(calendarName)
+ color_rectangle = calendar.wait_select_single(
+ "QQuickRectangle", objectName="calendarColorCode")
+ self.pointing_device.click_object(color_rectangle)
+
+
+class ColorPickerDialog(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase):
+ """Autopilot helper for the Color Picker Dialog."""
+
+ @autopilot.logging.log_action(logger.debug)
+ def change_calendar_color(self, new_color):
+ new_color_circle = self.wait_select_single(
+ "QQuickRectangle", objectName=new_color)
+ self.pointing_device.click_object(new_color_circle)
=== added file 'tests/autopilot/calendar_app/tests/test_management.py'
--- tests/autopilot/calendar_app/tests/test_management.py 1970-01-01 00:00:00 +0000
+++ tests/autopilot/calendar_app/tests/test_management.py 2015-04-14 19:53:55 +0000
@@ -0,0 +1,58 @@
+# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
+#
+# Copyright (C) 2013, 2014 Canonical Ltd
+#
+# 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.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+"""
+Calendar app autopilot tests calendar management.
+"""
+
+
+from testtools.matchers import NotEquals
+
+from calendar_app.tests import CalendarAppTestCase
+
+
+class TestManagement(CalendarAppTestCase):
+
+ def test_change_calendar_color(self):
+ """ Test changing calendar color """
+ calendar_choice_popup = \
+ self.app.main_view.go_to_calendar_choice_popup()
+ calendarName = "Personal"
+ original_calendar_color = \
+ calendar_choice_popup.get_calendar_color(calendarName)
+ calendar_choice_popup.open_color_picker_dialog(calendarName)
+ colorPickerDialog = self.app.main_view.get_ColorPickerDialog()
+ colorPickerDialog.change_calendar_color("color6")
+
+ final_calendar_color = \
+ calendar_choice_popup.get_calendar_color(calendarName)
+
+ self.assertThat(
+ original_calendar_color, NotEquals(final_calendar_color))
+
+ def test_unselect_calendar(self):
+ """ Test unselecting calendar """
+ calendar_choice_popup = \
+ self.app.main_view.go_to_calendar_choice_popup()
+ calendarName = "Personal"
+ original_checbox_status = \
+ calendar_choice_popup.get_checkbox_status(calendarName)
+ calendar_choice_popup.press_check_box_button(calendarName)
+
+ self.assertThat(
+ original_checbox_status,
+ NotEquals(
+ calendar_choice_popup.press_check_box_button(calendarName)))
Follow ups