From d057b1774f2cb159f6caa06ebf91817dea6ace92 Mon Sep 17 00:00:00 2001 From: Karl Hobley Date: Fri, 30 May 2014 16:07:23 +0100 Subject: [PATCH] Added tests for submitting pages to moderation --- .../wagtailadmin/tests/test_pages_views.py | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/wagtail/wagtailadmin/tests/test_pages_views.py b/wagtail/wagtailadmin/tests/test_pages_views.py index bc1a99e89..9cad6ecdc 100644 --- a/wagtail/wagtailadmin/tests/test_pages_views.py +++ b/wagtail/wagtailadmin/tests/test_pages_views.py @@ -111,6 +111,36 @@ class TestPageCreation(TestCase): self.assertIsInstance(page, SimplePage) self.assertTrue(page.live) + def test_create_simplepage_post_submit(self): + # Create a moderator user for testing email + moderator = User.objects.create_superuser('moderator', 'moderator@email.com', 'password') + + # Submit + post_data = { + 'title': "New page!", + 'content': "Some content", + 'slug': 'hello-world', + 'action-submit': "Submit", + } + response = self.client.post(reverse('wagtailadmin_pages_create', args=('tests', 'simplepage', self.root_page.id)), post_data) + + # Should be redirected to explorer page + self.assertEqual(response.status_code, 302) + + # Find the page and check it + page = Page.objects.get(path__startswith=self.root_page.path, slug='hello-world').specific + self.assertEqual(page.title, post_data['title']) + self.assertIsInstance(page, SimplePage) + self.assertFalse(page.live) + + # The latest revision for the page should now be in moderation + self.assertTrue(page.get_latest_revision().submitted_for_moderation) + + # Check that the moderator got an email + self.assertEqual(len(mail.outbox), 1) + self.assertEqual(mail.outbox[0].to, ['moderator@email.com']) + self.assertEqual(mail.outbox[0].subject, 'The page "New page!" has been submitted for moderation') + def test_create_simplepage_post_existingslug(self): # This tests the existing slug checking on page save @@ -219,6 +249,34 @@ class TestPageEdit(TestCase): # The page shouldn't have "has_unpublished_changes" flag set self.assertFalse(child_page_new.has_unpublished_changes) + def test_page_edit_post_submit(self): + # Create a moderator user for testing email + moderator = User.objects.create_superuser('moderator', 'moderator@email.com', 'password') + + # Tests submitting from edit page + post_data = { + 'title': "I've been edited!", + 'content': "Some content", + 'slug': 'hello-world', + 'action-submit': "Submit", + } + response = self.client.post(reverse('wagtailadmin_pages_edit', args=(self.child_page.id, )), post_data) + + # Should be redirected to explorer page + self.assertEqual(response.status_code, 302) + + # The page should have "has_unpublished_changes" flag set + child_page_new = SimplePage.objects.get(id=self.child_page.id) + self.assertTrue(child_page_new.has_unpublished_changes) + + # The latest revision for the page should now be in moderation + self.assertTrue(child_page_new.get_latest_revision().submitted_for_moderation) + + # Check that the moderator got an email + self.assertEqual(len(mail.outbox), 1) + self.assertEqual(mail.outbox[0].to, ['moderator@email.com']) + self.assertEqual(mail.outbox[0].subject, 'The page "Hello world!" has been submitted for moderation') # Note: should this be "I've been edited!"? + class TestPageDelete(TestCase): def setUp(self):