[IMP] bus: add test for samesite bus

This commit adds a test for the bus samesite configuration.

opw-3336222

closes odoo/odoo#128856

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
This commit is contained in:
tsm-odoo
2023-07-25 17:35:37 +02:00
parent ad66dd52ee
commit c329d9edd2
+22 -1
View File
@@ -2,6 +2,7 @@
import gc
import json
import os
from collections import defaultdict
from datetime import timedelta
from freezegun import freeze_time
@@ -22,7 +23,8 @@ from ..websocket import (
Opcode,
TimeoutManager,
TimeoutReason,
Websocket
Websocket,
WebsocketConnectionHandler,
)
@common.tagged('post_install', '-at_install')
@@ -290,3 +292,22 @@ class TestWebsocketCaryall(WebsocketCase):
with patch('odoo.addons.bus.websocket.acquire_cursor') as mock:
self.websocket_connect()
self.assertFalse(mock.called)
@patch.dict(os.environ, {"ODOO_BUS_PUBLIC_SAMESITE_WS": "True"})
def test_public_configuration(self):
new_test_user(self.env, login='test_user', password='Password!1')
user_session = self.authenticate('test_user', 'Password!1')
serve_forever_called_event = Event()
def serve_forever(websocket, *args):
self.assertNotEqual(websocket._session.sid, user_session.sid)
self.assertNotEqual(websocket._session.uid, user_session.uid)
serve_forever_called_event.set()
with patch.object(WebsocketConnectionHandler, '_serve_forever', side_effect=serve_forever) as mock:
self.websocket_connect(
cookie=f'session_id={user_session.sid};',
origin="http://example.com"
)
serve_forever_called_event.wait(timeout=5)
self.assertTrue(mock.called)