def test_post_preview_unauthenticated_with_captcha(self): """Activate unauthenicated posting and test that if you fill the captcha you can post unauthenticated. """ testing.enable_unauthenticated_posting(self.root.forum) browser = self.layer.get_browser(topic_settings) self.assertEqual(browser.open('/root/forum'), 200) self.assertEqual(browser.get_link('Test Topic').click(), 200) # Fill and preview a comment form = browser.get_form('post') # There is no anonymous option self.assertRaises(AssertionError, form.get_control, 'anonymous') form.get_control("title").value = "Hello John" form.get_control("text").value = "I am Henri" self.assertEqual(form.get_control("action.preview").click(), 200) self.assertEqual(browser.inspect.feedback, []) self.assertEqual(browser.inspect.preview_author, ['anonymous']) self.assertEqual(browser.inspect.preview_subject, ['Hello John']) self.assertEqual(browser.inspect.preview_comment, ['I am Henri']) # Try to post the previewed comment without filling the captcha form = browser.get_form('post') self.assertEqual(form.get_control("action.post").click(), 200) self.assertEqual(browser.inspect.feedback, ["Invalid captcha value"]) self.assertEqual(browser.inspect.preview_author, []) self.assertEqual(browser.inspect.preview_subject, []) self.assertEqual(browser.inspect.preview_comment, []) self.assertEqual(browser.inspect.subjects, []) self.assertEqual(browser.inspect.comments, []) self.assertEqual(browser.inspect.authors, []) # Filling the captcha and post form = browser.get_form('post') form.get_control("captcha").value = testing.get_captcha_word(browser) self.assertEqual(form.get_control("title").value, "Hello John") self.assertEqual(form.get_control("text").value, "I am Henri") self.assertEqual(form.get_control("action.post").click(), 200) # And the comment is added self.assertEqual(browser.inspect.feedback, ["Comment added."]) self.assertEqual(browser.inspect.preview_author, []) self.assertEqual(browser.inspect.preview_subject, []) self.assertEqual(browser.inspect.preview_comment, []) self.assertEqual(browser.inspect.subjects, ['Hello John']) self.assertEqual(browser.inspect.comments, ['I am Henri']) self.assertEqual(browser.inspect.authors, ['anonymous'])
def test_post_preview_unauthenticated_with_captcha(self): """Activate unauthenicated posting and test the captcha integration. """ testing.enable_unauthenticated_posting(self.root.forum) browser = self.layer.get_browser(forum_settings) self.assertEqual(browser.open('/root/forum'), 200) # We are not authenticated, but the form to post is here self.assertTrue("Post a new topic" in browser.contents) form = browser.get_form('post') # The anonymous options is not here, even if it selected, are # we already are anonymous self.assertRaises(AssertionError, form.get_control, 'anonymous') form.get_control("topic").value = "Hello world" self.assertEqual(form.get_control("action.preview").click(), 200) self.assertEqual(browser.inspect.feedback, []) self.assertEqual(browser.inspect.preview_topic, ["Hello world"]) self.assertEqual(browser.inspect.preview_author, ['anonymous']) self.assertEqual(browser.inspect.topics, []) self.assertEqual(browser.inspect.authors, []) # Try to post form = browser.get_form('post') self.assertEqual(form.get_control("topic").value, "Hello world") self.assertEqual(form.get_control("action.post").click(), 200) # We didn't fill the captcha, the post was not commited self.assertEqual(browser.inspect.feedback, ["Invalid captcha value"]) self.assertEqual(browser.inspect.preview_topic, []) self.assertEqual(browser.inspect.preview_author, []) self.assertEqual(browser.inspect.topics, []) self.assertEqual(browser.inspect.authors, []) # Try to post filling the captcha form = browser.get_form('post') form.get_control("captcha").value = testing.get_captcha_word(browser) self.assertEqual(form.get_control("topic").value, "Hello world") self.assertEqual(form.get_control("action.post").click(), 200) self.assertEqual(browser.inspect.feedback, ["Topic added."]) self.assertEqual(browser.inspect.preview_topic, []) self.assertEqual(browser.inspect.preview_author, []) self.assertEqual(browser.inspect.topics, ['Hello world']) self.assertEqual(browser.inspect.authors, ['anonymous'])