from django.test import Client from wagtail.test.utils import WagtailPageTests from wagtail.models import Site from wagtailcrx.tests.testapp.models import WebPage from wagtailcrx.models.wagtailsettings_models import AnalyticsSettings class AnalyticsSettingsTestCase(WagtailPageTests): """ Test that the relevant analytics settings appear in the homepage HTML. """ model = WebPage def setUp(self): # HTTP client. self.client = Client() # Use home page and default site. self.site = Site.objects.filter(is_default_site=True)[0] self.homepage = WebPage.objects.get(url_path="/home/") # Populate settings. self.settings = AnalyticsSettings.for_site(self.site) self.settings.ga_tracking_id = "UA-123" self.settings.head_scripts = "" self.settings.body_scripts = "" self.settings.save() def test_get(self): """ Tests to make sure the page serves a 200 from a GET request. """ response = self.client.get(self.homepage.url, follow=True) self.assertEqual(response.status_code, 200) def test_ga_tracking_id(self): """ Make sure the ga_tracking_id is present. """ response = self.client.get(self.homepage.url, follow=True) self.assertIn(self.settings.ga_tracking_id, str(response.content), 1) def test_head_scripts(self): """ Make sure the head_scripts is present. """ response = self.client.get(self.homepage.url, follow=True) self.assertInHTML(self.settings.head_scripts, str(response.content), 1) def test_body_scripts(self): """ Make sure the body_scripts is present. """ response = self.client.get(self.homepage.url, follow=True) self.assertInHTML(self.settings.body_scripts, str(response.content), 1)