summaryrefslogtreecommitdiff
path: root/systrace/catapult/telemetry/telemetry/internal/backends/android_browser_backend_settings_unittest.py
diff options
context:
space:
mode:
Diffstat (limited to 'systrace/catapult/telemetry/telemetry/internal/backends/android_browser_backend_settings_unittest.py')
-rw-r--r--systrace/catapult/telemetry/telemetry/internal/backends/android_browser_backend_settings_unittest.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/systrace/catapult/telemetry/telemetry/internal/backends/android_browser_backend_settings_unittest.py b/systrace/catapult/telemetry/telemetry/internal/backends/android_browser_backend_settings_unittest.py
new file mode 100644
index 0000000..5b6c6c2
--- /dev/null
+++ b/systrace/catapult/telemetry/telemetry/internal/backends/android_browser_backend_settings_unittest.py
@@ -0,0 +1,55 @@
+# Copyright 2017 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 mock
+import unittest
+
+from telemetry.internal.backends import android_browser_backend_settings
+
+
+class AndroidBrowserBackendSettingsUnittest(unittest.TestCase):
+
+ def testWebViewGetDevtoolsRemotePortRetrySuccess(self):
+ mock_device = mock.Mock()
+ mock_device.GetPids.side_effect = [
+ {},
+ {},
+ {'webview.package': ['1111']},
+ ]
+
+ settings = android_browser_backend_settings.WebviewBackendSettings(
+ package='webview.package')
+ with mock.patch('time.sleep', return_value=None):
+ self.assertEquals(
+ settings.GetDevtoolsRemotePort(mock_device),
+ 'localabstract:webview_devtools_remote_1111')
+
+ def testWebViewGetDevtoolsRemotePortMultipleProcessesFailure(self):
+ mock_device = mock.Mock()
+ mock_device.GetPids.side_effect = [
+ {'webview.package': ['1111', '2222']}
+ ]
+
+ settings = android_browser_backend_settings.WebviewBackendSettings(
+ package='webview.package')
+ with mock.patch('time.sleep', return_value=None):
+ with self.assertRaises(Exception):
+ settings.GetDevtoolsRemotePort(mock_device)
+
+ def testWebViewGetDevtoolsRemotePortTimeoutFailure(self):
+ mock_device = mock.Mock()
+ mock_device.GetPids.side_effect = [
+ {},
+ {},
+ {},
+ {},
+ ]
+
+ settings = android_browser_backend_settings.WebviewBackendSettings(
+ package='webview.package')
+ with mock.patch('time.sleep', return_value=None) as time_mock:
+ with self.assertRaises(Exception):
+ settings.GetDevtoolsRemotePort(mock_device)
+ time_mock.assert_has_calls(
+ [mock.call(1), mock.call(2), mock.call(4), mock.call(8)])