def test_submit_to_local_ga_articlepage_no_tags( self, mock_submit_tracking): '''request for articles with not tags should not have a cd6 value in the custom params''' request = RequestFactory().get( '/sections-main1-1/{}/{}/'.format( self.yourmind.slug, self.article2.slug), HTTP_X_DCMGUID="0000-000-01" ) request.site = self.main.get_site() middleware = GemMoloGoogleAnalyticsMiddleware() middleware.process_response( request, self.response) # a normal response should activate GA tracking mock_submit_tracking.assert_called_once_with( 'local_ga_tracking_code', request, self.response, {'cd5': self.article2.title, "cd3": 'Visitor', 'cd1': "0000-000-01"})
def test_submit_to_local_ga_articlepage_with_tags( self, mock_submit_tracking): """requests for article with tags should make a submit tracking with a cd6 value in the custom params containing all the article tags""" request = RequestFactory().get( '/sections-main1-1/{}/{}/'.format( self.yourmind.slug, self.article.slug), HTTP_HOST='localhost', HTTP_X_DCMGUID="0000-000-01" ) request.site = self.main.get_site() middleware = GemMoloGoogleAnalyticsMiddleware() middleware.process_response( request, self.response) # a normal response should activate GA tracking nav_tags = ArticlePageTags.objects.all() tags = [nav_tag.tag.title for nav_tag in nav_tags] mock_submit_tracking.assert_called_once_with( 'local_ga_tracking_code', request, self.response, {'cd5': self.article.title, "cd3": 'Visitor', 'cd1': "0000-000-01", 'cd6': "|".join(tags)} )
def test_submit_to_local_ga_translated_articlepage_title( self, mock_submit_tracking): """requests for article with tags should make a submit tracking with a cd6 value in the custom params containing all the article tags""" french = SiteLanguageRelation.objects.create( language_setting=Languages.for_site(Site.objects.first()), locale='fr', is_active=True) french_article = self.mk_article_translation(self.article2, french) french_article.title = "french translation of article" french_article.save_revision().publish() request = RequestFactory().get( '/sections-main1-1/{}/{}/'.format( self.yourmind.slug, french_article.slug), HTTP_HOST='localhost', HTTP_X_DCMGUID="0000-000-01" ) request.COOKIES[settings.LANGUAGE_COOKIE_NAME] = french.locale request.site = self.main.get_site() middleware = GemMoloGoogleAnalyticsMiddleware() middleware.process_response( request, self.response) # check that the tilte of the article in the main languge is used mock_submit_tracking.assert_called_once_with( 'local_ga_tracking_code', request, self.response, {'cd5': self.article2.title, "cd3": 'Visitor', 'cd1': "0000-000-01", })
def test_submit_to_local_ga__sensitive_info(self, mock_submit_tracking): ''' Paths with sensitive information should not be tracked on google analytics ''' request = RequestFactory().get( '/search/?q=user%40user.com', HTTP_HOST='localhost', ) request.site = self.main.get_site() middleware = GemMoloGoogleAnalyticsMiddleware() middleware.process_response( request, self.response) mock_submit_tracking.assert_not_called()
def test_submit_to_local_ga_valid_info(self, mock_submit_tracking): request = RequestFactory().get( '/search/?q=whatislife', HTTP_HOST='localhost', HTTP_X_DCMGUID="0000-000-01" ) request.site = self.main.get_site() middleware = GemMoloGoogleAnalyticsMiddleware() middleware.process_response( request, self.response) # a normal response should activate GA tracking mock_submit_tracking.assert_called_once_with( 'local_ga_tracking_code', request, self.response, {"cd3": 'Visitor', 'cd1': "0000-000-01"})
def test_submit_to_local_ga__ignored_info(self, mock_submit_tracking): ''' Paths in GOOGLE_ANALYTICS_IGNORE_PATH should not invoke a call to google analytics tracking ''' request = RequestFactory().get( '/profiles/password-reset/', HTTP_HOST='localhost', ) request.site = self.main.get_site() middleware = GemMoloGoogleAnalyticsMiddleware() middleware.process_response( request, self.response) # test that the tracking method is not called with senstive info mock_submit_tracking.assert_not_called() request = RequestFactory().get( '/profiles/reset-success/', HTTP_HOST='localhost', ) middleware.process_response( request, self.response) mock_submit_tracking.assert_not_called() request = RequestFactory().get( '/profiles/reset-password/', HTTP_HOST='localhost', ) middleware.process_response( request, self.response) mock_submit_tracking.assert_not_called()