def test_click_logout_button___login_button_is_visible(self): get_user_model().objects.create_user("user", password="******") login_as(self.driver, self.live_server_url, "user", "password") wait_for_element(self.driver, By.ID, "logout-link").click() self.assertIsNotNone(wait_for_element(self.driver, By.ID, "login-link"))
def test_logged_in_click_create_entry___taken_to_create_entry_form(self): login_as(self.driver, self.live_server_url, "user", "password") wait_for_element(self.driver, By.ID, "create-entry-link").click() self.assertEqual(self.live_server_url + "/create_blog_entry", self.driver.current_url)
def test_submit_create_form_with_no_content___field_is_in_error(self): login_as(self.driver, self.live_server_url, "user", "password") wait_for_element(self.driver, By.ID, "create-entry-link").click() wait_for_element(self.driver, By.NAME, "title").send_keys("some title") wait_for_element(self.driver, By.NAME, "submit").click() form_group = wait_for_element(self.driver, By.XPATH, ".//*[@name='content']/..") self.assertIn("has-error", form_group.get_attribute("class"))
def test_click_create_button_while_logged_in___navigate_to_create_screen( self): get_user_model().objects.create_user("user", password="******") login_as(self.driver, self.live_server_url, "user", "password") self.driver.get(self.live_server_url) wait_for_element(self.driver, By.ID, "create-entry-link").click() self.assertEqual(self.live_server_url + "/create_blog_entry", self.driver.current_url)
def test_submit_valid_form___new_model_object_is_created(self): login_as(self.driver, self.live_server_url, "user", "password") wait_for_element(self.driver, By.ID, "create-entry-link").click() wait_for_element(self.driver, By.NAME, "title").send_keys("some title") wait_for_element(self.driver, By.NAME, "content").send_keys("some content") wait_for_element(self.driver, By.NAME, "submit").click() self.assertIsNotNone( Entry.objects.get(title="some title", content="some content"))
def test_submit_create_form_with_no_content___title_is_unchanged(self): login_as(self.driver, self.live_server_url, "user", "password") wait_for_element(self.driver, By.ID, "create-entry-link").click() wait_for_element(self.driver, By.NAME, "title").send_keys("some title") wait_for_element(self.driver, By.NAME, "submit").click() self.assertEqual( "some title", wait_for_element(self.driver, By.NAME, "title").get_attribute("value"))
def test_submit_valid_form___redirected_to_the_blog_entry(self): login_as(self.driver, self.live_server_url, "user", "password") wait_for_element(self.driver, By.ID, "create-entry-link").click() wait_for_element(self.driver, By.NAME, "title").send_keys("some title") wait_for_element(self.driver, By.NAME, "content").send_keys("some content") wait_for_element(self.driver, By.NAME, "submit").click() pk = Entry.objects.get(title="some title", content="some content").pk self.assertEqual(self.live_server_url + "/blog_entry/" + str(pk), self.driver.current_url)
def test_navigate_to_existing_item_as_owner___edit_button_is_present(self): Entry( title="Test Post Title", content="Test Post Content", owner=self.owner, ).save() pk = Entry.objects.all()[0].id login_as(self.driver, self.live_server_url, "user", "password") self.driver.get(self.live_server_url + "/blog_entry/" + str(pk)) self.assertIsNotNone(wait_for_element(self.driver, By.ID, "edit-button"))
def test_click_edit_button___taken_to_edit_page(self): Entry( title="Test Post Title", content="Test Post Content", owner=self.owner, ).save() pk = Entry.objects.all()[0].id login_as(self.driver, self.live_server_url, "user", "password") self.driver.get(self.live_server_url + "/blog_entry/" + str(pk)) wait_for_element(self.driver, By.ID, "edit-button").click() self.assertEqual(self.live_server_url + "/modify_blog_entry/" + str(pk), self.driver.current_url)
def test_click_delete_button_and_accept___entry_has_been_deleted(self): Entry( title="Test Post Title", content="Test Post Content", owner=self.owner, ).save() pk = Entry.objects.all()[0].id login_as(self.driver, self.live_server_url, "user", "password") self.driver.get(self.live_server_url + "/blog_entry/" + str(pk)) wait_for_element(self.driver, By.ID, "delete-button").click() wait_for_alert(self.driver).accept() self.assertTrue(self._wait_for_delete(pk))
def test_click_delete_button_and_cancel___page_is_not_changed(self): Entry( title="Test Post Title", content="Test Post Content", owner=self.owner, ).save() pk = Entry.objects.all()[0].id login_as(self.driver, self.live_server_url, "user", "password") self.driver.get(self.live_server_url + "/blog_entry/" + str(pk)) wait_for_element(self.driver, By.ID, "delete-button").click() wait_for_alert(self.driver).dismiss() self.assertEqual(self.live_server_url + "/blog_entry/" + str(pk), self.driver.current_url)
def test_logs_in_as_user___login_button_changes_to_logout(self): get_user_model().objects.create_user("user", password="******") login_as(self.driver, self.live_server_url, "user", "password") self.assertIsNotNone(wait_for_element(self.driver, By.ID, "logout-link"))
def test_logs_in_as_user___taken_back_to_home_screen(self): get_user_model().objects.create_user("user", password="******") login_as(self.driver, self.live_server_url, "user", "password") self.assertEqual(self.live_server_url + "/", self.driver.current_url)
def test_navigate_to_create_entry_form___content_field_is_present(self): login_as(self.driver, self.live_server_url, "user", "password") wait_for_element(self.driver, By.ID, "create-entry-link").click() self.assertIsNotNone(wait_for_element(self.driver, By.NAME, "content"))