1# Copyright 2024 The Chromium Authors 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5from unittest import mock 6 7from crossbench.network.live import LiveNetwork 8from tests import test_helper 9from tests.crossbench.base import BaseCrossbenchTestCase 10 11 12class LiveNetworkTestCase(BaseCrossbenchTestCase): 13 14 def test_defaults(self): 15 network = LiveNetwork(browser_platform=self.platform) 16 self.assertTrue(network.traffic_shaper.is_live) 17 self.assertFalse(network.traffic_shaper.is_running) 18 self.assertFalse(network.is_running) 19 self.assertIn("live", str(network).lower()) 20 21 def test_open(self): 22 network = LiveNetwork(browser_platform=self.platform) 23 mock_browser_session = mock.Mock() 24 with network.open(mock_browser_session): 25 self.assertTrue(network.is_running) 26 self.assertFalse(network.extra_flags(self.browsers[0].attributes)) 27 # Should not be able to double open the network. 28 with self.assertRaises(AssertionError): 29 with network.open(mock_browser_session): 30 pass 31 self.assertFalse(network.is_running) 32 33 34if __name__ == "__main__": 35 test_helper.run_pytest(__file__) 36