Merge lp:~intellectronica/launchpad/fix-test-bug-tags-entry into lp:launchpad

Proposed by Eleanor Berger
Status: Merged
Merged at revision: not available
Proposed branch: lp:~intellectronica/launchpad/fix-test-bug-tags-entry
Merge into: lp:launchpad
Diff against target: 166 lines
2 files modified
lib/lp/bugs/windmill/tests/test_bug_tags_entry.py (+77/-0)
lib/lp/bugs/windmill/tests/test_bugs/test_bug_tags_entry.py (+0/-80)
To merge this branch: bzr merge lp:~intellectronica/launchpad/fix-test-bug-tags-entry
Reviewer Review Type Date Requested Status
Paul Hummer (community) code Approve
Review via email: mp+13678@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Eleanor Berger (intellectronica) wrote :

This fixes bug #456315 by converting the test to the newer windmill infrastructure and converting the setup code to use the LaunchpadObjectFactory.

Revision history for this message
Paul Hummer (rockstar) :
review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'lib/lp/bugs/windmill/tests/test_bug_tags_entry.py'
2--- lib/lp/bugs/windmill/tests/test_bug_tags_entry.py 1970-01-01 00:00:00 +0000
3+++ lib/lp/bugs/windmill/tests/test_bug_tags_entry.py 2009-10-20 22:40:26 +0000
4@@ -0,0 +1,77 @@
5+# Copyright 2009 Canonical Ltd. This software is licensed under the
6+# GNU Affero General Public License version 3 (see the file LICENSE).
7+
8+"""Test for the bug tag entry UI."""
9+
10+__metaclass__ = type
11+__all__ = []
12+
13+import transaction
14+import unittest
15+
16+from windmill.authoring import WindmillTestClient
17+
18+from canonical.launchpad.webapp import canonical_url
19+from canonical.launchpad.windmill.testing import lpuser
20+from lp.bugs.windmill.testing import BugsWindmillLayer
21+from lp.testing import TestCaseWithFactory
22+
23+from zope.security.proxy import removeSecurityProxy
24+
25+class TestBugTagsEntry(TestCaseWithFactory):
26+
27+ layer = BugsWindmillLayer
28+
29+ def test_bug_tags_entry(self):
30+ """Test bug tags inline, auto-completing UI."""
31+ client = WindmillTestClient('Bug tags entry test')
32+
33+ # First, we add some official tags to test with
34+
35+ product = self.factory.makeProduct()
36+ removeSecurityProxy(product).official_bug_tags = [
37+ u'eenie', u'meenie', u'meinie', u'moe']
38+ bug = self.factory.makeBug(product=product)
39+ removeSecurityProxy(bug).tags = ['unofficial-tag']
40+ # XXX Make the testing canonical_url available as a global utility
41+ bug_url = canonical_url(bug).replace(
42+ 'https', 'http').replace('.dev/', '.dev:8085/')
43+ transaction.commit()
44+
45+ lpuser.FOO_BAR.ensure_login(client)
46+
47+ # Now let's tag a bug using the auto-complete widget
48+
49+ client.open(url=bug_url)
50+ client.waits.forPageLoad(timeout=u'300000')
51+ client.waits.sleep(milliseconds=u'8000')
52+
53+ # XXX intellectronica 2009-05-26:
54+ # We (almost) consistently get an error on the following line
55+ # where instead of trigerring the onclick event handler we navigate
56+ # to the link's URL.
57+
58+ client.click(id=u'edit-tags-trigger')
59+ client.waits.forElement(id=u'tag-input', timeout=u'8000')
60+ client.type(text=u'ee', id=u'tag-input')
61+ client.waits.sleep(milliseconds=u'1000')
62+ client.asserts.assertNode(classname=u'yui-autocomplete-list')
63+ client.click(id=u'item0')
64+ client.click(id=u'edit-tags-ok')
65+ client.waits.sleep(milliseconds=u'8000')
66+ client.asserts.assertText(id=u'tag-list', validator=u'eenie')
67+
68+ # Test that anonymous users are prompted to log in.
69+
70+ lpuser.ANONYMOUS.ensure_login(client)
71+ client.open(url=bug_url)
72+ client.waits.forPageLoad(timeout=u'50000')
73+ client.waits.sleep(milliseconds=u'8000')
74+ client.click(id=u'edit-tags-trigger')
75+ client.waits.forPageLoad(timeout=u'50000')
76+ client.asserts.assertJS(
77+ js=u'window.location.href.indexOf("+login") > 0')
78+
79+
80+def test_suite():
81+ return unittest.TestLoader().loadTestsFromName(__name__)
82
83=== removed file 'lib/lp/bugs/windmill/tests/test_bugs/test_bug_tags_entry.py'
84--- lib/lp/bugs/windmill/tests/test_bugs/test_bug_tags_entry.py 2009-06-25 00:40:31 +0000
85+++ lib/lp/bugs/windmill/tests/test_bugs/test_bug_tags_entry.py 1970-01-01 00:00:00 +0000
86@@ -1,80 +0,0 @@
87-# Copyright 2009 Canonical Ltd. This software is licensed under the
88-# GNU Affero General Public License version 3 (see the file LICENSE).
89-
90-"""Test for the bug tag entry UI."""
91-
92-__metaclass__ = type
93-__all__ = []
94-
95-from windmill.authoring import WindmillTestClient
96-
97-from canonical.launchpad.windmill.testing import lpuser
98-
99-def test_bug_tags_entry():
100- """Test bug tags inline, auto-completing UI."""
101- client = WindmillTestClient('Bug tags entry test')
102-
103- # First, we add some official tags to test with
104-
105- lpuser.FOO_BAR.ensure_login(client)
106-
107- client.open(url='http://bugs.launchpad.dev:8085/firefox')
108- client.waits.forPageLoad(timeout=u'100000')
109- client.waits.sleep(milliseconds=u'8000')
110-
111- client.click(link=u'Edit official tags')
112- client.waits.forPageLoad(timeout=u'100000')
113- client.waits.sleep(milliseconds=u'8000')
114-
115- client.type(text=u'eenie', id=u'new-tag-text')
116- client.click(id=u'new-tag-add')
117- client.type(text=u'meenie', id=u'new-tag-text')
118- client.click(id=u'new-tag-add')
119- client.type(text=u'meinie', id=u'new-tag-text')
120- client.click(id=u'new-tag-add')
121- client.type(text=u'moe', id=u'new-tag-text')
122- client.click(id=u'new-tag-add')
123- # if the tags already exist the save button might be disabled.
124- # make sure it's enabled so that we can complete the test.
125- client.asserts.assertJS(js=u"""(function(){
126- document.getElementById('save-button').disabled = false;
127- return true;
128- }());
129- """)
130- client.click(id=u'save-button')
131- client.waits.forPageLoad(timeout=u'100000')
132- client.asserts.assertJS(
133- js=u'window.location == "http://bugs.launchpad.dev:8085/firefox"')
134-
135- # Now let's tag a bug using the auto-complete widget
136-
137- client.open(url='http://bugs.launchpad.dev:8085/firefox/+bug/5')
138- client.waits.forPageLoad(timeout=u'300000')
139- client.waits.sleep(milliseconds=u'8000')
140-
141- # XXX intellectronica 2009-05-26:
142- # We (almost) consistently get an error on the following line
143- # where instead of trigerring the onclick event handler we navigate
144- # to the link's URL.
145-
146- client.click(id=u'edit-tags-trigger')
147- client.waits.forElement(id=u'tag-input', timeout=u'8000')
148- client.type(text=u'ee', id=u'tag-input')
149- client.waits.sleep(milliseconds=u'1000')
150- client.asserts.assertNode(classname=u'yui-autocomplete-list')
151- client.click(id=u'item0')
152- client.click(id=u'edit-tags-ok')
153- client.waits.sleep(milliseconds=u'8000')
154- client.asserts.assertText(id=u'tag-list', validator=u'eenie')
155-
156- # Test that anonymous users are prompted to log in.
157-
158- lpuser.ANONYMOUS.ensure_login(client)
159- client.open(url='http://bugs.launchpad.dev:8085/firefox/+bug/5')
160- client.waits.forPageLoad(timeout=u'50000')
161- client.waits.sleep(milliseconds=u'8000')
162- client.click(id=u'edit-tags-trigger')
163- client.waits.forPageLoad(timeout=u'50000')
164- client.asserts.assertJS(
165- js=u'window.location == "http://bugs.launchpad.dev:8085/firefox/+bug/5/+edit/+login"')
166-