Exemple #1
0
 def testLocallyBuiltPaths(self):
     self.assertEqual(
         util.GetBuildDirFromHostApkPath('/out/Foo/apks/test.apk'),
         '/out/Foo')
     self.assertEqual(
         util.GetBuildDirFromHostApkPath('/out/Bar/bin/test_bundle'),
         '/out/Bar')
    def __init__(self,
                 browser_type,
                 finder_options,
                 android_platform,
                 backend_settings,
                 local_apk=None,
                 target_os='android'):
        super(PossibleAndroidBrowser,
              self).__init__(browser_type, target_os,
                             backend_settings.supports_tab_control)
        assert browser_type in FindAllBrowserTypes(), (
            'Please add %s to android_browser_finder.FindAllBrowserTypes' %
            browser_type)
        self._platform = android_platform
        self._platform_backend = (android_platform._platform_backend)  # pylint: disable=protected-access
        self._backend_settings = backend_settings
        self._local_apk = local_apk
        self._flag_changer = None
        self._modules_to_install = None
        self._compile_apk = finder_options.compile_apk

        if self._local_apk is None and finder_options.chrome_root is not None:
            self._local_apk = self._backend_settings.FindLocalApk(
                self._platform_backend.device, finder_options.chrome_root)

        # At this point the local_apk, if any, must exist.
        assert self._local_apk is None or os.path.exists(self._local_apk)
        self._build_dir = util.GetBuildDirFromHostApkPath(self._local_apk)

        if finder_options.modules_to_install:
            self._modules_to_install = set(['base'] +
                                           finder_options.modules_to_install)

        self._support_apk_list = []
        if (self._backend_settings.requires_embedder
                or self._backend_settings.has_additional_apk):
            if finder_options.webview_embedder_apk:
                self._support_apk_list = finder_options.webview_embedder_apk
            else:
                self._support_apk_list = self._backend_settings.FindSupportApks(
                    self._local_apk, finder_options.chrome_root)
        elif finder_options.webview_embedder_apk:
            logging.warning(
                'No embedder needed for %s, ignoring --webview-embedder-apk option',
                self._backend_settings.browser_type)

        # At this point the apks in _support_apk_list, if any, must exist.
        for apk in self._support_apk_list:
            assert os.path.exists(apk)
 def _GetBrowserInstance(self, existing):
     browser_backend = android_browser_backend.AndroidBrowserBackend(
         self._platform_backend,
         self._browser_options,
         self.browser_directory,
         self.profile_directory,
         self._backend_settings,
         build_dir=util.GetBuildDirFromHostApkPath(self._local_apk))
     try:
         return browser.Browser(browser_backend,
                                self._platform_backend,
                                startup_args=(),
                                find_existing=existing)
     except Exception:
         browser_backend.Close()
         raise
Exemple #4
0
 def testNonLocallyBuiltPath(self):
     self.assertEqual(
         util.GetBuildDirFromHostApkPath('/some/other/path/test.apk'), None)
Exemple #5
0
 def testNoPathReturnsNone(self):
     self.assertEqual(util.GetBuildDirFromHostApkPath(None), None)