Mercurial > libervia-backend
annotate tests/e2e/libervia-web/test_libervia-web.py @ 4242:8acf46ed7f36
frontends: remote control implementation:
This is the frontends common part of remote control implementation. It handle the creation
of WebRTC session, and management of inputs. For now the reception use freedesktop.org
Desktop portal, and works mostly with Wayland based Desktop Environments.
rel 436
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 11 May 2024 13:52:43 +0200 |
parents | dfccc90cacc6 |
children | 4cd4922de876 |
rev | line source |
---|---|
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
1 #!/usr/bin/env python3 |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 |
3480
7550ae9cfbac
Renamed the project from "Salut à Toi" to "Libervia":
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
3 # Libervia: an XMPP client |
3479 | 4 # Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org) |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
5 |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 # This program is free software: you can redistribute it and/or modify |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 # it under the terms of the GNU Affero General Public License as published by |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 # the Free Software Foundation, either version 3 of the License, or |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 # (at your option) any later version. |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 # This program is distributed in the hope that it will be useful, |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 # GNU Affero General Public License for more details. |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 # You should have received a copy of the GNU Affero General Public License |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 import os |
3441
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
20 import re |
4227 | 21 |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
22 import pytest |
4227 | 23 |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 from helium import ( |
4227 | 25 Button, |
26 ENTER, | |
27 Link, | |
28 S, | |
29 Text, | |
30 click, | |
31 drag_file, | |
32 find_all, | |
33 get_driver, | |
34 go_to, | |
35 press, | |
36 scroll_down, | |
37 select, | |
38 wait_until, | |
39 write, | |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
40 ) |
4227 | 41 from selenium.webdriver.common.by import By |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
42 |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
43 |
3498
d78b5eae912a
tests: update following names change
Goffi <goffi@goffi.org>
parents:
3480
diff
changeset
|
44 if os.getenv("LIBERVIA_TEST_ENV_E2E_WEB") is None: |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
45 pytest.skip( |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
46 "skipping end-to-end tests, we are not in a test environment for Libervia", |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
47 allow_module_level=True |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
48 ) |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
49 |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
50 pytestmark = pytest.mark.usefixtures("test_profiles", "screenshot_on_failure") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
51 |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
52 |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
53 class TestLogin: |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
54 |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
55 def test_user_can_create_account(self, nobody_logged_in, sent_emails): |
3498
d78b5eae912a
tests: update following names change
Goffi <goffi@goffi.org>
parents:
3480
diff
changeset
|
56 go_to("https://libervia-web.test:8443/login") |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
57 click("no account yet") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
58 write("new_account", into="login") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
59 write("some_email@example.net", into="email") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
60 write("testtest", into="password") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
61 click("register new account") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
62 wait_until(lambda: get_driver().current_url.endswith("/login")) |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
63 write("testtest", into="password") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
64 click("log in") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
65 wait_until(Text("you are logged").exists) |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
66 wait_until(lambda: len(sent_emails) == 2) |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
67 if sent_emails[0].to == "admin@server1.test": |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
68 admin_email, user_email = sent_emails |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
69 else: |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
70 user_email, admin_email = sent_emails |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
71 assert admin_email.to == "admin@server1.test" |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
72 # profile name must be specified in admin email |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
73 assert "new_account" in admin_email.body |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
74 assert user_email.to == "some_email@example.net" |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
75 # user jid must be specified in the email |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
76 assert "new_account@server1.test" in user_email.body |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
77 # use can now log-in |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
78 |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
79 def test_user_can_log_in(self, nobody_logged_in): |
3498
d78b5eae912a
tests: update following names change
Goffi <goffi@goffi.org>
parents:
3480
diff
changeset
|
80 go_to("https://libervia-web.test:8443/login") |
3441
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
81 write("account1_s3", into="login") |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
82 write("test", into="password") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
83 click("log in") |
3441
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
84 wait_until(Text("you are logged").exists) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
85 assert Button("Disconnect").exists() |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
86 |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
87 def test_wrong_password_fails(self, nobody_logged_in): |
3498
d78b5eae912a
tests: update following names change
Goffi <goffi@goffi.org>
parents:
3480
diff
changeset
|
88 go_to("https://libervia-web.test:8443/login") |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
89 write("account1_s2", into="login") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
90 write("wrong_password", into="password") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
91 click("log in") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
92 assert Text("Your login and/or password is incorrect. Please try again.") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
93 |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
94 |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
95 class TestPhotos: |
3441
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
96 ACCOUNT1_ALBUMS_URL = ( |
3498
d78b5eae912a
tests: update following names change
Goffi <goffi@goffi.org>
parents:
3480
diff
changeset
|
97 "https://libervia-web.test:8443/photos/album/account1@files.server1.test/albums" |
3441
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
98 ) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
99 TEST_ALBUM_URL = f"{ACCOUNT1_ALBUMS_URL}/test%20album" |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
100 |
3441
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
101 @pytest.mark.dependency(name="create_album") |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
102 def test_user_can_create_album(self, log_in_account1): |
3498
d78b5eae912a
tests: update following names change
Goffi <goffi@goffi.org>
parents:
3480
diff
changeset
|
103 go_to("https://libervia-web.test:8443/photos") |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
104 wait_until(Link("create").exists) |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
105 click("create") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
106 write("test album", into="album name") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
107 click("create") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
108 album_link = Link("test album") |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
109 wait_until(album_link.exists) |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
110 click(album_link) |
3498
d78b5eae912a
tests: update following names change
Goffi <goffi@goffi.org>
parents:
3480
diff
changeset
|
111 wait_until(lambda: S("#file_drop").exists()) |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
112 wait_until(lambda: not S("#loading_screen").exists()) |
3657
6c87c00b344a
tests (e2e/web): fix test files paths following global name change
Goffi <goffi@goffi.org>
parents:
3498
diff
changeset
|
113 drag_file("/src/libervia-backend/tests/_files/test_1.jpg", "drop photos here") |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
114 wait_until(lambda: len(find_all(S("div.progress_finished")))==1) |
3657
6c87c00b344a
tests (e2e/web): fix test files paths following global name change
Goffi <goffi@goffi.org>
parents:
3498
diff
changeset
|
115 drag_file("/src/libervia-backend/tests/_files/test_2.jpg", "drop photos here") |
3429
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
116 wait_until(lambda: len(find_all(S("div.progress_finished")))==2) |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
117 assert S('img[alt="test_1.jpg"]').exists() |
d4558f3cbf13
tests, docker(e2e): added e2e tests for Libervia:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
118 assert S('img[alt="test_2.jpg"]').exists() |
3441
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
119 |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
120 @pytest.mark.dependency(depends=["create_album"]) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
121 def test_user_can_slideshow(self, log_in_account1): |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
122 go_to(self.TEST_ALBUM_URL) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
123 wait_until(lambda: not S("#loading_screen").exists()) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
124 thumb_1 = S("img[alt='test_1.jpg'].is-photo-thumbnail") |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
125 assert thumb_1.exists() |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
126 click(thumb_1) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
127 assert S("div.slideshow").exists() |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
128 active_slide_1 = S("div.swiper-slide-active") |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
129 assert active_slide_1.exists() |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
130 # if we don't save the web_element here, the test in wait_until fails |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
131 # it seems that Helium is re-using the selector, i.e. we get the other |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
132 # slide in active_slide_1. |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
133 active_slide_1_elt = active_slide_1.web_element |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
134 click(S(".swiper-button-next")) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
135 wait_until( |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
136 lambda: |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
137 "swiper-slide-active" not in active_slide_1_elt.get_attribute("class") |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
138 ) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
139 active_slide_2 = S("div.swiper-slide-active") |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
140 assert active_slide_2.exists() |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
141 active_slide_2_elt = active_slide_2.web_element |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
142 assert active_slide_1_elt != active_slide_2_elt |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
143 click(S(".click_to_close")) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
144 assert not S("div.slideshow").exists() |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
145 |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
146 @pytest.mark.dependency(name="ext_user_no_access", depends=["create_album"]) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
147 def test_external_user_cant_access_album(self, log_in_account1_s2): |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
148 go_to(self.TEST_ALBUM_URL) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
149 assert Text("Unauthorized").exists() |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
150 assert "Error" in get_driver().title |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
151 |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
152 @pytest.mark.dependency(name="invite_ext_user", depends=["create_album", "ext_user_no_access"]) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
153 def test_invitation_of_external_user(self, log_in_account1): |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
154 """User can invite somebody not in its roster by its full JID""" |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
155 go_to(self.TEST_ALBUM_URL) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
156 wait_until(lambda: not S("#loading_screen").exists()) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
157 click("manage invitations") |
3498
d78b5eae912a
tests: update following names change
Goffi <goffi@goffi.org>
parents:
3480
diff
changeset
|
158 assert Text("people who can access this page").exists() |
3441
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
159 contact_input = S("input[name='contact']") |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
160 write("account1@server2.test", into=contact_input) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
161 press(ENTER) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
162 assert contact_input.web_element.get_attribute("value") == "" |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
163 assert Text("account1@server2.test").exists() |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
164 |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
165 @pytest.mark.dependency(depends=["create_album", "invite_ext_user"]) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
166 def test_invited_user_can_access_album(self, log_in_account1_s2): |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
167 go_to(self.TEST_ALBUM_URL) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
168 assert not Text("Unauthorized").exists() |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
169 assert not "Error" in get_driver().title |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
170 assert len(find_all(S("img.is-photo-thumbnail"))) == 2 |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
171 |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
172 @pytest.mark.dependency(name="invite_by_email", depends=["create_album"]) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
173 def test_invitation_by_email(self, log_in_account1, sent_emails, shared_data): |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
174 """User can invite somebody without XMPP account by email""" |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
175 go_to(self.TEST_ALBUM_URL) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
176 wait_until(lambda: not S("#loading_screen").exists()) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
177 click("manage invitations") |
3498
d78b5eae912a
tests: update following names change
Goffi <goffi@goffi.org>
parents:
3480
diff
changeset
|
178 assert Text("people who can access this page").exists() |
3441
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
179 click("invite by email") |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
180 wait_until(Text("Invite somebody by email").exists) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
181 write("somebody@example.net", "email") |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
182 write("Some Guest", "name") |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
183 click("send invitation") |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
184 wait_until(lambda: len(sent_emails) == 1) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
185 invitation_email = sent_emails[0] |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
186 assert "Welcome" in invitation_email.body |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
187 url_match = re.search(r"https:\/\/.+\/g\/\w+", sent_emails[0].body) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
188 assert url_match is not None |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
189 shared_data["invitation_url"] = url_match.group() |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
190 |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
191 @pytest.mark.dependency(depends=["invite_by_email"]) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
192 def test_email_guest_can_access_album(self, nobody_logged_in, shared_data): |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
193 go_to(shared_data["invitation_url"]) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
194 click("test album") |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
195 wait_until(lambda: not S("#loading_screen").exists()) |
fdf56af87719
tests (e2e/libervia): more stable `test_user_can_log_in` + photos tests
Goffi <goffi@goffi.org>
parents:
3429
diff
changeset
|
196 assert len(find_all(S("img.is-photo-thumbnail"))) == 2 |
3703
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
197 |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
198 |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
199 class TestLists: |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
200 TEST_GENERIC_LIST_URL = ( |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
201 "https://libervia-web.test:8443/lists/view/account1@server1.test/" |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
202 "fdp%2Fsubmitted%2Forg.salut-a-toi.tickets%3A0_test-generic-list" |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
203 ) |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
204 |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
205 @pytest.mark.dependency(name="create_generic_list") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
206 def test_user_can_create_generic(self, log_in_account1): |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
207 go_to("https://libervia-web.test:8443/lists/view") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
208 click("create a list") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
209 tickets_btn = S("//span[text()='Tickets']") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
210 click(tickets_btn) |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
211 write("test-generic-list", "name of the list") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
212 click("create list") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
213 wait_until(Text("Success").exists) |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
214 |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
215 |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
216 @pytest.mark.dependency( |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
217 name="create_generic_list_item", depends=["create_generic_list"] |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
218 ) |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
219 def test_user_can_create_generic_list_item(self): |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
220 go_to(self.TEST_GENERIC_LIST_URL) |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
221 click("create") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
222 write("test item", "title") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
223 write("label 1, label 2", "labels") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
224 select("type", "feature request") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
225 write("this is a test body", "body") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
226 scroll_down(600) |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
227 click("create list item") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
228 wait_until(Text("Success").exists) |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
229 assert Link("create").exists() |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
230 assert Link("manage invitations").exists() |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
231 item = Link("test item") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
232 assert item.exists() |
4227 | 233 labels_elt = item.web_element.find_element(By.CLASS_NAME, "xmlui_field__labels") |
234 labels = [t.text for t in labels_elt.find_elements(By.TAG_NAME, "span")] | |
3703
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
235 assert labels == ["label 1", "label 2"] |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
236 |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
237 @pytest.mark.dependency(depends=["create_generic_list_item"]) |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
238 def test_list_item_can_be_displayed(self): |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
239 go_to(self.TEST_GENERIC_LIST_URL) |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
240 item = Link("test item") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
241 # FIXME: we can't click on the item created above with Selenium, looks like a |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
242 # Selenium bug, to be checked |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
243 go_to(item.href) |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
244 item_title = Text("test item") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
245 assert item_title.exists() |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
246 item_body = Text("this is a test body") |
de133b180941
tests (e2e/web): add basic tests for generic lists
Goffi <goffi@goffi.org>
parents:
3657
diff
changeset
|
247 assert item_body.exists() |