//go:build localtest package uixt import ( "os" "testing" "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/httprunner/httprunner/v5/uixt/ai" "github.com/httprunner/httprunner/v5/uixt/option" "github.com/httprunner/httprunner/v5/uixt/types" ) func setupADBDriverExt(t *testing.T) *XTDriver { device, err := NewAndroidDevice() require.Nil(t, err) device.Options.UIA2 = false device.Options.LogOn = false driver, err := device.NewDriver() require.Nil(t, err) return NewXTDriver(driver, ai.WithCVService(ai.CVServiceTypeVEDEM)) } func setupUIA2DriverExt(t *testing.T) *XTDriver { device, err := NewAndroidDevice() require.Nil(t, err) device.Options.UIA2 = true // use uiautomator2 driver device.Options.LogOn = false driver, err := device.NewDriver() require.Nil(t, err) return NewXTDriver(driver, ai.WithCVService(ai.CVServiceTypeVEDEM)) } func TestDevice_Android_GetPackageInfo(t *testing.T) { driver := setupADBDriverExt(t) appInfo, err := driver.GetDevice().GetPackageInfo("com.android.settings") require.Nil(t, err) t.Log(appInfo) assert.Equal(t, "com.android.settings", appInfo.Name) assert.NotEmpty(t, appInfo.AppPath) assert.NotEmpty(t, appInfo.AppMD5) } func TestDevice_Android_GetCurrentWindow(t *testing.T) { driver := setupADBDriverExt(t) driver.AppLaunch("com.android.settings") windowInfo, err := driver.GetDevice().(*AndroidDevice).GetCurrentWindow() require.Nil(t, err) assert.Equal(t, "com.android.settings", windowInfo.PackageName) } func TestDriver_ADB_Session_TODO(t *testing.T) { driver := setupADBDriverExt(t) err := driver.InitSession(nil) require.Nil(t, err) err = driver.DeleteSession() assert.Nil(t, err) } func TestDriver_ADB_Status_TODO(t *testing.T) { driver := setupADBDriverExt(t) status, err := driver.Status() require.Nil(t, err) t.Log(status) } func TestDriver_ADB_ScreenShot(t *testing.T) { driver := setupADBDriverExt(t) screenshot, err := driver.ScreenShot() assert.Nil(t, err) path, err := saveScreenShot(screenshot, "1234") require.Nil(t, err) defer os.Remove(path) t.Logf("save screenshot to %s", path) } func TestDriver_ADB_Rotation_TODO(t *testing.T) { driver := setupADBDriverExt(t) rotation, err := driver.Rotation() require.Nil(t, err) t.Logf("x = %d\ty = %d\tz = %d", rotation.X, rotation.Y, rotation.Z) } func TestDriver_ADB_DeviceSize(t *testing.T) { driver := setupADBDriverExt(t) deviceSize, err := driver.WindowSize() require.Nil(t, err) assert.Greater(t, deviceSize.Width, 200) assert.Greater(t, deviceSize.Height, 200) } func TestDriver_ADB_Source(t *testing.T) { driver := setupADBDriverExt(t) source, err := driver.Source() require.Nil(t, err) assert.Contains(t, source, "