mirror of https://github.com/OCA/web.git
36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
# © 2022 Florian Kantelberg - initOS GmbH
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
from unittest.mock import MagicMock
|
|
|
|
import odoo.http
|
|
from odoo.tests import common
|
|
|
|
|
|
class TestDarkMode(common.TransactionCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
cls.request = MagicMock(env=cls.env)
|
|
odoo.http._request_stack.push(cls.request)
|
|
|
|
def test_dark_mode_cookie(self):
|
|
response = MagicMock()
|
|
|
|
# Cookie is set because the color_scheme changed
|
|
self.request.httprequest.cookies = {"color_scheme": "dark"}
|
|
self.env["ir.http"]._post_dispatch(response)
|
|
response.set_cookie.assert_called_with("color_scheme", "light")
|
|
|
|
# Cookie isn't set because the color_scheme is the same
|
|
response.reset_mock()
|
|
self.request.httprequest.cookies = {"color_scheme": "light"}
|
|
self.env["ir.http"]._post_dispatch(response)
|
|
response.set_cookie.assert_not_called()
|
|
|
|
# Cookie isn't set because it's device dependent
|
|
self.env.user.dark_mode_device_dependent = True
|
|
self.request.httprequest.cookies = {"color_scheme": "dark"}
|
|
self.env["ir.http"]._post_dispatch(response)
|
|
response.set_cookie.assert_not_called()
|