new_contents: from django.contrib.auth.models import Permission
  from django.test import TestCase
  from django.urls import reverse
  
  from wagtail.core.models import Page
  from wagtail.tests.utils import WagtailTestUtils
  
  
  class TestWorkflowHistoryDetail(TestCase, WagtailTestUtils):
      fixtures = ['test.json']
  
      def setUp(self):
          self.user = self.create_test_user()
          self.login(self.user)
  
          self.christmas_event = Page.objects.get(url_path='/home/events/christmas/')
          self.christmas_event.save_revision()
  
          workflow = self.christmas_event.get_workflow()
          self.workflow_state = workflow.start(self.christmas_event, self.user)
  
      def test_get_index(self):
          response = self.client.get(
              reverse('wagtailadmin_pages:workflow_history', args=[self.christmas_event.id])
          )
          self.assertEqual(response.status_code, 200)
  
          self.assertContains(response, reverse('wagtailadmin_pages:edit', args=[self.christmas_event.id]))
          self.assertContains(response, reverse('wagtailadmin_pages:workflow_history_detail', args=[self.christmas_event.id, self.workflow_state.id]))
  
      def test_get_index_with_bad_permissions(self):
          # Remove privileges from user
          self.user.is_superuser = False
          self.user.user_permissions.add(
              Permission.objects.get(content_type__app_label='wagtailadmin', codename='access_admin')
          )
          self.user.save()
  
          response = self.client.get(
              reverse('wagtailadmin_pages:workflow_history', args=[self.christmas_event.id])
          )
  
          self.assertEqual(response.status_code, 403)
  
      def test_get_detail(self):
          response = self.client.get(
              reverse('wagtailadmin_pages:workflow_history_detail', args=[self.christmas_event.id, self.workflow_state.id])
          )
          self.assertEqual(response.status_code, 200)
  
          self.assertContains(response, reverse('wagtailadmin_pages:edit', args=[self.christmas_event.id]))
          self.assertContains(response, reverse('wagtailadmin_pages:workflow_history', args=[self.christmas_event.id]))
  
      def test_get_detail_with_bad_permissions(self):
          # Remove privileges from user
          self.user.is_superuser = False
          self.user.user_permissions.add(
              Permission.objects.get(content_type__app_label='wagtailadmin', codename='access_admin')
          )
          self.user.save()
  
          response = self.client.get(
              reverse('wagtailadmin_pages:workflow_history_detail', args=[self.christmas_event.id, self.workflow_state.id])
          )
  
          self.assertEqual(response.status_code, 403)
  
subject: Add tests