Skip to content

Commit eb3e2bf

Browse files
committed
Merge pull request dtmilano#172 from steve-the-edwards/master
AVC: Fix adbclient.type to check type and fix package tests
2 parents b2fbfeb + 3328db9 commit eb3e2bf

2 files changed

Lines changed: 36 additions & 17 deletions

File tree

src/com/dtmilano/android/adb/adbclient.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -798,8 +798,11 @@ def dragDip(self, (x0, y0), (x1, y1), duration, steps=1, orientation=-1):
798798

799799
def type(self, text):
800800
self.__checkTransport()
801-
escaped = text.replace('%s', '\\%s')
802-
encoded = escaped.replace(' ', '%s')
801+
if type(text) is str:
802+
escaped = text.replace('%s', '\\%s')
803+
encoded = escaped.replace(' ', '%s')
804+
else:
805+
encoded = str(text);
803806
#FIXME find out which characters can be dangerous,
804807
# for exmaple not worst idea to escape "
805808
self.shell(u'input text "%s"' % encoded)

tests/com/dtmilano/android/adb/adbclienttests.py

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@
2020

2121
VERBOSE = False
2222

23+
TEST_TEMP_PACKAGE = False
2324
PKG = 'com.example.i2at.tc'
2425
ACTIVITY = 'TemperatureConverterActivity'
26+
CALCULATOR = 'calculator'
27+
CALC_ACTIVITY = 'Calculator'
2528

2629
#ANDROIANDROID_SERIAL = 'emulator-5554'
2730

@@ -168,30 +171,43 @@ def testType_digits_asInt(self):
168171

169172
def __checkPackageInstalled(self):
170173
packages = self.adbClient.shell('pm list packages').splitlines()
171-
self.assertIn('package:' + PKG, packages, PKG + " is not installed")
174+
self.assertTrue(packages, "Could not detect any packages installed")
175+
if TEST_TEMP_PACKAGE:
176+
self.assertIn('package:' + PKG, packages, PKG + " is not installed")
177+
return [PKG, ACTIVITY]
178+
else:
179+
for line in packages:
180+
if CALCULATOR in line:
181+
pkg = line[line.index(':')+1:]
182+
self.assertTrue(pkg, "No calculator package to use for testing")
183+
return [pkg, CALC_ACTIVITY]
184+
return False
172185

173186
def testStartActivity_component(self):
174-
self.__checkPackageInstalled()
175-
self.adbClient.startActivity(PKG + '/.' + ACTIVITY)
187+
pkg = self.__checkPackageInstalled()
188+
if pkg:
189+
self.adbClient.startActivity(pkg[0] + '/.' + pkg[1])
176190

177191
def testGetWindows(self):
178192
self.assertIsNotNone(self.adbClient.getWindows())
179193

180194
def testGetFocusedWindow(self):
181-
self.__checkPackageInstalled()
182-
self.adbClient.startActivity(PKG + '/.' + ACTIVITY)
183-
time.sleep(3)
184-
w = self.adbClient.getFocusedWindow()
185-
self.assertIsNotNone(w)
186-
self.assertEqual(PKG + '/' + PKG + '.' + ACTIVITY, w.activity)
195+
pkg = self.__checkPackageInstalled()
196+
if pkg:
197+
self.adbClient.startActivity(pkg[0] + '/.' + pkg[1])
198+
time.sleep(3)
199+
w = self.adbClient.getFocusedWindow()
200+
self.assertIsNotNone(w)
201+
self.assertEqual(pkg[0] + '/' + pkg[0] + '.' + pkg[1], w.activity)
187202

188203
def testGetFocusedWindowName(self):
189-
self.__checkPackageInstalled()
190-
self.adbClient.startActivity(PKG + '/.' + ACTIVITY)
191-
time.sleep(3)
192-
n = self.adbClient.getFocusedWindowName()
193-
self.assertIsNotNone(n)
194-
self.assertEqual(PKG + '/' + PKG + '.' + ACTIVITY, n)
204+
pkg = self.__checkPackageInstalled()
205+
if pkg:
206+
self.adbClient.startActivity(pkg[0] + '/.' + pkg[1])
207+
time.sleep(3)
208+
n = self.adbClient.getFocusedWindowName()
209+
self.assertIsNotNone(n)
210+
self.assertEqual(pkg[0] + '/' + pkg[0] + '.' + pkg[1], n)
195211

196212
def testStartActivity_uri(self):
197213
self.adbClient.startActivity(uri='http://www.google.com')

0 commit comments

Comments
 (0)