45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
from odoo.addons.link_tracker.tests.common import MockLinkTracker
|
|
from odoo.tests import common, tagged
|
|
from odoo.tools import mute_logger
|
|
|
|
|
|
@tagged('post_install', '-at_install')
|
|
class TestTrackerHttpRequests(MockLinkTracker, common.HttpCase):
|
|
|
|
@mute_logger("odoo.addons.http_routing.models.ir_http", "odoo.http")
|
|
def test_no_preview_tracking(self):
|
|
"""Ensure that requests with a user agent matching known preview user agents will not be registered as a click"""
|
|
link_tracker = self.env['link.tracker'].create({
|
|
'url': 'https://odoo.com',
|
|
'title': 'Odoo',
|
|
})
|
|
self.assertEqual(len(link_tracker.link_click_ids), 0)
|
|
link = '/r/' + link_tracker.code
|
|
|
|
# Check that no click is registrered for a MicrosoftPreview agent
|
|
self.url_open(
|
|
link,
|
|
headers={
|
|
'User-Agent': 'Mozilla/5.0 MicrosoftPreview/2.0 +https://aka.ms/MicrosoftPreview',
|
|
}
|
|
)
|
|
self.assertEqual(len(link_tracker.link_click_ids), 0)
|
|
|
|
# Check that no click is registered for a Google Messages preview agent
|
|
self.url_open(
|
|
link,
|
|
headers={
|
|
'User-Agent': 'Mozilla/5.0 Google-PageRenderer Google (+https://developers.google.com/+/web/snippet/)'
|
|
}
|
|
)
|
|
self.assertEqual(len(link_tracker.link_click_ids), 0)
|
|
|
|
# Check (sanity) that a request from a regular UA does still register the click
|
|
self.url_open(
|
|
link,
|
|
headers={
|
|
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0'
|
|
}
|
|
)
|
|
self.assertEqual(len(link_tracker.link_click_ids), 1)
|