blob: f63b2e075018af67b2dec0ae7a123efdee523ae3 [file] [log] [blame]
# 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 logging
import time
import unittest
from telemetry.core import platform as platform_module
from telemetry.internal.app import android_app
from telemetry.internal.backends import android_app_backend
from telemetry.internal.platform import android_device
from telemetry.testing import options_for_unittests
from devil.android.sdk import intent
class AndroidAppTest(unittest.TestCase):
def setUp(self):
self._options = options_for_unittests.GetCopy()
self._device = android_device.GetDevice(self._options)
def CreateAndroidApp(self, start_intent):
platform = platform_module.GetPlatformForDevice(self._device, self._options)
platform_backend = platform._platform_backend
app_backend = android_app_backend.AndroidAppBackend(
platform_backend, start_intent)
return android_app.AndroidApp(app_backend, platform_backend)
def testWebView(self):
if self._device is None:
logging.warning('No device found, skipping test.')
return
start_intent = intent.Intent(
package='com.google.android.googlequicksearchbox',
activity='.SearchActivity',
action='com.google.android.googlequicksearchbox.GOOGLE_SEARCH',
data=None,
extras={'query': 'google'},
category=None)
search_app = self.CreateAndroidApp(start_intent)
search_process = search_app.GetProcess(':search')
search_process._UpdateDevToolsClient()
# TODO(ariblue): Replace the app used in this test with one in which the
# setWebContentsDebuggingEnabled method is called on the WebView class.
# This will configure webviews for debugging with chrome devtools inspector
# and allow us to remove this check.
if search_process._devtools_client is None:
return
webview = search_app.GetProcess(':search').GetWebViews().pop()
webview.Navigate('https://www.google.com/search?q=flowers')
time.sleep(5)