Merge lp:~nataliabidart/canonical-identity-provider/more-qa-anchors-for-sso into lp:canonical-identity-provider/release
- more-qa-anchors-for-sso
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Leo Arias |
Approved revision: | no longer in the source branch. |
Merged at revision: | 927 |
Proposed branch: | lp:~nataliabidart/canonical-identity-provider/more-qa-anchors-for-sso |
Merge into: | lp:canonical-identity-provider/release |
Diff against target: |
2031 lines (+354/-260) 87 files modified
acceptance/actions/subheader.py (+11/-5) acceptance/helpers.py (+20/-0) acceptance/pages.py (+35/-29) acceptance/tests/applications/create_multiple_apps.py (+6/-3) acceptance/tests/applications/delete_app.py (+9/-5) acceptance/tests/devices/__init__.py (+3/-1) acceptance/tests/devices/testcases/test_device_login.py (+2/-2) acceptance/tests/logout/logout_deep_pages.py (+1/-5) acceptance/tests/logout/logout_ubuntu.py (+5/-10) acceptance/tests/new_account/passwords_bad_client-side.csv (+1/-1) acceptance/tests/new_account/passwords_bad_client-side.py (+7/-8) acceptance/tests/new_account/passwords_bad_client-side_ubuntuone.csv (+0/-6) acceptance/tests/new_account/passwords_bad_client-side_ubuntuone.py (+0/-38) acceptance/tests/new_account/passwords_bad_server-side.csv (+1/-1) acceptance/tests/new_account/passwords_bad_server-side.py (+5/-11) acceptance/tests/root/links.py (+3/-5) requirements/testing.txt (+1/-1) scripts/acceptance-dev.sh (+6/-1) scripts/run-acceptance-tests (+3/-0) src/identityprovider/media/ubuntu/styles.css (+2/-1) src/identityprovider/templates/server/decide.html (+6/-2) src/identityprovider/templatetags/menu_item.py (+3/-2) src/identityprovider/tests/test_views_server.py (+3/-1) src/webui/templates/account/applications.html (+2/-3) src/webui/templates/account/confirm_email_invalidation.html (+3/-1) src/webui/templates/account/confirm_new_email.html (+2/-2) src/webui/templates/account/delete_email.html (+4/-2) src/webui/templates/account/edit.html (+3/-1) src/webui/templates/account/emails.html (+7/-3) src/webui/templates/account/new_email.html (+3/-1) src/webui/templates/device/addition-generic.html (+3/-2) src/webui/templates/device/generate-codes.html (+3/-2) src/webui/templates/device/list.html (+1/-1) src/webui/templates/device/print-codes.html (+4/-2) src/webui/templates/device/removal.html (+2/-1) src/webui/templates/device/rename.html (+1/-1) src/webui/templates/device/types.html (+2/-1) src/webui/templates/enter_token.html (+3/-3) src/webui/templates/launchpad/base.html (+2/-8) src/webui/templates/launchpad/registration/confirm_new_account.html (+6/-2) src/webui/templates/launchpad/registration/email_sent.html (+3/-1) src/webui/templates/launchpad/registration/forgot_password.html (+5/-1) src/webui/templates/launchpad/registration/login.html (+3/-1) src/webui/templates/launchpad/registration/logout.html (+2/-0) src/webui/templates/launchpad/registration/new_account.html (+5/-1) src/webui/templates/launchpad/registration/reset_password.html (+3/-1) src/webui/templates/launchpad/registration/twofactor.html (+5/-1) src/webui/templates/menu_item.html (+9/-3) src/webui/templates/select_language.html (+1/-0) src/webui/templates/ubuntu/base.html (+2/-2) src/webui/templates/ubuntu/registration/confirm_new_account.html (+3/-1) src/webui/templates/ubuntu/registration/email_sent.html (+1/-1) src/webui/templates/ubuntu/registration/forgot_password.html (+3/-2) src/webui/templates/ubuntu/registration/login.html (+3/-1) src/webui/templates/ubuntu/registration/new_account.html (+3/-2) src/webui/templates/ubuntu/registration/reset_password.html (+1/-2) src/webui/templates/ubuntu/registration/twofactor.html (+3/-1) src/webui/templates/ubuntuone/account/applications.html (+2/-4) src/webui/templates/ubuntuone/account/confirm_new_email.html (+2/-2) src/webui/templates/ubuntuone/account/delete_email.html (+3/-1) src/webui/templates/ubuntuone/account/edit.html (+3/-1) src/webui/templates/ubuntuone/account/emails.html (+7/-3) src/webui/templates/ubuntuone/account/new_email.html (+3/-1) src/webui/templates/ubuntuone/base.html (+1/-1) src/webui/templates/ubuntuone/device/list.html (+5/-3) src/webui/templates/ubuntuone/device/print-codes.html (+7/-5) src/webui/templates/ubuntuone/device/rename.html (+4/-2) src/webui/templates/ubuntuone/device/types.html (+1/-1) src/webui/templates/ubuntuone/enter_token.html (+1/-1) src/webui/templates/ubuntuone/registration/_create_account_form.html (+3/-2) src/webui/templates/ubuntuone/registration/_login_form.html (+3/-1) src/webui/templates/ubuntuone/registration/confirm_new_account.html (+3/-1) src/webui/templates/ubuntuone/registration/email_sent.html (+1/-1) src/webui/templates/ubuntuone/registration/forgot_password.html (+3/-2) src/webui/templates/ubuntuone/registration/reset_password.html (+2/-3) src/webui/templates/ubuntuone/registration/twofactor.html (+5/-1) src/webui/templates/ubuntuone/select_language.html (+3/-1) src/webui/templates/ubuntuone/server/decide.html (+12/-9) src/webui/templates/widgets/launchpad/login-button.html (+12/-0) src/webui/templates/widgets/launchpad/logout-button.html (+8/-5) src/webui/templates/widgets/passwords.html (+1/-1) src/webui/templates/widgets/ubuntu/login-button.html (+4/-4) src/webui/templates/widgets/ubuntu/logout-button.html (+2/-2) src/webui/templates/widgets/ubuntuone/header-me-menu.html (+9/-3) src/webui/templates/widgets/ubuntuone/personal-menu.html (+1/-1) src/webui/views/account.py (+3/-2) src/webui/views/ui.py (+1/-1) |
To merge this branch: | bzr merge lp:~nataliabidart/canonical-identity-provider/more-qa-anchors-for-sso |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Leo Arias (community) | Approve | ||
Review via email: mp+169038@code.launchpad.net |
Commit message
- Adding lots of data-qa-id attrs to several HTML elements for ubuntu, launchpad and ubuntuone templates.
- Bumped revno of u1testutils to 80.
- Unified login/logout template rendering mechanism between ubuntu and launchpad.
Description of the change
Leo Arias (elopio) wrote : | # |
Natalia Bidart (nataliabidart) wrote : | # |
> You have done a huge amount of work. Thank you very much!
> I like the data-qa-ids you are using, as they make more readable the tests
> helpers. Thanks for that too.
:-)
> 286 +for i, token in enumerate((TOKEN_1, TOKEN_2, TOKEN_3)):
> 287 + assert_
>
> Here, I suppose we are not checking the first application because it's the one
> added when creating the account. A comment about this will be nice to make it
> easier to understand the test in the case of a failure.
Yes, comment added.
> 333 + if device_names is None:
> 334 + device_names = ['2F Required Generic Device']
>
> Can you please explain this change to me? I thought having a default value for
> devices names would make it faster to understand. It's not a complaint, I'm
> just wondering if this is the style we should follow.
Followed up in the irc channel, but basically we need to avoid having mutable objects as default value for parameters.
> 402 +if helpers.
> 403 + click_button(
> 404 +else:
> 405 + click_link(
>
> Maybe this can be changed to click_element(
> the if. From the user point of view, I think it's not important if it's a link
> or a button. With CSS we make some buttons look like links and also the other
> way around.
Done!
> 473 +# wait for animation
> 474 +sleep(0.5)
>
> I don't like this. Maybe we can wait for the element to be visible, or do some
> other trick. I'm now used with fighting animations, so feel free to open a bug
> and assign it to me with low priority. I'll take a look when I'm bored waiting
> for runs.
Done, LP: #1190411.
> 540 \ No newline at end of file
>
> A newline here would be nice.
Is added now (the "No newline at end of file" refers to the old version of the file).
> 731 + self.assertEqua
>
> Here it would be nice if you comment why the content has to be stripped.
Added!
> 844 + <a href=".
> id="remove_
> 845 + <span>{% trans "Delete" %}</span>
> 846 + </a>
>
> Shouldn't this be indented one more level, because it's inside the if?
It is already indented... perhaps am I missing something?
Thanks for all the time you out on this!
Preview Diff
1 | === modified file 'acceptance/actions/subheader.py' | |||
2 | --- acceptance/actions/subheader.py 2013-05-13 07:41:43 +0000 | |||
3 | +++ acceptance/actions/subheader.py 2013-06-13 00:15:30 +0000 | |||
4 | @@ -2,27 +2,33 @@ | |||
5 | 2 | 2 | ||
6 | 3 | 3 | ||
7 | 4 | def _assert_full_name_in_account_link(full_name): | 4 | def _assert_full_name_in_account_link(full_name): |
9 | 5 | sst.actions.assert_text(_get_my_account_link(), full_name[:40]) | 5 | sst.actions.assert_text(_get_my_account_section(), full_name[:40]) |
10 | 6 | |||
11 | 7 | |||
12 | 8 | def _get_my_account_section(): | ||
13 | 9 | return sst.actions.get_element_by_css( | ||
14 | 10 | '*[data-qa-id="account"] *[data-qa-id="user_name"]') | ||
15 | 6 | 11 | ||
16 | 7 | 12 | ||
17 | 8 | def _get_my_account_link(): | 13 | def _get_my_account_link(): |
19 | 9 | return sst.actions.get_element(id='account') | 14 | return sst.actions.get_element_by_css('*[data-qa-id="account_link"]') |
20 | 10 | 15 | ||
21 | 11 | 16 | ||
22 | 12 | def _get_devices_link(): | 17 | def _get_devices_link(): |
24 | 13 | return sst.actions.get_element(id='devices-link') | 18 | return sst.actions.get_element_by_css('*[data-qa-id="devices_link"]') |
25 | 14 | 19 | ||
26 | 15 | 20 | ||
27 | 16 | def _get_applications_link(): | 21 | def _get_applications_link(): |
29 | 17 | return sst.actions.get_element(id='applications-link') | 22 | return sst.actions.get_element_by_css('*[data-qa-id="applications_link"]') |
30 | 18 | 23 | ||
31 | 19 | 24 | ||
32 | 20 | def _get_log_out_link(): | 25 | def _get_log_out_link(): |
34 | 21 | return sst.actions.get_element(id='logout-link') | 26 | return sst.actions.get_element_by_css('*[data-qa-id="logout_link"]') |
35 | 22 | 27 | ||
36 | 23 | 28 | ||
37 | 24 | def assert_log_in(full_name): | 29 | def assert_log_in(full_name): |
38 | 25 | _assert_full_name_in_account_link(full_name) | 30 | _assert_full_name_in_account_link(full_name) |
39 | 31 | _get_my_account_link() | ||
40 | 26 | _get_log_out_link() | 32 | _get_log_out_link() |
41 | 27 | 33 | ||
42 | 28 | 34 | ||
43 | 29 | 35 | ||
44 | === modified file 'acceptance/helpers.py' | |||
45 | --- acceptance/helpers.py 2013-05-17 20:45:52 +0000 | |||
46 | +++ acceptance/helpers.py 2013-06-13 00:15:30 +0000 | |||
47 | @@ -328,3 +328,23 @@ | |||
48 | 328 | 328 | ||
49 | 329 | link = match.groups()[0] | 329 | link = match.groups()[0] |
50 | 330 | return link | 330 | return link |
51 | 331 | |||
52 | 332 | |||
53 | 333 | # this is a temporarly helper so we can detect brands at UI rendering time | ||
54 | 334 | # since we can not access flags properly from within the acceptance run | ||
55 | 335 | def get_current_brand(): | ||
56 | 336 | try: | ||
57 | 337 | get_element_by_css('*[data-qa-id="brand_ubuntuone"]') | ||
58 | 338 | except: | ||
59 | 339 | pass | ||
60 | 340 | else: | ||
61 | 341 | return 'ubuntuone' | ||
62 | 342 | |||
63 | 343 | try: | ||
64 | 344 | get_element_by_css('*[data-qa-id="brand_launchpad"]') | ||
65 | 345 | except: | ||
66 | 346 | pass | ||
67 | 347 | else: | ||
68 | 348 | return 'launchpad' | ||
69 | 349 | |||
70 | 350 | return 'ubuntu' | ||
71 | 331 | 351 | ||
72 | === modified file 'acceptance/pages.py' | |||
73 | --- acceptance/pages.py 2013-06-08 06:26:43 +0000 | |||
74 | +++ acceptance/pages.py 2013-06-13 00:15:30 +0000 | |||
75 | @@ -20,18 +20,14 @@ | |||
76 | 20 | self.menu = Menu() | 20 | self.menu = Menu() |
77 | 21 | 21 | ||
78 | 22 | def get_user_name(self): | 22 | def get_user_name(self): |
86 | 23 | try: | 23 | user_name_element = sst.actions.get_element_by_css( |
87 | 24 | # This is present on the ubuntuone and launchpad templates. | 24 | '*[data-qa-id="user_name"]') |
81 | 25 | user_name_element = sst.actions.get_element_by_css( | ||
82 | 26 | '*[data-qa-id="user_name"]') | ||
83 | 27 | except AssertionError: | ||
84 | 28 | # This is present on the ubuntu template. | ||
85 | 29 | user_name_element = sst.actions.get_element(id='account') | ||
88 | 30 | return user_name_element.text | 25 | return user_name_element.text |
89 | 31 | 26 | ||
90 | 32 | @log_action(logging.info) | 27 | @log_action(logging.info) |
91 | 33 | def log_out(self): | 28 | def log_out(self): |
93 | 34 | sst.actions.click_link('logout-link') | 29 | link = sst.actions.get_element_by_css('*[data-qa-id="logout_link"]') |
94 | 30 | sst.actions.click_link(link) | ||
95 | 35 | return YouHaveBeenLoggedOut() | 31 | return YouHaveBeenLoggedOut() |
96 | 36 | 32 | ||
97 | 37 | 33 | ||
98 | @@ -40,12 +36,14 @@ | |||
99 | 40 | 36 | ||
100 | 41 | @log_action(logging.info) | 37 | @log_action(logging.info) |
101 | 42 | def go_to_authentication_devices(self): | 38 | def go_to_authentication_devices(self): |
103 | 43 | sst.actions.click_link('devices-link') | 39 | link = sst.actions.get_element_by_css('*[data-qa-id="devices_link"]') |
104 | 40 | sst.actions.click_link(link) | ||
105 | 44 | return YourAuthenticationDevices() | 41 | return YourAuthenticationDevices() |
106 | 45 | 42 | ||
107 | 46 | @log_action(logging.info) | 43 | @log_action(logging.info) |
108 | 47 | def go_to_your_account(self): | 44 | def go_to_your_account(self): |
110 | 48 | sst.actions.click_link('account-link') | 45 | link = sst.actions.get_element_by_css('*[data-qa-id="account_link"]') |
111 | 46 | sst.actions.click_link(link) | ||
112 | 49 | return YourAccount() | 47 | return YourAccount() |
113 | 50 | 48 | ||
114 | 51 | 49 | ||
115 | @@ -144,7 +142,8 @@ | |||
116 | 144 | 142 | ||
117 | 145 | @log_action(logging.info) | 143 | @log_action(logging.info) |
118 | 146 | def click_log_in_or_create_account(self): | 144 | def click_log_in_or_create_account(self): |
120 | 147 | sst.actions.click_link('login-link') | 145 | link = sst.actions.get_element_by_css('*[data-qa-id="login_link"]') |
121 | 146 | sst.actions.click_link(link) | ||
122 | 148 | return LogIn() | 147 | return LogIn() |
123 | 149 | 148 | ||
124 | 150 | 149 | ||
125 | @@ -186,7 +185,8 @@ | |||
126 | 186 | @log_action(logging.info) | 185 | @log_action(logging.info) |
127 | 187 | def add_email(self, email_address): | 186 | def add_email(self, email_address): |
128 | 188 | sst.actions.write_textfield('id_newemail', email_address) | 187 | sst.actions.write_textfield('id_newemail', email_address) |
130 | 189 | sst.actions.click_button(sst.actions.get_element(name='continue')) | 188 | sst.actions.click_button( |
131 | 189 | sst.actions.get_element_by_css('*[data-qa-id="add_new_email"]')) | ||
132 | 190 | 190 | ||
133 | 191 | @log_action(logging.info) | 191 | @log_action(logging.info) |
134 | 192 | def delete_email(self): | 192 | def delete_email(self): |
135 | @@ -212,7 +212,8 @@ | |||
136 | 212 | sst.actions.write_textfield('id_email', email_address) | 212 | sst.actions.write_textfield('id_email', email_address) |
137 | 213 | 213 | ||
138 | 214 | def _continue(self): | 214 | def _continue(self): |
140 | 215 | sst.actions.click_button(sst.actions.get_element(name='continue')) | 215 | sst.actions.click_button(sst.actions.get_element_by_css( |
141 | 216 | '*[data-qa-id="confirm_enter_token"]')) | ||
142 | 216 | 217 | ||
143 | 217 | @log_action(logging.info) | 218 | @log_action(logging.info) |
144 | 218 | def confirm_with_error(self, confirmation_code, email_address): | 219 | def confirm_with_error(self, confirmation_code, email_address): |
145 | @@ -223,12 +224,13 @@ | |||
146 | 223 | 224 | ||
147 | 224 | class DeleteEmail(LoggedUserPage): | 225 | class DeleteEmail(LoggedUserPage): |
148 | 225 | 226 | ||
149 | 227 | url_path = '/+remove-email' | ||
150 | 226 | qa_anchor = 'delete_email' | 228 | qa_anchor = 'delete_email' |
151 | 227 | url_path = '/+remove-email' | ||
152 | 228 | 229 | ||
153 | 229 | @log_action(logging.info) | 230 | @log_action(logging.info) |
154 | 230 | def confirm(self): | 231 | def confirm(self): |
156 | 231 | confirm_button = sst.actions.get_element(name='delete') | 232 | confirm_button = sst.actions.get_element_by_css( |
157 | 233 | '*[data-qa-id="confirm_delete_email"]') | ||
158 | 232 | sst.actions.click_button(confirm_button) | 234 | sst.actions.click_button(confirm_button) |
159 | 233 | return YourEmailAddresses() | 235 | return YourEmailAddresses() |
160 | 234 | 236 | ||
161 | @@ -244,7 +246,8 @@ | |||
162 | 244 | # Even though the recaptcha field is ignored for our tests, we do | 246 | # Even though the recaptcha field is ignored for our tests, we do |
163 | 245 | # want to verify that it is on the page. | 247 | # want to verify that it is on the page. |
164 | 246 | sst.actions.write_textfield('recaptcha_response_field', 'ignored') | 248 | sst.actions.write_textfield('recaptcha_response_field', 'ignored') |
166 | 247 | sst.actions.click_button(sst.actions.get_element(name='continue')) | 249 | sst.actions.click_button(sst.actions.get_element_by_css( |
167 | 250 | '*[data-qa-id="send_password_reset_token"]')) | ||
168 | 248 | 251 | ||
169 | 249 | 252 | ||
170 | 250 | class LogInFromRedirect(u1testutils.sso.sst.pages.LogIn): | 253 | class LogInFromRedirect(u1testutils.sso.sst.pages.LogIn): |
171 | @@ -279,17 +282,17 @@ | |||
172 | 279 | return AddNewAuthenticationDevice() | 282 | return AddNewAuthenticationDevice() |
173 | 280 | 283 | ||
174 | 281 | @log_action(logging.info) | 284 | @log_action(logging.info) |
176 | 282 | def delete_authentication_device(self, index=0): | 285 | def delete_authentication_device(self, device_index=0): |
177 | 283 | delete_link = sst.actions.get_elements_by_css( | 286 | delete_link = sst.actions.get_elements_by_css( |
178 | 284 | '*[data-qa-id="delete_device"]') | 287 | '*[data-qa-id="delete_device"]') |
180 | 285 | sst.actions.click_link(delete_link[index]) | 288 | sst.actions.click_link(delete_link[device_index]) |
181 | 286 | return DeleteAuthenticationDevice() | 289 | return DeleteAuthenticationDevice() |
182 | 287 | 290 | ||
183 | 288 | @log_action(logging.info) | 291 | @log_action(logging.info) |
185 | 289 | def rename_authentication_device(self, index=0): | 292 | def rename_authentication_device(self, device_index=0): |
186 | 290 | rename_link = sst.actions.get_elements_by_css( | 293 | rename_link = sst.actions.get_elements_by_css( |
187 | 291 | '*[data-qa-id="rename_device"]') | 294 | '*[data-qa-id="rename_device"]') |
189 | 292 | sst.actions.click_link(rename_link[index]) | 295 | sst.actions.click_link(rename_link[device_index]) |
190 | 293 | return RenameAuthenticationDevice() | 296 | return RenameAuthenticationDevice() |
191 | 294 | 297 | ||
192 | 295 | def is_warning_displayed(self): | 298 | def is_warning_displayed(self): |
193 | @@ -369,7 +372,8 @@ | |||
194 | 369 | 372 | ||
195 | 370 | @log_action(logging.info) | 373 | @log_action(logging.info) |
196 | 371 | def cancel(self): | 374 | def cancel(self): |
198 | 372 | cancel_link = sst.actions.get_element_by_css('*[data-qa-id="cancel"]') | 375 | cancel_link = sst.actions.get_element_by_css( |
199 | 376 | '*[data-qa-id="cancel_add_device_from_type"]') | ||
200 | 373 | sst.actions.click_link(cancel_link) | 377 | sst.actions.click_link(cancel_link) |
201 | 374 | return YourAuthenticationDevices() | 378 | return YourAuthenticationDevices() |
202 | 375 | 379 | ||
203 | @@ -411,8 +415,8 @@ | |||
204 | 411 | 415 | ||
205 | 412 | def _add_device(self, device_radio_identifier): | 416 | def _add_device(self, device_radio_identifier): |
206 | 413 | sst.actions.set_radio_value(device_radio_identifier) | 417 | sst.actions.set_radio_value(device_radio_identifier) |
209 | 414 | add_button = sst.actions.get_element( | 418 | add_button = sst.actions.get_element_by_css( |
210 | 415 | tag='button', text_regex='Add device') | 419 | '*[data-qa-id="add_device_from_type"]') |
211 | 416 | sst.actions.click_button(add_button) | 420 | sst.actions.click_button(add_button) |
212 | 417 | 421 | ||
213 | 418 | 422 | ||
214 | @@ -436,7 +440,7 @@ | |||
215 | 436 | 440 | ||
216 | 437 | def _click_add_device(self): | 441 | def _click_add_device(self): |
217 | 438 | add_button = sst.actions.get_element_by_css( | 442 | add_button = sst.actions.get_element_by_css( |
219 | 439 | '*[data-qa-id="add_generic_device"]') | 443 | '*[data-qa-id="confirm_add_device"]') |
220 | 440 | sst.actions.click_button(add_button) | 444 | sst.actions.click_button(add_button) |
221 | 441 | 445 | ||
222 | 442 | @log_action(logging.info) | 446 | @log_action(logging.info) |
223 | @@ -471,7 +475,8 @@ | |||
224 | 471 | 475 | ||
225 | 472 | @log_action(logging.info) | 476 | @log_action(logging.info) |
226 | 473 | def cancel(self): | 477 | def cancel(self): |
228 | 474 | cancel_link = sst.actions.get_element_by_css('*[data-qa-id="cancel"]') | 478 | cancel_link = sst.actions.get_element_by_css( |
229 | 479 | '*[data-qa-id="cancel_add_device"]') | ||
230 | 475 | sst.actions.click_link(cancel_link) | 480 | sst.actions.click_link(cancel_link) |
231 | 476 | return YourAuthenticationDevices() | 481 | return YourAuthenticationDevices() |
232 | 477 | 482 | ||
233 | @@ -550,12 +555,12 @@ | |||
234 | 550 | # TODO This test is really small and gives no real value to a user, so it's | 555 | # TODO This test is really small and gives no real value to a user, so it's |
235 | 551 | # a perfect candidate to be converted into a django unit test. | 556 | # a perfect candidate to be converted into a django unit test. |
236 | 552 | def assert_print_button_visible(self): | 557 | def assert_print_button_visible(self): |
238 | 553 | sst.actions.assert_element('*[data-qa-id="print_btn"]') | 558 | sst.actions.assert_element('*[data-qa-id="print_codes"]') |
239 | 554 | 559 | ||
240 | 555 | @log_action(logging.info) | 560 | @log_action(logging.info) |
241 | 556 | def go_back_to_device_list(self): | 561 | def go_back_to_device_list(self): |
242 | 557 | device_list_link = sst.actions.get_element_by_css( | 562 | device_list_link = sst.actions.get_element_by_css( |
244 | 558 | '*[data-qa-id="go_back"]') | 563 | '*[data-qa-id="cancel_print_codes"]') |
245 | 559 | sst.actions.click_link(device_list_link) | 564 | sst.actions.click_link(device_list_link) |
246 | 560 | return YourAuthenticationDevices() | 565 | return YourAuthenticationDevices() |
247 | 561 | 566 | ||
248 | @@ -587,13 +592,14 @@ | |||
249 | 587 | @log_action(logging.info) | 592 | @log_action(logging.info) |
250 | 588 | def confirm_new_codes(self): | 593 | def confirm_new_codes(self): |
251 | 589 | confirm_button = sst.actions.get_element_by_css( | 594 | confirm_button = sst.actions.get_element_by_css( |
253 | 590 | '*[data-qa-id="confirm-codes"]') | 595 | '*[data-qa-id="confirm_new_codes"]') |
254 | 591 | sst.actions.click_button(confirm_button) | 596 | sst.actions.click_button(confirm_button) |
255 | 592 | return PaperDevice() | 597 | return PaperDevice() |
256 | 593 | 598 | ||
257 | 594 | @log_action(logging.info) | 599 | @log_action(logging.info) |
258 | 595 | def cancel(self): | 600 | def cancel(self): |
260 | 596 | cancel_link = sst.actions.get_element_by_css('*[data-qa-id="cancel"]') | 601 | cancel_link = sst.actions.get_element_by_css( |
261 | 602 | '*[data-qa-id="cancel_new_codes"]') | ||
262 | 597 | sst.actions.click_link(cancel_link) | 603 | sst.actions.click_link(cancel_link) |
263 | 598 | return PaperDevice() | 604 | return PaperDevice() |
264 | 599 | 605 | ||
265 | 600 | 606 | ||
266 | === modified file 'acceptance/tests/applications/create_multiple_apps.py' | |||
267 | --- acceptance/tests/applications/create_multiple_apps.py 2013-05-02 17:20:14 +0000 | |||
268 | +++ acceptance/tests/applications/create_multiple_apps.py 2013-06-13 00:15:30 +0000 | |||
269 | @@ -9,6 +9,7 @@ | |||
270 | 9 | from sst.actions import ( | 9 | from sst.actions import ( |
271 | 10 | assert_text_contains, | 10 | assert_text_contains, |
272 | 11 | get_base_url, | 11 | get_base_url, |
273 | 12 | get_elements_by_css, | ||
274 | 12 | go_to, | 13 | go_to, |
275 | 13 | ) | 14 | ) |
276 | 14 | from u1testutils.sst import config | 15 | from u1testutils.sst import config |
277 | @@ -49,6 +50,8 @@ | |||
278 | 49 | # Now log in and check that the apps are associated with the account. | 50 | # Now log in and check that the apps are associated with the account. |
279 | 50 | helpers.login(email_address, PASSWORD) | 51 | helpers.login(email_address, PASSWORD) |
280 | 51 | go_to(urls.APPLICATIONS) | 52 | go_to(urls.APPLICATIONS) |
284 | 52 | assert_text_contains('content', 'chupacabra') | 53 | |
285 | 53 | assert_text_contains('content', "leviathan") | 54 | applications = get_elements_by_css('*[data-qa-id="application_token"]') |
286 | 54 | assert_text_contains('content', "behemoth") | 55 | for i, token in enumerate((TOKEN_1, TOKEN_2, TOKEN_3)): |
287 | 56 | # skip the first token which is the "web login" token | ||
288 | 57 | assert_text_contains(applications[i + 1], token) | ||
289 | 55 | 58 | ||
290 | === modified file 'acceptance/tests/applications/delete_app.py' | |||
291 | --- acceptance/tests/applications/delete_app.py 2013-05-16 15:09:51 +0000 | |||
292 | +++ acceptance/tests/applications/delete_app.py 2013-06-13 00:15:30 +0000 | |||
293 | @@ -8,7 +8,7 @@ | |||
294 | 8 | click_button, | 8 | click_button, |
295 | 9 | fails, | 9 | fails, |
296 | 10 | get_base_url, | 10 | get_base_url, |
298 | 11 | get_elements, | 11 | get_elements_by_css, |
299 | 12 | go_to, | 12 | go_to, |
300 | 13 | ) | 13 | ) |
301 | 14 | from u1testutils.sst import config | 14 | from u1testutils.sst import config |
302 | @@ -41,12 +41,16 @@ | |||
303 | 41 | # now test that the app is there and that we can delete it | 41 | # now test that the app is there and that we can delete it |
304 | 42 | helpers.login(email_address, PASSWORD) | 42 | helpers.login(email_address, PASSWORD) |
305 | 43 | go_to(urls.APPLICATIONS) | 43 | go_to(urls.APPLICATIONS) |
308 | 44 | assert_text_contains('content', TOKEN_NAME) | 44 | token_names = get_elements_by_css('*[data-qa-id="application_token"]') |
309 | 45 | delete_buttons = get_elements(css_class='btn-sm', name='Delete') | 45 | assert_text_contains(token_names[-1], TOKEN_NAME) |
310 | 46 | delete_buttons = get_elements_by_css('*[data-qa-id="delete_application"]') | ||
311 | 46 | # delete application token | 47 | # delete application token |
313 | 47 | click_button(delete_buttons[0]) | 48 | click_button(delete_buttons[-1]) |
314 | 48 | # log back in and should have no app | 49 | # log back in and should have no app |
315 | 49 | helpers.logout() | 50 | helpers.logout() |
316 | 50 | helpers.login(email_address, PASSWORD) | 51 | helpers.login(email_address, PASSWORD) |
317 | 52 | |||
318 | 51 | go_to(urls.APPLICATIONS) | 53 | go_to(urls.APPLICATIONS) |
320 | 52 | fails(assert_text_contains, 'content', TOKEN_NAME) | 54 | token_names = get_elements_by_css('*[data-qa-id="application_token"]') |
321 | 55 | for token_name in token_names: | ||
322 | 56 | fails(assert_text_contains, token_name, TOKEN_NAME) | ||
323 | 53 | 57 | ||
324 | === modified file 'acceptance/tests/devices/__init__.py' | |||
325 | --- acceptance/tests/devices/__init__.py 2013-06-07 21:07:00 +0000 | |||
326 | +++ acceptance/tests/devices/__init__.py 2013-06-13 00:15:30 +0000 | |||
327 | @@ -77,8 +77,10 @@ | |||
328 | 77 | 77 | ||
329 | 78 | class TwoFactorPageOpenedWithTwoFactorRequired(fixtures.Fixture): | 78 | class TwoFactorPageOpenedWithTwoFactorRequired(fixtures.Fixture): |
330 | 79 | 79 | ||
332 | 80 | def __init__(self, device_names=['2F Required Generic Device'], user=None): | 80 | def __init__(self, device_names=None, user=None): |
333 | 81 | super(TwoFactorPageOpenedWithTwoFactorRequired, self).__init__() | 81 | super(TwoFactorPageOpenedWithTwoFactorRequired, self).__init__() |
334 | 82 | if device_names is None: | ||
335 | 83 | device_names = ['2F Required Generic Device'] | ||
336 | 82 | self.device_names = device_names | 84 | self.device_names = device_names |
337 | 83 | self.user = user | 85 | self.user = user |
338 | 84 | 86 | ||
339 | 85 | 87 | ||
340 | === removed directory 'acceptance/tests/devices/scripts' | |||
341 | === modified file 'acceptance/tests/devices/testcases/test_device_login.py' | |||
342 | --- acceptance/tests/devices/testcases/test_device_login.py 2013-06-10 18:47:00 +0000 | |||
343 | +++ acceptance/tests/devices/testcases/test_device_login.py 2013-06-13 00:15:30 +0000 | |||
344 | @@ -2,11 +2,11 @@ | |||
345 | 2 | # This software is licensed under the GNU Affero General Public License | 2 | # This software is licensed under the GNU Affero General Public License |
346 | 3 | # version 3 (see the file LICENSE). | 3 | # version 3 (see the file LICENSE). |
347 | 4 | 4 | ||
348 | 5 | import sst.actions | ||
349 | 6 | |||
350 | 5 | from acceptance import base, pages | 7 | from acceptance import base, pages |
351 | 6 | from acceptance.tests import devices | 8 | from acceptance.tests import devices |
352 | 7 | 9 | ||
353 | 8 | import sst.actions | ||
354 | 9 | |||
355 | 10 | 10 | ||
356 | 11 | class TestDeviceLogin(base.SSTTestCaseWithLogIn): | 11 | class TestDeviceLogin(base.SSTTestCaseWithLogIn): |
357 | 12 | 12 | ||
358 | 13 | 13 | ||
359 | === modified file 'acceptance/tests/logout/logout_deep_pages.py' | |||
360 | --- acceptance/tests/logout/logout_deep_pages.py 2013-05-15 11:42:01 +0000 | |||
361 | +++ acceptance/tests/logout/logout_deep_pages.py 2013-06-13 00:15:30 +0000 | |||
362 | @@ -16,8 +16,6 @@ | |||
363 | 16 | click_delete_button, | 16 | click_delete_button, |
364 | 17 | ) | 17 | ) |
365 | 18 | 18 | ||
366 | 19 | from identityprovider.utils import get_current_brand | ||
367 | 20 | |||
368 | 21 | 19 | ||
369 | 22 | config.set_base_url_from_env() | 20 | config.set_base_url_from_env() |
370 | 23 | 21 | ||
371 | @@ -37,9 +35,7 @@ | |||
372 | 37 | # logout by clicking on link | 35 | # logout by clicking on link |
373 | 38 | click_link('logout-link') | 36 | click_link('logout-link') |
374 | 39 | 37 | ||
378 | 40 | # no link present in ubuntuone brand | 38 | assert_element(href="/+login") |
376 | 41 | if get_current_brand() != 'ubuntuone': | ||
377 | 42 | assert_element(href="/+login") | ||
379 | 43 | 39 | ||
380 | 44 | # make sure we're logged out | 40 | # make sure we're logged out |
381 | 45 | go_to(urls.HOME) | 41 | go_to(urls.HOME) |
382 | 46 | 42 | ||
383 | === modified file 'acceptance/tests/logout/logout_ubuntu.py' | |||
384 | --- acceptance/tests/logout/logout_ubuntu.py 2013-06-05 17:09:49 +0000 | |||
385 | +++ acceptance/tests/logout/logout_ubuntu.py 2013-06-13 00:15:30 +0000 | |||
386 | @@ -5,7 +5,7 @@ | |||
387 | 5 | assert_element, | 5 | assert_element, |
388 | 6 | assert_title, | 6 | assert_title, |
389 | 7 | click_button, | 7 | click_button, |
391 | 8 | click_link, | 8 | click_element, |
392 | 9 | get_element_by_css, | 9 | get_element_by_css, |
393 | 10 | go_to, | 10 | go_to, |
394 | 11 | write_textfield, | 11 | write_textfield, |
395 | @@ -14,8 +14,6 @@ | |||
396 | 14 | 14 | ||
397 | 15 | from acceptance import urls | 15 | from acceptance import urls |
398 | 16 | 16 | ||
399 | 17 | from identityprovider.utils import get_current_brand | ||
400 | 18 | |||
401 | 19 | 17 | ||
402 | 20 | # Set to Production, Staging, VPS, Developer etc.. | 18 | # Set to Production, Staging, VPS, Developer etc.. |
403 | 21 | config.set_base_url_from_env() | 19 | config.set_base_url_from_env() |
404 | @@ -27,11 +25,10 @@ | |||
405 | 27 | click_button(get_element_by_css('*[data-qa-id="login_button"]')) | 25 | click_button(get_element_by_css('*[data-qa-id="login_button"]')) |
406 | 28 | 26 | ||
407 | 29 | # logout by clicking on link | 27 | # logout by clicking on link |
409 | 30 | click_link('logout-link') | 28 | logout_element = get_element_by_css('*[data-qa-id="logout_link"]') |
410 | 29 | click_element(logout_element) | ||
411 | 31 | 30 | ||
415 | 32 | # no link present in ubuntuone brand | 31 | assert_element(href="/+login") |
413 | 33 | if get_current_brand() != 'ubuntuone': | ||
414 | 34 | assert_element(href="/+login") | ||
416 | 35 | 32 | ||
417 | 36 | # make sure we're logged out | 33 | # make sure we're logged out |
418 | 37 | go_to(urls.HOME) | 34 | go_to(urls.HOME) |
419 | @@ -45,9 +42,7 @@ | |||
420 | 45 | # logout by hitting url directly | 42 | # logout by hitting url directly |
421 | 46 | go_to(urls.LOGOUT) | 43 | go_to(urls.LOGOUT) |
422 | 47 | 44 | ||
426 | 48 | # no link present in ubuntuone brand | 45 | assert_element(href="/+login") |
424 | 49 | if get_current_brand() != 'ubuntuone': | ||
425 | 50 | assert_element(href="/+login") | ||
427 | 51 | 46 | ||
428 | 52 | # make sure we're logged out | 47 | # make sure we're logged out |
429 | 53 | go_to(urls.HOME) | 48 | go_to(urls.HOME) |
430 | 54 | 49 | ||
431 | === modified file 'acceptance/tests/new_account/passwords_bad_client-side.csv' | |||
432 | --- acceptance/tests/new_account/passwords_bad_client-side.csv 2012-03-06 13:10:19 +0000 | |||
433 | +++ acceptance/tests/new_account/passwords_bad_client-side.csv 2013-06-13 00:15:30 +0000 | |||
434 | @@ -1,6 +1,6 @@ | |||
435 | 1 | password^error | 1 | password^error |
436 | 2 | 'foo'^'Password too short' | 2 | 'foo'^'Password too short' |
437 | 3 | 'foobar123'^'Strength: good' | ||
438 | 4 | 'Foo123'^'Password too short' | 3 | 'Foo123'^'Password too short' |
439 | 5 | ' '^'Password too short' | 4 | ' '^'Password too short' |
440 | 6 | '12345678'^'Strength: fair' | 5 | '12345678'^'Strength: fair' |
441 | 6 | 'aA12_3555aA'^'Strength: strong' | ||
442 | 7 | 7 | ||
443 | === modified file 'acceptance/tests/new_account/passwords_bad_client-side.py' | |||
444 | --- acceptance/tests/new_account/passwords_bad_client-side.py 2013-05-14 13:17:20 +0000 | |||
445 | +++ acceptance/tests/new_account/passwords_bad_client-side.py 2013-06-13 00:15:30 +0000 | |||
446 | @@ -6,20 +6,15 @@ | |||
447 | 6 | assert_text, | 6 | assert_text, |
448 | 7 | assert_title, | 7 | assert_title, |
449 | 8 | assert_url, | 8 | assert_url, |
451 | 9 | get_element, | 9 | get_element_by_css, |
452 | 10 | go_to, | 10 | go_to, |
454 | 11 | skip, | 11 | sleep, |
455 | 12 | write_textfield, | 12 | write_textfield, |
456 | 13 | ) | 13 | ) |
457 | 14 | from u1testutils.sst import config | 14 | from u1testutils.sst import config |
458 | 15 | 15 | ||
459 | 16 | from acceptance import urls | 16 | from acceptance import urls |
460 | 17 | 17 | ||
461 | 18 | from identityprovider.utils import get_current_brand | ||
462 | 19 | |||
463 | 20 | |||
464 | 21 | if get_current_brand() == 'ubuntuone': | ||
465 | 22 | skip('Test not compatible with ubuntuone brand') | ||
466 | 23 | 18 | ||
467 | 24 | config.set_base_url_from_env() | 19 | config.set_base_url_from_env() |
468 | 25 | 20 | ||
469 | @@ -27,7 +22,11 @@ | |||
470 | 27 | assert_url(urls.NEW_ACCOUNT) | 22 | assert_url(urls.NEW_ACCOUNT) |
471 | 28 | assert_title('Create account') | 23 | assert_title('Create account') |
472 | 29 | 24 | ||
474 | 30 | elem = get_element(id='password_strength') | 25 | elem = get_element_by_css('*[data-qa-id="password_strength"]') |
475 | 31 | 26 | ||
476 | 32 | write_textfield('id_password', password) | 27 | write_textfield('id_password', password) |
477 | 28 | |||
478 | 29 | # wait for animation | ||
479 | 30 | sleep(0.5) | ||
480 | 31 | |||
481 | 33 | assert_text(elem, error) | 32 | assert_text(elem, error) |
482 | 34 | 33 | ||
483 | === removed file 'acceptance/tests/new_account/passwords_bad_client-side_ubuntuone.csv' | |||
484 | --- acceptance/tests/new_account/passwords_bad_client-side_ubuntuone.csv 2013-05-10 10:13:09 +0000 | |||
485 | +++ acceptance/tests/new_account/passwords_bad_client-side_ubuntuone.csv 1970-01-01 00:00:00 +0000 | |||
486 | @@ -1,6 +0,0 @@ | |||
487 | 1 | password^error | ||
488 | 2 | 'fooo'^'Password too short' | ||
489 | 3 | 'foobar123'^'Strength: fair' | ||
490 | 4 | 'Foo123'^'Password too short' | ||
491 | 5 | '12345678'^'Strength: weak' | ||
492 | 6 | 'aA12_3555aA'^'Strength: strong' | ||
493 | 7 | 0 | ||
494 | === removed file 'acceptance/tests/new_account/passwords_bad_client-side_ubuntuone.py' | |||
495 | --- acceptance/tests/new_account/passwords_bad_client-side_ubuntuone.py 2013-05-15 09:38:24 +0000 | |||
496 | +++ acceptance/tests/new_account/passwords_bad_client-side_ubuntuone.py 1970-01-01 00:00:00 +0000 | |||
497 | @@ -1,38 +0,0 @@ | |||
498 | 1 | # password tests: client-side validation | ||
499 | 2 | # | ||
500 | 3 | # rules: | ||
501 | 4 | # Password must be at least 8 characters long. | ||
502 | 5 | from sst.actions import ( | ||
503 | 6 | assert_text, | ||
504 | 7 | assert_title, | ||
505 | 8 | assert_url, | ||
506 | 9 | get_element_by_css, | ||
507 | 10 | go_to, | ||
508 | 11 | skip, | ||
509 | 12 | sleep, | ||
510 | 13 | write_textfield, | ||
511 | 14 | ) | ||
512 | 15 | from u1testutils.sst import config | ||
513 | 16 | |||
514 | 17 | from acceptance import urls | ||
515 | 18 | |||
516 | 19 | from identityprovider.utils import get_current_brand | ||
517 | 20 | |||
518 | 21 | |||
519 | 22 | if get_current_brand() != 'ubuntuone': | ||
520 | 23 | skip('Test only compatible with ubuntuone brand') | ||
521 | 24 | |||
522 | 25 | config.set_base_url_from_env() | ||
523 | 26 | |||
524 | 27 | go_to(urls.NEW_ACCOUNT) | ||
525 | 28 | assert_url(urls.NEW_ACCOUNT) | ||
526 | 29 | assert_title('Create account') | ||
527 | 30 | |||
528 | 31 | elem = get_element_by_css('.yui3-passwordmeter-indicatorNode p') | ||
529 | 32 | |||
530 | 33 | write_textfield('id_password', password) | ||
531 | 34 | |||
532 | 35 | # wait for animation | ||
533 | 36 | sleep(1) | ||
534 | 37 | |||
535 | 38 | assert_text(elem, error) | ||
536 | 39 | 0 | ||
537 | === modified file 'acceptance/tests/new_account/passwords_bad_server-side.csv' | |||
538 | --- acceptance/tests/new_account/passwords_bad_server-side.csv 2012-12-18 20:15:44 +0000 | |||
539 | +++ acceptance/tests/new_account/passwords_bad_server-side.csv 2013-06-13 00:15:30 +0000 | |||
540 | @@ -1,4 +1,4 @@ | |||
541 | 1 | password | 1 | password |
542 | 2 | foo | 2 | foo |
543 | 3 | Foo123 | 3 | Foo123 |
544 | 4 | "" | ||
545 | 5 | \ No newline at end of file | 4 | \ No newline at end of file |
546 | 5 | " " | ||
547 | 6 | 6 | ||
548 | === modified file 'acceptance/tests/new_account/passwords_bad_server-side.py' | |||
549 | --- acceptance/tests/new_account/passwords_bad_server-side.py 2013-05-14 13:17:20 +0000 | |||
550 | +++ acceptance/tests/new_account/passwords_bad_server-side.py 2013-06-13 00:15:30 +0000 | |||
551 | @@ -3,12 +3,12 @@ | |||
552 | 3 | # rules: | 3 | # rules: |
553 | 4 | # Password must be at least 8 characters long. | 4 | # Password must be at least 8 characters long. |
554 | 5 | from sst.actions import ( | 5 | from sst.actions import ( |
555 | 6 | assert_attribute, | ||
556 | 7 | assert_text, | 6 | assert_text, |
557 | 7 | assert_text_contains, | ||
558 | 8 | assert_title, | 8 | assert_title, |
559 | 9 | assert_url, | 9 | assert_url, |
560 | 10 | click_button, | 10 | click_button, |
562 | 11 | get_element, | 11 | get_element_by_css, |
563 | 12 | go_to, | 12 | go_to, |
564 | 13 | ) | 13 | ) |
565 | 14 | from u1testutils import mail | 14 | from u1testutils import mail |
566 | @@ -16,8 +16,6 @@ | |||
567 | 16 | 16 | ||
568 | 17 | from acceptance import helpers, urls | 17 | from acceptance import helpers, urls |
569 | 18 | 18 | ||
570 | 19 | from identityprovider.utils import get_current_brand | ||
571 | 20 | |||
572 | 21 | 19 | ||
573 | 22 | EMAIL = mail.make_unique_test_email_address() | 20 | EMAIL = mail.make_unique_test_email_address() |
574 | 23 | NAME = 'Some Name' | 21 | NAME = 'Some Name' |
575 | @@ -26,15 +24,11 @@ | |||
576 | 26 | go_to(urls.NEW_ACCOUNT) | 24 | go_to(urls.NEW_ACCOUNT) |
577 | 27 | assert_title('Create account') | 25 | assert_title('Create account') |
578 | 28 | helpers.fill_registration_form(EMAIL, displayname=NAME, password=password) | 26 | helpers.fill_registration_form(EMAIL, displayname=NAME, password=password) |
580 | 29 | click_button(get_element(name='continue')) | 27 | click_button(get_element_by_css('*[data-qa-id="register_button"]')) |
581 | 30 | 28 | ||
582 | 31 | assert_url(urls.NEW_ACCOUNT) | 29 | assert_url(urls.NEW_ACCOUNT) |
583 | 32 | assert_text('id_displayname', NAME) | 30 | assert_text('id_displayname', NAME) |
584 | 33 | assert_text('id_email', EMAIL) | 31 | assert_text('id_email', EMAIL) |
585 | 34 | 32 | ||
592 | 35 | if get_current_brand() == 'ubuntuone': | 33 | msg = 'at least 8 characters' |
593 | 36 | msg = 'Password with at least 8 characters' | 34 | assert_text_contains(get_element_by_css('span.error'), msg) |
588 | 37 | assert_attribute('id_password', 'placeholder', msg) | ||
589 | 38 | else: | ||
590 | 39 | msg = 'Password must be at least 8 characters long.' | ||
591 | 40 | assert_text(get_element(css_class='formHelp'), msg) | ||
594 | 41 | 35 | ||
595 | === modified file 'acceptance/tests/root/links.py' | |||
596 | --- acceptance/tests/root/links.py 2013-05-14 13:17:20 +0000 | |||
597 | +++ acceptance/tests/root/links.py 2013-06-13 00:15:30 +0000 | |||
598 | @@ -12,9 +12,7 @@ | |||
599 | 12 | ) | 12 | ) |
600 | 13 | from u1testutils.sst import config | 13 | from u1testutils.sst import config |
601 | 14 | 14 | ||
605 | 15 | from acceptance import urls | 15 | from acceptance import helpers, urls |
603 | 16 | |||
604 | 17 | from identityprovider.utils import get_current_brand | ||
606 | 18 | 16 | ||
607 | 19 | 17 | ||
608 | 20 | config.set_base_url_from_env() | 18 | config.set_base_url_from_env() |
609 | @@ -22,9 +20,9 @@ | |||
610 | 22 | go_to(urls.HOME) | 20 | go_to(urls.HOME) |
611 | 23 | wait_for(assert_title, 'Log in') | 21 | wait_for(assert_title, 'Log in') |
612 | 24 | 22 | ||
614 | 25 | if get_current_brand() == 'ubuntuone': | 23 | if helpers.get_current_brand() == 'ubuntuone': |
615 | 26 | links = ( | 24 | links = ( |
617 | 27 | ('Terms of use', 'https://one.ubuntu.com/terms/'), | 25 | ('Terms of service', 'https://one.ubuntu.com/terms/'), |
618 | 28 | ('Privacy', 'https://one.ubuntu.com/privacy/'), | 26 | ('Privacy', 'https://one.ubuntu.com/privacy/'), |
619 | 29 | ('Login support', 'https://forms.canonical.com/sso-support/'), | 27 | ('Login support', 'https://forms.canonical.com/sso-support/'), |
620 | 30 | ('Choose your language', urls.get_base_url() + '/set_language'), | 28 | ('Choose your language', urls.get_base_url() + '/set_language'), |
621 | 31 | 29 | ||
622 | === modified file 'requirements/testing.txt' | |||
623 | --- requirements/testing.txt 2013-06-05 17:11:48 +0000 | |||
624 | +++ requirements/testing.txt 2013-06-13 00:15:30 +0000 | |||
625 | @@ -31,5 +31,5 @@ | |||
626 | 31 | zope.schema==4.2.0 | 31 | zope.schema==4.2.0 |
627 | 32 | zope.testbrowser==3.5.1 | 32 | zope.testbrowser==3.5.1 |
628 | 33 | bzr+http://bazaar.launchpad.net/~canonical-isd-qa/selenium-simple-test/trunk/@413 | 33 | bzr+http://bazaar.launchpad.net/~canonical-isd-qa/selenium-simple-test/trunk/@413 |
630 | 34 | bzr+http://bazaar.launchpad.net/~canonical-isd-hackers/u1-test-utils/trunk@78 | 34 | bzr+http://bazaar.launchpad.net/~canonical-isd-hackers/u1-test-utils/trunk@80 |
631 | 35 | bzr+ssh://bazaar.launchpad.net/~bloodearnest/+junk/test-email-server/ | 35 | bzr+ssh://bazaar.launchpad.net/~bloodearnest/+junk/test-email-server/ |
632 | 36 | 36 | ||
633 | === modified file 'scripts/acceptance-dev.sh' | |||
634 | --- scripts/acceptance-dev.sh 2013-06-11 11:04:05 +0000 | |||
635 | +++ scripts/acceptance-dev.sh 2013-06-13 00:15:30 +0000 | |||
636 | @@ -24,7 +24,7 @@ | |||
637 | 24 | 24 | ||
638 | 25 | while getopts ":b:t:hfcp:" opt; do | 25 | while getopts ":b:t:hfcp:" opt; do |
639 | 26 | case $opt in | 26 | case $opt in |
641 | 27 | b) BRAND="brand:"$OPTARG ;; | 27 | b) BRAND=$OPTARG ;; |
642 | 28 | t) TESTCASE=$OPTARG ;; | 28 | t) TESTCASE=$OPTARG ;; |
643 | 29 | h) HEADLESS="true" ;; | 29 | h) HEADLESS="true" ;; |
644 | 30 | f) HEADLESS="false" ;; | 30 | f) HEADLESS="false" ;; |
645 | @@ -68,6 +68,11 @@ | |||
646 | 68 | fab manage:add_openid_rp_config,$SST_BASE_URL/consumer,--allow-unverified,--allowed-user-attribs="fullname\,nickname\,email\,language,account_verified" | 68 | fab manage:add_openid_rp_config,$SST_BASE_URL/consumer,--allow-unverified,--allowed-user-attribs="fullname\,nickname\,email\,language,account_verified" |
647 | 69 | fi | 69 | fi |
648 | 70 | 70 | ||
649 | 71 | if [ $BRAND ]; then | ||
650 | 72 | fab manage:add_switch,"brand_"$BRAND | ||
651 | 73 | BRAND="brand:"$BRAND | ||
652 | 74 | fi | ||
653 | 75 | |||
654 | 71 | # handle exit cleanly (mainly Ctrl-C) | 76 | # handle exit cleanly (mainly Ctrl-C) |
655 | 72 | trap clean_up SIGHUP SIGINT SIGTERM | 77 | trap clean_up SIGHUP SIGINT SIGTERM |
656 | 73 | 78 | ||
657 | 74 | 79 | ||
658 | === modified file 'scripts/run-acceptance-tests' | |||
659 | --- scripts/run-acceptance-tests 2013-06-11 10:14:59 +0000 | |||
660 | +++ scripts/run-acceptance-tests 2013-06-13 00:15:30 +0000 | |||
661 | @@ -47,6 +47,9 @@ | |||
662 | 47 | if [ ${TARGET} = "dev" ]; then | 47 | if [ ${TARGET} = "dev" ]; then |
663 | 48 | # dev is special: we need to start it up. | 48 | # dev is special: we need to start it up. |
664 | 49 | ./scripts/acceptance-dev.sh | 49 | ./scripts/acceptance-dev.sh |
665 | 50 | if [ ${TARGET} = "dev-u1" ]; then | ||
666 | 51 | # dev is special: we need to start it up. | ||
667 | 52 | ./scripts/acceptance-dev.sh -b ubuntuone | ||
668 | 50 | else | 53 | else |
669 | 51 | SST_BASE_URL="$SST_BASE_URL" fab acceptance:screenshot=true,report=xml | 54 | SST_BASE_URL="$SST_BASE_URL" fab acceptance:screenshot=true,report=xml |
670 | 52 | fi | 55 | fi |
671 | 53 | 56 | ||
672 | === modified file 'src/identityprovider/media/ubuntu/styles.css' | |||
673 | --- src/identityprovider/media/ubuntu/styles.css 2013-05-22 14:13:01 +0000 | |||
674 | +++ src/identityprovider/media/ubuntu/styles.css 2013-06-13 00:15:30 +0000 | |||
675 | @@ -606,7 +606,8 @@ | |||
676 | 606 | color: #dd4814; | 606 | color: #dd4814; |
677 | 607 | } | 607 | } |
678 | 608 | 608 | ||
680 | 609 | #subheader ul li a, #subheader ul li span, #subheader ul li input { | 609 | #subheader ul li span, |
681 | 610 | #subheader ul li input { | ||
682 | 610 | padding: 14px 8px 0; | 611 | padding: 14px 8px 0; |
683 | 611 | display: block; | 612 | display: block; |
684 | 612 | height: 28px; | 613 | height: 28px; |
685 | 613 | 614 | ||
686 | === modified file 'src/identityprovider/templates/server/decide.html' | |||
687 | --- src/identityprovider/templates/server/decide.html 2013-06-04 16:35:37 +0000 | |||
688 | +++ src/identityprovider/templates/server/decide.html 2013-06-13 00:15:30 +0000 | |||
689 | @@ -17,7 +17,9 @@ | |||
690 | 17 | {% block content %} | 17 | {% block content %} |
691 | 18 | <div id="trust-root"> | 18 | <div id="trust-root"> |
692 | 19 | <h2 class="main" data-qa-id="rp_login_title"> | 19 | <h2 class="main" data-qa-id="rp_login_title"> |
694 | 20 | {% blocktrans %} You are logging in to <a data-qa-id="rp_backlink" href="{{ trust_root }}">{{ trust_root }}</a>{% endblocktrans %} | 20 | {% blocktrans %} You are logging in to |
695 | 21 | <a data-qa-id="rp_backlink" href="{{ trust_root }}">{{ trust_root }}</a> | ||
696 | 22 | {% endblocktrans %} | ||
697 | 21 | </h2> | 23 | </h2> |
698 | 22 | </div> | 24 | </div> |
699 | 23 | 25 | ||
700 | @@ -62,7 +64,9 @@ | |||
701 | 62 | 64 | ||
702 | 63 | <p> | 65 | <p> |
703 | 64 | <input type="hidden" name="ok" /> | 66 | <input type="hidden" name="ok" /> |
705 | 65 | <button type="submit" class="btn" name="yes" data-qa-id="rp_confirm_login"><span><span>{% trans "Yes, log me in" %}</span></span></button> | 67 | <button type="submit" class="btn" name="yes" data-qa-id="rp_confirm_login"> |
706 | 68 | <span><span>{% trans "Yes, log me in" %}</span></span> | ||
707 | 69 | </button> | ||
708 | 66 | {% trans "or" %} | 70 | {% trans "or" %} |
709 | 67 | <a href="+cancel">{% trans "cancel" %}</a> | 71 | <a href="+cancel">{% trans "cancel" %}</a> |
710 | 68 | </p> | 72 | </p> |
711 | 69 | 73 | ||
712 | === modified file 'src/identityprovider/templatetags/menu_item.py' | |||
713 | --- src/identityprovider/templatetags/menu_item.py 2010-07-12 21:23:42 +0000 | |||
714 | +++ src/identityprovider/templatetags/menu_item.py 2013-06-13 00:15:30 +0000 | |||
715 | @@ -7,8 +7,9 @@ | |||
716 | 7 | 7 | ||
717 | 8 | 8 | ||
718 | 9 | @register.inclusion_tag('menu_item.html', takes_context=True) | 9 | @register.inclusion_tag('menu_item.html', takes_context=True) |
720 | 10 | def menu_item(context, section, label, link): | 10 | def menu_item(context, section, label, link, extra_qa_data_id=None): |
721 | 11 | return {'current_section': context.get('current_section', None), | 11 | return {'current_section': context.get('current_section', None), |
722 | 12 | 'section': section, | 12 | 'section': section, |
723 | 13 | 'label': label, | 13 | 'label': label, |
725 | 14 | 'link': link} | 14 | 'link': link, |
726 | 15 | 'extra_qa_data_id': extra_qa_data_id} | ||
727 | 15 | 16 | ||
728 | === modified file 'src/identityprovider/tests/test_views_server.py' | |||
729 | --- src/identityprovider/tests/test_views_server.py 2013-05-21 19:05:32 +0000 | |||
730 | +++ src/identityprovider/tests/test_views_server.py 2013-06-13 00:15:30 +0000 | |||
731 | @@ -1066,6 +1066,8 @@ | |||
732 | 1066 | trust_root = tree.find('div#trust-root') | 1066 | trust_root = tree.find('div#trust-root') |
733 | 1067 | self.assertEqual(len(trust_root), 1) | 1067 | self.assertEqual(len(trust_root), 1) |
734 | 1068 | trust_root = trust_root[0] | 1068 | trust_root = trust_root[0] |
735 | 1069 | # we need to strip the element text to avoid having a test failure | ||
736 | 1070 | # caused by newlines inside the html template | ||
737 | 1069 | self.assertEqual(trust_root[0].text.strip(), 'You are logging in to') | 1071 | self.assertEqual(trust_root[0].text.strip(), 'You are logging in to') |
738 | 1070 | 1072 | ||
739 | 1071 | link = trust_root.getchildren()[0].find('a') | 1073 | link = trust_root.getchildren()[0].find('a') |
740 | @@ -1074,7 +1076,7 @@ | |||
741 | 1074 | button = tree.find('button[type="submit"][name="yes"]') | 1076 | button = tree.find('button[type="submit"][name="yes"]') |
742 | 1075 | self.assertEqual(len(button), 1) | 1077 | self.assertEqual(len(button), 1) |
743 | 1076 | button = button[0] | 1078 | button = button[0] |
745 | 1077 | self.assertEqual(button.text_content(), 'Yes, log me in') | 1079 | self.assertEqual(button.text_content().strip(), 'Yes, log me in') |
746 | 1078 | 1080 | ||
747 | 1079 | def test_user_unverified_no_rpconfig(self): | 1081 | def test_user_unverified_no_rpconfig(self): |
748 | 1080 | assert OpenIDRPConfig.objects.count() == 0 | 1082 | assert OpenIDRPConfig.objects.count() == 0 |
749 | 1081 | 1083 | ||
750 | === modified file 'src/webui/templates/account/applications.html' | |||
751 | --- src/webui/templates/account/applications.html 2013-04-17 13:23:35 +0000 | |||
752 | +++ src/webui/templates/account/applications.html 2013-06-13 00:15:30 +0000 | |||
753 | @@ -12,7 +12,6 @@ | |||
754 | 12 | <h1 class="main">{% trans "Applications you use" %}</h1> | 12 | <h1 class="main">{% trans "Applications you use" %}</h1> |
755 | 13 | {% endblock %} | 13 | {% endblock %} |
756 | 14 | 14 | ||
757 | 15 | |||
758 | 16 | {% block content %} | 15 | {% block content %} |
759 | 17 | {% if tokens %} | 16 | {% if tokens %} |
760 | 18 | <p> | 17 | <p> |
761 | @@ -31,13 +30,13 @@ | |||
762 | 31 | <tbody> | 30 | <tbody> |
763 | 32 | {% for token in tokens %} | 31 | {% for token in tokens %} |
764 | 33 | <tr> | 32 | <tr> |
766 | 34 | <td>{{ token.name }}</td> | 33 | <td data-qa-id="application_token">{{ token.name }}</td> |
767 | 35 | <td>{{ token.created_at|date:"Y-m-d" }}</td> | 34 | <td>{{ token.created_at|date:"Y-m-d" }}</td> |
768 | 36 | <td class="actions"> | 35 | <td class="actions"> |
769 | 37 | <form action="{% url 'applications' %}" method="post"> | 36 | <form action="{% url 'applications' %}" method="post"> |
770 | 38 | {% csrf_token %} | 37 | {% csrf_token %} |
771 | 39 | <input type="hidden" name="token_id" value="{{ token.token }}" /> | 38 | <input type="hidden" name="token_id" value="{{ token.token }}" /> |
773 | 40 | <button type="submit" class="btn-sm" name="Delete"> | 39 | <button type="submit" class="btn-sm" name="Delete" data-qa-id="delete_application"> |
774 | 41 | <span>{% trans "Delete" %}</span> | 40 | <span>{% trans "Delete" %}</span> |
775 | 42 | </button> | 41 | </button> |
776 | 43 | </form> | 42 | </form> |
777 | 44 | 43 | ||
778 | === modified file 'src/webui/templates/account/confirm_email_invalidation.html' | |||
779 | --- src/webui/templates/account/confirm_email_invalidation.html 2013-02-22 20:30:24 +0000 | |||
780 | +++ src/webui/templates/account/confirm_email_invalidation.html 2013-06-13 00:15:30 +0000 | |||
781 | @@ -21,7 +21,9 @@ | |||
782 | 21 | <form action="" method="POST"> | 21 | <form action="" method="POST"> |
783 | 22 | {% csrf_token %} | 22 | {% csrf_token %} |
784 | 23 | <p> | 23 | <p> |
786 | 24 | <button type="submit" class="btn" name="invalidate"><span><span>{% trans "Yes, invalidate" %}</span></span></button> | 24 | <button type="submit" class="btn" name="invalidate" data-qa-id="confirm_email_invalidation"> |
787 | 25 | <span><span>{% trans "Yes, invalidate" %}</span></span> | ||
788 | 26 | </button> | ||
789 | 25 | {% trans "or" %} {% include "common/cancel_link.html" %} | 27 | {% trans "or" %} {% include "common/cancel_link.html" %} |
790 | 26 | </p> | 28 | </p> |
791 | 27 | </form> | 29 | </form> |
792 | 28 | 30 | ||
793 | === modified file 'src/webui/templates/account/confirm_new_email.html' | |||
794 | --- src/webui/templates/account/confirm_new_email.html 2013-05-31 03:30:26 +0000 | |||
795 | +++ src/webui/templates/account/confirm_new_email.html 2013-06-13 00:15:30 +0000 | |||
796 | @@ -26,11 +26,11 @@ | |||
797 | 26 | {% csrf_token %} | 26 | {% csrf_token %} |
798 | 27 | <p> | 27 | <p> |
799 | 28 | <input type="hidden" name="post" value="yes" /> | 28 | <input type="hidden" name="post" value="yes" /> |
801 | 29 | <button type="submit" name="continue" class="btn"> | 29 | <button type="submit" name="continue" class="btn" data-qa-id="confirm_email_validation"> |
802 | 30 | <span><span>{% trans "Yes, I'm sure" %}</span></span> | 30 | <span><span>{% trans "Yes, I'm sure" %}</span></span> |
803 | 31 | </button> | 31 | </button> |
804 | 32 | {% trans "or" %} | 32 | {% trans "or" %} |
806 | 33 | <a href="{% if token %}/{{ token }}{% endif %}/">{% trans "cancel" %}</a> | 33 | <a href="{% if token %}/{{ token }}{% endif %}/" data-qa-id="cancel_email_validation">{% trans "cancel" %}</a> |
807 | 34 | </p> | 34 | </p> |
808 | 35 | </form> | 35 | </form> |
809 | 36 | </div> | 36 | </div> |
810 | 37 | 37 | ||
811 | === modified file 'src/webui/templates/account/delete_email.html' | |||
812 | --- src/webui/templates/account/delete_email.html 2013-05-31 03:13:32 +0000 | |||
813 | +++ src/webui/templates/account/delete_email.html 2013-06-13 00:15:30 +0000 | |||
814 | @@ -2,7 +2,7 @@ | |||
815 | 2 | {% load i18n %} | 2 | {% load i18n %} |
816 | 3 | 3 | ||
817 | 4 | {% comment %} | 4 | {% comment %} |
819 | 5 | Copyright 2010 Canonical Ltd. This software is licensed under the | 5 | Copyright 2010-2013 Canonical Ltd. This software is licensed under the |
820 | 6 | GNU Affero General Public License version 3 (see the file LICENSE). | 6 | GNU Affero General Public License version 3 (see the file LICENSE). |
821 | 7 | {% endcomment %} | 7 | {% endcomment %} |
822 | 8 | 8 | ||
823 | @@ -26,7 +26,9 @@ | |||
824 | 26 | <form action="" method="POST"> | 26 | <form action="" method="POST"> |
825 | 27 | {% csrf_token %} | 27 | {% csrf_token %} |
826 | 28 | <p> | 28 | <p> |
828 | 29 | <button type="submit" class="btn" name="delete"><span><span>{% trans "Yes, delete" %}</span></span></button> | 29 | <button type="submit" class="btn" name="delete" data-qa-id="confirm_delete_email"> |
829 | 30 | <span><span>{% trans "Yes, delete" %}</span></span> | ||
830 | 31 | </button> | ||
831 | 30 | {% trans "or" %} | 32 | {% trans "or" %} |
832 | 31 | {% include "common/cancel_link.html" %} | 33 | {% include "common/cancel_link.html" %} |
833 | 32 | </p> | 34 | </p> |
834 | 33 | 35 | ||
835 | === modified file 'src/webui/templates/account/edit.html' | |||
836 | --- src/webui/templates/account/edit.html 2013-06-07 03:39:56 +0000 | |||
837 | +++ src/webui/templates/account/edit.html 2013-06-13 00:15:30 +0000 | |||
838 | @@ -145,7 +145,9 @@ | |||
839 | 145 | 145 | ||
840 | 146 | <p class="actions"> | 146 | <p class="actions"> |
841 | 147 | {% if not readonly %} | 147 | {% if not readonly %} |
843 | 148 | <button type="submit" class="btn" name="update" data-qa-id="update_preferences"><span><span>{% trans "Update" %}</span></span></button> | 148 | <button type="submit" class="btn" name="update" data-qa-id="update_preferences"> |
844 | 149 | <span><span>{% trans "Update" %}</span></span> | ||
845 | 150 | </button> | ||
846 | 149 | {% endif %} | 151 | {% endif %} |
847 | 150 | {% if token %} | 152 | {% if token %} |
848 | 151 | {% trans "or" %} | 153 | {% trans "or" %} |
849 | 152 | 154 | ||
850 | === modified file 'src/webui/templates/account/emails.html' | |||
851 | --- src/webui/templates/account/emails.html 2013-05-15 11:07:23 +0000 | |||
852 | +++ src/webui/templates/account/emails.html 2013-06-13 00:15:30 +0000 | |||
853 | @@ -51,7 +51,9 @@ | |||
854 | 51 | {% if not readonly %} | 51 | {% if not readonly %} |
855 | 52 | <td class="actions"> | 52 | <td class="actions"> |
856 | 53 | {% if not email.is_preferred %} | 53 | {% if not email.is_preferred %} |
858 | 54 | <a href="./+remove-email?id={{ email.id }}" class="btn-sm" data-qa-id="remove_verified_email"><span>{% trans "Delete" %}</span></a> | 54 | <a href="./+remove-email?id={{ email.id }}" class="btn-sm" data-qa-id="remove_verified_email"> |
859 | 55 | <span>{% trans "Delete" %}</span> | ||
860 | 56 | </a> | ||
861 | 55 | {% endif %} | 57 | {% endif %} |
862 | 56 | </td> | 58 | </td> |
863 | 57 | {% endif %} | 59 | {% endif %} |
864 | @@ -74,7 +76,9 @@ | |||
865 | 74 | {% if email.is_verifiable %} | 76 | {% if email.is_verifiable %} |
866 | 75 | <a href="./+verify-email?id={{ email.id }}" data-qa-id="verify_unverified_{{ email }}" class="verify-email btn-sm"><span>{% trans "Verify" %}</span></a> | 77 | <a href="./+verify-email?id={{ email.id }}" data-qa-id="verify_unverified_{{ email }}" class="verify-email btn-sm"><span>{% trans "Verify" %}</span></a> |
867 | 76 | {% endif %} | 78 | {% endif %} |
869 | 77 | <a href="./+remove-email?id={{ email.id }}" data-qa-id="delete_unverified_{{ email }}" class="btn-sm"><span>{% trans "Delete" %}</span></a> | 79 | <a href="./+remove-email?id={{ email.id }}" data-qa-id="delete_unverified_{{ email }}" class="btn-sm"> |
870 | 80 | <span>{% trans "Delete" %}</span> | ||
871 | 81 | </a> | ||
872 | 78 | </td> | 82 | </td> |
873 | 79 | {% endif %} | 83 | {% endif %} |
874 | 80 | </tr> | 84 | </tr> |
875 | @@ -99,7 +103,7 @@ | |||
876 | 99 | {% endif %} | 103 | {% endif %} |
877 | 100 | </p> | 104 | </p> |
878 | 101 | <p class="actions"> | 105 | <p class="actions"> |
880 | 102 | <button type="submit" class="btn" name="continue"> | 106 | <button type="submit" class="btn" name="continue" data-qa-id="add_new_email"> |
881 | 103 | <span><span>{% trans "Add address" %}</span></span> | 107 | <span><span>{% trans "Add address" %}</span></span> |
882 | 104 | </button> | 108 | </button> |
883 | 105 | {% blocktrans %}or <a href="/">cancel</a>{% endblocktrans %} | 109 | {% blocktrans %}or <a href="/">cancel</a>{% endblocktrans %} |
884 | 106 | 110 | ||
885 | === modified file 'src/webui/templates/account/new_email.html' | |||
886 | --- src/webui/templates/account/new_email.html 2013-04-17 13:23:35 +0000 | |||
887 | +++ src/webui/templates/account/new_email.html 2013-06-13 00:15:30 +0000 | |||
888 | @@ -28,7 +28,9 @@ | |||
889 | 28 | {% endif %} | 28 | {% endif %} |
890 | 29 | </p> | 29 | </p> |
891 | 30 | <p class="actions"> | 30 | <p class="actions"> |
893 | 31 | <button type="submit" class="btn" name="continue"><span><span>{% trans "Send instructions" %}</span></span></button> | 31 | <button type="submit" class="btn" name="continue" data-qa-id="send_instructions_confirm_email"> |
894 | 32 | <span><span>{% trans "Send instructions" %}</span></span> | ||
895 | 33 | </button> | ||
896 | 32 | {% trans "or" %} | 34 | {% trans "or" %} |
897 | 33 | <a href=".">{% trans "cancel" %}</a> | 35 | <a href=".">{% trans "cancel" %}</a> |
898 | 34 | </p> | 36 | </p> |
899 | 35 | 37 | ||
900 | === modified file 'src/webui/templates/device/addition-generic.html' | |||
901 | --- src/webui/templates/device/addition-generic.html 2013-05-15 07:47:10 +0000 | |||
902 | +++ src/webui/templates/device/addition-generic.html 2013-06-13 00:15:30 +0000 | |||
903 | @@ -74,10 +74,11 @@ | |||
904 | 74 | <p> | 74 | <p> |
905 | 75 | <input type="hidden" name="type" value="{{ type }}"> | 75 | <input type="hidden" name="type" value="{{ type }}"> |
906 | 76 | <input type="hidden" name="hex_key" value="{{ hex_key }}"> | 76 | <input type="hidden" name="hex_key" value="{{ hex_key }}"> |
908 | 77 | <button class="btn" type="submit" data-qa-id="add_generic_device"> | 77 | <button class="btn" type="submit" data-qa-id="confirm_add_device"> |
909 | 78 | <span><span>{% trans "Add device" %}</span></span> | 78 | <span><span>{% trans "Add device" %}</span></span> |
910 | 79 | </button> | 79 | </button> |
912 | 80 | {% trans "or" %} <a data-qa-id="cancel" href="{{ device_list_path }}">{% trans "cancel" %}</a> | 80 | {% trans "or" %} |
913 | 81 | <a data-qa-id="cancel_add_device" href="{{ device_list_path }}">{% trans "cancel" %}</a> | ||
914 | 81 | </p> | 82 | </p> |
915 | 82 | 83 | ||
916 | 83 | </form> | 84 | </form> |
917 | 84 | 85 | ||
918 | === modified file 'src/webui/templates/device/generate-codes.html' | |||
919 | --- src/webui/templates/device/generate-codes.html 2013-05-31 03:13:32 +0000 | |||
920 | +++ src/webui/templates/device/generate-codes.html 2013-06-13 00:15:30 +0000 | |||
921 | @@ -29,10 +29,11 @@ | |||
922 | 29 | <form method="post"> | 29 | <form method="post"> |
923 | 30 | {% csrf_token %} | 30 | {% csrf_token %} |
924 | 31 | <p> | 31 | <p> |
926 | 32 | <button class="btn" type="submit" data-qa-id="confirm-codes"> | 32 | <button class="btn" type="submit" data-qa-id="confirm_new_codes"> |
927 | 33 | <span><span>{% trans "Confirm new codes" %}</span></span> | 33 | <span><span>{% trans "Confirm new codes" %}</span></span> |
928 | 34 | </button> | 34 | </button> |
930 | 35 | {% trans "or" %} <a href="{% url 'device-print' device_id %}" data-qa-id="cancel">{% trans "cancel" %}</a> | 35 | {% trans "or" %} |
931 | 36 | <a href="{% url 'device-print' device_id %}" data-qa-id="cancel_new_codes">{% trans "cancel" %}</a> | ||
932 | 36 | </p> | 37 | </p> |
933 | 37 | </form> | 38 | </form> |
934 | 38 | {% endblock %} | 39 | {% endblock %} |
935 | 39 | 40 | ||
936 | === modified file 'src/webui/templates/device/list.html' | |||
937 | --- src/webui/templates/device/list.html 2013-06-07 21:07:00 +0000 | |||
938 | +++ src/webui/templates/device/list.html 2013-06-13 00:15:30 +0000 | |||
939 | @@ -56,7 +56,7 @@ | |||
940 | 56 | <span>{% trans "Delete" %}</span> | 56 | <span>{% trans "Delete" %}</span> |
941 | 57 | </a> | 57 | </a> |
942 | 58 | {% if device.device_type == 'paper' %} | 58 | {% if device.device_type == 'paper' %} |
944 | 59 | <a class="btn-sm" href="{% url 'device-print' device.id %}"> | 59 | <a class="btn-sm" href="{% url 'device-print' device.id %}" data-qa-id="print_device"> |
945 | 60 | <span>{% trans "View Codes" %}</span> | 60 | <span>{% trans "View Codes" %}</span> |
946 | 61 | </a> | 61 | </a> |
947 | 62 | {% endif %} | 62 | {% endif %} |
948 | 63 | 63 | ||
949 | === modified file 'src/webui/templates/device/print-codes.html' | |||
950 | --- src/webui/templates/device/print-codes.html 2013-05-21 15:50:20 +0000 | |||
951 | +++ src/webui/templates/device/print-codes.html 2013-06-13 00:15:30 +0000 | |||
952 | @@ -23,13 +23,15 @@ | |||
953 | 23 | {% include 'device/code-list.html' %} | 23 | {% include 'device/code-list.html' %} |
954 | 24 | 24 | ||
955 | 25 | <p> | 25 | <p> |
957 | 26 | <a class="btn" id="printbtn" onclick="window.print()" data-qa-id="print_btn"><span><span>{% trans "Print Codes" %}</span></span> | 26 | <a class="btn" id="printbtn" onclick="window.print()" data-qa-id="print_codes"> |
958 | 27 | <span><span>{% trans "Print Codes" %}</span></span> | ||
959 | 27 | </a> | 28 | </a> |
960 | 28 | {% if generation_enabled %} | 29 | {% if generation_enabled %} |
961 | 29 | <a class="btn" href="{% url 'device-generate' device_id %}" data-qa-id="generate_codes"> | 30 | <a class="btn" href="{% url 'device-generate' device_id %}" data-qa-id="generate_codes"> |
962 | 30 | <span><span>{% trans "Generate new codes" %}</span></span> | 31 | <span><span>{% trans "Generate new codes" %}</span></span> |
963 | 31 | </a> | 32 | </a> |
964 | 32 | {% endif %} | 33 | {% endif %} |
966 | 33 | {% trans "or" %} <a href="{% url 'device-list' %}" data-qa-id="go_back">{% trans "go back to device list" %}</a> | 34 | {% trans "or" %} |
967 | 35 | <a href="{% url 'device-list' %}" data-qa-id="cancel_print_codes">{% trans "go back to device list" %}</a> | ||
968 | 34 | </p> | 36 | </p> |
969 | 35 | {% endblock %} | 37 | {% endblock %} |
970 | 36 | 38 | ||
971 | === modified file 'src/webui/templates/device/removal.html' | |||
972 | --- src/webui/templates/device/removal.html 2013-05-15 07:47:10 +0000 | |||
973 | +++ src/webui/templates/device/removal.html 2013-06-13 00:15:30 +0000 | |||
974 | @@ -30,7 +30,8 @@ | |||
975 | 30 | <button class="btn" type="submit" data-qa-id="delete_this_device"> | 30 | <button class="btn" type="submit" data-qa-id="delete_this_device"> |
976 | 31 | <span><span>{% trans "Delete this device" %}</span></span> | 31 | <span><span>{% trans "Delete this device" %}</span></span> |
977 | 32 | </button> | 32 | </button> |
979 | 33 | {% trans "or" %} <a data-qa-id="cancel_deleting_this_device" href="{{ device_list_path }}">{% trans "cancel" %}</a> | 33 | {% trans "or" %} |
980 | 34 | <a data-qa-id="cancel_deleting_this_device" href="{{ device_list_path }}">{% trans "cancel" %}</a> | ||
981 | 34 | </p> | 35 | </p> |
982 | 35 | </form> | 36 | </form> |
983 | 36 | 37 | ||
984 | 37 | 38 | ||
985 | === modified file 'src/webui/templates/device/rename.html' | |||
986 | --- src/webui/templates/device/rename.html 2013-06-07 21:07:00 +0000 | |||
987 | +++ src/webui/templates/device/rename.html 2013-06-13 00:15:30 +0000 | |||
988 | @@ -22,7 +22,7 @@ | |||
989 | 22 | <form method="post" action=""> | 22 | <form method="post" action=""> |
990 | 23 | {% csrf_token %} | 23 | {% csrf_token %} |
991 | 24 | 24 | ||
993 | 25 | <p><label> | 25 | <p><label for="id_name"> |
994 | 26 | {% trans "Name:" %}<br> | 26 | {% trans "Name:" %}<br> |
995 | 27 | {{ form.name }} | 27 | {{ form.name }} |
996 | 28 | {% if form.name.errors %} | 28 | {% if form.name.errors %} |
997 | 29 | 29 | ||
998 | === modified file 'src/webui/templates/device/types.html' | |||
999 | --- src/webui/templates/device/types.html 2013-05-22 19:42:47 +0000 | |||
1000 | +++ src/webui/templates/device/types.html 2013-06-13 00:15:30 +0000 | |||
1001 | @@ -62,7 +62,8 @@ | |||
1002 | 62 | <button class="btn" type="submit" data-qa-id="add_device_from_type"> | 62 | <button class="btn" type="submit" data-qa-id="add_device_from_type"> |
1003 | 63 | <span><span>{% trans "Add device" %}</span></span> | 63 | <span><span>{% trans "Add device" %}</span></span> |
1004 | 64 | </button> | 64 | </button> |
1006 | 65 | {% trans "or" %} <a data-qa-id="cancel" href="{{ device_list_path }}">{% trans "cancel" %}</a> | 65 | {% trans "or" %} |
1007 | 66 | <a data-qa-id="cancel_add_device_from_type" href="{{ device_list_path }}">{% trans "cancel" %}</a> | ||
1008 | 66 | </p> | 67 | </p> |
1009 | 67 | <p> | 68 | <p> |
1010 | 68 | {% blocktrans with "twofactor_faq"|static_url as 2FFAQ %} | 69 | {% blocktrans with "twofactor_faq"|static_url as 2FFAQ %} |
1011 | 69 | 70 | ||
1012 | === modified file 'src/webui/templates/enter_token.html' | |||
1013 | --- src/webui/templates/enter_token.html 2013-05-31 03:13:32 +0000 | |||
1014 | +++ src/webui/templates/enter_token.html 2013-06-13 00:15:30 +0000 | |||
1015 | @@ -20,14 +20,14 @@ | |||
1016 | 20 | 20 | ||
1017 | 21 | <form method="post"> | 21 | <form method="post"> |
1018 | 22 | {% csrf_token %} | 22 | {% csrf_token %} |
1020 | 23 | <p> | 23 | <p class="input-row"> |
1021 | 24 | <label for="id_token">{% trans "Confirmation code" %}</label><br /> | 24 | <label for="id_token">{% trans "Confirmation code" %}</label><br /> |
1022 | 25 | {{ form.confirmation_code }} | 25 | {{ form.confirmation_code }} |
1023 | 26 | {% if form.confirmation_code.errors %} | 26 | {% if form.confirmation_code.errors %} |
1024 | 27 | <span class="error">{{ form.confirmation_code.errors|join:"" }}</span> | 27 | <span class="error">{{ form.confirmation_code.errors|join:"" }}</span> |
1025 | 28 | {% endif %} | 28 | {% endif %} |
1026 | 29 | </p> | 29 | </p> |
1028 | 30 | <p> | 30 | <p class="input-row"> |
1029 | 31 | <label for="id_email">{% trans "Email address" %}</label><br /> | 31 | <label for="id_email">{% trans "Email address" %}</label><br /> |
1030 | 32 | {{ form.email }} | 32 | {{ form.email }} |
1031 | 33 | {% if form.email.errors %} | 33 | {% if form.email.errors %} |
1032 | @@ -35,7 +35,7 @@ | |||
1033 | 35 | {% endif %} | 35 | {% endif %} |
1034 | 36 | </p> | 36 | </p> |
1035 | 37 | 37 | ||
1037 | 38 | <p><button class="btn" type="submit" name="continue"> | 38 | <p><button class="btn" type="submit" name="continue" data-qa-id="confirm_enter_token"> |
1038 | 39 | <span><span>{% trans "Confirm" %}</span></span></button></p> | 39 | <span><span>{% trans "Confirm" %}</span></span></button></p> |
1039 | 40 | </form> | 40 | </form> |
1040 | 41 | 41 | ||
1041 | 42 | 42 | ||
1042 | === modified file 'src/webui/templates/launchpad/base.html' | |||
1043 | --- src/webui/templates/launchpad/base.html 2013-05-15 08:30:15 +0000 | |||
1044 | +++ src/webui/templates/launchpad/base.html 2013-06-13 00:15:30 +0000 | |||
1045 | @@ -9,7 +9,7 @@ | |||
1046 | 9 | {% load i18n %} | 9 | {% load i18n %} |
1047 | 10 | {% load static_url %} | 10 | {% load static_url %} |
1048 | 11 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr" {% block html_extra %}{% endblock %}> | 11 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr" {% block html_extra %}{% endblock %}> |
1050 | 12 | <head> | 12 | <head data-qa-id="brand_launchpad"> |
1051 | 13 | <title>{% block title %}{% trans "Log in" %}{% endblock %}</title> | 13 | <title>{% block title %}{% trans "Log in" %}{% endblock %}</title> |
1052 | 14 | <link rel="shortcut icon" href="{{ STATIC_URL }}identityprovider/launchpad/favicon.png" /> | 14 | <link rel="shortcut icon" href="{{ STATIC_URL }}identityprovider/launchpad/favicon.png" /> |
1053 | 15 | <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}identityprovider/launchpad/styles.css"/> | 15 | <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}identityprovider/launchpad/styles.css"/> |
1054 | @@ -38,7 +38,7 @@ | |||
1055 | 38 | {% if user.is_authenticated %} | 38 | {% if user.is_authenticated %} |
1056 | 39 | {% include "widgets/launchpad/logout-button.html" %} | 39 | {% include "widgets/launchpad/logout-button.html" %} |
1057 | 40 | {% else %} | 40 | {% else %} |
1059 | 41 | <a href="/+login">{% trans "Log in or create account" %}</a> | 41 | {% include "widgets/launchpad/login-button.html" %} |
1060 | 42 | {% endif %} | 42 | {% endif %} |
1061 | 43 | </div> | 43 | </div> |
1062 | 44 | </div> | 44 | </div> |
1063 | @@ -71,12 +71,6 @@ | |||
1064 | 71 | {% endfor %} | 71 | {% endfor %} |
1065 | 72 | {% endif %} | 72 | {% endif %} |
1066 | 73 | 73 | ||
1067 | 74 | {% if readonly %} | ||
1068 | 75 | <div class="message"> | ||
1069 | 76 | {% blocktrans %}We are currently in read-only mode. That means that at the moment you can't create new accounts, update your personal information, or request password reminders.{% endblocktrans %} | ||
1070 | 77 | </div> | ||
1071 | 78 | {% endif %} | ||
1072 | 79 | |||
1073 | 80 | <div id="{% block content_id %}box{% endblock %}"> | 74 | <div id="{% block content_id %}box{% endblock %}"> |
1074 | 81 | {% block content %}{% endblock %} | 75 | {% block content %}{% endblock %} |
1075 | 82 | </div> | 76 | </div> |
1076 | 83 | 77 | ||
1077 | === modified file 'src/webui/templates/launchpad/registration/confirm_new_account.html' | |||
1078 | --- src/webui/templates/launchpad/registration/confirm_new_account.html 2013-05-15 07:25:13 +0000 | |||
1079 | +++ src/webui/templates/launchpad/registration/confirm_new_account.html 2013-06-13 00:15:30 +0000 | |||
1080 | @@ -6,6 +6,8 @@ | |||
1081 | 6 | GNU Affero General Public License version 3 (see the file LICENSE). | 6 | GNU Affero General Public License version 3 (see the file LICENSE). |
1082 | 7 | {% endcomment %} | 7 | {% endcomment %} |
1083 | 8 | 8 | ||
1084 | 9 | {% block html_extra %}data-qa-id="confirm_new_account"{% endblock %} | ||
1085 | 10 | |||
1086 | 9 | {% block title %}{% trans "Complete creating your account" %}{% endblock %} | 11 | {% block title %}{% trans "Complete creating your account" %}{% endblock %} |
1087 | 10 | 12 | ||
1088 | 11 | {% block extra_header_top %} | 13 | {% block extra_header_top %} |
1089 | @@ -15,7 +17,7 @@ | |||
1090 | 15 | {% endblock %} | 17 | {% endblock %} |
1091 | 16 | 18 | ||
1092 | 17 | {% block text_title %} | 19 | {% block text_title %} |
1094 | 18 | <h1 class="main" data-qa-id="confirm_new_account">{% blocktrans %}Complete creating your {{ brand_description }} account{% endblocktrans %}</h1> | 20 | <h1 class="main">{% blocktrans %}Complete creating your {{ brand_description }} account{% endblocktrans %}</h1> |
1095 | 19 | {% endblock %} | 21 | {% endblock %} |
1096 | 20 | 22 | ||
1097 | 21 | {% block content_id %}auth{% endblock %} | 23 | {% block content_id %}auth{% endblock %} |
1098 | @@ -26,7 +28,9 @@ | |||
1099 | 26 | <form id="login-form" class="longfields" method="post" name="loginform"> | 28 | <form id="login-form" class="longfields" method="post" name="loginform"> |
1100 | 27 | {% csrf_token %} | 29 | {% csrf_token %} |
1101 | 28 | <p class="actions"> | 30 | <p class="actions"> |
1103 | 29 | <button type="submit" name="continue" class="btn"><span><span>{% trans "Complete account creation" %}</span></span></button> | 31 | <button type="submit" name="continue" class="btn" data-qa-id="complete_account_creation"> |
1104 | 32 | <span><span>{% trans "Complete account creation" %}</span></span> | ||
1105 | 33 | </button> | ||
1106 | 30 | {% trans "or" %} | 34 | {% trans "or" %} |
1107 | 31 | {% include "common/cancel_link.html" %} | 35 | {% include "common/cancel_link.html" %} |
1108 | 32 | </p> | 36 | </p> |
1109 | 33 | 37 | ||
1110 | === modified file 'src/webui/templates/launchpad/registration/email_sent.html' | |||
1111 | --- src/webui/templates/launchpad/registration/email_sent.html 2013-04-17 13:23:35 +0000 | |||
1112 | +++ src/webui/templates/launchpad/registration/email_sent.html 2013-06-13 00:15:30 +0000 | |||
1113 | @@ -7,6 +7,8 @@ | |||
1114 | 7 | GNU Affero General Public License version 3 (see the file LICENSE). | 7 | GNU Affero General Public License version 3 (see the file LICENSE). |
1115 | 8 | {% endcomment %} | 8 | {% endcomment %} |
1116 | 9 | 9 | ||
1117 | 10 | {% block html_extra %}data-qa-id="forgot_password_step_2"{% endblock %} | ||
1118 | 11 | |||
1119 | 10 | {% block title %}{{ email_heading }}{% endblock %} | 12 | {% block title %}{{ email_heading }}{% endblock %} |
1120 | 11 | 13 | ||
1121 | 12 | {% block text_title %} | 14 | {% block text_title %} |
1122 | @@ -36,7 +38,7 @@ | |||
1123 | 36 | <input id="confirmation_code" name="confirmation_code" type="text" class="textType" /> | 38 | <input id="confirmation_code" name="confirmation_code" type="text" class="textType" /> |
1124 | 37 | <input type="hidden" name="email" value="{{ email }}" /> | 39 | <input type="hidden" name="email" value="{{ email }}" /> |
1125 | 38 | </p> | 40 | </p> |
1127 | 39 | <p><button id="submit" type="submit" class="btn" disabled="true"> | 41 | <p><button id="submit" type="submit" class="btn" data-qa-id="confirm_email_from_code"> |
1128 | 40 | <span><span>{% trans "Confirm" %}</span></span> | 42 | <span><span>{% trans "Confirm" %}</span></span> |
1129 | 41 | </button> | 43 | </button> |
1130 | 42 | {% url 'account-emails' as emails_url %} | 44 | {% url 'account-emails' as emails_url %} |
1131 | 43 | 45 | ||
1132 | === modified file 'src/webui/templates/launchpad/registration/forgot_password.html' | |||
1133 | --- src/webui/templates/launchpad/registration/forgot_password.html 2013-02-27 20:45:16 +0000 | |||
1134 | +++ src/webui/templates/launchpad/registration/forgot_password.html 2013-06-13 00:15:30 +0000 | |||
1135 | @@ -6,6 +6,8 @@ | |||
1136 | 6 | GNU Affero General Public License version 3 (see the file LICENSE). | 6 | GNU Affero General Public License version 3 (see the file LICENSE). |
1137 | 7 | {% endcomment %} | 7 | {% endcomment %} |
1138 | 8 | 8 | ||
1139 | 9 | {% block html_extra %}data-qa-id="forgot_password_step_1"{% endblock %} | ||
1140 | 10 | |||
1141 | 9 | {% block title %}{% trans "Reset password" %}{% endblock %} | 11 | {% block title %}{% trans "Reset password" %}{% endblock %} |
1142 | 10 | 12 | ||
1143 | 11 | {% block text_title %} | 13 | {% block text_title %} |
1144 | @@ -32,7 +34,9 @@ | |||
1145 | 32 | </span> | 34 | </span> |
1146 | 33 | </p> | 35 | </p> |
1147 | 34 | <p class="actions"> | 36 | <p class="actions"> |
1149 | 35 | <button type="submit" name="continue" class="btn"><span><span>{% trans "Send instructions" %}</span></span></button> | 37 | <button type="submit" name="continue" class="btn" data-qa-id="send_password_reset_token"> |
1150 | 38 | <span><span>{% trans "Send instructions" %}</span></span> | ||
1151 | 39 | </button> | ||
1152 | 36 | {% trans "or" %} | 40 | {% trans "or" %} |
1153 | 37 | {% include "common/cancel_link.html" %} | 41 | {% include "common/cancel_link.html" %} |
1154 | 38 | </p> | 42 | </p> |
1155 | 39 | 43 | ||
1156 | === modified file 'src/webui/templates/launchpad/registration/login.html' | |||
1157 | --- src/webui/templates/launchpad/registration/login.html 2013-06-05 17:09:49 +0000 | |||
1158 | +++ src/webui/templates/launchpad/registration/login.html 2013-06-13 00:15:30 +0000 | |||
1159 | @@ -74,7 +74,9 @@ | |||
1160 | 74 | {% endif %} | 74 | {% endif %} |
1161 | 75 | <div class="actions"> | 75 | <div class="actions"> |
1162 | 76 | {% if next %}<input type="hidden" name="next" value="{{ next }}" />{% endif %} | 76 | {% if next %}<input type="hidden" name="next" value="{{ next }}" />{% endif %} |
1164 | 77 | <button type="submit" class="btn" name="continue" data-qa-id="login_button"><span><span>{% trans "Log in" %}</span></span></button> | 77 | <button type="submit" class="btn" name="continue" data-qa-id="login_button"> |
1165 | 78 | <span><span>{% trans "Log in" %}</span></span> | ||
1166 | 79 | </button> | ||
1167 | 78 | {% if token %}{% trans "or" %} | 80 | {% if token %}{% trans "or" %} |
1168 | 79 | {% include "common/cancel_link.html" %}{% endif %} | 81 | {% include "common/cancel_link.html" %}{% endif %} |
1169 | 80 | </div> | 82 | </div> |
1170 | 81 | 83 | ||
1171 | === modified file 'src/webui/templates/launchpad/registration/logout.html' | |||
1172 | --- src/webui/templates/launchpad/registration/logout.html 2013-02-27 20:45:16 +0000 | |||
1173 | +++ src/webui/templates/launchpad/registration/logout.html 2013-06-13 00:15:30 +0000 | |||
1174 | @@ -6,6 +6,8 @@ | |||
1175 | 6 | GNU Affero General Public License version 3 (see the file LICENSE). | 6 | GNU Affero General Public License version 3 (see the file LICENSE). |
1176 | 7 | {% endcomment %} | 7 | {% endcomment %} |
1177 | 8 | 8 | ||
1178 | 9 | {% block html_extra %}data-qa-id="logout"{% endblock %} | ||
1179 | 10 | |||
1180 | 9 | {% block title %}{% trans "You have been logged out" %}{% endblock %} | 11 | {% block title %}{% trans "You have been logged out" %}{% endblock %} |
1181 | 10 | 12 | ||
1182 | 11 | {% block text_title %} | 13 | {% block text_title %} |
1183 | 12 | 14 | ||
1184 | === modified file 'src/webui/templates/launchpad/registration/new_account.html' | |||
1185 | --- src/webui/templates/launchpad/registration/new_account.html 2013-05-03 15:30:36 +0000 | |||
1186 | +++ src/webui/templates/launchpad/registration/new_account.html 2013-06-13 00:15:30 +0000 | |||
1187 | @@ -8,6 +8,8 @@ | |||
1188 | 8 | LICENSE). | 8 | LICENSE). |
1189 | 9 | {% endcomment %} | 9 | {% endcomment %} |
1190 | 10 | 10 | ||
1191 | 11 | {% block html_extra %}data-qa-id="new_account"{% endblock %} | ||
1192 | 12 | |||
1193 | 11 | {% block title %}{% trans "Create account" %}{% endblock %} | 13 | {% block title %}{% trans "Create account" %}{% endblock %} |
1194 | 12 | 14 | ||
1195 | 13 | {% block extra_header_top %} | 15 | {% block extra_header_top %} |
1196 | @@ -75,7 +77,9 @@ | |||
1197 | 75 | <input type="hidden" name="old" value="old"> | 77 | <input type="hidden" name="old" value="old"> |
1198 | 76 | {% endif %} | 78 | {% endif %} |
1199 | 77 | 79 | ||
1201 | 78 | <button type="submit" class="btn" name="continue"><span><span>{% trans "Send instructions" %}</span></span></button> | 80 | <button type="submit" class="btn" name="continue" data-qa-id="register_button"> |
1202 | 81 | <span><span>{% trans "Send instructions" %}</span></span> | ||
1203 | 82 | </button> | ||
1204 | 79 | {% trans "or" %} | 83 | {% trans "or" %} |
1205 | 80 | {% include "common/cancel_link.html" %} | 84 | {% include "common/cancel_link.html" %} |
1206 | 81 | </p> | 85 | </p> |
1207 | 82 | 86 | ||
1208 | === modified file 'src/webui/templates/launchpad/registration/reset_password.html' | |||
1209 | --- src/webui/templates/launchpad/registration/reset_password.html 2013-04-10 13:32:29 +0000 | |||
1210 | +++ src/webui/templates/launchpad/registration/reset_password.html 2013-06-13 00:15:30 +0000 | |||
1211 | @@ -6,6 +6,8 @@ | |||
1212 | 6 | GNU Affero General Public License version 3 (see the file LICENSE). | 6 | GNU Affero General Public License version 3 (see the file LICENSE). |
1213 | 7 | {% endcomment %} | 7 | {% endcomment %} |
1214 | 8 | 8 | ||
1215 | 9 | {% block html_extra %}data-qa-id="reset_password"{% endblock %} | ||
1216 | 10 | |||
1217 | 9 | {% block title %}{% trans "Reset password" %}{% endblock %} | 11 | {% block title %}{% trans "Reset password" %}{% endblock %} |
1218 | 10 | 12 | ||
1219 | 11 | {% block extra_header_top %} | 13 | {% block extra_header_top %} |
1220 | @@ -61,7 +63,7 @@ | |||
1221 | 61 | {% csrf_token %} | 63 | {% csrf_token %} |
1222 | 62 | {% include "widgets/passwords.html" %} | 64 | {% include "widgets/passwords.html" %} |
1223 | 63 | <p class="actions"> | 65 | <p class="actions"> |
1225 | 64 | <button type="submit" name="continue" class="btn"> | 66 | <button type="submit" name="continue" class="btn" data-qa-id="reset_password"> |
1226 | 65 | <span><span>{% trans "Reset password" %}</span></span> | 67 | <span><span>{% trans "Reset password" %}</span></span> |
1227 | 66 | </button> | 68 | </button> |
1228 | 67 | {% trans "or" %} | 69 | {% trans "or" %} |
1229 | 68 | 70 | ||
1230 | === modified file 'src/webui/templates/launchpad/registration/twofactor.html' | |||
1231 | --- src/webui/templates/launchpad/registration/twofactor.html 2013-04-17 13:23:35 +0000 | |||
1232 | +++ src/webui/templates/launchpad/registration/twofactor.html 2013-06-13 00:15:30 +0000 | |||
1233 | @@ -3,6 +3,8 @@ | |||
1234 | 3 | {% load i18n %} | 3 | {% load i18n %} |
1235 | 4 | {% load static_url %} | 4 | {% load static_url %} |
1236 | 5 | 5 | ||
1237 | 6 | {% block html_extra %}data-qa-id="two_factor_verify"{% endblock %} | ||
1238 | 7 | |||
1239 | 6 | {% block content %} | 8 | {% block content %} |
1240 | 7 | <div id="mainbar"> | 9 | <div id="mainbar"> |
1241 | 8 | <div id="auth"> | 10 | <div id="auth"> |
1242 | @@ -41,7 +43,9 @@ | |||
1243 | 41 | 43 | ||
1244 | 42 | <div class="actions"> | 44 | <div class="actions"> |
1245 | 43 | {% if next %}<input type="hidden" name="next" value="{{ next }}" />{% endif %} | 45 | {% if next %}<input type="hidden" name="next" value="{{ next }}" />{% endif %} |
1247 | 44 | <button type="submit" class="btn" name="continue"><span><span>{% trans "Authenticate" %}</span></span></button> | 46 | <button type="submit" class="btn" name="continue" data-qa-id="auth_button"> |
1248 | 47 | <span><span>{% trans "Authenticate" %}</span></span> | ||
1249 | 48 | </button> | ||
1250 | 45 | {% if token %}{% trans "or" %} | 49 | {% if token %}{% trans "or" %} |
1251 | 46 | {% include "common/cancel_link.html" %}{% endif %} | 50 | {% include "common/cancel_link.html" %}{% endif %} |
1252 | 47 | </div> | 51 | </div> |
1253 | 48 | 52 | ||
1254 | === modified file 'src/webui/templates/menu_item.html' | |||
1255 | --- src/webui/templates/menu_item.html 2012-12-04 18:51:42 +0000 | |||
1256 | +++ src/webui/templates/menu_item.html 2013-06-13 00:15:30 +0000 | |||
1257 | @@ -3,10 +3,16 @@ | |||
1258 | 3 | GNU Affero General Public License version 3 (see the file LICENSE). | 3 | GNU Affero General Public License version 3 (see the file LICENSE). |
1259 | 4 | {% endcomment %} | 4 | {% endcomment %} |
1260 | 5 | 5 | ||
1262 | 6 | <li id="{{ section }}"> | 6 | <li id="{{ section }}" data-qa-id="{{ section }}"> |
1263 | 7 | {% ifequal section current_section %} | 7 | {% ifequal section current_section %} |
1265 | 8 | <span class="active">{{ label }}</span> | 8 | <span class="active" {% if extra_qa_data_id %}data-qa-id="{{ extra_qa_data_id }}"{% endif %}> |
1266 | 9 | {{ label }} | ||
1267 | 10 | </span> | ||
1268 | 9 | {% else %} | 11 | {% else %} |
1270 | 10 | <a id="{{ section }}-link" href="{{ link }}">{{ label }}</a> | 12 | <a id="{{ section }}-link" data-qa-id="{{ section }}_link" href="{{ link }}"> |
1271 | 13 | <span {% if extra_qa_data_id %}data-qa-id="{{ extra_qa_data_id }}"{% endif %}> | ||
1272 | 14 | {{ label }} | ||
1273 | 15 | </span> | ||
1274 | 16 | </a> | ||
1275 | 11 | {% endifequal %} | 17 | {% endifequal %} |
1276 | 12 | </li> | 18 | </li> |
1277 | 13 | 19 | ||
1278 | === modified file 'src/webui/templates/select_language.html' | |||
1279 | --- src/webui/templates/select_language.html 2013-04-10 13:32:29 +0000 | |||
1280 | +++ src/webui/templates/select_language.html 2013-06-13 00:15:30 +0000 | |||
1281 | @@ -22,6 +22,7 @@ | |||
1282 | 22 | <input type="hidden" name="next" value="{{next}}" /> | 22 | <input type="hidden" name="next" value="{{next}}" /> |
1283 | 23 | <input type="hidden" name="language" value="{{lang.0}}" /> | 23 | <input type="hidden" name="language" value="{{lang.0}}" /> |
1284 | 24 | <div><input type="submit" name="submit" value="{{lang.1|capfirst}}" | 24 | <div><input type="submit" name="submit" value="{{lang.1|capfirst}}" |
1285 | 25 | data-qa-id="choose_language" | ||
1286 | 25 | style="background: transparent url('{{ STATIC_URL }}identityprovider/flags/{{lang.0}}.png') center left no-repeat" /> | 26 | style="background: transparent url('{{ STATIC_URL }}identityprovider/flags/{{lang.0}}.png') center left no-repeat" /> |
1287 | 26 | </div> | 27 | </div> |
1288 | 27 | </form> | 28 | </form> |
1289 | 28 | 29 | ||
1290 | === modified file 'src/webui/templates/ubuntu/base.html' | |||
1291 | --- src/webui/templates/ubuntu/base.html 2013-05-15 07:47:10 +0000 | |||
1292 | +++ src/webui/templates/ubuntu/base.html 2013-06-13 00:15:30 +0000 | |||
1293 | @@ -9,7 +9,7 @@ | |||
1294 | 9 | {% load i18n %} | 9 | {% load i18n %} |
1295 | 10 | {% load static_url %} | 10 | {% load static_url %} |
1296 | 11 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr" {% block html_extra %}{% endblock %}> | 11 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr" {% block html_extra %}{% endblock %}> |
1298 | 12 | <head> | 12 | <head data-qa-id="brand_ubuntu"> |
1299 | 13 | <title>{% block title %}{% trans "Log in" %}{% endblock %}</title> | 13 | <title>{% block title %}{% trans "Log in" %}{% endblock %}</title> |
1300 | 14 | <link rel="icon" type="image/vnd.microsoft.icon" href="{{ STATIC_URL }}identityprovider/ubuntu/favicon.ico" /> | 14 | <link rel="icon" type="image/vnd.microsoft.icon" href="{{ STATIC_URL }}identityprovider/ubuntu/favicon.ico" /> |
1301 | 15 | <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}identityprovider/reset.css"/> | 15 | <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}identityprovider/reset.css"/> |
1302 | @@ -46,7 +46,7 @@ | |||
1303 | 46 | {% block extra_header %}{% endblock %} | 46 | {% block extra_header %}{% endblock %} |
1304 | 47 | <meta name="viewport" content="width=400" /> | 47 | <meta name="viewport" content="width=400" /> |
1305 | 48 | </head> | 48 | </head> |
1307 | 49 | <body {% block bodyclass %}class="onecol"{% endblock %} {% if embedded %}onload="blank_targets()"{% endif %}> | 49 | <body data-qa-id="{% block qaid %}{% endblock %}" {% block bodyclass %}class="onecol"{% endblock %} {% if embedded %}onload="blank_targets()"{% endif %}> |
1308 | 50 | <div id="container"> | 50 | <div id="container"> |
1309 | 51 | <div id="container-inner"> | 51 | <div id="container-inner"> |
1310 | 52 | <div id="header"> | 52 | <div id="header"> |
1311 | 53 | 53 | ||
1312 | === modified file 'src/webui/templates/ubuntu/registration/confirm_new_account.html' | |||
1313 | --- src/webui/templates/ubuntu/registration/confirm_new_account.html 2013-05-15 07:47:10 +0000 | |||
1314 | +++ src/webui/templates/ubuntu/registration/confirm_new_account.html 2013-06-13 00:15:30 +0000 | |||
1315 | @@ -28,7 +28,9 @@ | |||
1316 | 28 | <form id="login-form" class="longfields" method="post" name="loginform"> | 28 | <form id="login-form" class="longfields" method="post" name="loginform"> |
1317 | 29 | {% csrf_token %} | 29 | {% csrf_token %} |
1318 | 30 | <p class="actions"> | 30 | <p class="actions"> |
1320 | 31 | <button type="submit" name="continue" class="btn"><span><span>{% trans "Complete account creation" %}</span></span></button> | 31 | <button type="submit" name="continue" class="btn" data-qa-id="complete_account_creation"> |
1321 | 32 | <span><span>{% trans "Complete account creation" %}</span></span> | ||
1322 | 33 | </button> | ||
1323 | 32 | {% trans "or" %} | 34 | {% trans "or" %} |
1324 | 33 | {% include "common/cancel_link.html" %} | 35 | {% include "common/cancel_link.html" %} |
1325 | 34 | </p> | 36 | </p> |
1326 | 35 | 37 | ||
1327 | === modified file 'src/webui/templates/ubuntu/registration/email_sent.html' | |||
1328 | --- src/webui/templates/ubuntu/registration/email_sent.html 2013-05-15 07:52:08 +0000 | |||
1329 | +++ src/webui/templates/ubuntu/registration/email_sent.html 2013-06-13 00:15:30 +0000 | |||
1330 | @@ -38,7 +38,7 @@ | |||
1331 | 38 | <input id="confirmation_code" name="confirmation_code" type="text" class="textType" /> | 38 | <input id="confirmation_code" name="confirmation_code" type="text" class="textType" /> |
1332 | 39 | <input type="hidden" name="email" value="{{ email }}" /> | 39 | <input type="hidden" name="email" value="{{ email }}" /> |
1333 | 40 | </p> | 40 | </p> |
1335 | 41 | <p><button id="submit" type="submit" class="btn" disabled="true"> | 41 | <p><button id="submit" type="submit" class="btn" data-qa-id="confirm_email_from_code"> |
1336 | 42 | <span><span>{% trans "Confirm" %}</span></span> | 42 | <span><span>{% trans "Confirm" %}</span></span> |
1337 | 43 | </button> | 43 | </button> |
1338 | 44 | {% url 'account-emails' as emails_url %} | 44 | {% url 'account-emails' as emails_url %} |
1339 | 45 | 45 | ||
1340 | === modified file 'src/webui/templates/ubuntu/registration/forgot_password.html' | |||
1341 | --- src/webui/templates/ubuntu/registration/forgot_password.html 2013-05-15 07:47:10 +0000 | |||
1342 | +++ src/webui/templates/ubuntu/registration/forgot_password.html 2013-06-13 00:15:30 +0000 | |||
1343 | @@ -34,10 +34,11 @@ | |||
1344 | 34 | </span> | 34 | </span> |
1345 | 35 | </p> | 35 | </p> |
1346 | 36 | <p class="actions"> | 36 | <p class="actions"> |
1348 | 37 | <button type="submit" name="continue" class="btn"><span><span>{% trans "Send instructions" %}</span></span></button> | 37 | <button type="submit" name="continue" class="btn" data-qa-id="send_password_reset_token"> |
1349 | 38 | <span><span>{% trans "Send instructions" %}</span></span> | ||
1350 | 39 | </button> | ||
1351 | 38 | {% trans "or" %} | 40 | {% trans "or" %} |
1352 | 39 | {% include "common/cancel_link.html" %} | 41 | {% include "common/cancel_link.html" %} |
1353 | 40 | </p> | 42 | </p> |
1354 | 41 | </form> | 43 | </form> |
1355 | 42 | |||
1356 | 43 | {% endblock %} | 44 | {% endblock %} |
1357 | 44 | 45 | ||
1358 | === modified file 'src/webui/templates/ubuntu/registration/login.html' | |||
1359 | --- src/webui/templates/ubuntu/registration/login.html 2013-06-05 17:09:49 +0000 | |||
1360 | +++ src/webui/templates/ubuntu/registration/login.html 2013-06-13 00:15:30 +0000 | |||
1361 | @@ -77,7 +77,9 @@ | |||
1362 | 77 | 77 | ||
1363 | 78 | <div class="actions"> | 78 | <div class="actions"> |
1364 | 79 | {% if next %}<input type="hidden" name="next" value="{{ next }}" />{% endif %} | 79 | {% if next %}<input type="hidden" name="next" value="{{ next }}" />{% endif %} |
1366 | 80 | <button type="submit" class="btn" name="continue" data-qa-id="login_button"><span><span>{% trans "Log in" %}</span></span></button> | 80 | <button type="submit" class="btn" name="continue" data-qa-id="login_button"> |
1367 | 81 | <span><span>{% trans "Log in" %}</span></span> | ||
1368 | 82 | </button> | ||
1369 | 81 | {% if token %}{% trans "or" %} | 83 | {% if token %}{% trans "or" %} |
1370 | 82 | {% include "common/cancel_link.html" %}{% endif %} | 84 | {% include "common/cancel_link.html" %}{% endif %} |
1371 | 83 | </div> | 85 | </div> |
1372 | 84 | 86 | ||
1373 | === modified file 'src/webui/templates/ubuntu/registration/new_account.html' | |||
1374 | --- src/webui/templates/ubuntu/registration/new_account.html 2013-05-15 07:52:08 +0000 | |||
1375 | +++ src/webui/templates/ubuntu/registration/new_account.html 2013-06-13 00:15:30 +0000 | |||
1376 | @@ -77,7 +77,9 @@ | |||
1377 | 77 | <input type="hidden" name="old" value="old"> | 77 | <input type="hidden" name="old" value="old"> |
1378 | 78 | {% endif %} | 78 | {% endif %} |
1379 | 79 | 79 | ||
1381 | 80 | <button type="submit" class="btn" name="continue"><span><span>{% trans "Send instructions" %}</span></span></button> | 80 | <button type="submit" class="btn" name="continue" data-qa-id="register_button"> |
1382 | 81 | <span><span>{% trans "Send instructions" %}</span></span> | ||
1383 | 82 | </button> | ||
1384 | 81 | {% trans "or" %} | 83 | {% trans "or" %} |
1385 | 82 | {% include "common/cancel_link.html" %} | 84 | {% include "common/cancel_link.html" %} |
1386 | 83 | </p> | 85 | </p> |
1387 | @@ -85,5 +87,4 @@ | |||
1388 | 85 | <script type="text/javascript"> | 87 | <script type="text/javascript"> |
1389 | 86 | document.newaccountform.displayname.focus(); | 88 | document.newaccountform.displayname.focus(); |
1390 | 87 | </script> | 89 | </script> |
1391 | 88 | |||
1392 | 89 | {% endblock %} | 90 | {% endblock %} |
1393 | 90 | 91 | ||
1394 | === modified file 'src/webui/templates/ubuntu/registration/reset_password.html' | |||
1395 | --- src/webui/templates/ubuntu/registration/reset_password.html 2013-05-15 07:47:10 +0000 | |||
1396 | +++ src/webui/templates/ubuntu/registration/reset_password.html 2013-06-13 00:15:30 +0000 | |||
1397 | @@ -63,7 +63,7 @@ | |||
1398 | 63 | {% csrf_token %} | 63 | {% csrf_token %} |
1399 | 64 | {% include "widgets/passwords.html" %} | 64 | {% include "widgets/passwords.html" %} |
1400 | 65 | <p class="actions"> | 65 | <p class="actions"> |
1402 | 66 | <button type="submit" name="continue" class="btn"> | 66 | <button type="submit" name="continue" class="btn" data-qa-id="reset_password"> |
1403 | 67 | <span><span>{% trans "Reset password" %}</span></span> | 67 | <span><span>{% trans "Reset password" %}</span></span> |
1404 | 68 | </button> | 68 | </button> |
1405 | 69 | {% trans "or" %} | 69 | {% trans "or" %} |
1406 | @@ -71,5 +71,4 @@ | |||
1407 | 71 | </p> | 71 | </p> |
1408 | 72 | <div style="clear: both"> </div> | 72 | <div style="clear: both"> </div> |
1409 | 73 | </form> | 73 | </form> |
1410 | 74 | |||
1411 | 75 | {% endblock %} | 74 | {% endblock %} |
1412 | 76 | 75 | ||
1413 | === modified file 'src/webui/templates/ubuntu/registration/twofactor.html' | |||
1414 | --- src/webui/templates/ubuntu/registration/twofactor.html 2013-06-07 03:39:56 +0000 | |||
1415 | +++ src/webui/templates/ubuntu/registration/twofactor.html 2013-06-13 00:15:30 +0000 | |||
1416 | @@ -42,7 +42,9 @@ | |||
1417 | 42 | 42 | ||
1418 | 43 | <div class="actions"> | 43 | <div class="actions"> |
1419 | 44 | {% if next %}<input type="hidden" name="next" value="{{ next }}" />{% endif %} | 44 | {% if next %}<input type="hidden" name="next" value="{{ next }}" />{% endif %} |
1421 | 45 | <button type="submit" class="btn" name="continue" data-qa-id="auth_button"><span><span>{% trans "Authenticate" %}</span></span></button> | 45 | <button type="submit" class="btn" name="continue" data-qa-id="auth_button"> |
1422 | 46 | <span><span>{% trans "Authenticate" %}</span></span> | ||
1423 | 47 | </button> | ||
1424 | 46 | {% if token %}{% trans "or" %} | 48 | {% if token %}{% trans "or" %} |
1425 | 47 | {% include "common/cancel_link.html" %}{% endif %} | 49 | {% include "common/cancel_link.html" %}{% endif %} |
1426 | 48 | </div> | 50 | </div> |
1427 | 49 | 51 | ||
1428 | === modified file 'src/webui/templates/ubuntuone/account/applications.html' | |||
1429 | --- src/webui/templates/ubuntuone/account/applications.html 2013-05-15 07:52:08 +0000 | |||
1430 | +++ src/webui/templates/ubuntuone/account/applications.html 2013-06-13 00:15:30 +0000 | |||
1431 | @@ -28,13 +28,13 @@ | |||
1432 | 28 | <tbody> | 28 | <tbody> |
1433 | 29 | {% for token in tokens %} | 29 | {% for token in tokens %} |
1434 | 30 | <tr> | 30 | <tr> |
1436 | 31 | <td>{{ token.name }}</td> | 31 | <td data-qa-id="application_token">{{ token.name }}</td> |
1437 | 32 | <td class="application-date">{{ token.created_at|date:"Y/m/d" }}</td> | 32 | <td class="application-date">{{ token.created_at|date:"Y/m/d" }}</td> |
1438 | 33 | <td class="actions"> | 33 | <td class="actions"> |
1439 | 34 | <form action="{% url 'applications' %}" method="post"> | 34 | <form action="{% url 'applications' %}" method="post"> |
1440 | 35 | {% csrf_token %} | 35 | {% csrf_token %} |
1441 | 36 | <input type="hidden" name="token_id" value="{{ token.token }}" /> | 36 | <input type="hidden" name="token_id" value="{{ token.token }}" /> |
1443 | 37 | <button type="submit" class="cta btn-sm secondary" name="Delete"> | 37 | <button type="submit" class="cta btn-sm secondary" name="Delete" data-qa-id="delete_application"> |
1444 | 38 | <span>{% trans "Delete" %}</span> | 38 | <span>{% trans "Delete" %}</span> |
1445 | 39 | </button> | 39 | </button> |
1446 | 40 | </form> | 40 | </form> |
1447 | @@ -44,8 +44,6 @@ | |||
1448 | 44 | </tbody> | 44 | </tbody> |
1449 | 45 | </table> | 45 | </table> |
1450 | 46 | </section> | 46 | </section> |
1451 | 47 | |||
1452 | 48 | |||
1453 | 49 | {% else %} | 47 | {% else %} |
1454 | 50 | <p>{% trans "You don't have any applications associated with this account." %}</p> | 48 | <p>{% trans "You don't have any applications associated with this account." %}</p> |
1455 | 51 | {% endif %} | 49 | {% endif %} |
1456 | 52 | 50 | ||
1457 | === modified file 'src/webui/templates/ubuntuone/account/confirm_new_email.html' | |||
1458 | --- src/webui/templates/ubuntuone/account/confirm_new_email.html 2013-05-31 03:30:26 +0000 | |||
1459 | +++ src/webui/templates/ubuntuone/account/confirm_new_email.html 2013-06-13 00:15:30 +0000 | |||
1460 | @@ -22,10 +22,10 @@ | |||
1461 | 22 | {% csrf_token %} | 22 | {% csrf_token %} |
1462 | 23 | <p> | 23 | <p> |
1463 | 24 | <input type="hidden" name="post" value="yes" /> | 24 | <input type="hidden" name="post" value="yes" /> |
1465 | 25 | <button type="submit" name="continue" class="btn cta"> | 25 | <button type="submit" name="continue" class="btn cta" data-qa-id="confirm_email_validation"> |
1466 | 26 | <span>{% trans "Yes, I'm sure" %}</span> | 26 | <span>{% trans "Yes, I'm sure" %}</span> |
1467 | 27 | </button> | 27 | </button> |
1469 | 28 | <a class="cta secondary" href="{% if token %}/{{ token }}{% endif %}/">{% trans "Cancel" %}</a> | 28 | <a class="cta secondary" href="{% if token %}/{{ token }}{% endif %}/" data-qa-id="cancel_email_validation">{% trans "Cancel" %}</a> |
1470 | 29 | </p> | 29 | </p> |
1471 | 30 | </form> | 30 | </form> |
1472 | 31 | </div> | 31 | </div> |
1473 | 32 | 32 | ||
1474 | === modified file 'src/webui/templates/ubuntuone/account/delete_email.html' | |||
1475 | --- src/webui/templates/ubuntuone/account/delete_email.html 2013-05-31 03:13:32 +0000 | |||
1476 | +++ src/webui/templates/ubuntuone/account/delete_email.html 2013-06-13 00:15:30 +0000 | |||
1477 | @@ -24,7 +24,9 @@ | |||
1478 | 24 | <form action="" method="POST"> | 24 | <form action="" method="POST"> |
1479 | 25 | {% csrf_token %} | 25 | {% csrf_token %} |
1480 | 26 | <p> | 26 | <p> |
1482 | 27 | <button type="submit" class="cta" name="delete"><span>{% trans "Yes, delete" %}</span></button> | 27 | <button type="submit" class="btn cta" name="delete" data-qa-id="confirm_delete_email"> |
1483 | 28 | <span>{% trans "Yes, delete" %}</span> | ||
1484 | 29 | </button> | ||
1485 | 28 | {% include "common/cancel_link.html" %} | 30 | {% include "common/cancel_link.html" %} |
1486 | 29 | </p> | 31 | </p> |
1487 | 30 | </form> | 32 | </form> |
1488 | 31 | 33 | ||
1489 | === modified file 'src/webui/templates/ubuntuone/account/edit.html' | |||
1490 | --- src/webui/templates/ubuntuone/account/edit.html 2013-05-30 09:21:29 +0000 | |||
1491 | +++ src/webui/templates/ubuntuone/account/edit.html 2013-06-13 00:15:30 +0000 | |||
1492 | @@ -118,7 +118,9 @@ | |||
1493 | 118 | 118 | ||
1494 | 119 | <p class="actions"> | 119 | <p class="actions"> |
1495 | 120 | {% if not readonly %} | 120 | {% if not readonly %} |
1497 | 121 | <button type="submit" class="btn cta" name="update"><span>{% trans "Save changes" %}</span></button> | 121 | <button type="submit" class="btn cta" name="update" data-qa-id="update_preferences"> |
1498 | 122 | <span>{% trans "Save changes" %}</span> | ||
1499 | 123 | </button> | ||
1500 | 122 | {% endif %} | 124 | {% endif %} |
1501 | 123 | {% if token %} | 125 | {% if token %} |
1502 | 124 | {% trans "or" %} | 126 | {% trans "or" %} |
1503 | 125 | 127 | ||
1504 | === modified file 'src/webui/templates/ubuntuone/account/emails.html' | |||
1505 | --- src/webui/templates/ubuntuone/account/emails.html 2013-05-15 11:07:23 +0000 | |||
1506 | +++ src/webui/templates/ubuntuone/account/emails.html 2013-06-13 00:15:30 +0000 | |||
1507 | @@ -46,7 +46,9 @@ | |||
1508 | 46 | {% if not readonly %} | 46 | {% if not readonly %} |
1509 | 47 | <td class="actions"> | 47 | <td class="actions"> |
1510 | 48 | {% if not email.is_preferred %} | 48 | {% if not email.is_preferred %} |
1512 | 49 | <a href="./+remove-email?id={{ email.id }}" class="btn-sm" data-qa-id="remove_verified_email"><span>{% trans "Delete" %}</span></a> | 49 | <a href="./+remove-email?id={{ email.id }}" class="btn-sm" data-qa-id="remove_verified_email"> |
1513 | 50 | <span>{% trans "Delete" %}</span> | ||
1514 | 51 | </a> | ||
1515 | 50 | {% endif %} | 52 | {% endif %} |
1516 | 51 | </td> | 53 | </td> |
1517 | 52 | {% endif %} | 54 | {% endif %} |
1518 | @@ -73,7 +75,9 @@ | |||
1519 | 73 | {% if email.is_verifiable %} | 75 | {% if email.is_verifiable %} |
1520 | 74 | <a href="./+verify-email?id={{ email.id }}" data-qa-id="verify_unverified_{{ email }}" class="verify-email btn-sm"><span>{% trans "Verify" %}</span></a> | 76 | <a href="./+verify-email?id={{ email.id }}" data-qa-id="verify_unverified_{{ email }}" class="verify-email btn-sm"><span>{% trans "Verify" %}</span></a> |
1521 | 75 | {% endif %} | 77 | {% endif %} |
1523 | 76 | <a href="./+remove-email?id={{ email.id }}" data-qa-id="delete_unverified_{{ email }}" class="btn-sm"><span>{% trans "Delete" %}</span></a> | 78 | <a href="./+remove-email?id={{ email.id }}" data-qa-id="delete_unverified_{{ email }}" class="btn-sm"> |
1524 | 79 | <span>{% trans "Delete" %}</span> | ||
1525 | 80 | </a> | ||
1526 | 77 | </td> | 81 | </td> |
1527 | 78 | {% endif %} | 82 | {% endif %} |
1528 | 79 | </tr> | 83 | </tr> |
1529 | @@ -101,7 +105,7 @@ | |||
1530 | 101 | {% endif %} | 105 | {% endif %} |
1531 | 102 | </div> | 106 | </div> |
1532 | 103 | <p class="actions"> | 107 | <p class="actions"> |
1534 | 104 | <button type="submit" class="btn cta" name="continue"> | 108 | <button type="submit" class="btn cta" name="continue" data-qa-id="add_new_email"> |
1535 | 105 | <span>{% trans "Add address" %}</span> | 109 | <span>{% trans "Add address" %}</span> |
1536 | 106 | </button> | 110 | </button> |
1537 | 107 | <a class="cta secondary" href="/">{% trans "Cancel" %}</a> | 111 | <a class="cta secondary" href="/">{% trans "Cancel" %}</a> |
1538 | 108 | 112 | ||
1539 | === modified file 'src/webui/templates/ubuntuone/account/new_email.html' | |||
1540 | --- src/webui/templates/ubuntuone/account/new_email.html 2013-05-14 13:11:47 +0000 | |||
1541 | +++ src/webui/templates/ubuntuone/account/new_email.html 2013-06-13 00:15:30 +0000 | |||
1542 | @@ -25,7 +25,9 @@ | |||
1543 | 25 | {% endif %} | 25 | {% endif %} |
1544 | 26 | </p> | 26 | </p> |
1545 | 27 | <p class="actions"> | 27 | <p class="actions"> |
1547 | 28 | <button type="submit" class="btn cta" name="continue"><span>{% trans "Send instructions" %}</span></button> | 28 | <button type="submit" class="btn cta" name="continue" data-qa-id="send_instructions_confirm_email"> |
1548 | 29 | <span>{% trans "Send instructions" %}</span> | ||
1549 | 30 | </button> | ||
1550 | 29 | <a class="cta secondary" href=".">{% trans "Cancel" %}</a> | 31 | <a class="cta secondary" href=".">{% trans "Cancel" %}</a> |
1551 | 30 | </p> | 32 | </p> |
1552 | 31 | </form> | 33 | </form> |
1553 | 32 | 34 | ||
1554 | === modified file 'src/webui/templates/ubuntuone/base.html' | |||
1555 | --- src/webui/templates/ubuntuone/base.html 2013-06-10 07:32:53 +0000 | |||
1556 | +++ src/webui/templates/ubuntuone/base.html 2013-06-13 00:15:30 +0000 | |||
1557 | @@ -3,7 +3,7 @@ | |||
1558 | 3 | <!--[if IE 8 ]><html class="ie8" lang="en" dir="ltr"><![endif]--> | 3 | <!--[if IE 8 ]><html class="ie8" lang="en" dir="ltr"><![endif]--> |
1559 | 4 | <!--[if (gte IE 9)|!(IE)]><!--><html lang="en" dir="ltr" {% block html_extra %}{% endblock %}><!--<![endif]--> | 4 | <!--[if (gte IE 9)|!(IE)]><!--><html lang="en" dir="ltr" {% block html_extra %}{% endblock %}><!--<![endif]--> |
1560 | 5 | {% comment %}Copyright 2013 Canonical Ltd. This software is licensed under the GNU Affero General Public License version 3 (see the file LICENSE).{% endcomment %} | 5 | {% comment %}Copyright 2013 Canonical Ltd. This software is licensed under the GNU Affero General Public License version 3 (see the file LICENSE).{% endcomment %} |
1562 | 6 | <head> | 6 | <head data-qa-id="brand_ubuntuone"> |
1563 | 7 | <meta charset="utf-8"> | 7 | <meta charset="utf-8"> |
1564 | 8 | <meta name="viewport" content="width=device-width"> | 8 | <meta name="viewport" content="width=device-width"> |
1565 | 9 | {% block extra_meta %}{% endblock %} | 9 | {% block extra_meta %}{% endblock %} |
1566 | 10 | 10 | ||
1567 | === modified file 'src/webui/templates/ubuntuone/device/list.html' | |||
1568 | --- src/webui/templates/ubuntuone/device/list.html 2013-05-15 07:52:08 +0000 | |||
1569 | +++ src/webui/templates/ubuntuone/device/list.html 2013-06-13 00:15:30 +0000 | |||
1570 | @@ -44,14 +44,14 @@ | |||
1571 | 44 | <tr> | 44 | <tr> |
1572 | 45 | <td class="name">{{ device.name }}</td> | 45 | <td class="name">{{ device.name }}</td> |
1573 | 46 | <td class="actions"> | 46 | <td class="actions"> |
1575 | 47 | <a class="btn-sm" href="{% url 'device-rename' device.id %}"> | 47 | <a class="btn-sm" href="{% url 'device-rename' device.id %}" data-qa-id="rename_device"> |
1576 | 48 | <span>{% trans "Rename" %}</span> | 48 | <span>{% trans "Rename" %}</span> |
1577 | 49 | </a> | 49 | </a> |
1578 | 50 | <a class="btn-sm" href="{% url 'device-removal' device.id %}" data-qa-id="delete_device"> | 50 | <a class="btn-sm" href="{% url 'device-removal' device.id %}" data-qa-id="delete_device"> |
1579 | 51 | <span>{% trans "Delete" %}</span> | 51 | <span>{% trans "Delete" %}</span> |
1580 | 52 | </a> | 52 | </a> |
1581 | 53 | {% if device.device_type == 'paper' %} | 53 | {% if device.device_type == 'paper' %} |
1583 | 54 | <a class="btn-sm" href="{% url 'device-print' device.id %}"> | 54 | <a class="btn-sm" href="{% url 'device-print' device.id %}" data-qa-id="print_device"> |
1584 | 55 | <span>{% trans "View Codes" %}</span> | 55 | <span>{% trans "View Codes" %}</span> |
1585 | 56 | </a> | 56 | </a> |
1586 | 57 | {% endif %} | 57 | {% endif %} |
1587 | @@ -66,7 +66,9 @@ | |||
1588 | 66 | <p>{% trans "You don't have any authentication devices associated with this account." %}</p> | 66 | <p>{% trans "You don't have any authentication devices associated with this account." %}</p> |
1589 | 67 | {% endif %} | 67 | {% endif %} |
1590 | 68 | 68 | ||
1592 | 69 | <p><a data-qa-id="add_new_device" href="{{ device_addition_path }}">{% trans "Add a new authentication device" %}</a></p> | 69 | <p><a data-qa-id="add_new_device" href="{{ device_addition_path }}"> |
1593 | 70 | {% trans "Add a new authentication device" %} | ||
1594 | 71 | </a></p> | ||
1595 | 70 | 72 | ||
1596 | 71 | <p><a href="{% url 'device-help' %}">{% trans "Report a lost or stolen device" %}</a></p> | 73 | <p><a href="{% url 'device-help' %}">{% trans "Report a lost or stolen device" %}</a></p> |
1597 | 72 | 74 | ||
1598 | 73 | 75 | ||
1599 | === modified file 'src/webui/templates/ubuntuone/device/print-codes.html' | |||
1600 | --- src/webui/templates/ubuntuone/device/print-codes.html 2013-05-21 15:50:20 +0000 | |||
1601 | +++ src/webui/templates/ubuntuone/device/print-codes.html 2013-06-13 00:15:30 +0000 | |||
1602 | @@ -27,12 +27,14 @@ | |||
1603 | 27 | {% include 'device/code-list.html' %} | 27 | {% include 'device/code-list.html' %} |
1604 | 28 | 28 | ||
1605 | 29 | <p> | 29 | <p> |
1607 | 30 | <button class="btn cta" id="printbtn" onclick="window.print()" data-qa-id="print_btn"><span>{% trans "Print Codes" %}</span></button> | 30 | <button class="btn cta" id="printbtn" onclick="window.print()" data-qa-id="print_codes"> |
1608 | 31 | <span>{% trans "Print Codes" %}</span> | ||
1609 | 32 | </button> | ||
1610 | 33 | <a class="cta secondary" href="{% url 'device-list' %}" data-qa-id="cancel_print_codes">{% trans "Go back" %}</a> | ||
1611 | 31 | {% if generation_enabled %} | 34 | {% if generation_enabled %} |
1612 | 35 | <a class="btn cta secondary print-new-codes" href="{% url 'device-generate' device_id %}" data-qa-id="generate_codes"> | ||
1613 | 36 | <span>{% trans "Generate new codes" %}</span> | ||
1614 | 37 | </a> | ||
1615 | 32 | {% endif %} | 38 | {% endif %} |
1616 | 33 | <a class="cta secondary" href="{% url 'device-list' %}">{% trans "Go back" %}</a> | ||
1617 | 34 | <a class="cta secondary print-new-codes" href="{% url 'device-generate' device_id %}"> | ||
1618 | 35 | <span>{% trans "Generate new codes" %}</span> | ||
1619 | 36 | </a> | ||
1620 | 37 | </p> | 39 | </p> |
1621 | 38 | {% endblock %} | 40 | {% endblock %} |
1622 | 39 | 41 | ||
1623 | === modified file 'src/webui/templates/ubuntuone/device/rename.html' | |||
1624 | --- src/webui/templates/ubuntuone/device/rename.html 2013-04-24 08:09:34 +0000 | |||
1625 | +++ src/webui/templates/ubuntuone/device/rename.html 2013-06-13 00:15:30 +0000 | |||
1626 | @@ -6,6 +6,8 @@ | |||
1627 | 6 | Affero General Public License version 3 (see the file LICENSE). | 6 | Affero General Public License version 3 (see the file LICENSE). |
1628 | 7 | {% endcomment %} | 7 | {% endcomment %} |
1629 | 8 | 8 | ||
1630 | 9 | {% block html_extra %}data-qa-id="device_rename"{% endblock %} | ||
1631 | 10 | |||
1632 | 9 | {% block title %} | 11 | {% block title %} |
1633 | 10 | {% blocktrans %}{{ user }}'s devices{% endblocktrans %} | 12 | {% blocktrans %}{{ user }}'s devices{% endblocktrans %} |
1634 | 11 | {% endblock %} | 13 | {% endblock %} |
1635 | @@ -27,10 +29,10 @@ | |||
1636 | 27 | </label></p> | 29 | </label></p> |
1637 | 28 | 30 | ||
1638 | 29 | <p> | 31 | <p> |
1640 | 30 | <button class="btn cta" type="submit"> | 32 | <button class="btn cta" type="submit" data-qa-id="rename_this_device"> |
1641 | 31 | <span>{% trans "Rename" %}</span> | 33 | <span>{% trans "Rename" %}</span> |
1642 | 32 | </button> | 34 | </button> |
1644 | 33 | <a class="cta secondary" href="{{ device_list_path }}">{% trans "Cancel" %}</a> | 35 | <a class="cta secondary" href="{{ device_list_path }}" data-qa-id="cancel_renaming_this_device">{% trans "Cancel" %}</a> |
1645 | 34 | </p> | 36 | </p> |
1646 | 35 | 37 | ||
1647 | 36 | </form> | 38 | </form> |
1648 | 37 | 39 | ||
1649 | === modified file 'src/webui/templates/ubuntuone/device/types.html' | |||
1650 | --- src/webui/templates/ubuntuone/device/types.html 2013-05-22 19:42:47 +0000 | |||
1651 | +++ src/webui/templates/ubuntuone/device/types.html 2013-06-13 00:15:30 +0000 | |||
1652 | @@ -60,7 +60,7 @@ | |||
1653 | 60 | <button class="btn cta" type="submit" data-qa-id="add_device_from_type"> | 60 | <button class="btn cta" type="submit" data-qa-id="add_device_from_type"> |
1654 | 61 | <span>{% trans "Add device" %}</span> | 61 | <span>{% trans "Add device" %}</span> |
1655 | 62 | </button> | 62 | </button> |
1657 | 63 | <a class="cta secondary" data-qa-id="cancel" href="{{ device_list_path }}">{% trans "Cancel" %}</a> | 63 | <a class="cta secondary" data-qa-id="cancel_add_device_from_type" href="{{ device_list_path }}">{% trans "Cancel" %}</a> |
1658 | 64 | </p> | 64 | </p> |
1659 | 65 | <p> | 65 | <p> |
1660 | 66 | {% blocktrans with "twofactor_faq"|static_url as 2FFAQ %} | 66 | {% blocktrans with "twofactor_faq"|static_url as 2FFAQ %} |
1661 | 67 | 67 | ||
1662 | === modified file 'src/webui/templates/ubuntuone/enter_token.html' | |||
1663 | --- src/webui/templates/ubuntuone/enter_token.html 2013-05-31 03:13:32 +0000 | |||
1664 | +++ src/webui/templates/ubuntuone/enter_token.html 2013-06-13 00:15:30 +0000 | |||
1665 | @@ -35,7 +35,7 @@ | |||
1666 | 35 | {% endif %} | 35 | {% endif %} |
1667 | 36 | </p> | 36 | </p> |
1668 | 37 | 37 | ||
1670 | 38 | <p><button class="btn cta" type="submit" name="continue"> | 38 | <p><button class="btn" type="submit" name="continue" data-qa-id="confirm_enter_token"> |
1671 | 39 | <span><span>{% trans "Confirm" %}</span></span></button></p> | 39 | <span><span>{% trans "Confirm" %}</span></span></button></p> |
1672 | 40 | </form> | 40 | </form> |
1673 | 41 | 41 | ||
1674 | 42 | 42 | ||
1675 | === modified file 'src/webui/templates/ubuntuone/registration/_create_account_form.html' | |||
1676 | --- src/webui/templates/ubuntuone/registration/_create_account_form.html 2013-06-07 09:38:53 +0000 | |||
1677 | +++ src/webui/templates/ubuntuone/registration/_create_account_form.html 2013-06-13 00:15:30 +0000 | |||
1678 | @@ -66,7 +66,8 @@ | |||
1679 | 66 | <input type="hidden" name="old" value="old"> | 66 | <input type="hidden" name="old" value="old"> |
1680 | 67 | {% endif %} | 67 | {% endif %} |
1681 | 68 | 68 | ||
1683 | 69 | <button type="submit" class="btn cta" name="continue"><span>{% trans "Create account" %}</span></button> | 69 | <button type="submit" class="btn cta" name="continue" data-qa-id="register_button"> |
1684 | 70 | <span>{% trans "Create account" %}</span> | ||
1685 | 71 | </button> | ||
1686 | 70 | </div> | 72 | </div> |
1687 | 71 | </form> | 73 | </form> |
1688 | 72 | |||
1689 | 73 | 74 | ||
1690 | === modified file 'src/webui/templates/ubuntuone/registration/_login_form.html' | |||
1691 | --- src/webui/templates/ubuntuone/registration/_login_form.html 2013-06-06 12:27:42 +0000 | |||
1692 | +++ src/webui/templates/ubuntuone/registration/_login_form.html 2013-06-13 00:15:30 +0000 | |||
1693 | @@ -40,7 +40,9 @@ | |||
1694 | 40 | 40 | ||
1695 | 41 | <div class="actions"> | 41 | <div class="actions"> |
1696 | 42 | {% if next %}<input type="hidden" name="next" value="{{ next }}">{% endif %} | 42 | {% if next %}<input type="hidden" name="next" value="{{ next }}">{% endif %} |
1698 | 43 | <button type="submit" class="btn cta" name="continue" data-qa-id="login_button"><span>{% trans "Log in" %}</span></button> | 43 | <button type="submit" class="btn cta" name="continue" data-qa-id="login_button"> |
1699 | 44 | <span>{% trans "Log in" %}</span> | ||
1700 | 45 | </button> | ||
1701 | 44 | <p class="forgot-password">{% include "common/forgot_password_link.html" %}</p> | 46 | <p class="forgot-password">{% include "common/forgot_password_link.html" %}</p> |
1702 | 45 | 47 | ||
1703 | 46 | {% comment %} | 48 | {% comment %} |
1704 | 47 | 49 | ||
1705 | === modified file 'src/webui/templates/ubuntuone/registration/confirm_new_account.html' | |||
1706 | --- src/webui/templates/ubuntuone/registration/confirm_new_account.html 2013-05-15 07:47:10 +0000 | |||
1707 | +++ src/webui/templates/ubuntuone/registration/confirm_new_account.html 2013-06-13 00:15:30 +0000 | |||
1708 | @@ -22,7 +22,9 @@ | |||
1709 | 22 | <form id="login-form" class="longfields" method="post" name="loginform"> | 22 | <form id="login-form" class="longfields" method="post" name="loginform"> |
1710 | 23 | {% csrf_token %} | 23 | {% csrf_token %} |
1711 | 24 | <p class="actions"> | 24 | <p class="actions"> |
1713 | 25 | <button type="submit" name="continue" class="btn"><span><span>{% trans "Complete account creation" %}</span></span></button> | 25 | <button type="submit" name="continue" class="btn" data-qa-id="complete_account_creation"> |
1714 | 26 | <span><span>{% trans "Complete account creation" %}</span></span> | ||
1715 | 27 | </button> | ||
1716 | 26 | {% trans "or" %} | 28 | {% trans "or" %} |
1717 | 27 | {% include "common/cancel_link.html" %} | 29 | {% include "common/cancel_link.html" %} |
1718 | 28 | </p> | 30 | </p> |
1719 | 29 | 31 | ||
1720 | === modified file 'src/webui/templates/ubuntuone/registration/email_sent.html' | |||
1721 | --- src/webui/templates/ubuntuone/registration/email_sent.html 2013-05-28 16:59:50 +0000 | |||
1722 | +++ src/webui/templates/ubuntuone/registration/email_sent.html 2013-06-13 00:15:30 +0000 | |||
1723 | @@ -34,7 +34,7 @@ | |||
1724 | 34 | <input id="confirmation_code" name="confirmation_code" type="text" class="textType" /> | 34 | <input id="confirmation_code" name="confirmation_code" type="text" class="textType" /> |
1725 | 35 | <input type="hidden" name="email" value="{{ email }}" /> | 35 | <input type="hidden" name="email" value="{{ email }}" /> |
1726 | 36 | </p> | 36 | </p> |
1728 | 37 | <p><button id="submit" type="submit" class="btn cta" disabled="true"> | 37 | <p><button id="submit" type="submit" class="btn cta" data-qa-id="confirm_email_from_code"> |
1729 | 38 | <span>{% trans "Continue" %}</span> | 38 | <span>{% trans "Continue" %}</span> |
1730 | 39 | </button> | 39 | </button> |
1731 | 40 | {% url 'account-emails' as emails_url %} | 40 | {% url 'account-emails' as emails_url %} |
1732 | 41 | 41 | ||
1733 | === modified file 'src/webui/templates/ubuntuone/registration/forgot_password.html' | |||
1734 | --- src/webui/templates/ubuntuone/registration/forgot_password.html 2013-05-15 07:47:10 +0000 | |||
1735 | +++ src/webui/templates/ubuntuone/registration/forgot_password.html 2013-06-13 00:15:30 +0000 | |||
1736 | @@ -34,8 +34,9 @@ | |||
1737 | 34 | </span> | 34 | </span> |
1738 | 35 | </p> | 35 | </p> |
1739 | 36 | <p class="actions"> | 36 | <p class="actions"> |
1741 | 37 | <button type="submit" name="continue" class="btn cta"><span><span>{% trans "Continue" %}</span></span></button> | 37 | <button type="submit" name="continue" class="btn cta" data-qa-id="send_password_reset_token"> |
1742 | 38 | <span><span>{% trans "Continue" %}</span></span> | ||
1743 | 39 | </button> | ||
1744 | 38 | </p> | 40 | </p> |
1745 | 39 | </form> | 41 | </form> |
1746 | 40 | |||
1747 | 41 | {% endblock %} | 42 | {% endblock %} |
1748 | 42 | 43 | ||
1749 | === modified file 'src/webui/templates/ubuntuone/registration/reset_password.html' | |||
1750 | --- src/webui/templates/ubuntuone/registration/reset_password.html 2013-05-15 07:47:10 +0000 | |||
1751 | +++ src/webui/templates/ubuntuone/registration/reset_password.html 2013-06-13 00:15:30 +0000 | |||
1752 | @@ -18,15 +18,14 @@ | |||
1753 | 18 | {% block content_id %}auth{% endblock %} | 18 | {% block content_id %}auth{% endblock %} |
1754 | 19 | 19 | ||
1755 | 20 | {% block content %} | 20 | {% block content %} |
1757 | 21 | <p>8 characters minimum.</p> | 21 | <p>{% trans "8 characters minimum." %}</p> |
1758 | 22 | <form id="login-form" class="longfields" method="post"> | 22 | <form id="login-form" class="longfields" method="post"> |
1759 | 23 | {% csrf_token %} | 23 | {% csrf_token %} |
1760 | 24 | {% include "widgets/ubuntuone/passwords.html" with edit_account_labels=1 fields=form %} | 24 | {% include "widgets/ubuntuone/passwords.html" with edit_account_labels=1 fields=form %} |
1761 | 25 | <p class="actions"> | 25 | <p class="actions"> |
1763 | 26 | <button type="submit" name="continue" class="btn cta"> | 26 | <button type="submit" name="continue" class="btn cta" data-qa-id="reset_password"> |
1764 | 27 | <span><span>{% trans "Continue" %}</span></span> | 27 | <span><span>{% trans "Continue" %}</span></span> |
1765 | 28 | </button> | 28 | </button> |
1766 | 29 | </p> | 29 | </p> |
1767 | 30 | </form> | 30 | </form> |
1768 | 31 | |||
1769 | 32 | {% endblock %} | 31 | {% endblock %} |
1770 | 33 | 32 | ||
1771 | === modified file 'src/webui/templates/ubuntuone/registration/twofactor.html' | |||
1772 | --- src/webui/templates/ubuntuone/registration/twofactor.html 2013-05-15 07:52:08 +0000 | |||
1773 | +++ src/webui/templates/ubuntuone/registration/twofactor.html 2013-06-13 00:15:30 +0000 | |||
1774 | @@ -2,6 +2,8 @@ | |||
1775 | 2 | 2 | ||
1776 | 3 | {% load i18n %} | 3 | {% load i18n %} |
1777 | 4 | 4 | ||
1778 | 5 | {% block html_extra %}data-qa-id="two_factor_verify"{% endblock %} | ||
1779 | 6 | |||
1780 | 5 | {% block extra_css %} | 7 | {% block extra_css %} |
1781 | 6 | {% if rpconfig and rpconfig.logo_url %} | 8 | {% if rpconfig and rpconfig.logo_url %} |
1782 | 7 | <style type="text/css" data-qa-id="test_2f_rp"> | 9 | <style type="text/css" data-qa-id="test_2f_rp"> |
1783 | @@ -60,7 +62,9 @@ | |||
1784 | 60 | 62 | ||
1785 | 61 | <div class="actions"> | 63 | <div class="actions"> |
1786 | 62 | {% if next %}<input type="hidden" name="next" value="{{ next }}">{% endif %} | 64 | {% if next %}<input type="hidden" name="next" value="{{ next }}">{% endif %} |
1788 | 63 | <button type="submit" class="cta" name="continue"><span>{% trans "Authenticate" %}</span></button> | 65 | <button type="submit" class="cta" name="continue" data-qa-id="auth_button"> |
1789 | 66 | <span>{% trans "Authenticate" %}</span> | ||
1790 | 67 | </button> | ||
1791 | 64 | {% if token %}{% trans "or" %} | 68 | {% if token %}{% trans "or" %} |
1792 | 65 | {% include "common/cancel_link.html" %}{% endif %} | 69 | {% include "common/cancel_link.html" %}{% endif %} |
1793 | 66 | </div> | 70 | </div> |
1794 | 67 | 71 | ||
1795 | === modified file 'src/webui/templates/ubuntuone/select_language.html' | |||
1796 | --- src/webui/templates/ubuntuone/select_language.html 2013-04-11 10:43:00 +0000 | |||
1797 | +++ src/webui/templates/ubuntuone/select_language.html 2013-06-13 00:15:30 +0000 | |||
1798 | @@ -48,7 +48,9 @@ | |||
1799 | 48 | </p> | 48 | </p> |
1800 | 49 | {% endfor %} | 49 | {% endfor %} |
1801 | 50 | 50 | ||
1803 | 51 | <button type="submit" name="submit" class="cta">{% trans "Choose language" %}</button> | 51 | <button type="submit" name="submit" data-qa-id="choose_language" class="btn cta"> |
1804 | 52 | {% trans "Choose language" %} | ||
1805 | 53 | </button> | ||
1806 | 52 | </form> | 54 | </form> |
1807 | 53 | 55 | ||
1808 | 54 | </div> | 56 | </div> |
1809 | 55 | 57 | ||
1810 | === modified file 'src/webui/templates/ubuntuone/server/decide.html' | |||
1811 | --- src/webui/templates/ubuntuone/server/decide.html 2013-05-31 03:30:26 +0000 | |||
1812 | +++ src/webui/templates/ubuntuone/server/decide.html 2013-06-13 00:15:30 +0000 | |||
1813 | @@ -22,22 +22,23 @@ | |||
1814 | 22 | 22 | ||
1815 | 23 | 23 | ||
1816 | 24 | <div class="info"> | 24 | <div class="info"> |
1819 | 25 | {% blocktrans %} You are logging in to <a data-qa-id="rp_backlink" | 25 | <p data-qa-id="rp_login_title">{% blocktrans %} You are logging in to |
1820 | 26 | href="{{ trust_root }}">{{ trust_root }}</a>{% endblocktrans %} | 26 | <a data-qa-id="rp_backlink" href="{{ trust_root }}">{{ trust_root }}</a> |
1821 | 27 | {% endblocktrans %}</p> | ||
1822 | 27 | {% if rpconfig %} | 28 | {% if rpconfig %} |
1826 | 28 | <p>{% blocktrans with site_name=rpconfig.displayname %}{{ site_name }} has | 29 | <p>{% blocktrans with site_name=rpconfig.displayname %}{{ site_name }} has |
1827 | 29 | requested some personal information, please choose what you would like to | 30 | requested some personal information, please choose what you would like to |
1828 | 30 | share:{% endblocktrans %}</p> | 31 | share:{% endblocktrans %}</p> |
1829 | 31 | {% else %} | 32 | {% else %} |
1832 | 32 | <p>{% blocktrans %} The site has requested some personal information, | 33 | <p>{% blocktrans %} The site has requested some personal information, |
1833 | 33 | please choose what you would like to share:{% endblocktrans %}</p> | 34 | please choose what you would like to share:{% endblocktrans %}</p> |
1834 | 34 | {% endif %} | 35 | {% endif %} |
1835 | 35 | </div> | 36 | </div> |
1836 | 36 | 37 | ||
1837 | 37 | <div class="actions"> | 38 | <div class="actions"> |
1838 | 38 | <form action="{{ action }}" method="POST" name="decideform"> | 39 | <form action="{{ action }}" method="POST" name="decideform"> |
1839 | 39 | {% csrf_token %} | 40 | {% csrf_token %} |
1841 | 40 | <div class="info-items"> | 41 | <div data-qa-id="info-items" class="info-items"> |
1842 | 41 | {% if user_attribs_form.has_data or teams_form.has_data %} | 42 | {% if user_attribs_form.has_data or teams_form.has_data %} |
1843 | 42 | <ul class="list"> | 43 | <ul class="list"> |
1844 | 43 | {% if user_attribs_form.has_data %} | 44 | {% if user_attribs_form.has_data %} |
1845 | @@ -69,7 +70,9 @@ | |||
1846 | 69 | 70 | ||
1847 | 70 | <p> | 71 | <p> |
1848 | 71 | <input type="hidden" name="ok" /> | 72 | <input type="hidden" name="ok" /> |
1850 | 72 | <button type="submit" class="cta" name="yes" data-qa-id="rp_confirm_login"><span><span>{% trans "Yes, log me in" %}</span></span></button> | 73 | <button type="submit" class="btn cta" name="yes" data-qa-id="rp_confirm_login"> |
1851 | 74 | <span><span>{% trans "Yes, log me in" %}</span></span> | ||
1852 | 75 | </button> | ||
1853 | 73 | {% trans "or" %} | 76 | {% trans "or" %} |
1854 | 74 | <a href="+cancel">{% trans "cancel" %}</a> | 77 | <a href="+cancel">{% trans "cancel" %}</a> |
1855 | 75 | </p> | 78 | </p> |
1856 | 76 | 79 | ||
1857 | === added file 'src/webui/templates/widgets/launchpad/login-button.html' | |||
1858 | --- src/webui/templates/widgets/launchpad/login-button.html 1970-01-01 00:00:00 +0000 | |||
1859 | +++ src/webui/templates/widgets/launchpad/login-button.html 2013-06-13 00:15:30 +0000 | |||
1860 | @@ -0,0 +1,12 @@ | |||
1861 | 1 | {% comment %} | ||
1862 | 2 | Copyright 2010 Canonical Ltd. This software is licensed under the | ||
1863 | 3 | GNU Affero General Public License version 3 (see the file LICENSE). | ||
1864 | 4 | {% endcomment %} | ||
1865 | 5 | |||
1866 | 6 | {% load i18n %} | ||
1867 | 7 | |||
1868 | 8 | <span id="login" data-qa-id="login"> | ||
1869 | 9 | <a id="login-link" data-qa-id="login_link" href="{% url 'login' %}"> | ||
1870 | 10 | {% trans "Log in or create account" %} | ||
1871 | 11 | </a> | ||
1872 | 12 | </span> | ||
1873 | 0 | 13 | ||
1874 | === modified file 'src/webui/templates/widgets/launchpad/logout-button.html' | |||
1875 | --- src/webui/templates/widgets/launchpad/logout-button.html 2013-06-05 15:22:18 +0000 | |||
1876 | +++ src/webui/templates/widgets/launchpad/logout-button.html 2013-06-13 00:15:30 +0000 | |||
1877 | @@ -1,16 +1,19 @@ | |||
1878 | 1 | {% comment %} | 1 | {% comment %} |
1881 | 2 | Copyright 2010 Canonical Ltd. This software is licensed under the | 2 | Copyright 2010-2013 Canonical Ltd. This software is licensed under |
1882 | 3 | GNU Affero General Public License version 3 (see the file LICENSE). | 3 | the GNU Affero General Public License version 3 (see the file |
1883 | 4 | LICENSE). | ||
1884 | 4 | {% endcomment %} | 5 | {% endcomment %} |
1885 | 5 | 6 | ||
1886 | 6 | {% load i18n %} | 7 | {% load i18n %} |
1887 | 7 | 8 | ||
1889 | 8 | <form action="/+logout" method="post"> | 9 | <form action="{% url 'logout' %}" method="post" id="account" data-qa-id="account"> |
1890 | 9 | {% csrf_token %} | 10 | {% csrf_token %} |
1891 | 10 | <input type="hidden" name="loggingout" value="1" /> | 11 | <input type="hidden" name="loggingout" value="1" /> |
1893 | 11 | {% if not readonly %}<a href="/+edit" class="sprite person">{% endif %} | 12 | {% if not readonly %} |
1894 | 13 | <a href="{% url 'account-index' %}" id="account-link" data-qa-id="account_link" class="sprite person"> | ||
1895 | 14 | {% endif %} | ||
1896 | 12 | <span data-qa-id="user_name">{% if user.username %}{{ user.username }}{% else %}{{ user.displayname }}{% endif %}</span> | 15 | <span data-qa-id="user_name">{% if user.username %}{{ user.username }}{% else %}{{ user.displayname }}{% endif %}</span> |
1897 | 13 | {% if not readonly %}</a>{% endif %} | 16 | {% if not readonly %}</a>{% endif %} |
1898 | 14 | • | 17 | • |
1900 | 15 | <input type="submit" name="logout" value="Log Out" /> | 18 | <input type="submit" name="logout" id="logout-link" data-qa-id="logout_link" value="Log Out" /> |
1901 | 16 | </form> | 19 | </form> |
1902 | 17 | 20 | ||
1903 | === modified file 'src/webui/templates/widgets/passwords.html' | |||
1904 | --- src/webui/templates/widgets/passwords.html 2012-12-18 18:37:03 +0000 | |||
1905 | +++ src/webui/templates/widgets/passwords.html 2013-06-13 00:15:30 +0000 | |||
1906 | @@ -22,7 +22,7 @@ | |||
1907 | 22 | {% if form.password.errors %} | 22 | {% if form.password.errors %} |
1908 | 23 | <span class="error">{{ form.password.errors|first }}</span> | 23 | <span class="error">{{ form.password.errors|first }}</span> |
1909 | 24 | {% endif %} | 24 | {% endif %} |
1911 | 25 | <span id="password_strength"></span> | 25 | <span id="password_strength" data-qa-id="password_strength"></span> |
1912 | 26 | <span class="formHelp">{{ form.password.help_text }}</span> | 26 | <span class="formHelp">{{ form.password.help_text }}</span> |
1913 | 27 | </p> | 27 | </p> |
1914 | 28 | 28 | ||
1915 | 29 | 29 | ||
1916 | === modified file 'src/webui/templates/widgets/ubuntu/login-button.html' | |||
1917 | --- src/webui/templates/widgets/ubuntu/login-button.html 2013-04-17 13:23:35 +0000 | |||
1918 | +++ src/webui/templates/widgets/ubuntu/login-button.html 2013-06-13 00:15:30 +0000 | |||
1919 | @@ -4,9 +4,9 @@ | |||
1920 | 4 | {% endcomment %} | 4 | {% endcomment %} |
1921 | 5 | 5 | ||
1922 | 6 | {% load i18n %} | 6 | {% load i18n %} |
1923 | 7 | {% load menu_item %} | ||
1924 | 7 | 8 | ||
1925 | 8 | <ul> | 9 | <ul> |
1930 | 9 | <li id="login"> | 10 | {% url 'login' as login_url %} |
1931 | 10 | <a href="{% url 'login' %}" id="login-link">{% trans "Log in or create account" %}</a> | 11 | {% menu_item "login" _("Log in or create account") login_url %} |
1932 | 11 | </li> | 12 | <ul> |
1929 | 12 | </ul> | ||
1933 | 13 | 13 | ||
1934 | === modified file 'src/webui/templates/widgets/ubuntu/logout-button.html' | |||
1935 | --- src/webui/templates/widgets/ubuntu/logout-button.html 2013-04-17 13:23:35 +0000 | |||
1936 | +++ src/webui/templates/widgets/ubuntu/logout-button.html 2013-06-13 00:15:30 +0000 | |||
1937 | @@ -1,5 +1,5 @@ | |||
1938 | 1 | {% comment %} | 1 | {% comment %} |
1940 | 2 | Copyright 2010, 2012 Canonical Ltd. This software is licensed under | 2 | Copyright 2010-2013 Canonical Ltd. This software is licensed under |
1941 | 3 | the GNU Affero General Public License version 3 (see the file | 3 | the GNU Affero General Public License version 3 (see the file |
1942 | 4 | LICENSE). | 4 | LICENSE). |
1943 | 5 | {% endcomment %} | 5 | {% endcomment %} |
1944 | @@ -15,7 +15,7 @@ | |||
1945 | 15 | {% else %} | 15 | {% else %} |
1946 | 16 | {% url 'account-index' as account_url %} | 16 | {% url 'account-index' as account_url %} |
1947 | 17 | {% endif %} | 17 | {% endif %} |
1949 | 18 | {% menu_item "account" user.displayname account_url %} | 18 | {% menu_item "account" user.displayname account_url extra_qa_data_id="user_name" %} |
1950 | 19 | 19 | ||
1951 | 20 | {% if token and not readonly %} | 20 | {% if token and not readonly %} |
1952 | 21 | {% url 'account-edit' token=token as edit_url %} | 21 | {% url 'account-edit' token=token as edit_url %} |
1953 | 22 | 22 | ||
1954 | === modified file 'src/webui/templates/widgets/ubuntuone/header-me-menu.html' | |||
1955 | --- src/webui/templates/widgets/ubuntuone/header-me-menu.html 2013-06-10 07:32:53 +0000 | |||
1956 | +++ src/webui/templates/widgets/ubuntuone/header-me-menu.html 2013-06-13 00:15:30 +0000 | |||
1957 | @@ -1,9 +1,15 @@ | |||
1958 | 1 | {% load i18n %} | 1 | {% load i18n %} |
1959 | 2 | {% load menu_item %} | ||
1960 | 3 | |||
1961 | 2 | <ul> | 4 | <ul> |
1962 | 3 | {% if user.is_authenticated %} | 5 | {% if user.is_authenticated %} |
1966 | 4 | <li> | 6 | <li id="account" data-qa-id="account"> |
1967 | 5 | <span data-qa-id="user_name" class="user-name">{{user.displayname}}</span> <a href="{% url 'account-index' %}">{% trans "My account" %}</a> <span class="sep">|</span> | 7 | <span data-qa-id="user_name" class="user-name">{{user.displayname}}</span> |
1968 | 6 | <a href="{% url 'logout' %}" id="logout-link">{% trans "Log out" %}</a> | 8 | <a href="{% url 'account-index' %}" id="account-link" data-qa-id="account_link">{% trans "My account" %}</a> <span class="sep">|</span> |
1969 | 9 | <a href="{% url 'logout' %}" id="logout-link" data-qa-id="logout_link">{% trans "Log out" %}</a> | ||
1970 | 7 | </li> | 10 | </li> |
1971 | 11 | {% else %} | ||
1972 | 12 | {% url 'login' as login_url %} | ||
1973 | 13 | {% menu_item "login" _("Log in or Sign up") login_url %} | ||
1974 | 8 | {% endif %} | 14 | {% endif %} |
1975 | 9 | </ul> | 15 | </ul> |
1976 | 10 | 16 | ||
1977 | === modified file 'src/webui/templates/widgets/ubuntuone/personal-menu.html' | |||
1978 | --- src/webui/templates/widgets/ubuntuone/personal-menu.html 2013-06-03 06:32:02 +0000 | |||
1979 | +++ src/webui/templates/widgets/ubuntuone/personal-menu.html 2013-06-13 00:15:30 +0000 | |||
1980 | @@ -15,7 +15,7 @@ | |||
1981 | 15 | {% else %} | 15 | {% else %} |
1982 | 16 | {% url 'account-index' as account_url %} | 16 | {% url 'account-index' as account_url %} |
1983 | 17 | {% endif %} | 17 | {% endif %} |
1985 | 18 | {% menu_item "account" _("Personal details") account_url %} | 18 | {% menu_item "account2" _("Personal details") account_url %} |
1986 | 19 | 19 | ||
1987 | 20 | {% if not token and not readonly %} | 20 | {% if not token and not readonly %} |
1988 | 21 | {% ifswitch TWOFACTOR %} | 21 | {% ifswitch TWOFACTOR %} |
1989 | 22 | 22 | ||
1990 | === modified file 'src/webui/views/account.py' | |||
1991 | --- src/webui/views/account.py 2013-05-16 13:24:00 +0000 | |||
1992 | +++ src/webui/views/account.py 2013-06-13 00:15:30 +0000 | |||
1993 | @@ -52,6 +52,7 @@ | |||
1994 | 52 | get_rpconfig_from_request, | 52 | get_rpconfig_from_request, |
1995 | 53 | require_testing_enabled, | 53 | require_testing_enabled, |
1996 | 54 | ) | 54 | ) |
1997 | 55 | from identityprovider.utils import get_current_brand | ||
1998 | 55 | 56 | ||
1999 | 56 | from webui.decorators import ( | 57 | from webui.decorators import ( |
2000 | 57 | check_readonly, | 58 | check_readonly, |
2001 | @@ -334,7 +335,7 @@ | |||
2002 | 334 | @sso_login_required | 335 | @sso_login_required |
2003 | 335 | @check_readonly | 336 | @check_readonly |
2004 | 336 | def applications(request): | 337 | def applications(request): |
2006 | 337 | if settings.BRAND not in ('ubuntu', 'ubuntuone'): | 338 | if get_current_brand() not in ('ubuntu', 'ubuntuone'): |
2007 | 338 | raise Http404 | 339 | raise Http404 |
2008 | 339 | 340 | ||
2009 | 340 | if request.method == 'POST': | 341 | if request.method == 'POST': |
2010 | @@ -349,7 +350,7 @@ | |||
2011 | 349 | pass | 350 | pass |
2012 | 350 | return HttpResponseRedirect('/+applications') | 351 | return HttpResponseRedirect('/+applications') |
2013 | 351 | else: | 352 | else: |
2015 | 352 | tokens = request.user.oauth_tokens() | 353 | tokens = request.user.oauth_tokens().order_by('created_at') |
2016 | 353 | context = RequestContext(request, { | 354 | context = RequestContext(request, { |
2017 | 354 | 'current_section': 'applications', | 355 | 'current_section': 'applications', |
2018 | 355 | 'tokens': tokens, | 356 | 'tokens': tokens, |
2019 | 356 | 357 | ||
2020 | === modified file 'src/webui/views/ui.py' | |||
2021 | --- src/webui/views/ui.py 2013-06-07 14:51:46 +0000 | |||
2022 | +++ src/webui/views/ui.py 2013-06-13 00:15:30 +0000 | |||
2023 | @@ -872,7 +872,7 @@ | |||
2024 | 872 | 872 | ||
2025 | 873 | 873 | ||
2026 | 874 | def static_page(request, page_name): | 874 | def static_page(request, page_name): |
2028 | 875 | if settings.BRAND not in ('ubuntu', 'ubuntuone'): | 875 | if get_current_brand() not in ('ubuntu', 'ubuntuone'): |
2029 | 876 | raise Http404 | 876 | raise Http404 |
2030 | 877 | 877 | ||
2031 | 878 | return render_to_response('static/%s.html' % page_name, | 878 | return render_to_response('static/%s.html' % page_name, |
You have done a huge amount of work. Thank you very much!
I like the data-qa-ids you are using, as they make more readable the tests helpers. Thanks for that too.
Some comments:
286 +for i, token in enumerate((TOKEN_1, TOKEN_2, TOKEN_3)): text_contains( applications[ i + 1], token)
287 + assert_
Here, I suppose we are not checking the first application because it's the one added when creating the account. A comment about this will be nice to make it easier to understand the test in the case of a failure.
333 + if device_names is None:
334 + device_names = ['2F Required Generic Device']
Can you please explain this change to me? I thought having a default value for devices names would make it faster to understand. It's not a complaint, I'm just wondering if this is the style we should follow.
402 +if helpers. get_current_ brand() == 'launchpad': logout_ element) logout_ element)
403 + click_button(
404 +else:
405 + click_link(
Maybe this can be changed to click_element( logout_ element) and we can remove the if. From the user point of view, I think it's not important if it's a link or a button. With CSS we make some buttons look like links and also the other way around.
473 +# wait for animation
474 +sleep(0.5)
I don't like this. Maybe we can wait for the element to be visible, or do some other trick. I'm now used with fighting animations, so feel free to open a bug and assign it to me with low priority. I'll take a look when I'm bored waiting for runs.
540 \ No newline at end of file
A newline here would be nice.
731 + self.assertEqua l(button. text_content( ).strip( ), 'Yes, log me in')
Here it would be nice if you comment why the content has to be stripped.
844 + <a href=". /+remove- email?id= {{ email.id }}" class="btn-sm" data-qa- id="remove_ verified_ email">
845 + <span>{% trans "Delete" %}</span>
846 + </a>
Shouldn't this be indented one more level, because it's inside the if?