forked from Mapan/odoo17e
44 lines
1.8 KiB
Python
44 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.tests import common
|
|
|
|
|
|
class TestPushToken(common.TransactionCase):
|
|
|
|
def test_push_token_unique(self):
|
|
""" Ensure the 'push_token' field is unique.
|
|
When trying to insert an identical push_token, the existing one has to be unlinked first. """
|
|
|
|
common_push_token = 'ABC123'
|
|
|
|
visitor_1 = self.env['website.visitor'].create({'access_token': 'f9d2b3e247685b628b8e96f5788cf40a'})
|
|
push_token_1 = visitor_1._register_push_subscription(common_push_token)
|
|
|
|
self.assertEqual(visitor_1.push_subscription_ids[0], push_token_1)
|
|
self.assertTrue(visitor_1.has_push_notifications)
|
|
|
|
visitor_2 = self.env['website.visitor'].create({'access_token': 'f9d28377d61080c17076c35d9a1bccb5'})
|
|
push_token_2 = visitor_2._register_push_subscription(common_push_token)
|
|
|
|
self.assertFalse(bool(visitor_1.push_subscription_ids))
|
|
self.assertFalse(visitor_1.has_push_notifications)
|
|
self.assertEqual(visitor_2.push_subscription_ids[0], push_token_2)
|
|
self.assertTrue(visitor_2.has_push_notifications)
|
|
|
|
def test_sync_has_push_notification(self):
|
|
visitor_1 = self.env['website.visitor'].create({'access_token': 'f9d20bd006c3bf46b875451defb5991d'})
|
|
push_token_1 = visitor_1._register_push_subscription('ABC123')
|
|
|
|
self.assertTrue(visitor_1.has_push_notifications)
|
|
|
|
push_token_2 = visitor_1._register_push_subscription('ABC456')
|
|
self.assertTrue(visitor_1.has_push_notifications)
|
|
|
|
push_token_1.unlink()
|
|
self.assertTrue(visitor_1.has_push_notifications)
|
|
|
|
push_token_2.unlink()
|
|
# when removing the last push notification, the flag has to be set to False
|
|
self.assertFalse(visitor_1.has_push_notifications)
|