-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathcmd_pm_test.go
81 lines (70 loc) · 2.52 KB
/
cmd_pm_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package adb_test
import (
"context"
"fmt"
"strings"
"testing"
adb "github.com/prife/goadb"
"github.com/stretchr/testify/assert"
)
var (
adbclient, _ = adb.NewWithConfig(adb.ServerConfig{})
)
func TestDevice_PmListPackages(t *testing.T) {
assert.NotNil(t, adbclient)
d := adbclient.Device(adb.AnyDevice())
list, err := d.PmListPackages(true)
if err != nil {
t.Fatal(err)
}
for _, name := range list {
fmt.Println(name)
}
}
// TestDevice_ClearPackageData
/*
Exception occurred while executing 'clear':
java.lang.SecurityException: PID 6593 does not have permission android.permission.CLEAR_APP_USER_DATA to clear data of package com.heytap.smarthome
at com.android.server.am.ActivityManagerService.clearApplicationUserData(ActivityManagerService.java:3986)
at com.android.server.pm.PackageManagerShellCommand.runClear(PackageManagerShellCommand.java:2473)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:277)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:6823)
at android.os.Binder.shellCommand(Binder.java:1092)
at android.os.Binder.onTransact(Binder.java:912)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4352)
at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:6807)
at android.os.Binder.execTransactInternal(Binder.java:1392)
at android.os.Binder.execTransact(Binder.java:1299)
*/
func TestDevice_PmClear(t *testing.T) {
assert.NotNil(t, adbclient)
d := adbclient.Device(adb.AnyDevice())
list, err := d.PmListPackages(true)
if err != nil {
t.Fatal(err)
}
assert.True(t, len(list) > 0)
packageName := list[0]
fmt.Println("pm clear", packageName)
err = d.PmClear(list[0])
if err != nil {
assert.ErrorIs(t, err, adb.ErrSecurityException)
fmt.Println(err)
}
}
func TestDevice_PmUninstall(t *testing.T) {
assert.NotNil(t, adbclient)
d := adbclient.Device(adb.AnyDevice())
err := d.PmUninstall("non-existed-app")
assert.True(t, strings.Contains(err.Error(), "DELETE_FAILED_INTERNAL_ERROR"))
err = d.PmUninstall("com.tencent.wetestdemo")
assert.Nil(t, err)
}
func TestDevice_PmInstall(t *testing.T) {
assert.NotNil(t, adbclient)
d := adbclient.Device(adb.AnyDevice())
err := d.PmInstall(context.TODO(), "/data/local/tmp/WeTestDemo.apk", true, true, true)
assert.Nil(t, err)
}