include README.mdown
recursive-include googletools/templates *
+recursive-include googletools/fixtures *
\ No newline at end of file
--- /dev/null
+[
+ {
+ "pk": 1,
+ "model": "googletools.analyticscode",
+ "fields": {
+ "code": "analytics-a",
+ "site": 1
+ }
+ },
+ {
+ "pk": 2,
+ "model": "googletools.analyticscode",
+ "fields": {
+ "code": "analytics-b",
+ "site": 2
+ }
+ }
+]
--- /dev/null
+[
+ {
+ "pk": 1,
+ "model": "googletools.siteverificationcode",
+ "fields": {
+ "code": "verification-a",
+ "site": 1
+ }
+ },
+ {
+ "pk": 2,
+ "model": "googletools.siteverificationcode",
+ "fields": {
+ "code": "verification-b",
+ "site": 2
+ }
+ }
+]
--- /dev/null
+[
+ {
+ "pk": 1,
+ "model": "sites.site",
+ "fields": {
+ "domain": "www.domaina.com",
+ "name": "Site A"
+ }
+ },
+ {
+ "pk": 2,
+ "model": "sites.site",
+ "fields": {
+ "domain": "www.domainb.com",
+ "name": "Site B"
+ }
+ }
+]
--- /dev/null
+{% load googletools %}{% analytics_code %}
\ No newline at end of file
--- /dev/null
+<script type="text/javascript">
+var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">
+var pageTracker = _gat._getTracker("analytics-a");
+pageTracker._initData();
+pageTracker._trackPageview();
+</script>
\ No newline at end of file
--- /dev/null
+<script type="text/javascript">
+var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">
+var pageTracker = _gat._getTracker("analytics-b");
+pageTracker._initData();
+pageTracker._trackPageview();
+</script>
\ No newline at end of file
--- /dev/null
+{% load googletools %}{% site_verification_code %}
\ No newline at end of file
--- /dev/null
+<meta name="google-site-verification" content="verification-a" />
\ No newline at end of file
--- /dev/null
+<meta name="google-site-verification" content="verification-b" />
\ No newline at end of file
class AnalyticsCodeNode(template.Node):
- def __init__(self):
- self.site = Site.objects.get_current()
+ def __init__(self, site):
+ self.site = site
self.template = 'googletools/analytics_code.html'
try:
self.code = AnalyticsCode.objects.get(site=self.site)
class SiteVerificationCodeNode(template.Node):
- def __init__(self):
- self.site = Site.objects.get_current()
+ def __init__(self, site):
+ self.site = site
self.template = 'googletools/site_verification_code.html'
try:
self.code = SiteVerificationCode.objects.get(site=self.site)
tag_name = token.split_contents()
except ValueError:
raise template.TemplateSyntaxError, '%r does not take any arguments' % token.contents.split()[0]
- return AnalyticsCodeNode()
-
+ return AnalyticsCodeNode(site=Site.objects.get_current())
@register.tag
def site_verification_code(parser, token):
tag_name = token.split_contents()
except ValueError:
raise template.TemplateSyntaxError, '%r does not take any arguments' % token.contents.split()[0]
- return SiteVerificationCodeNode()
+ return SiteVerificationCodeNode(site=Site.objects.get_current())
--- /dev/null
+from django.contrib.sites.models import Site
+from django.template.loader import render_to_string
+from django.test import TestCase
+
+from googletools.templatetags.googletools import AnalyticsCodeNode, \
+ SiteVerificationCodeNode
+
+
+class AnalyticsCodeTestCase(TestCase):
+ fixtures = ['sites', 'analytics_codes']
+
+ def setUp(self):
+ self.site_a = Site.objects.get(pk=1)
+ self.site_b = Site.objects.get(pk=2)
+ self.correct_out_a = render_to_string('googletools/tests/analytics_code_out_a.html', {})
+ self.correct_out_b = render_to_string('googletools/tests/analytics_code_out_b.html', {})
+
+ def test_templatetag(self):
+ code_in = render_to_string('googletools/tests/analytics_code_in.html', {})
+ self.assertEqual(code_in, self.correct_out_a)
+
+ def test_node_site_a(self):
+ node = AnalyticsCodeNode(site=self.site_a)
+ self.assertEqual(node.render(None), self.correct_out_a)
+
+ def test_node_site_b(self):
+ node = AnalyticsCodeNode(site=self.site_b)
+ self.assertEqual(node.render(None), self.correct_out_b)
+
+
+class SiteVerificationCodeTestCase(TestCase):
+ fixtures = ['sites', 'site_verification_codes']
+
+ def setUp(self):
+ self.site_a = Site.objects.get(pk=1)
+ self.site_b = Site.objects.get(pk=2)
+ self.correct_out_a = render_to_string('googletools/tests/site_verification_code_out_a.html', {})
+ self.correct_out_b = render_to_string('googletools/tests/site_verification_code_out_b.html', {})
+
+ def test_templatetag(self):
+ code_in = render_to_string('googletools/tests/site_verification_code_in.html', {})
+ self.assertEqual(code_in, self.correct_out_a)
+
+ def test_node_site_a(self):
+ node = SiteVerificationCodeNode(site=self.site_a)
+ self.assertEqual(node.render(None), self.correct_out_a)
+
+ def test_node_site_b(self):
+ node = SiteVerificationCodeNode(site=self.site_b)
+ self.assertEqual(node.render(None), self.correct_out_b)