Merge lp:~carla-sella/ubuntu-rssreader-app/fix-remove-topic into lp:~ubuntu-shorts-dev/ubuntu-rssreader-app/trunk

Proposed by Carla Sella
Status: Merged
Approved by: Joey Chan
Approved revision: 89
Merged at revision: 90
Proposed branch: lp:~carla-sella/ubuntu-rssreader-app/fix-remove-topic
Merge into: lp:~ubuntu-shorts-dev/ubuntu-rssreader-app/trunk
Diff against target: 206 lines (+67/-26)
3 files modified
rssreader-app.qml (+1/-0)
tests/autopilot/ubuntu_rssreader_app/emulators.py (+31/-9)
tests/autopilot/ubuntu_rssreader_app/tests/test_rssreader.py (+35/-17)
To merge this branch: bzr merge lp:~carla-sella/ubuntu-rssreader-app/fix-remove-topic
Reviewer Review Type Date Requested Status
Ubuntu Phone Apps Jenkins Bot continuous-integration Approve
Ubuntu Shorts Developers Pending
Review via email: mp+188928@code.launchpad.net

Commit message

Autopilot add and remove topic and feed for ubuntu-rssreader-app

Description of the change

Fixed remove topic part of the test_add_remove_feed_and_topic test.
This is still WIP as I have a timing issue to fix at the end of a test, just put a sleep for debugging.

To post a comment you must log in.
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'rssreader-app.qml'
2--- rssreader-app.qml 2013-10-02 03:42:50 +0000
3+++ rssreader-app.qml 2013-10-03 19:49:16 +0000
4@@ -302,6 +302,7 @@
5 title: i18n.tr("Checking for new articles")
6
7 ActivityIndicator {
8+ objectName: "activityindicator"
9 running: true
10 }
11
12
13=== modified file 'tests/autopilot/ubuntu_rssreader_app/emulators.py'
14--- tests/autopilot/ubuntu_rssreader_app/emulators.py 2013-09-11 15:18:51 +0000
15+++ tests/autopilot/ubuntu_rssreader_app/emulators.py 2013-10-03 19:49:16 +0000
16@@ -15,9 +15,12 @@
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
18
19 from ubuntuuitoolkit import emulators as toolkit_emulators
20+from time import sleep
21
22 class MainView(toolkit_emulators.MainView):
23
24+ retry_delay = 0.2
25+
26 #ideally this should be converted to the sdk and use object name not text names
27 #see https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1205144
28 def run_action(self, popover, name):
29@@ -28,38 +31,50 @@
30 requested = action
31 self.pointing_device.click_object(requested)
32
33+ def select_single_retry(self, object_type, **kwargs):
34+ """Returns the item that is searched for with app.select_single
35+ In case of the item was not found (not created yet) a second attempt is
36+ taken 1 second later."""
37+ item = self.select_single(object_type, **kwargs)
38+ tries = 10
39+ while item is None and tries > 0:
40+ sleep(self.retry_delay)
41+ item = self.select_single(object_type, **kwargs)
42+ tries = tries - 1
43+ return item
44+
45 def get_action_popover(self):
46 # Returns all instances, but with current one as first index
47 return self.select_many("ActionSelectionPopover")[0]
48
49 def get_network_activity(self):
50- return self.select_single("ActivityIndicator", running = "True")
51+ return self.select_single("ActivityIndicator", running="True")
52
53 #### choose topics page objects
54
55 def get_choose_topics_items(self):
56- return self.select_many("Standard", objectName = "topicItem")
57+ return self.select_many("Standard", objectName="topicItem")
58
59 def get_new_topic_input_box(self):
60- return self.select_single("TextField", objectName = "newTopic")
61+ return self.select_single("TextField", objectName="newTopic")
62
63 #### append feed page objects
64 def get_append_feed_input_box(self):
65- return self.select_single("TextField", objectName = "tfFeedUrl")
66+ return self.select_single("TextField", objectName="tfFeedUrl")
67
68 def get_append_page_feed(self):
69 #grab just the first checkbox
70- return self.select_many("CheckBox", objectName = "feedCheckbox")[0]
71+ return self.select_many("CheckBox", objectName="feedCheckbox")[0]
72
73 def get_next_button(self):
74- return self.select_single("Button", objectName = "nextButton")
75+ return self.select_single("Button", objectName="nextButton")
76
77 #### feed list page objects
78 def get_feedlist_topic(self, name):
79- return self.select_single("TopicComponent", topicName = name)
80+ return self.select_single_retry("TopicComponent", topicName=name)
81
82 def get_feedlist_feed(self, feed):
83- return self.select_single("FeedComponent", text = feed)
84+ return self.select_single("FeedComponent", text=feed)
85
86 def get_add_a_topic(self):
87 return self.select_single("QQuickItem", objectName = "addTopic")
88@@ -84,7 +99,7 @@
89 return self.select_single("ArticleListPage", objectName = "articlelistpage")
90
91 def get_feed_management_page(self):
92- return self.select_single("TopicManagement", objectName = "topicmanagement")
93+ return self.select_single_retry("TopicManagement", objectName = "topicmanagement")
94
95 def get_edit_feed_page(self):
96 return self.select_single("EditFeed", objectName = "editfeedpage")
97@@ -122,3 +137,10 @@
98
99 def get_refresh_dialog_cancel_button(self):
100 return self.select_single("Button", objectName = "refreshCancel")
101+
102+ def get_toolbar_back_button(self):
103+ return self.select_single("ActionItem", text = "Back")
104+
105+ def get_activityIndicator(self):
106+ return self.select_single_retry(
107+ "ActivityIndicator", objectName="activityindicator")
108
109=== modified file 'tests/autopilot/ubuntu_rssreader_app/tests/test_rssreader.py'
110--- tests/autopilot/ubuntu_rssreader_app/tests/test_rssreader.py 2013-10-01 20:46:41 +0000
111+++ tests/autopilot/ubuntu_rssreader_app/tests/test_rssreader.py 2013-10-03 19:49:16 +0000
112@@ -32,13 +32,17 @@
113 self.assertThat(self.main_view.visible, Eventually(Equals(True)))
114
115 #wait for any updates to finish before beginning tests
116- self.assertThat(self.main_view.get_network_activity, Eventually(Not(Is(None))))
117+ try:
118+ self.main_view.get_activityIndicator().running.wait_for(False)
119+ except:
120+ self.assertThat(
121+ self.main_view.get_topics_page, Eventually(NotEquals(None)))
122
123 def _add_feed_and_topic(self, feed, topicName):
124 """test add feed and topic"""
125 logger.debug("starting test add feed and topic")
126
127- self.assertThat(self.main_view.get_topics_page(), NotEquals(None))
128+ self.assertThat(self.main_view.get_topics_page, Eventually(NotEquals(None)))
129
130 #open toolbar
131 logger.debug("opening toolbar")
132@@ -181,10 +185,22 @@
133 #this been quasi converted to the sdk, but does not work as-is
134 #see https://bugs.launchpad.net/ubuntu-rssreader-app/+bug/1211631
135
136+ self.assertThat(self.main_view.get_topics_page, Eventually(NotEquals(None)))
137+
138 #open toolbar
139 toolbar = self.main_view.open_toolbar()
140+ self.assertThat(self.main_view.open_toolbar, Eventually(NotEquals(None)))
141
142 #click on back toolbar Button
143+ backButton = self.main_view.get_toolbar_back_button()
144+ self.pointing_device.click_object(backButton)
145+ self.assertThat(self.main_view.get_topics_page, Eventually(NotEquals(None)))
146+
147+ #open toolbar
148+ toolbar = self.main_view.open_toolbar()
149+ self.assertThat(self.main_view.open_toolbar, Eventually(NotEquals(None)))
150+
151+ #click on edit topics button
152 toolbar.click_button("edittopicsbutton")
153
154 #verify we are on the Management page
155@@ -194,26 +210,28 @@
156 #select topic
157 topic = self._get_topic(topicName)
158
159- topicsPage = self.main_view.get_manage_topics_page()
160- self.assertThat(topicsPage, Eventually(Not(Is(None))))
161-
162- addATopicItem = lambda: self.main_view.get_add_a_topic()
163- self.assertThat(addATopic, Eventually(Not(Is(None))))
164-
165- #swipe to delete topic
166- #we have to consider the top tab offset, then create a swipe operation across the width of the page
167- startX = int(topicsPage.x + topicsPage.width * 0.20)
168- stopX = int(topicsPage.x + topicsPage.width * 0.80)
169- tabHeightOffset = qmlView.height - topicsPage.height + addATopicItem.height
170- lineY = int(qmlView.y + topic.y + tabHeightOffset)
171+ #topicsPage = self.main_view.get_manage_topics_page()
172+ #self.assertThat(self.main_view.get_manage_topics_page, Eventually(NotEquals(None)))
173+ topicmanagementpage = self.main_view.get_feed_management_page()
174+ self.assertThat(self.main_view.get_feed_management_page, Eventually(NotEquals(None)))
175+
176+ #swipe to delete canonical topic
177+ startX = int(topicmanagementpage.x + topicmanagementpage.width * 0.30)
178+ stopX = int(topicmanagementpage.x + topicmanagementpage.width)
179+ lineY = topic.globalRect[1]
180
181 #swipe to remove the topic
182 self.pointing_device.move(startX, lineY)
183+ self.pointing_device.click()
184 self.pointing_device.drag(startX, lineY, stopX, lineY)
185
186+ #verify we are on the Management page *** for timing issues ***
187+ feedmanagementpage = self.main_view.get_feed_management_page()
188+ self.assertThat(feedmanagementpage, NotEquals(None))
189+
190 #check that it is gone
191- topic = lambda: self.main_view.get_feedlist_topic(topicName)
192- self.assertThat(topic.visible, Eventually(Equals(False)))
193+ topic = self.main_view.get_feedlist_topic(topicName)
194+ self.assertThat(topic, NotEquals(topicName))
195
196 def _input_new_feed(self, rssFeed):
197 inputField = self.main_view.get_append_feed_input_box()
198@@ -268,7 +286,7 @@
199 self._remove_feed(feedName, topicName)
200
201 #remove added topic
202- #self._remove_topic(topicName)
203+ self._remove_topic(topicName)
204
205
206 @unittest.skip("Topic page broken, see https://bugs.launchpad.net/ubuntu-rssreader-app/+bug/1206248")

Subscribers

People subscribed via source and target branches