コード例 #1
0
def run_android_webview(device, adapter):
    if adapter.options.package_name:
        logger.warn(
            '--package-name has no effect for android_webview, provider'
            'will be set to the --apk if it is provided.')

    if adapter.options.system_webview_shell:
        shell_pkg = apk_helper.GetPackageName(
            adapter.options.system_webview_shell)
        if shell_pkg != SYSTEM_WEBVIEW_SHELL_PKG:
            raise Exception(
                '{} has incorrect package name: {}, expected {}.'.format(
                    '--system-webview-shell apk', shell_pkg,
                    SYSTEM_WEBVIEW_SHELL_PKG))
        install_shell_as_needed = system_app.ReplaceSystemApp(
            device, shell_pkg, adapter.options.system_webview_shell)
        logger.info('Will install ' + shell_pkg + ' at ' +
                    adapter.options.system_webview_shell)
    else:
        install_shell_as_needed = no_op()

    if adapter.options.apk:
        install_webview_as_needed = webview_app.UseWebViewProvider(
            device, adapter.options.apk)
        logger.info('Will install WebView apk at ' + adapter.options.apk)
    else:
        install_webview_as_needed = no_op()

    with install_shell_as_needed, install_webview_as_needed:
        return adapter.run_test()
コード例 #2
0
 def use_webview_provider(dev):
     # We need the context manager to be applied before modifying any
     # shared preference files in case the replacement APK needs to be
     # set up, and it needs to be applied while the test is running.
     # Thus, it needs to be applied early during setup, but must still be
     # applied during _RunTest, which isn't possible using 'with' without
     # applying the context manager up in test_runner. Instead, we
     # manually invoke its __enter__ and __exit__ methods in setup and
     # teardown.
     self._use_webview_contextmanager = webview_app.UseWebViewProvider(
         dev, self._test_instance.use_webview_provider)
     # Pylint is not smart enough to realize that this field has
     # an __enter__ method, and will complain loudly.
     # pylint: disable=no-member
     self._use_webview_contextmanager.__enter__()
コード例 #3
0
    def _install_apks(self):
        if self.options.package_name:
            logger.warn('--package-name has no effect for weblayer, provider'
                        'will be set to the --apk if it is provided.')
        install_weblayer_shell_as_needed = maybe_install_user_apk(
            self._device, self.options.weblayer_shell, self.WEBLAYER_SHELL_PKG)
        install_weblayer_support_as_needed = maybe_install_user_apk(
            self._device, self.options.weblayer_support,
            self.WEBLAYER_SUPPORT_PKG)

        if self.options.apk:
            install_webview_as_needed = webview_app.UseWebViewProvider(
                self._device, self.options.apk)
            logger.info('Will install WebView apk at ' + self.options.apk)
        else:
            install_webview_as_needed = no_op()

        with install_weblayer_shell_as_needed,   \
             install_weblayer_support_as_needed, \
             install_webview_as_needed:
            yield
コード例 #4
0
def run_android_weblayer(device, adapter):
  if adapter.options.package_name:
    logger.warn('--package-name has no effect for weblayer, provider'
          'will be set to the --apk if it is provided.')

  install_weblayer_shell_as_needed = maybe_install_user_apk(
      device, adapter.options.weblayer_shell, WEBLAYER_SHELL_PKG)

  install_weblayer_support_as_needed = maybe_install_user_apk(
      device, adapter.options.weblayer_support, WEBLAYER_SUPPORT_PKG)

  if adapter.options.apk:
    install_webview_as_needed = webview_app.UseWebViewProvider(device,
        adapter.options.apk)
    logger.info('Will install WebView apk at ' + adapter.options.apk)
  else:
    install_webview_as_needed = no_op()

  with install_weblayer_shell_as_needed,\
       install_weblayer_support_as_needed,\
       install_webview_as_needed:
    return adapter.run_test()
コード例 #5
0
    def _install_apks(self):
        if self.options.package_name:
            logger.warn(
                '--package-name has no effect for android_webview, provider'
                'will be set to the --apk if it is provided.')

        if self.options.system_webview_shell:
            install_shell_as_needed = maybe_install_user_apk(
                self._device, self.options.system_webview_shell,
                self.SYSTEM_WEBVIEW_SHELL_PKG)
        else:
            install_shell_as_needed = no_op()

        if self.options.apk:
            install_webview_as_needed = webview_app.UseWebViewProvider(
                self._device, self.options.apk)
            logger.info('Will install WebView apk at ' + self.options.apk)
        else:
            install_webview_as_needed = no_op()

        with install_shell_as_needed, install_webview_as_needed:
            yield
コード例 #6
0
def maybe_install_webview_provider(device, apk):
  if apk:
    logger.info('Will install WebView apk at ' + apk)
    return webview_app.UseWebViewProvider(device, apk)
  else:
    return no_op()
コード例 #7
0
 def install_apks(self):
     """Install apks for testing"""
     with super(WebLayerFinchTestCase, self).install_apks(), \
       webview_app.UseWebViewProvider(self.device,
                                      self.options.webview_provider_apk):
         yield