Merge lp:~rockstar/launchpad/fix-code-js-tests into lp:launchpad

Proposed by Paul Hummer
Status: Merged
Approved by: Curtis Hovey
Approved revision: no longer in the source branch.
Merged at revision: not available
Proposed branch: lp:~rockstar/launchpad/fix-code-js-tests
Merge into: lp:launchpad
Diff against target: 269 lines
3 files modified
lib/lp/code/windmill/test_branch_sparks.py (+0/-29)
lib/lp/code/windmill/tests/test_branch_subscriptions.py (+77/-61)
lib/lp/code/windmill/tests/test_code_review.py (+40/-27)
To merge this branch: bzr merge lp:~rockstar/launchpad/fix-code-js-tests
Reviewer Review Type Date Requested Status
Curtis Hovey (community) code Approve
Review via email: mp+13156@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Paul Hummer (rockstar) wrote :

Hi Curtis-

  This branch fixes all the code windmill tests so that 'make jscheck' works. It's just some small tweaks. This branch is based on a branch that barry has already reviewed which makes the Code windmill tests use CodeWindmillLayer

  There is no lint.

Cheers,
Paul

Revision history for this message
Curtis Hovey (sinzui) wrote :

Thanks for making this test less brittle

review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== removed file 'lib/lp/code/windmill/test_branch_sparks.py'
2--- lib/lp/code/windmill/test_branch_sparks.py 2009-08-13 15:12:16 +0000
3+++ lib/lp/code/windmill/test_branch_sparks.py 1970-01-01 00:00:00 +0000
4@@ -1,29 +0,0 @@
5-# Copyright 2009 Canonical Ltd. All rights reserved.
6-
7-"""Test for branch spark lines."""
8-
9-__metaclass__ = type
10-__all__ = []
11-
12-import windmill
13-from windmill.authoring import WindmillTestClient
14-
15-from canonical.launchpad.windmill.testing import lpuser
16-
17-
18-def test_branch_sparks_var():
19- """Test branch bug links."""
20- client = WindmillTestClient("Branch bug links")
21-
22- client.open(
23- url=windmill.settings['TEST_URL'] + '/~mark/')
24- client.waits.forPageLoad(timeout=u'10000')
25- client.asserts.assertJS(js=u'''(function() {
26- return branch_sparks.length == 5;
27- }());''')
28- client.asserts.assertJS(js=u'''(function() {
29- var first_branch_spark = branch_sparks[0];
30- return (first_branch_spark[0] == 'b-1' &&
31- first_branch_spark[1] == '%s/~mark/+junk/testdoc/+spark')
32- }());''' % (windmill.settings['TEST_URL']))
33-
34
35=== renamed file 'lib/lp/code/windmill/test_branch_subscriptions.py' => 'lib/lp/code/windmill/tests/test_branch_subscriptions.py'
36--- lib/lp/code/windmill/test_branch_subscriptions.py 2009-08-13 15:12:16 +0000
37+++ lib/lp/code/windmill/tests/test_branch_subscriptions.py 2009-10-09 23:40:30 +0000
38@@ -6,74 +6,90 @@
39 __metaclass__ = type
40 __all__ = []
41
42+import unittest
43+
44 import windmill
45 from windmill.authoring import WindmillTestClient
46
47 from canonical.launchpad.windmill.testing import lpuser
48+from lp.code.windmill.testing import CodeWindmillLayer
49+from lp.testing import TestCaseWithFactory
50+
51
52
53 # XXX: rockstar - Also needs testing : Admins can edit/delete, members of the
54 # team can edit/delete. At least the latter will require the Launchpad object
55 # factory.
56
57-def test_branch_subscription_ajax_load():
58- """Test branch subscriptions loaded via ajax."""
59- client = WindmillTestClient("Branch Subscription Ajax Load Test")
60-
61- lpuser.FOO_BAR.ensure_login(client)
62-
63- client.open(
64- url=windmill.settings['TEST_URL'] + '/~mark/firefox/release--0.9.1')
65- client.waits.forElement(id=u'none-subscribers', timeout=u'10000')
66- client.asserts.assertText(id=u'selfsubscription',
67- validator='Subscribe yourself')
68- client.asserts.assertText(id=u'none-subscribers',
69- validator=u'No subscribers.')
70-
71- client.click(id=u'selfsubscription')
72- client.waits.forElement(id=u'yui-pretty-overlay-modal')
73- client.click(xpath=u'//button[@name="field.actions.change"]')
74-
75- client.waits.forElement(id=u'editsubscription-icon-name16',
76- timeout=u'10000')
77- client.asserts.assertText(id=u'subscriber-name16',
78- validator=u'Foo Bar')
79- client.asserts.assertText(id=u'selfsubscription',
80- validator=u'Edit your subscription')
81-
82-
83- # And now to unsubscribe
84- client.click(id=u'editsubscription-icon-name16')
85-
86- client.waits.forPageLoad(timeout=u'100000')
87- client.click(id=u'field.actions.unsubscribe')
88-
89- client.waits.forElement(id=u'none-subscribers', timeout=u'10000')
90- client.asserts.assertText(id=u'selfsubscription',
91- validator='Subscribe yourself')
92- client.asserts.assertText(id=u'none-subscribers',
93- validator=u'No subscribers.')
94-
95-
96-def test_team_edit_subscription_ajax_load():
97- """Test that team subscriptions are editable through the ajax portlet."""
98- client = WindmillTestClient("Branch Subscription Ajax Load Test")
99-
100- lpuser.SAMPLE_PERSON.ensure_login(client)
101-
102- client.open(
103- url=windmill.settings['TEST_URL'] + '/~name12/landscape/feature-x/')
104- client.waits.forPageLoad(timeout=u'10000')
105-
106- client.waits.forElement(id=u'editsubscription-icon-landscape-developers',
107- timeout=u'10000')
108- client.asserts.assertText(id=u'subscriber-landscape-developers',
109- validator=u'Landscape Developers')
110- client.click(id=u'editsubscription-icon-landscape-developers')
111-
112- client.waits.forPageLoad(timeout=u'100000')
113- client.click(id=u'field.actions.unsubscribe')
114-
115- client.waits.forElement(id=u'none-subscribers', timeout=u'10000')
116- client.asserts.assertText(id=u'none-subscribers',
117- validator=u'No subscribers.')
118+class TestBranchSubscriptions(TestCaseWithFactory):
119+ """Test subscriptions to branches."""
120+
121+ layer = CodeWindmillLayer
122+
123+ def test_branch_subscription_ajax_load(self):
124+ """Test branch subscriptions loaded via ajax.
125+ """
126+
127+ client = WindmillTestClient("Branch Subscription Ajax Load Test")
128+
129+ lpuser.FOO_BAR.ensure_login(client)
130+
131+ client.open(url=(
132+ windmill.settings['TEST_URL'] + '/~mark/firefox/release--0.9.1'))
133+ client.waits.forElement(id=u'none-subscribers', timeout=u'10000')
134+ client.asserts.assertText(xpath=u'//a[@id="selfsubscription"]',
135+ validator='Subscribe yourself')
136+ client.asserts.assertText(id=u'none-subscribers',
137+ validator=u'No subscribers.')
138+
139+ client.click(id=u'selfsubscription')
140+ client.waits.forElement(id=u'yui-pretty-overlay-modal')
141+ client.click(xpath=u'//button[@name="field.actions.change"]')
142+
143+ client.waits.forElement(id=u'editsubscription-icon-name16',
144+ timeout=u'10000')
145+ client.asserts.assertText(id=u'subscriber-name16',
146+ validator=u'Foo Bar')
147+
148+ # And now to unsubscribe
149+ client.click(id=u'editsubscription-icon-name16')
150+
151+ client.waits.forPageLoad(timeout=u'100000')
152+ client.click(id=u'field.actions.unsubscribe')
153+
154+ client.waits.forElement(id=u'none-subscribers', timeout=u'10000')
155+ client.asserts.assertText(xpath=u'//a[@id="selfsubscription"]',
156+ validator='Subscribe yourself')
157+ client.asserts.assertText(id=u'none-subscribers',
158+ validator=u'No subscribers.')
159+
160+ def test_team_edit_subscription_ajax_load(self):
161+ """Test that team subscriptions are editable through the ajax portlet.
162+ """
163+
164+ client = WindmillTestClient("Branch Subscription Ajax Load Test")
165+
166+ lpuser.SAMPLE_PERSON.ensure_login(client)
167+
168+ client.open(url=''.join([
169+ windmill.settings['TEST_URL'],
170+ '/~name12/landscape/feature-x/']))
171+ client.waits.forPageLoad(timeout=u'10000')
172+
173+ client.waits.forElement(
174+ id=u'editsubscription-icon-landscape-developers',
175+ timeout=u'10000')
176+ client.asserts.assertText(id=u'subscriber-landscape-developers',
177+ validator=u'Landscape Developers')
178+ client.click(id=u'editsubscription-icon-landscape-developers')
179+
180+ client.waits.forPageLoad(timeout=u'100000')
181+ client.click(id=u'field.actions.unsubscribe')
182+
183+ client.waits.forElement(id=u'none-subscribers', timeout=u'10000')
184+ client.asserts.assertText(id=u'none-subscribers',
185+ validator=u'No subscribers.')
186+
187+
188+def test_suite():
189+ return unittest.TestLoader().loadTestsFromName(__name__)
190
191=== renamed file 'lib/lp/code/windmill/test_code_review.py' => 'lib/lp/code/windmill/tests/test_code_review.py'
192--- lib/lp/code/windmill/test_code_review.py 2009-08-31 09:50:17 +0000
193+++ lib/lp/code/windmill/tests/test_code_review.py 2009-10-09 23:40:30 +0000
194@@ -5,35 +5,48 @@
195 __metaclass__ = type
196 __all__ = []
197
198+import unittest
199+
200 import windmill
201 from windmill.authoring import WindmillTestClient
202
203 from canonical.launchpad.windmill.testing import lpuser
204 from canonical.launchpad.windmill.testing.widgets import (
205- search_picker_widget)
206-
207-
208-MERGE_LINK = '%s/~name12/gnome-terminal/klingon/+register-merge' % (
209- windmill.settings['TEST_URL'])
210-
211-def test_inline_request_a_reviewer():
212- """Test inline request a reviewer."""
213- client = WindmillTestClient("Code review")
214-
215- lpuser.FOO_BAR.ensure_login(client)
216-
217- client.open(
218- url=windmill.settings['TEST_URL'] + '/~name12/gnome-terminal/klingon/')
219- client.waits.forPageLoad(timeout=u'10000')
220-
221- client.click(xpath=u'//a[@href="%s"]' % MERGE_LINK)
222- client.type(text=u'~name12/gnome-terminal/main',
223- id=u'field.target_branch.target_branch')
224- client.click(id=u'field.actions.register')
225-
226- client.waits.forPageLoad(timeout=u'10000')
227- client.click(id=u'request-review')
228-
229- search_picker_widget(client, u'mark', 1)
230-
231- client.waits.forElement(id=u'review-mark', timeout=u'10000')
232+ search_and_select_picker_widget)
233+from lp.code.windmill.testing import CodeWindmillLayer
234+from lp.testing import TestCaseWithFactory
235+
236+
237+class TestCodeReview(TestCaseWithFactory):
238+ """Test the javascript functions of code review."""
239+
240+ layer = CodeWindmillLayer
241+
242+ def test_inline_request_a_reviewer(self):
243+ """Test inline request a reviewer."""
244+
245+ client = WindmillTestClient("Code review")
246+
247+ lpuser.FOO_BAR.ensure_login(client)
248+
249+ client.open(url=''.join([
250+ windmill.settings['TEST_URL'],
251+ '/~name12/gnome-terminal/klingon/']))
252+ client.waits.forPageLoad(timeout=u'10000')
253+
254+ link = u'//a[@class="menu-link-register_merge sprite merge-proposal"]'
255+ client.click(xpath=link)
256+ client.type(text=u'~name12/gnome-terminal/main',
257+ id=u'field.target_branch.target_branch')
258+ client.click(id=u'field.actions.register')
259+
260+ client.waits.forPageLoad(timeout=u'10000')
261+ client.click(id=u'request-review')
262+
263+ search_and_select_picker_widget(client, u'mark', 1)
264+
265+ client.waits.forElement(id=u'review-mark', timeout=u'10000')
266+
267+
268+def test_suite():
269+ return unittest.TestLoader().loadTestsFromName(__name__)