提交 12847428 编写于 作者: lizhongyi_'s avatar lizhongyi_

Merge branch 'dev' of https://gitcode.net/dcloud/hello-uts into dev

...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
<button @click="singlePermissionFlowClick">单权限申请流程测试</button> <button @click="singlePermissionFlowClick">单权限申请流程测试</button>
<button @click="dispatchAsyncClick">任务分发测试</button> <button @click="dispatchAsyncClick">任务分发测试</button>
<button @click="pathTestClick">路径转换测试</button> <button @click="pathTestClick">路径转换测试</button>
<button @click="privacyStateClick">隐私协议状态测试</button>
<view class="uni-padding-wrap uni-common-mt"> <view class="uni-padding-wrap uni-common-mt">
<view class="uni-hello-text"> <view class="uni-hello-text">
1. 当前页面已通过initAppLifecycle函数注册了生命周期监听。 1. 当前页面已通过initAppLifecycle函数注册了生命周期监听。
...@@ -27,11 +28,16 @@ ...@@ -27,11 +28,16 @@
<text>{{text}}</text> <text>{{text}}</text>
</view> </view>
</view> </view>
<button class="testButton" @click="gotoSystemPermissionActivityClick">手动申请权限测试</button> <button @click="gotoSystemPermissionActivityClick">手动申请权限测试</button>
<button @tap="testGoOtherActivity">跳转拍照界面</button> <button @tap="testGoOtherActivity">跳转拍照界面</button>
<button @tap="testUnRegLifecycle">取消注册周期函数</button> <button @tap="testUnRegLifecycle">取消注册周期函数</button>
<image :src="selectImage" v-if="selectImage"></image> <image :src="selectImage" v-if="selectImage"></image>
<view class="uni-padding-wrap uni-common-mt">
<view class="uni-hello-text">
获取设备信息,观察是否符合预期
</view>
</view>
<button @tap="getDeviceInfoClick">获取设备基础信息</button>
</view> </view>
</template> </template>
...@@ -48,7 +54,9 @@ ...@@ -48,7 +54,9 @@
convert2AbsFullPathTest, convert2AbsFullPathTest,
unRegLifecycle, unRegLifecycle,
initAppLifecycle, initAppLifecycle,
gotoCameraTake gotoCameraTake,
getDeviceInfoTest,
privacyStateTest
} from '@/uni_modules/uts-platform-api' } from '@/uni_modules/uts-platform-api'
/** /**
...@@ -70,6 +78,23 @@ ...@@ -70,6 +78,23 @@
}); });
}, },
methods: { methods: {
privacyStateClick(){
privacyStateTest(function(ret,desc){
if (ret) {
uni.showToast({
title: '测试通过'
})
} else {
uni.showToast({
icon: 'none',
title: '失败:' + desc
})
}
})
},
getDeviceInfoClick(){
this.text = getDeviceInfoTest()
},
testGoOtherActivity(){ testGoOtherActivity(){
var that = this; var that = this;
let ret = gotoCameraTake(function(file){ let ret = gotoCameraTake(function(file){
...@@ -142,7 +167,6 @@ ...@@ -142,7 +167,6 @@
dispatchAsyncTest(function(ret,desc){ dispatchAsyncTest(function(ret,desc){
if (ret) { if (ret) {
uni.showToast({ uni.showToast({
icon: 'none',
title: '测试通过' title: '测试通过'
}) })
} else { } else {
......
...@@ -5,6 +5,7 @@ import MediaStore from "android.provider.MediaStore"; ...@@ -5,6 +5,7 @@ import MediaStore from "android.provider.MediaStore";
import Activity from "android.app.Activity"; import Activity from "android.app.Activity";
import Bitmap from "android.graphics.Bitmap"; import Bitmap from "android.graphics.Bitmap";
import FileOutputStream from "java.io.FileOutputStream"; import FileOutputStream from "java.io.FileOutputStream";
import File from "java.io.File";
import Intent from 'android.content.Intent'; import Intent from 'android.content.Intent';
/** /**
...@@ -37,6 +38,30 @@ export function getUniActivityTest() : boolean { ...@@ -37,6 +38,30 @@ export function getUniActivityTest() : boolean {
return true return true
} }
export function privacyStateTest(callback : (ret : boolean, desc : string) => void) {
// 先重置用户同意状态
UTSAndroid.resetPrivacyAgree()
if (UTSAndroid.isPrivacyAgree() == true) {
// 重置没有生效
callback(false,"resetPrivacyAgree error")
}
UTSAndroid.setPrivacyAgree(true)
UTSAndroid.dispatchAsync("io",function(res){
if (UTSAndroid.isPrivacyAgree() == false) {
// 重置没有生效
callback(false,"setPrivacyAgree error")
console.log("setPrivacyAgree error")
}
callback(true,"pass")
},null)
}
/** /**
* UTSAndroid.getAppTempPath 测试示例 * UTSAndroid.getAppTempPath 测试示例
*/ */
...@@ -245,7 +270,7 @@ export function arrayPermissionFlowTest(callback : (ret : boolean, desc : string ...@@ -245,7 +270,7 @@ export function arrayPermissionFlowTest(callback : (ret : boolean, desc : string
let permissionNeed = utsArrayOf("android.permission.READ_CALENDAR", "android.permission.WRITE_CALENDAR", "android.permission.READ_CONTACTS", "android.permission.WRITE_CONTACTS", "android.permission.GET_ACCOUNTS") let permissionNeed = utsArrayOf("android.permission.READ_CALENDAR", "android.permission.WRITE_CALENDAR", "android.permission.READ_CONTACTS", "android.permission.WRITE_CONTACTS", "android.permission.GET_ACCOUNTS")
if (UTSAndroid.getSystemPermissionDenied(UTSAndroid.getUniActivity()!, permissionNeed).isEmpty()) { if (UTSAndroid.getSystemPermissionDenied(UTSAndroid.getUniActivity()!, permissionNeed).isEmpty()) {
callback(false, "预期当前不具备 读写日历/联系人的权限") callback(false, "已具备 日历/联系人权限")
return; return;
} }
...@@ -273,7 +298,34 @@ export function arrayPermissionFlowTest(callback : (ret : boolean, desc : string ...@@ -273,7 +298,34 @@ export function arrayPermissionFlowTest(callback : (ret : boolean, desc : string
} }
/**
* 获取设备信息
*/
export function getDeviceInfoTest():string {
let info = ''
info += 'isUniMp: '+UTSAndroid.isUniMp() + "\n ";
info += 'getAppDarkMode: '+UTSAndroid.getAppDarkMode() + "\n ";
info += 'getLanguageInfo: '+UTSAndroid.getLanguageInfo(UTSAndroid.getAppContext()!!) + "\n ";
info += 'getWebViewInfo: '+UTSAndroid.getWebViewInfo(UTSAndroid.getAppContext()!!) + "\n ";
info += 'getDeviceID: '+UTSAndroid.getDeviceID(UTSAndroid.getAppContext()!!) + "\n ";
info += 'getOAID: '+UTSAndroid.getOAID() + "\n ";
info += 'getInnerVersion: '+UTSAndroid.getInnerVersion() + "\n ";
info += 'getUniCompileVersion: '+UTSAndroid.getUniCompileVersion() + "\n ";
info += 'getUniRuntimeVersion: '+UTSAndroid.getUniRuntimeVersion() + "\n ";
info += 'getAppId: '+UTSAndroid.getAppId() + "\n ";
info += 'getAppVersion: '+UTSAndroid.getAppVersion() + "\n ";
info += 'getAppName: '+UTSAndroid.getAppName() + "\n ";
info += 'getOsTheme: '+UTSAndroid.getOsTheme() + "\n ";
info += 'getScreenInfo: '+UTSAndroid.getScreenInfo() + "\n ";
info += 'getStatusBarHeight: '+UTSAndroid.getStatusBarHeight() + "\n ";
info += 'isTitleNViewShow: '+UTSAndroid.isTitleNViewShow() + "\n ";
info += 'isTabBarShow: '+UTSAndroid.isTabBarShow() + "\n ";
info += 'getWindowHeight: '+UTSAndroid.getWindowHeight() + "\n ";
info += 'getSafeAreaInsets: '+UTSAndroid.getSafeAreaInsets() + "\n ";
info += 'isUniAppX: '+UTSAndroid.isUniAppX() + "\n ";
return info
}
/** /**
* 任务分发测试 * 任务分发测试
*/ */
...@@ -295,11 +347,11 @@ export function dispatchAsyncTest(callback : (ret : boolean, desc : string) => v ...@@ -295,11 +347,11 @@ export function dispatchAsyncTest(callback : (ret : boolean, desc : string) => v
/** /**
* dom 参数,只在2.0生效,1.0会自动切换到main线程 * dom 参数,只在2.0生效,1.0会自动切换到main线程
*/ */
if(!Thread.currentThread().name.startWith("DefaultDispatcher")){ if(!Thread.currentThread().name.contains("DefaultDispatcher")){
callback(false,"io thread error") callback(false,"io thread error")
return return
} }
callback(true) callback(true,"pass")
},null) },null)
},null) },null)
......
import { describe, test, expect, Result } from './tests.uts' import { describe, test, expect, Result } from './tests.uts'
class User{
name:string = "";
age:number = 12;
}
export function testJSON() : Result { export function testJSON() : Result {
return describe("JSON", () => { return describe("JSON", () => {
test('parse', () => { test('parse', () => {
...@@ -19,7 +26,8 @@ export function testJSON() : Result { ...@@ -19,7 +26,8 @@ export function testJSON() : Result {
age: 30, age: 30,
city: 'New York', city: 'New York',
}); });
const json2 = '{"string":"Hello","number":42,"boolean":true,"nullValue":null,"array":[1,2,3],"object":{"nestedKey":"nestedValue"}}'; const json2 = '{"string":"Hello","number":42,"boolean":true,"nullValue":null,"array":[1,2,3],"object":{"nestedKey":"nestedValue"}}';
const obj2 = JSON.parse(json2)!; const obj2 = JSON.parse(json2)!;
expect(obj2).toEqual({ expect(obj2).toEqual({
...@@ -35,7 +43,11 @@ export function testJSON() : Result { ...@@ -35,7 +43,11 @@ export function testJSON() : Result {
expect(obj2['object']).toEqual({ expect(obj2['object']).toEqual({
nestedKey: 'nestedValue', nestedKey: 'nestedValue',
}) })
// 目前仅android 支持,暂不放开
// let obj3 = JSON.parse<User>(json1);
// console.log(obj3)
// const json3 = '["apple","banana","cherry"]'; // const json3 = '["apple","banana","cherry"]';
// const obj3 = JSON.parse(json3)!; // const obj3 = JSON.parse(json3)!;
// TODO JSON.parse 后数组的类型 无法强转 // TODO JSON.parse 后数组的类型 无法强转
......
...@@ -11,5 +11,29 @@ export function testNumber(): Result { ...@@ -11,5 +11,29 @@ export function testNumber(): Result {
expect(financial(0)).toEqual("0.00"); expect(financial(0)).toEqual("0.00");
expect(financial(1)).toEqual("1.00"); expect(financial(1)).toEqual("1.00");
}) })
test('parseInt', () => {
expect(parseInt("123.456")).toEqual(123);
})
test('parseFloat', () => {
expect(parseFloat("11.20")).toEqual(11.2);
})
test('isFinite', () => {
expect(isFinite(1000 / 1)).toEqual(true);
expect(isFinite(910)).toEqual(true);
expect(isFinite(0)).toEqual(true);
})
test('isNaN', () => {
expect(isNaN(0)).toEqual(false);
})
test('toPrecision', () => {
expect(123.456.toPrecision(4)).toEqual("123.5");
expect(0.004.toPrecision(4)).toEqual("0.004000");
expect(1.23e5.toPrecision(4)).toEqual("1.230e+5");
})
}) })
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册