| Index: tools/telemetry/telemetry/internal/backends/chrome_inspector/inspector_websocket_unittest.py
|
| diff --git a/tools/telemetry/telemetry/internal/backends/chrome_inspector/inspector_websocket_unittest.py b/tools/telemetry/telemetry/internal/backends/chrome_inspector/inspector_websocket_unittest.py
|
| deleted file mode 100644
|
| index 89cfd660950d8fb3ea68a71b422583eebb143641..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/telemetry/internal/backends/chrome_inspector/inspector_websocket_unittest.py
|
| +++ /dev/null
|
| @@ -1,185 +0,0 @@
|
| -# Copyright 2014 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -import errno
|
| -import socket
|
| -import unittest
|
| -
|
| -from telemetry import decorators
|
| -from telemetry.internal.backends.chrome_inspector import inspector_websocket
|
| -from telemetry.internal.backends.chrome_inspector import websocket
|
| -from telemetry.testing import simple_mock
|
| -
|
| -
|
| -class FakeSocket(object):
|
| - """A fake websocket that allows test to send random data."""
|
| - def __init__(self, mock_timer):
|
| - self._mock_timer = mock_timer
|
| - self._responses = []
|
| - self._timeout = None
|
| -
|
| - def AddResponse(self, response, time):
|
| - if self._responses:
|
| - assert self._responses[-1][1] < time, (
|
| - 'Current response is scheduled earlier than previous response.')
|
| - self._responses.append((response, time))
|
| -
|
| - def send(self, data):
|
| - pass
|
| -
|
| - def recv(self):
|
| - if not self._responses:
|
| - raise Exception('No more recorded responses.')
|
| -
|
| - response, time = self._responses.pop(0)
|
| - current_time = self._mock_timer.time()
|
| - if self._timeout is not None and time - current_time > self._timeout:
|
| - self._mock_timer.SetTime(current_time + self._timeout + 1)
|
| - raise websocket.WebSocketTimeoutException()
|
| -
|
| - self._mock_timer.SetTime(time)
|
| - if isinstance(response, Exception):
|
| - raise response
|
| - return response
|
| -
|
| - def settimeout(self, timeout):
|
| - self._timeout = timeout
|
| -
|
| -
|
| -def _DoNothingHandler(elapsed_time):
|
| - del elapsed_time # unused
|
| -
|
| -
|
| -class InspectorWebsocketUnittest(unittest.TestCase):
|
| -
|
| - def setUp(self):
|
| - self._mock_timer = simple_mock.MockTimer()
|
| -
|
| - def tearDown(self):
|
| - self._mock_timer.Restore()
|
| -
|
| - @decorators.Disabled('chromeos', 'mac') # crbug.com/483212, crbug.com/498950
|
| - def testDispatchNotification(self):
|
| - inspector = inspector_websocket.InspectorWebsocket()
|
| - fake_socket = FakeSocket(self._mock_timer)
|
| - # pylint: disable=protected-access
|
| - inspector._socket = fake_socket
|
| -
|
| - results = []
|
| - def OnTestEvent(result):
|
| - results.append(result)
|
| -
|
| - inspector.RegisterDomain('Test', OnTestEvent)
|
| - fake_socket.AddResponse('{"method": "Test.foo"}', 5)
|
| - inspector.DispatchNotifications()
|
| - self.assertEqual(1, len(results))
|
| - self.assertEqual('Test.foo', results[0]['method'])
|
| -
|
| - @decorators.Disabled('chromeos') # crbug.com/483212
|
| - def testDispatchNotificationTimedOut(self):
|
| - inspector = inspector_websocket.InspectorWebsocket()
|
| - fake_socket = FakeSocket(self._mock_timer)
|
| - # pylint: disable=protected-access
|
| - inspector._socket = fake_socket
|
| -
|
| - results = []
|
| - def OnTestEvent(result):
|
| - results.append(result)
|
| -
|
| - inspector.RegisterDomain('Test', OnTestEvent)
|
| - fake_socket.AddResponse('{"method": "Test.foo"}', 11)
|
| - with self.assertRaises(
|
| - websocket.WebSocketTimeoutException):
|
| - inspector.DispatchNotifications(timeout=10)
|
| - self.assertEqual(0, len(results))
|
| -
|
| - @decorators.Disabled('chromeos') # crbug.com/483212
|
| - def testUnregisterDomain(self):
|
| - inspector = inspector_websocket.InspectorWebsocket()
|
| - fake_socket = FakeSocket(self._mock_timer)
|
| - # pylint: disable=protected-access
|
| - inspector._socket = fake_socket
|
| -
|
| - results = []
|
| - def OnTestEvent(result):
|
| - results.append(result)
|
| -
|
| - inspector.RegisterDomain('Test', OnTestEvent)
|
| - inspector.RegisterDomain('Test2', OnTestEvent)
|
| - inspector.UnregisterDomain('Test')
|
| -
|
| - fake_socket.AddResponse('{"method": "Test.foo"}', 5)
|
| - fake_socket.AddResponse('{"method": "Test2.foo"}', 10)
|
| -
|
| - inspector.DispatchNotifications()
|
| - self.assertEqual(0, len(results))
|
| -
|
| - inspector.DispatchNotifications()
|
| - self.assertEqual(1, len(results))
|
| - self.assertEqual('Test2.foo', results[0]['method'])
|
| -
|
| - @decorators.Disabled('chromeos') # crbug.com/483212
|
| - def testUnregisterDomainWithUnregisteredDomain(self):
|
| - inspector = inspector_websocket.InspectorWebsocket()
|
| - with self.assertRaises(AssertionError):
|
| - inspector.UnregisterDomain('Test')
|
| -
|
| - def testAsyncRequest(self):
|
| - inspector = inspector_websocket.InspectorWebsocket()
|
| - fake_socket = FakeSocket(self._mock_timer)
|
| - # pylint: disable=protected-access
|
| - inspector._socket = fake_socket
|
| - response_count = [0]
|
| -
|
| - def callback0(response):
|
| - response_count[0] += 1
|
| - self.assertEqual(2, response_count[0])
|
| - self.assertEqual('response1', response['result']['data'])
|
| -
|
| - def callback1(response):
|
| - response_count[0] += 1
|
| - self.assertEqual(1, response_count[0])
|
| - self.assertEqual('response2', response['result']['data'])
|
| -
|
| - request1 = {'method': 'Test.foo'}
|
| - inspector.AsyncRequest(request1, callback0)
|
| - request2 = {'method': 'Test.foo'}
|
| - inspector.AsyncRequest(request2, callback1)
|
| - fake_socket.AddResponse('{"id": 5555555, "result": {}}', 1)
|
| - inspector.DispatchNotifications()
|
| - self.assertEqual(0, response_count[0])
|
| - fake_socket.AddResponse(
|
| - '{"id": %d, "result": {"data": "response2"}}' % request2['id'], 1)
|
| - fake_socket.AddResponse(
|
| - '{"id": %d, "result": {"data": "response1"}}' % request1['id'], 2)
|
| - inspector.DispatchNotifications()
|
| - inspector.DispatchNotifications()
|
| - self.assertEqual(2, response_count[0])
|
| - fake_socket.AddResponse('{"id": 6666666, "result": {}}', 1)
|
| - inspector.DispatchNotifications()
|
| - self.assertEqual(2, response_count[0])
|
| -
|
| - def testEAGAIN(self):
|
| - inspector = inspector_websocket.InspectorWebsocket()
|
| - fake_socket = FakeSocket(self._mock_timer)
|
| - # pylint: disable=protected-access
|
| - inspector._socket = fake_socket
|
| -
|
| - error = socket.error(errno.EAGAIN, "error string")
|
| - fake_socket.AddResponse(error, 4)
|
| - fake_socket.AddResponse('{"asdf": "qwer"}', 5)
|
| -
|
| - result = inspector._Receive()
|
| - self.assertEqual(result, {"asdf" : "qwer"})
|
| -
|
| - def testSocketErrorOtherThanEAGAIN(self):
|
| - inspector = inspector_websocket.InspectorWebsocket()
|
| - fake_socket = FakeSocket(self._mock_timer)
|
| - # pylint: disable=protected-access
|
| - inspector._socket = fake_socket
|
| -
|
| - error = socket.error(errno.EPIPE, "error string")
|
| - fake_socket.AddResponse(error, 4)
|
| -
|
| - self.assertRaises(socket.error, inspector._Receive)
|
|
|