Esempio n. 1
0
    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"))
Esempio n. 2
0
    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)
Esempio n. 3
0
    def test_click_browse_button___navigate_to_browse_page(self):
        self.driver.get(self.live_server_url)

        wait_for_element(self.driver, By.ID, "browse-link").click()

        self.assertEqual(self.live_server_url + "/browse",
                         self.driver.current_url)
Esempio n. 4
0
    def test_click_create_button_while_not_logged_in___navigate_to_login_screen(
            self):
        self.driver.get(self.live_server_url)

        wait_for_element(self.driver, By.ID, "create-entry-link").click()

        self.assertEqual(
            self.live_server_url + "/accounts/login/?next=/create_blog_entry",
            self.driver.current_url)
Esempio n. 5
0
    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_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_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)
Esempio n. 8
0
    def test_click_entry_title___that_entry_loaded(self):
        Entry(
            title="First Test Entry",
            content="First Test Content",
            owner=self.owner,
        ).save()

        pk = Entry.objects.get(title="First Test Entry").id

        self.driver.get(self.live_server_url + "/browse")
        wait_for_element(self.driver, By.CSS_SELECTOR,
                         ".blog-listing-entry .title").click()

        self.assertEqual(self.live_server_url + "/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))
Esempio n. 10
0
    def test_single_blog_entry_created_and_modified___published_time_is_present_in_listing_entry(
            self, mock_now):
        def now_time():
            for date in (datetime(2013, 2, 3, 4, 5, 6, tzinfo=utc),
                         datetime(2014, 7, 8, 9, 10, 11, tzinfo=utc)):
                yield date

        mock_now.side_effect = now_time()

        Entry(
            title="Test Post Title",
            content="Test Post Content",
            owner=self.owner,
        ).save()

        entry = Entry.objects.all()[0]
        pk = entry.id
        entry.title = "Modified Title"
        entry.save()

        self.driver.get(self.live_server_url + "/browse")
        publish_time = wait_for_element(
            self.driver, By.CSS_SELECTOR,
            ".blog-listing-entry .publish-time").text

        self.assertEqual(
            "Published: 03 Feb 2013 04:05:06 (Edit: 08 Jul 2014 09:10:11)",
            publish_time)
Esempio n. 11
0
    def test_multiple_blog_entry_present_with_earliest_updated_and_another_created_after___the_latest_created_is_the_entry(
            self):
        Entry(
            title="Test Title",
            content="Test Content",
            owner=self.owner,
        ).save()

        Entry(
            title="Second Test Title",
            content="Second Test Content",
            owner=self.owner,
        ).save()

        entry = Entry.objects.get(title="Test Title")
        entry.title = "Modified Test Title"
        entry.save()

        Entry(
            title="Third Test Title",
            content="Third Test Content",
            owner=self.owner,
        ).save()

        self.driver.get(self.live_server_url)

        self.assertEqual("Third Test Title",
                         wait_for_element(self.driver, By.ID, "title").text)
Esempio n. 12
0
    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"))
Esempio n. 13
0
    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)
Esempio n. 14
0
    def test_single_blog_entry_present___entry_is_the_entry(self):
        Entry(
            title="Test Title",
            content="Test Content",
            owner=self.owner,
        ).save()

        self.driver.get(self.live_server_url)

        self.assertEqual("Test Title",
                         wait_for_element(self.driver, By.ID, "title").text)
Esempio n. 15
0
    def test_navigate_to_existing_item___published_time_is_present(self):
        Entry(
            title="Test Post Title",
            content="Test Post Content",
            owner=self.owner,
        ).save()

        pk = Entry.objects.all()[0].id

        self.driver.get(self.live_server_url + "/blog_entry/" + str(pk))
        publish_time = wait_for_element(self.driver, By.CLASS_NAME, "publish-time").text
        self.assertEqual("Published: 02 Jan 2014 21:12:00", publish_time)
Esempio n. 16
0
    def test_navigate_to_existing_item___correct_content_is_present(self):
        Entry(
            title="Test Post Title",
            content="Test Post Content",
            owner=self.owner,
        ).save()

        pk = Entry.objects.all()[0].id

        self.driver.get(self.live_server_url + "/blog_entry/" + str(pk))
        content_text = wait_for_element(self.driver, By.ID, "content").text
        self.assertEqual("Test Post Content", content_text)
Esempio n. 17
0
    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"))
Esempio n. 18
0
    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"))
Esempio n. 19
0
    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"))
Esempio n. 20
0
    def test_single_blog_entry_created___published_time_is_present_in_listing_entry(
            self):
        Entry(
            title="Test Post Title",
            content="Test Post Content",
            owner=self.owner,
        ).save()

        self.driver.get(self.live_server_url + "/browse")
        publish_time = wait_for_element(
            self.driver, By.CSS_SELECTOR,
            ".blog-listing-entry .publish-time").text

        self.assertEqual("Published: 02 Jan 2014 21:12:00", publish_time)
Esempio n. 21
0
    def test_navigate_to_existing_item___published_time_is_present(self, mock_now):
        def now_time():
            for date in (datetime(2013, 2, 3, 4, 5, 6, tzinfo=utc), datetime(2014, 7, 8, 9, 10, 11, tzinfo=utc)):
                yield date
        mock_now.side_effect = now_time()

        Entry(
            title="Test Post Title",
            content="Test Post Content",
            owner=self.owner,
        ).save()

        entry = Entry.objects.all()[0]
        pk = entry.id
        entry.title = "Modified Title"
        entry.save()

        self.driver.get(self.live_server_url + "/blog_entry/" + str(pk))
        publish_time = wait_for_element(self.driver, By.CLASS_NAME, "publish-time").text
        self.assertEqual("Published: 03 Feb 2013 04:05:06 (Edit: 08 Jul 2014 09:10:11)", publish_time)
Esempio n. 22
0
    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"))
Esempio n. 23
0
    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"))
Esempio n. 24
0
    def test_user_clicks_login___taken_to_login_screen(self):
        wait_for_element(self.driver, By.ID, "login-link").click()

        self.assertEqual(self.live_server_url + "/accounts/login/?next=/", self.driver.current_url)
Esempio n. 25
0
 def test_user_not_logged_in___login_button_is_present(self):
     self.assertIsNotNone(wait_for_element(self.driver, By.ID, "login-link"))
Esempio n. 26
0
    def test_not_logged_in_click_create_entry___taken_to_login_page(self):
        wait_for_element(self.driver, By.ID, "create-entry-link").click()

        self.assertEqual(
            self.live_server_url + "/accounts/login/?next=/create_blog_entry",
            self.driver.current_url)
Esempio n. 27
0
    def test_no_blog_entries_present___no_entries_page_is_shown(self):
        self.driver.get(self.live_server_url)

        self.assertIsNotNone(
            wait_for_element(self.driver, By.ID, "no-blog-entries-title"))