def testFramesFromMp4(self):
        mock_adb = MockAdbCommands([])
        backend = android_platform_backend.AndroidPlatformBackend(
            mock_adb, False)

        try:
            backend.InstallApplication('avconv')
        finally:
            if not backend.CanLaunchApplication('avconv'):
                logging.warning('Test not supported on this platform')
                return  # pylint: disable=W0150

        vid = os.path.join(util.GetUnittestDataDir(), 'vid.mp4')
        expected_timestamps = [
            0,
            763,
            783,
            940,
            1715,
            1732,
            1842,
            1926,
        ]

        # pylint: disable=W0212
        for i, timestamp_bitmap in enumerate(backend._FramesFromMp4(vid)):
            timestamp, bmp = timestamp_bitmap
            self.assertEquals(timestamp, expected_timestamps[i])
            expected_bitmap = bitmap.Bitmap.FromPngFile(
                os.path.join(util.GetUnittestDataDir(), 'frame%d.png' % i))
            self.assertTrue(expected_bitmap.IsEqual(bmp))
 def testGetCpuStatsInvalidPID(self):
     # Mock an empty /proc/pid/stat.
     adb_empty_proc_stat = MockAdbCommands([])
     backend = android_platform_backend.AndroidPlatformBackend(
         adb_empty_proc_stat, False)
     cpu_stats = backend.GetCpuStats('7702')
     self.assertEquals(cpu_stats, {})
예제 #3
0
 def Create(self):
     backend = android_browser_backend.AndroidBrowserBackend(
         self._options, *self._args)
     platform_backend = android_platform_backend.AndroidPlatformBackend(
         self._args[0].Adb(), self._options.no_performance_mode)
     b = browser.Browser(backend, platform_backend)
     backend.SetBrowser(b)
     return b
예제 #4
0
  def _InitPlatformIfNeeded(self):
    if self._platform:
      return

    self._platform_backend = android_platform_backend.AndroidPlatformBackend(
        self._backend_settings.adb.device(),
        self.finder_options.no_performance_mode)
    self._platform = platform.Platform(self._platform_backend)
예제 #5
0
    def testPsutil2(self):
        psutil = self.psutil_2_0()
        android_platform_backend.psutil = psutil

        # Mock an empty /proc/pid/stat.
        backend = android_platform_backend.AndroidPlatformBackend(
            android_device.AndroidDevice('1234'), self._options)
        cpu_stats = backend.GetCpuStats('7702')
        self.assertEquals({}, cpu_stats)
        self.assertEquals([[0]], psutil.set_cpu_affinity_args)
 def Create(self):
   backend = android_browser_backend.AndroidBrowserBackend(
       self.finder_options.browser_options, self._backend_settings,
       self.finder_options.android_rndis,
       output_profile_path=self.finder_options.output_profile_path,
       extensions_to_load=self.finder_options.extensions_to_load)
   platform_backend = android_platform_backend.AndroidPlatformBackend(
       self._backend_settings.adb.Adb(),
       self.finder_options.no_performance_mode)
   b = browser.Browser(backend, platform_backend)
   return b
 def testGetCpuStats(self):
   proc_stat_content = [
       '7702 (.android.chrome) S 167 167 0 0 -1 1077936448 '
       '3247 0 0 0 4 1 0 0 20 0 9 0 5603962 337379328 5867 '
       '4294967295 1074458624 1074463824 3197495984 3197494152 '
       '1074767676 0 4612 0 38136 4294967295 0 0 17 0 0 0 0 0 0 '
       '1074470376 1074470912 1102155776']
   adb_valid_proc_content = MockAdbCommands(proc_stat_content, {})
   backend = android_platform_backend.AndroidPlatformBackend(
       adb_valid_proc_content, False)
   cpu_stats = backend.GetCpuStats('7702')
   self.assertEquals(cpu_stats, {'CpuProcessTime': 5.0})
예제 #8
0
    def Create(self):
        if profile_types.GetProfileCreator(self.options.profile_type):
            raise Exception(
                "Profile creation not currently supported on Android")

        backend = android_browser_backend.AndroidBrowserBackend(
            self._options, self._backend_settings)
        platform_backend = android_platform_backend.AndroidPlatformBackend(
            self._backend_settings.adb.Adb(),
            self._options.no_performance_mode)
        b = browser.Browser(backend, platform_backend)
        return b
예제 #9
0
 def testGetCpuStats(self):
     proc_stat_content = (
         '7702 (.android.chrome) S 167 167 0 0 -1 1077936448 '
         '3247 0 0 0 4 1 0 0 20 0 9 0 5603962 337379328 5867 '
         '4294967295 1074458624 1074463824 3197495984 3197494152 '
         '1074767676 0 4612 0 38136 4294967295 0 0 17 0 0 0 0 0 0 '
         '1074470376 1074470912 1102155776\n')
     self._stubs.adb_commands.adb_device.mock_content = proc_stat_content
     self._stubs.adb_commands.adb_device.has_root = True
     backend = android_platform_backend.AndroidPlatformBackend(
         android_device.AndroidDevice('12345'), self._options)
     cpu_stats = backend.GetCpuStats('7702')
     self.assertEquals(cpu_stats, {'CpuProcessTime': 0.05})
 def testGetCpuStats(self):
   proc_stat_content = [
       '7702 (.android.chrome) S 167 167 0 0 -1 1077936448 '
       '3247 0 0 0 4 1 0 0 20 0 9 0 5603962 337379328 5867 '
       '4294967295 1074458624 1074463824 3197495984 3197494152 '
       '1074767676 0 4612 0 38136 4294967295 0 0 17 0 0 0 0 0 0 '
       '1074470376 1074470912 1102155776']
   self._stubs.adb_commands.adb_device.mock_content = proc_stat_content
   old_interface = self._stubs.adb_commands.adb_device.old_interface
   old_interface.can_access_protected_file_contents = True
   backend = android_platform_backend.AndroidPlatformBackend(
       android_device.AndroidDevice('12345'))
   cpu_stats = backend.GetCpuStats('7702')
   self.assertEquals(cpu_stats, {'CpuProcessTime': 5.0})
예제 #11
0
 def _platform_backend(self):
     return android_platform_backend.AndroidPlatformBackend(
         self._backend_settings.adb.Adb(),
         self.finder_options.no_performance_mode)
예제 #12
0
 def testIsScreenLockedTrue(self):
     test_input = ['a=b', 'mHasBeenInactive=true']
     backend = android_platform_backend.AndroidPlatformBackend(
         android_device.AndroidDevice('success'), self._options)
     self.assertTrue(backend._IsScreenLocked(test_input))
예제 #13
0
 def testIsScreenOnmScreenOnTrue(self):
     test_input = ['a=b', 'mScreenOn=true']
     backend = android_platform_backend.AndroidPlatformBackend(
         android_device.AndroidDevice('success'), self._options)
     self.assertTrue(backend._IsScreenOn(test_input))
예제 #14
0
 def testInstallTestCaSuccess(self):
     backend = android_platform_backend.AndroidPlatformBackend(
         android_device.AndroidDevice('success'), self._options)
     backend.InstallTestCa()
     self.assertTrue(backend.is_test_ca_installed)
예제 #15
0
 def testInstallTestCaFailure(self):
     backend = android_platform_backend.AndroidPlatformBackend(
         android_device.AndroidDevice('failure'), self._options)
     backend.InstallTestCa()
     self.assertFalse(backend.is_test_ca_installed)
예제 #16
0
 def testGetCpuStatsInvalidPID(self):
     # Mock an empty /proc/pid/stat.
     backend = android_platform_backend.AndroidPlatformBackend(
         android_device.AndroidDevice('1234'), self._options)
     cpu_stats = backend.GetCpuStats('7702')
     self.assertEquals(cpu_stats, {})
예제 #17
0
 def testIsScreenOnmInteractiveFalse(self):
     test_input = ['a=b', 'mInteractive=false']
     backend = android_platform_backend.AndroidPlatformBackend(
         android_device.AndroidDevice('success'), self._options)
     self.assertFalse(backend._IsScreenOn(test_input))