summaryrefslogtreecommitdiff
path: root/addons/test_mass_mailing/tests/test_link_tracker.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/test_mass_mailing/tests/test_link_tracker.py')
-rw-r--r--addons/test_mass_mailing/tests/test_link_tracker.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/addons/test_mass_mailing/tests/test_link_tracker.py b/addons/test_mass_mailing/tests/test_link_tracker.py
new file mode 100644
index 00000000..df2a23ae
--- /dev/null
+++ b/addons/test_mass_mailing/tests/test_link_tracker.py
@@ -0,0 +1,65 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo.tests.common import users
+from odoo.addons.test_mass_mailing.tests import common
+
+
+class TestLinkTracker(common.TestMassMailCommon):
+
+ def setUp(self):
+ super(TestLinkTracker, self).setUp()
+
+ self.link = self.env['link.tracker'].create({
+ 'url': 'https://www.example.com'
+ })
+
+ self.click = self.env['link.tracker.click'].create({
+ 'link_id': self.link.id,
+ 'ip': '100.00.00.00',
+ 'country_id': self.env.ref('base.fr').id,
+ })
+
+ def test_add_link(self):
+ code = self.link.code
+ self.assertEqual(self.link.count, 1)
+
+ # click from a new IP should create a new entry
+ click = self.env['link.tracker.click'].sudo().add_click(
+ code,
+ ip='100.00.00.01',
+ country_code='BEL'
+ )
+ self.assertEqual(click.ip, '100.00.00.01')
+ self.assertEqual(click.country_id, self.env.ref('base.be'))
+ self.assertEqual(self.link.count, 2)
+
+ # click from same IP (even another country) does not create a new entry
+ click = self.env['link.tracker.click'].sudo().add_click(
+ code,
+ ip='100.00.00.01',
+ country_code='FRA'
+ )
+ self.assertEqual(click, None)
+ self.assertEqual(self.link.count, 2)
+
+ @users('user_marketing')
+ def test_add_link_mail_stat(self):
+ mailing = self.env['mailing.mailing'].create({'name': 'Test Mailing', "subject": "Hi!"})
+ code = self.link.code
+ self.assertEqual(self.link.count, 1)
+ stat = self.env['mailing.trace'].create({'mass_mailing_id': mailing.id})
+ self.assertFalse(stat.opened)
+ self.assertFalse(stat.clicked)
+
+ # click from a new IP should create a new entry and update stat when provided
+ click = self.env['link.tracker.click'].sudo().add_click(
+ code,
+ ip='100.00.00.01',
+ country_code='BEL',
+ mailing_trace_id=stat.id
+ )
+ self.assertEqual(self.link.count, 2)
+ self.assertEqual(click.mass_mailing_id, mailing)
+ self.assertTrue(stat.opened)
+ self.assertTrue(stat.clicked)