[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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user