diff --git a/src/functional_tests/list_page.py b/src/functional_tests/list_page.py index d6bc468..6bacb28 100644 --- a/src/functional_tests/list_page.py +++ b/src/functional_tests/list_page.py @@ -30,7 +30,7 @@ class ListPage: def get_share_box(self): return self.test.browser.find_element( By.CSS_SELECTOR, - 'input[name="recipient]', + 'input[name="recipient"]', ) def get_shared_with_list(self): @@ -47,3 +47,6 @@ class ListPage: email, [item.text for item in self.get_shared_with_list()] ) ) + + def get_list_owner(self): + return self.test.browser.find_element(By.ID, "id_list_owner").text diff --git a/src/functional_tests/my_lists_page.py b/src/functional_tests/my_lists_page.py new file mode 100644 index 0000000..e467a60 --- /dev/null +++ b/src/functional_tests/my_lists_page.py @@ -0,0 +1,17 @@ +from selenium.webdriver.common.by import By + + +class MyListsPage: + def __init__(self, test): + self.test = test + + def go_to_my_lists_page(self, email): + self.test.browser.get(self.test.live_server_url) + self.test.browser.find_element(By.LINK_TEXT, "My lists").click() + self.test.wait_for( + lambda: self.test.assertIn( + email, + self.test.browser.find_element(By.TAG_NAME, "h2").text, + ) + ) + return self diff --git a/src/functional_tests/test_my_lists.py b/src/functional_tests/test_my_lists.py index 24eb357..83139eb 100644 --- a/src/functional_tests/test_my_lists.py +++ b/src/functional_tests/test_my_lists.py @@ -2,6 +2,7 @@ from selenium.webdriver.common.by import By from .base import FunctionalTest from .list_page import ListPage +from .my_lists_page import MyListsPage class MyListsTest(FunctionalTest): @@ -15,14 +16,7 @@ class MyListsTest(FunctionalTest): list_page.add_list_item("Regurgitate spines") first_list_url = self.browser.current_url - self.browser.find_element(By.LINK_TEXT, "My lists").click() - - self.wait_for( - lambda: self.assertIn( - "discoman@example.com", - self.browser.find_element(By.CSS_SELECTOR, "h2").text, - ) - ) + MyListsPage(self).go_to_my_lists_page("discoman@example.com") self.wait_for( lambda: self.browser.find_element(By.LINK_TEXT, "Reticulate splines") @@ -40,10 +34,7 @@ class MyListsTest(FunctionalTest): self.wait_for( lambda: self.browser.find_element(By.LINK_TEXT, "Ribbon of death") ) - self.browser.find_element(By.LINK_TEXT, "Ribbon of death").click() - self.wait_for( - lambda: self.assertEqual(self.browser.current_url, second_list_url) - ) + MyListsPage(self).go_to_my_lists_page("discoman@example.com") self.browser.find_element(By.CSS_SELECTOR, "#id_logout").click() self.wait_for( diff --git a/src/functional_tests/test_sharing.py b/src/functional_tests/test_sharing.py index bd71d13..14256e9 100644 --- a/src/functional_tests/test_sharing.py +++ b/src/functional_tests/test_sharing.py @@ -3,6 +3,7 @@ from selenium.webdriver.common.by import By from .base import FunctionalTest from .list_page import ListPage +from .my_lists_page import MyListsPage # Helper fns @@ -36,3 +37,18 @@ class SharingTest(FunctionalTest): ) list_page.share_list_with("friend@example.com") + + self.browser = ali_browser + MyListsPage(self).go_to_my_lists_page("alice@example.com") + + self.browser.find_element(By.LINK_TEXT, "Send help").click() + + self.wait_for( + lambda: self.assertEqual(list_page.get_list_owner(), "discoman@example.com") + ) + + list_page.add_list_item("At your command, Disco King") + + self.browser = disco_browser + self.browser.refresh() + list_page.wait_for_row_in_list_table("At your command, Disco King", 2)