273 行
7.8 KiB
JavaScript
273 行
7.8 KiB
JavaScript
const PAGE_PATH = "/pages/API/location-change/location-change";
|
|
const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
|
|
const isAndroid = platformInfo.startsWith('android')
|
|
const isIos = platformInfo.startsWith('ios')
|
|
const isHarmony = platformInfo.startsWith('harmony')
|
|
const isHarmonySimulator = isHarmony && platformInfo.includes('模拟器')
|
|
const isWeb = platformInfo.startsWith('web')
|
|
const isMP = platformInfo.startsWith('mp')
|
|
|
|
describe("location-change", () => {
|
|
if (isMP || isWeb || isHarmonySimulator) {
|
|
// 微信、web harmony 上会有权限弹框,暂时屏蔽测试
|
|
it('not support', async () => {
|
|
expect(1).toBe(1)
|
|
})
|
|
return
|
|
}
|
|
let page;
|
|
beforeAll(async () => {
|
|
page = await program.reLaunch(PAGE_PATH)
|
|
await page.waitFor(600)
|
|
});
|
|
|
|
// 测试辅助函数
|
|
async function setPageData(newData) {
|
|
return await page.setData({ data: newData });
|
|
}
|
|
|
|
it("system+type=wgs84+success", async () => {
|
|
if (isAndroid) {
|
|
await program.adbCommand(
|
|
'pm grant io.dcloud.uniappx android.permission.ACCESS_FINE_LOCATION');
|
|
await program.adbCommand(
|
|
'pm grant io.dcloud.uniappx android.permission.ACCESS_COARSE_LOCATION');
|
|
await program.adbCommand(
|
|
'pm grant io.dcloud.uniappx android.permission.ACCESS_BACKGROUND_LOCATION');
|
|
}
|
|
await setPageData({
|
|
currentSelectedProvider: 0,
|
|
currentSelectedType: 0,
|
|
startSuccess: false,
|
|
logAble: false
|
|
})
|
|
|
|
const stopLocationUpdateBtn = await page.$('#stopLocationUpdate')
|
|
await stopLocationUpdateBtn.tap()
|
|
|
|
const startLocationUpdateBtn = await page.$('#startLocationUpdate')
|
|
await startLocationUpdateBtn.tap()
|
|
|
|
await page.waitFor(500)
|
|
|
|
let data = await page.data('data')
|
|
let startSuccess = data['startSuccess']
|
|
expect(startSuccess).toEqual(true);
|
|
|
|
if (!isHarmony) {
|
|
// NOTE 鸿蒙上需要在设置中允许,屏蔽该测试
|
|
await setPageData({
|
|
startSuccess: false
|
|
})
|
|
|
|
const startLocationUpdateBackgroundBtn = await page.$('#startLocationUpdateBackground')
|
|
await startLocationUpdateBackgroundBtn.tap()
|
|
|
|
data = await page.data('data')
|
|
startSuccess = data['startSuccess']
|
|
expect(startSuccess).toEqual(true);
|
|
}
|
|
});
|
|
|
|
it(`system+type=gcj02+${isHarmony ? 'success' : 'fail'}`, async () => {
|
|
|
|
await setPageData({
|
|
currentSelectedProvider: 0,
|
|
currentSelectedType: 1,
|
|
startSuccess: false,
|
|
errCode: 0,
|
|
logAble: false
|
|
})
|
|
|
|
const stopLocationUpdateBtn = await page.$('#stopLocationUpdate')
|
|
await stopLocationUpdateBtn.tap()
|
|
|
|
const startLocationUpdateBtn = await page.$('#startLocationUpdate')
|
|
await startLocationUpdateBtn.tap()
|
|
|
|
await page.waitFor(1000)
|
|
|
|
let data = await page.data('data')
|
|
let startSuccess = data['startSuccess']
|
|
if (!isHarmony) {
|
|
let errCode = data['errCode']
|
|
expect(startSuccess).toEqual(false);
|
|
expect(errCode).toEqual(1505601);
|
|
} else {
|
|
expect(startSuccess).toEqual(true);
|
|
}
|
|
|
|
if (!isHarmony) {
|
|
// NOTE 鸿蒙上需要在设置中允许,屏蔽该测试
|
|
await setPageData({
|
|
currentSelectedProvider: 0,
|
|
currentSelectedType: 1,
|
|
startSuccess: false,
|
|
errCode: 0
|
|
})
|
|
|
|
const startLocationUpdateBackgroundBtn = await page.$('#startLocationUpdateBackground')
|
|
await startLocationUpdateBackgroundBtn.tap()
|
|
await page.waitFor(1000)
|
|
data = await page.data('data')
|
|
startSuccess = data['startSuccess']
|
|
errCode = data['errCode']
|
|
expect(startSuccess).toEqual(false);
|
|
expect(errCode).toEqual(1505601);
|
|
}
|
|
});
|
|
|
|
if (!isHarmony) {
|
|
it("tencent+type=wgs84+fail", async () => {
|
|
await setPageData({
|
|
logAble: false,
|
|
currentSelectedProvider: 1,
|
|
currentSelectedType: 0,
|
|
startSuccess: false,
|
|
errCode: 0
|
|
})
|
|
|
|
await setPageData({
|
|
currentSelectedType: 0
|
|
})
|
|
|
|
const stopLocationUpdateBtn = await page.$('#stopLocationUpdate')
|
|
await stopLocationUpdateBtn.tap()
|
|
|
|
const startLocationUpdateBtn = await page.$('#startLocationUpdate')
|
|
await startLocationUpdateBtn.tap()
|
|
|
|
let data = await page.data('data')
|
|
let startSuccess = data['startSuccess']
|
|
let errCode = data['errCode']
|
|
expect(startSuccess).toEqual(false);
|
|
expect(errCode).toEqual(1505607);
|
|
|
|
await setPageData({
|
|
currentSelectedProvider: 1,
|
|
currentSelectedType: 0,
|
|
startSuccess: false,
|
|
errCode: 0
|
|
})
|
|
|
|
const startLocationUpdateBackgroundBtn = await page.$('#startLocationUpdateBackground')
|
|
await startLocationUpdateBackgroundBtn.tap()
|
|
data = await page.data('data')
|
|
startSuccess = data['startSuccess']
|
|
errCode = data['errCode']
|
|
expect(startSuccess).toEqual(false);
|
|
expect(errCode).toEqual(1505607);
|
|
});
|
|
|
|
it("tencent+type=gcj02+success", async () => {
|
|
await setPageData({
|
|
currentSelectedProvider: 1,
|
|
currentSelectedType: 1,
|
|
startSuccess: false,
|
|
errCode: 0,
|
|
logAble: false
|
|
})
|
|
|
|
const stopLocationUpdateBtn = await page.$('#stopLocationUpdate')
|
|
await stopLocationUpdateBtn.tap()
|
|
|
|
const startLocationUpdateBtn = await page.$('#startLocationUpdate')
|
|
await startLocationUpdateBtn.tap()
|
|
|
|
let data = await page.data('data')
|
|
let startSuccess = data['startSuccess']
|
|
expect(startSuccess).toEqual(true);
|
|
|
|
await setPageData({
|
|
currentSelectedProvider: 1,
|
|
currentSelectedType: 1,
|
|
startSuccess: false,
|
|
errCode: 0
|
|
})
|
|
|
|
const startLocationUpdateBackgroundBtn = await page.$('#startLocationUpdateBackground')
|
|
await startLocationUpdateBackgroundBtn.tap()
|
|
data = await page.data('data')
|
|
startSuccess = data['startSuccess']
|
|
expect(startSuccess).toEqual(true);
|
|
});
|
|
|
|
it("tencent+system+fail", async () => {
|
|
await setPageData({
|
|
currentSelectedProvider: 1,
|
|
currentSelectedType: 1,
|
|
startSuccess: false,
|
|
errCode: 0,
|
|
logAble: false
|
|
})
|
|
|
|
const stopLocationUpdateBtn = await page.$('#stopLocationUpdate')
|
|
await stopLocationUpdateBtn.tap()
|
|
|
|
const startLocationUpdateBtn = await page.$('#startLocationUpdate')
|
|
await startLocationUpdateBtn.tap()
|
|
|
|
let data = await page.data('data')
|
|
let startSuccess = data['startSuccess']
|
|
expect(startSuccess).toEqual(true);
|
|
|
|
await setPageData({
|
|
currentSelectedProvider: 0,
|
|
currentSelectedType: 0,
|
|
startSuccess: false,
|
|
errCode: 0
|
|
})
|
|
|
|
await startLocationUpdateBtn.tap()
|
|
|
|
data = await page.data('data')
|
|
startSuccess = data['startSuccess']
|
|
let errCode = data['errCode']
|
|
expect(startSuccess).toEqual(false);
|
|
expect(errCode).toEqual(1505608);
|
|
|
|
await stopLocationUpdateBtn.tap()
|
|
|
|
await setPageData({
|
|
currentSelectedProvider: 0,
|
|
currentSelectedType: 0,
|
|
startSuccess: false,
|
|
errCode: 0
|
|
})
|
|
|
|
await startLocationUpdateBtn.tap()
|
|
|
|
data = await page.data('data')
|
|
startSuccess = data['startSuccess']
|
|
expect(startSuccess).toEqual(true);
|
|
|
|
await setPageData({
|
|
currentSelectedProvider: 1,
|
|
currentSelectedType: 1,
|
|
startSuccess: false,
|
|
errCode: 0
|
|
})
|
|
|
|
await startLocationUpdateBtn.tap()
|
|
data = await page.data('data')
|
|
startSuccess = data['startSuccess']
|
|
errCode = data['errCode']
|
|
expect(startSuccess).toEqual(false);
|
|
expect(errCode).toEqual(1505608);
|
|
});
|
|
}
|
|
|
|
it("stopLocationUpdate", async () => {
|
|
await setPageData({
|
|
stopSuccess: false,
|
|
logAble: true
|
|
})
|
|
|
|
await page.callMethod('stopLocationUpdate')
|
|
|
|
let data = await page.data('data')
|
|
let stopSuccess = data['stopSuccess']
|
|
expect(stopSuccess).toEqual(true);
|
|
})
|
|
});
|