@@ -223,12 +223,49 @@ describe('utils/adb', () => {
223
223
testFn : ( adbUtils ) => adbUtils . discoverInstalledFirefoxAPKs ( 'device1' ) ,
224
224
} ) ;
225
225
226
+ sinon . assert . calledOnce ( adb . fakeADBDevice . shell ) ;
227
+ } ) ;
228
+
229
+ it ( 'retrieves current user' , async ( ) => {
230
+ const adb = getFakeADBKit ( {
231
+ adbkitUtil : {
232
+ readAll : sinon . spy ( ( ) => {
233
+ return Promise . resolve ( Buffer . from ( '123\n' ) ) ;
234
+ } ) ,
235
+ } ,
236
+ } ) ;
237
+
238
+ const adbUtils = new ADBUtils ( { adb } ) ;
239
+ const promise = adbUtils . getCurrentUser ( ) ;
240
+
226
241
sinon . assert . calledOnce ( adb . fakeADBDevice . shell ) ;
227
242
sinon . assert . calledWith ( adb . fakeADBDevice . shell , [
228
- 'pm' ,
229
- 'list' ,
230
- 'packages' ,
243
+ 'am' ,
244
+ 'get-current-user' ,
231
245
] ) ;
246
+ const result = await assert . isFulfilled ( promise ) ;
247
+ assert . equal ( result , 123 ) ;
248
+ } ) ;
249
+
250
+ it ( 'rejects invalid get-current-user output' , async ( ) => {
251
+ const adb = getFakeADBKit ( {
252
+ adbkitUtil : {
253
+ readAll : sinon . spy ( ( ) => {
254
+ return Promise . resolve ( Buffer . from ( 'No user' ) ) ;
255
+ } ) ,
256
+ } ,
257
+ } ) ;
258
+
259
+ const adbUtils = new ADBUtils ( { adb } ) ;
260
+ const promise = adbUtils . getCurrentUser ( ) ;
261
+
262
+ sinon . assert . calledOnce ( adb . fakeADBDevice . shell ) ;
263
+ sinon . assert . calledWith ( adb . fakeADBDevice . shell , [
264
+ 'am' ,
265
+ 'get-current-user' ,
266
+ ] ) ;
267
+ await assert . isRejected ( promise , WebExtError ,
268
+ / U n a b l e t o r e t r i e v e c u r r e n t u s e r / ) ;
232
269
} ) ;
233
270
234
271
it ( 'resolves the array of the installed firefox APKs' , async ( ) => {
@@ -242,11 +279,27 @@ describe('utils/adb', () => {
242
279
} ) ,
243
280
} ,
244
281
} ) ;
282
+
283
+ const stubGetCurrentUser = sinon . stub (
284
+ ADBUtils . prototype ,
285
+ 'getCurrentUser' ,
286
+ ) ;
287
+ stubGetCurrentUser . resolves ( 0 ) ;
288
+
245
289
const adbUtils = new ADBUtils ( { adb } ) ;
246
290
247
291
const promise = adbUtils . discoverInstalledFirefoxAPKs ( 'device1' ) ;
248
292
const packages = await assert . isFulfilled ( promise ) ;
293
+ sinon . assert . calledOnce ( stubGetCurrentUser ) ;
294
+ sinon . assert . calledWith ( stubGetCurrentUser , 'device1' ) ;
249
295
sinon . assert . calledOnce ( adb . fakeADBDevice . shell ) ;
296
+ sinon . assert . calledWith ( adb . fakeADBDevice . shell , [
297
+ 'pm' ,
298
+ 'list' ,
299
+ 'packages' ,
300
+ '--user' ,
301
+ '0' ,
302
+ ] ) ;
250
303
sinon . assert . calledOnce ( adb . util . readAll ) ;
251
304
assert . deepEqual ( packages , [ 'org.mozilla.fennec' , 'org.mozilla.firefox' ] ) ;
252
305
} ) ;
0 commit comments