Skip to content

Commit

Permalink
Merge 9ca0639 into 64e91c8
Browse files Browse the repository at this point in the history
  • Loading branch information
rafalp committed May 26, 2019
2 parents 64e91c8 + 9ca0639 commit 415365f
Show file tree
Hide file tree
Showing 25 changed files with 614 additions and 332 deletions.
1 change: 1 addition & 0 deletions devproject/settings.py
Expand Up @@ -178,6 +178,7 @@
# Misago apps
"misago.admin",
"misago.acl",
"misago.analytics",
"misago.cache",
"misago.core",
"misago.conf",
Expand Down
Empty file added misago/analytics/__init__.py
Empty file.
Empty file.
15 changes: 15 additions & 0 deletions misago/analytics/tests/test_google_analytics_html.py
@@ -0,0 +1,15 @@
from ...conf.test import override_dynamic_settings
from ...test import assert_contains, assert_not_contains


@override_dynamic_settings(google_tracking_id=None)
def test_tracking_script_is_not_included_if_tracking_id_is_not_set(db, client):
response = client.get("/")
assert_not_contains(response, "googletagmanager.com/gtag/js")


@override_dynamic_settings(google_tracking_id="UA-TEST")
def test_tracking_script_is_included_if_tracking_id_is_not_set(db, client):
response = client.get("/")
assert_contains(response, "googletagmanager.com/gtag/js")
assert_contains(response, "UA-TEST")
40 changes: 40 additions & 0 deletions misago/analytics/tests/test_google_verification_page.py
@@ -0,0 +1,40 @@
from django.urls import reverse

from ...conf.test import override_dynamic_settings
from ...test import assert_contains


@override_dynamic_settings(google_site_verification=None)
def test_verification_page_returns_404_if_verification_token_is_not_set(db, client):
verification_link = reverse(
"misago:google-site-verification", kwargs={"token": "t0k3n"}
)
response = client.get(verification_link)
assert response.status_code == 404


@override_dynamic_settings(google_site_verification="t0k3n")
def test_verification_page_returns_404_if_verification_token_is_invalid(db, client):
verification_link = reverse(
"misago:google-site-verification", kwargs={"token": "inv4l1d"}
)
response = client.get(verification_link)
assert response.status_code == 404


@override_dynamic_settings(google_site_verification="t0k3n")
def test_verification_page_returns_200_if_verification_token_is_correct(db, client):
verification_link = reverse(
"misago:google-site-verification", kwargs={"token": "t0k3n"}
)
response = client.get(verification_link)
assert response.status_code == 200


@override_dynamic_settings(google_site_verification="t0k3n")
def test_verification_page_contains_token(db, client):
verification_link = reverse(
"misago:google-site-verification", kwargs={"token": "t0k3n"}
)
response = client.get(verification_link)
assert_contains(response, "googlet0k3n.html")
11 changes: 11 additions & 0 deletions misago/analytics/urls.py
@@ -0,0 +1,11 @@
from django.conf.urls import url

from .views import google_site_verification

urlpatterns = [
url(
r"^google(?P<token>[a-z0-9]+)\.html$",
google_site_verification,
name="google-site-verification",
)
]
8 changes: 8 additions & 0 deletions misago/analytics/views.py
@@ -0,0 +1,8 @@
from django.http import Http404, HttpResponse


def google_site_verification(request, token):
if token != request.settings.google_site_verification:
raise Http404()

return HttpResponse("google-site-verification: google%s.html" % token)
16 changes: 15 additions & 1 deletion misago/conf/admin/__init__.py
Expand Up @@ -3,6 +3,7 @@

from .views import index
from .views import (
ChangeAnalyticsSettingsView,
ChangeCaptchaSettingsView,
ChangeGeneralSettingsView,
ChangeThreadsSettingsView,
Expand All @@ -16,6 +17,12 @@ def register_urlpatterns(self, urlpatterns):

urlpatterns.patterns("settings", url(r"^$", index, name="index"))

urlpatterns.single_pattern(
r"^analytics/",
"analytics",
"settings",
ChangeAnalyticsSettingsView.as_view(),
)
urlpatterns.single_pattern(
r"^captcha/", "captcha", "settings", ChangeCaptchaSettingsView.as_view()
)
Expand Down Expand Up @@ -61,10 +68,17 @@ def register_navigation_nodes(self, site):
namespace="captcha",
after="users:index",
)
site.add_node(
name=_("Analytics"),
description=_("Enable Google Analytics or setup Google Site Verification."),
parent="settings",
namespace="analytics",
after="captcha:index",
)
site.add_node(
name=_("Threads"),
description=_("Those settings control threads and posts."),
parent="settings",
namespace="threads",
after="captcha:index",
after="analytics:index",
)

0 comments on commit 415365f

Please sign in to comment.