Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Unified Diff: build/android/pylib/device/adb_wrapper_test.py

Issue 64553012: [android] Adds AdbWrapper which is the base of the eventual AndroidCommands replacement. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: addressed comments Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/android/pylib/device/adb_wrapper.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/pylib/device/adb_wrapper_test.py
diff --git a/build/android/pylib/device/adb_wrapper_test.py b/build/android/pylib/device/adb_wrapper_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c2fdd9f55523a85253bc85b7050ef62462a22c3
--- /dev/null
+++ b/build/android/pylib/device/adb_wrapper_test.py
@@ -0,0 +1,90 @@
+# Copyright (c) 2013 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.
+
+"""Tests for the AdbWrapper class."""
+
+import os
+import socket
+import tempfile
+import time
+import unittest
+
+import adb_wrapper
+
+
+class TestAdbWrapper(unittest.TestCase):
+
+ def setUp(self):
+ devices = adb_wrapper.AdbWrapper.GetDevices()
+ assert devices, 'A device must be attached'
+ self._adb = devices[0]
+ self._adb.WaitForDevice()
+
+ def _MakeTempFile(self, contents):
+ """Make a temporary file with the given contents.
+
+ Args:
+ contents: string to write to the temporary file.
+
+ Returns:
+ The absolute path to the file.
+ """
+ fi, path = tempfile.mkstemp()
+ with os.fdopen(fi, 'wb') as f:
+ f.write('foo')
+ return path
+
+ def testShell(self):
+ output = self._adb.Shell('echo test', expect_rc=0)
+ self.assertEqual(output.strip(), 'test')
+ output = self._adb.Shell('echo test')
+ self.assertEqual(output.strip(), 'test')
+ self.assertRaises(adb_wrapper.CommandFailedError, self._adb.Shell,
+ 'echo test', expect_rc=1)
+
+ def testPushPull(self):
+ path = self._MakeTempFile('foo')
+ device_path = '/data/local/tmp/testfile.txt'
+ local_tmpdir = os.path.dirname(path)
+ self._adb.Push(path, device_path)
+ self.assertEqual(self._adb.Shell('cat %s' % device_path), 'foo')
+ self._adb.Pull(device_path, local_tmpdir)
+ with open(os.path.join(local_tmpdir, 'testfile.txt'), 'r') as f:
+ self.assertEqual(f.read(), 'foo')
+
+ def testInstall(self):
+ path = self._MakeTempFile('foo')
+ self.assertRaises(adb_wrapper.CommandFailedError, self._adb.Install, path)
+
+ def testForward(self):
+ self.assertRaises(adb_wrapper.CommandFailedError, self._adb.Forward, 0, 0)
+
+ def testUninstall(self):
+ self.assertRaises(adb_wrapper.CommandFailedError, self._adb.Uninstall,
+ 'some.nonexistant.package')
+
+ def testRebootWaitForDevice(self):
+ self._adb.Reboot()
+ print 'waiting for device to reboot...'
+ while self._adb.GetState() == 'device':
+ time.sleep(1)
+ self._adb.WaitForDevice()
+ self.assertEqual(self._adb.GetState(), 'device')
+ print 'waiting for package manager...'
+ while 'package:' not in self._adb.Shell('pm path android'):
+ time.sleep(1)
+
+ def testRootRemount(self):
+ self._adb.Root()
+ while True:
+ try:
+ self._adb.Shell('start')
+ break
+ except adb_wrapper.CommandFailedError:
+ time.sleep(1)
+ self._adb.Remount()
+
+
+if __name__ == '__main__':
+ unittest.main()
« no previous file with comments | « build/android/pylib/device/adb_wrapper.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698