From 4358ac9f9663b96f289fa974f801f5320ba1df48 Mon Sep 17 00:00:00 2001 From: tianwenzhe Date: Fri, 10 Feb 2023 17:12:21 +0800 Subject: [PATCH] validator up to 1018 Signed-off-by: tian-wenzhe411 --- test_packages.gni | 1 + validator/BUILD.gn | 22 ++ validator/acts_validator/AppScope/app.json | 19 ++ .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 6790 bytes validator/acts_validator/BUILD.gn | 38 +++ validator/acts_validator/Test.json | 26 ++ .../signature/openharmony_sx.p7b | Bin 0 -> 3496 bytes .../main/ets/Application/MyAbilityStage.ts | 8 + .../src/main/ets/MainAbility/MainAbility.ts | 42 +++ .../src/main/ets/pages/ArkUI/ArkUI_index.ets | 295 ++++++++++++++++ .../main/ets/pages/ArkUI/CanvasFillStyle.ets | 84 +++++ .../src/main/ets/pages/ArkUI/CanvasFont.ets | 229 +++++++++++++ .../ets/pages/ArkUI/CanvasGlobalAlpha.ets | 81 +++++ .../ArkUI/CanvasGlobalCompositeOperation.ets | 181 ++++++++++ .../ArkUI/CanvasImageSmoothingEnabled.ets | 75 ++++ .../main/ets/pages/ArkUI/CanvasLineCap.ets | 95 ++++++ .../ets/pages/ArkUI/CanvasLineDashOffset.ets | 79 +++++ .../main/ets/pages/ArkUI/CanvasLineJoin.ets | 99 ++++++ .../main/ets/pages/ArkUI/CanvasLineWidth.ets | 77 +++++ .../main/ets/pages/ArkUI/CanvasMiterLimit.ets | 82 +++++ .../main/ets/pages/ArkUI/CanvasShadowBlur.ets | 81 +++++ .../ets/pages/ArkUI/CanvasShadowColor.ets | 89 +++++ .../ets/pages/ArkUI/CanvasShadowOffsetX.ets | 83 +++++ .../ets/pages/ArkUI/CanvasShadowOffsetY.ets | 83 +++++ .../ets/pages/ArkUI/CanvasStrokeStyle.ets | 86 +++++ .../main/ets/pages/ArkUI/CanvasTextAlign.ets | 118 +++++++ .../ets/pages/ArkUI/CanvasTextBaseline.ets | 124 +++++++ .../main/ets/pages/ArkUI/LongPressGesture.ets | 62 ++++ .../src/main/ets/pages/ArkUI/PanGesture.ets | 66 ++++ .../main/ets/pages/ArkUI/PinchGestureTest.ets | 59 ++++ .../ets/pages/ArkUI/RotationGestureTest.ets | 58 ++++ .../main/ets/pages/ArkUI/ScrollListTest.ets | 51 +++ .../main/ets/pages/ArkUI/SwipeGestureTest.ets | 66 ++++ .../src/main/ets/pages/ArkUI/TapGesture.ets | 57 ++++ .../main/ets/pages/ArkUI/TouchMoveTest.ets | 222 ++++++++++++ .../pages/MediaLibrary/MediaLibrary_index.ets | 297 ++++++++++++++++ .../startImagePreviewCallback1.ets | 60 ++++ .../startImagePreviewCallback2.ets | 61 ++++ .../startImagePreviewCallback3.ets | 63 ++++ .../startImagePreviewCallback4.ets | 64 ++++ .../startImagePreviewCallback5.ets | 59 ++++ .../startImagePreviewCallback6.ets | 64 ++++ .../startImagePreviewCallback7.ets | 59 ++++ .../startImagePreviewPromise1.ets | 59 ++++ .../startImagePreviewPromise2.ets | 61 ++++ .../startImagePreviewPromise3.ets | 63 ++++ .../startImagePreviewPromise4.ets | 62 ++++ .../startMediaSelectCallback1.ets | 59 ++++ .../startMediaSelectCallback2.ets | 60 ++++ .../startMediaSelectCallback3.ets | 60 ++++ .../startMediaSelectCallback4.ets | 60 ++++ .../MediaLibrary/startMediaSelectPromise1.ets | 58 ++++ .../MediaLibrary/startMediaSelectPromise2.ets | 58 ++++ .../MediaLibrary/startMediaSelectPromise3.ets | 58 ++++ .../MediaLibrary/startMediaSelectPromise4.ets | 59 ++++ .../MediaLibrary/storeMediaAssetCallback1.ets | 88 +++++ .../MediaLibrary/storeMediaAssetCallback2.ets | 88 +++++ .../MediaLibrary/storeMediaAssetCallback3.ets | 88 +++++ .../MediaLibrary/storeMediaAssetCallback4.ets | 88 +++++ .../MediaLibrary/storeMediaAssetPromise1.ets | 87 +++++ .../MediaLibrary/storeMediaAssetPromise2.ets | 86 +++++ .../MediaLibrary/storeMediaAssetPromise3.ets | 86 +++++ .../MediaLibrary/storeMediaAssetPromise4.ets | 86 +++++ .../MediaLibrary/storeMediaAssetPromise5.ets | 86 +++++ .../pages/common/CanvasCustomContainer1.ets | 166 +++++++++ .../pages/common/CanvasCustomContainer2.ets | 168 +++++++++ .../main/ets/pages/common/CustomContainer.ets | 163 +++++++++ .../ets/pages/common/CustomContainer2.ets | 164 +++++++++ .../ets/pages/common/CustomContainer3.ets | 165 +++++++++ .../ets/pages/common/CustomContainer4.ets | 162 +++++++++ .../ets/pages/common/CustomContainer5.ets | 166 +++++++++ .../ets/pages/common/MediaCustomContainer.ets | 153 +++++++++ .../src/main/ets/pages/index.ets | 323 ++++++++++++++++++ .../src/main/ets/pages/model/DateTimeUtil.ts | 80 +++++ .../src/main/ets/pages/model/FirstDialog.ets | 66 ++++ .../src/main/ets/pages/model/Logger.ts | 44 +++ validator/acts_validator/src/main/module.json | 56 +++ .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 36 ++ .../src/main/resources/base/media/flower.jpg | Bin 0 -> 88438 bytes .../resources/base/media/ic_public_back.svg | 13 + .../resources/base/media/ic_public_delete.svg | 1 + .../resources/base/media/ic_public_fail.svg | 13 + .../resources/base/media/ic_public_help.svg | 1 + .../resources/base/media/ic_public_pass.svg | 13 + .../resources/base/media/ic_public_save.svg | 1 + .../src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../src/main/resources/base/media/img.png | Bin 0 -> 473552 bytes .../resources/base/profile/main_pages.json | 60 ++++ .../src/main/resources/en/element/string.json | 36 ++ .../src/main/resources/zh/element/string.json | 36 ++ 92 files changed, 7167 insertions(+) create mode 100644 validator/BUILD.gn create mode 100644 validator/acts_validator/AppScope/app.json create mode 100644 validator/acts_validator/AppScope/resources/base/element/string.json create mode 100644 validator/acts_validator/AppScope/resources/base/media/app_icon.png create mode 100644 validator/acts_validator/BUILD.gn create mode 100644 validator/acts_validator/Test.json create mode 100644 validator/acts_validator/signature/openharmony_sx.p7b create mode 100644 validator/acts_validator/src/main/ets/Application/MyAbilityStage.ts create mode 100644 validator/acts_validator/src/main/ets/MainAbility/MainAbility.ts create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/ArkUI_index.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasFillStyle.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasFont.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasGlobalAlpha.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasGlobalCompositeOperation.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasImageSmoothingEnabled.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineCap.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineDashOffset.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineJoin.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineWidth.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasMiterLimit.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowBlur.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowColor.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowOffsetX.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowOffsetY.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasStrokeStyle.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasTextAlign.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/CanvasTextBaseline.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/LongPressGesture.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/PanGesture.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/PinchGestureTest.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/RotationGestureTest.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/ScrollListTest.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/SwipeGestureTest.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/TapGesture.ets create mode 100644 validator/acts_validator/src/main/ets/pages/ArkUI/TouchMoveTest.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/MediaLibrary_index.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback1.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback2.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback3.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback4.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback5.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback6.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback7.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise1.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise2.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise3.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise4.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback1.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback2.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback3.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback4.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise1.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise2.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise3.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise4.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback1.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback2.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback3.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback4.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise1.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise2.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise3.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise4.ets create mode 100644 validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise5.ets create mode 100644 validator/acts_validator/src/main/ets/pages/common/CanvasCustomContainer1.ets create mode 100644 validator/acts_validator/src/main/ets/pages/common/CanvasCustomContainer2.ets create mode 100644 validator/acts_validator/src/main/ets/pages/common/CustomContainer.ets create mode 100644 validator/acts_validator/src/main/ets/pages/common/CustomContainer2.ets create mode 100644 validator/acts_validator/src/main/ets/pages/common/CustomContainer3.ets create mode 100644 validator/acts_validator/src/main/ets/pages/common/CustomContainer4.ets create mode 100644 validator/acts_validator/src/main/ets/pages/common/CustomContainer5.ets create mode 100644 validator/acts_validator/src/main/ets/pages/common/MediaCustomContainer.ets create mode 100644 validator/acts_validator/src/main/ets/pages/index.ets create mode 100644 validator/acts_validator/src/main/ets/pages/model/DateTimeUtil.ts create mode 100644 validator/acts_validator/src/main/ets/pages/model/FirstDialog.ets create mode 100644 validator/acts_validator/src/main/ets/pages/model/Logger.ts create mode 100644 validator/acts_validator/src/main/module.json create mode 100644 validator/acts_validator/src/main/resources/base/element/color.json create mode 100644 validator/acts_validator/src/main/resources/base/element/string.json create mode 100644 validator/acts_validator/src/main/resources/base/media/flower.jpg create mode 100644 validator/acts_validator/src/main/resources/base/media/ic_public_back.svg create mode 100644 validator/acts_validator/src/main/resources/base/media/ic_public_delete.svg create mode 100644 validator/acts_validator/src/main/resources/base/media/ic_public_fail.svg create mode 100644 validator/acts_validator/src/main/resources/base/media/ic_public_help.svg create mode 100644 validator/acts_validator/src/main/resources/base/media/ic_public_pass.svg create mode 100644 validator/acts_validator/src/main/resources/base/media/ic_public_save.svg create mode 100644 validator/acts_validator/src/main/resources/base/media/icon.png create mode 100644 validator/acts_validator/src/main/resources/base/media/img.png create mode 100644 validator/acts_validator/src/main/resources/base/profile/main_pages.json create mode 100644 validator/acts_validator/src/main/resources/en/element/string.json create mode 100644 validator/acts_validator/src/main/resources/zh/element/string.json diff --git a/test_packages.gni b/test_packages.gni index 44398f118..3f42c3e8b 100644 --- a/test_packages.gni +++ b/test_packages.gni @@ -49,6 +49,7 @@ _all_test_packages = [ "${ACTS_ROOT}/applications:applications", "${ACTS_ROOT}/wukong:wukong", "${ACTS_ROOT}/msdp:msdp", + "${ACTS_ROOT}/validator:validator", ] _all_test_packages_ivi = [ diff --git a/validator/BUILD.gn b/validator/BUILD.gn new file mode 100644 index 000000000..f50b63e60 --- /dev/null +++ b/validator/BUILD.gn @@ -0,0 +1,22 @@ +# Copyright (C) 2022 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos_var.gni") +import("//test/xts/tools/build/suite.gni") + +group("validator") { + testonly = true + if (is_standard_system) { + deps = [ "acts_validator:acts_validator_test" ] + } +} diff --git a/validator/acts_validator/AppScope/app.json b/validator/acts_validator/AppScope/app.json new file mode 100644 index 000000000..aef203c1f --- /dev/null +++ b/validator/acts_validator/AppScope/app.json @@ -0,0 +1,19 @@ +{ + "app": { + "bundleName": "com.example.actsvalidator", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name", + "distributedNotificationEnabled": true, + "keepAlive": true, + "singleUser": true, + "minAPIVersion": 9, + "targetAPIVersion": 9, + "car": { + "apiCompatibleVersion": 9, + "singleUser": false + } + } +} diff --git a/validator/acts_validator/AppScope/resources/base/element/string.json b/validator/acts_validator/AppScope/resources/base/element/string.json new file mode 100644 index 000000000..9d9f5b5c3 --- /dev/null +++ b/validator/acts_validator/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "ActsValidator" + } + ] +} diff --git a/validator/acts_validator/AppScope/resources/base/media/app_icon.png b/validator/acts_validator/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 N98rccf4B3S{{g!uYq$Ua literal 0 HcmV?d00001 diff --git a/validator/acts_validator/src/main/ets/Application/MyAbilityStage.ts b/validator/acts_validator/src/main/ets/Application/MyAbilityStage.ts new file mode 100644 index 000000000..937630c76 --- /dev/null +++ b/validator/acts_validator/src/main/ets/Application/MyAbilityStage.ts @@ -0,0 +1,8 @@ +import AbilityStage from "@ohos.app.ability.AbilityStage" +import Logger from '../pages/model/Logger' + +export default class MyAbilityStage extends AbilityStage { + onCreate() { + Logger.info('[MyAbilityStage]', 'MyAbilityStage onCreate') + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/MainAbility/MainAbility.ts b/validator/acts_validator/src/main/ets/MainAbility/MainAbility.ts new file mode 100644 index 000000000..d9d71b0ba --- /dev/null +++ b/validator/acts_validator/src/main/ets/MainAbility/MainAbility.ts @@ -0,0 +1,42 @@ +import Ability from '@ohos.app.ability.UIAbility' +import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; + +export default class MainAbility extends Ability { + onCreate(want, launchParam) { + globalThis.dir=this.context.filesDir; + console.log("[Demo] MainAbility onCreate") + globalThis.abilityWant = want; + globalThis.abilityContext = this.context; + } + + onDestroy() { + console.log("[Demo] MainAbility onDestroy") + } + + onWindowStageCreate(windowStage) { + + console.log("[Demo] MainAbility onWindowStageCreate") + let AtManager = abilityAccessCtrl.createAtManager(); + AtManager.requestPermissionsFromUser(this.context,["ohos.permission.READ_MEDIA","ohos.permission.WRITE_MEDIA", + "ohos.permission.CAPTURE_SCREEN","ohos.permission.INTERNET"]).then(() => {}) + windowStage.loadContent("pages/index", (err, data) => { + if (err.code) { + console.error('Failed to load the content. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data)) + }); + } + + onWindowStageDestroy() { + console.log("[Demo] MainAbility onWindowStageDestroy") + } + + onForeground() { + console.log("[Demo] MainAbility onForeground") + } + + onBackground() { + console.log("[Demo] MainAbility onBackground") + } +}; diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/ArkUI_index.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/ArkUI_index.ets new file mode 100644 index 000000000..71fcaf0ad --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/ArkUI_index.ets @@ -0,0 +1,295 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import prompt from '@ohos.prompt'; +import router from '@ohos.router'; +import fileio from '@ohos.fileio'; +import xml from '@ohos.xml'; +import fileIO from '@ohos.fileio'; +import util from '@ohos.util'; + +const TAG = 'ParseXML'; +let path = globalThis.dir; +let path1; +path1 = path + '/ArkUI'; + + + +@Entry +@Component +struct IndexPage { + @State BackColor: string = '#ff808080'; + @State ClearAll : boolean = false; + private current : number = undefined; + @State count : number = 0; + @State result : string = ''; + private TestCaseList = [ + {title:'Scroll List',uri:'pages/ArkUI/ScrollListTest'}, + {title:'TouchMove',uri:'pages/ArkUI/TouchMoveTest'}, + {title:'PinchGesture',uri:'pages/ArkUI/PinchGestureTest'}, + {title:'RotationGesture',uri:'pages/ArkUI/RotationGestureTest'}, + {title:'SwipeGesture',uri:'pages/ArkUI/SwipeGestureTest'}, + {title:'LongPressGesture',uri:'pages/ArkUI/LongPressGesture'}, + {title:'TapGesture',uri:'pages/ArkUI/TapGesture'}, + {title:'PanGesture',uri:'pages/ArkUI/PanGesture'}, + {title:'CanvasFillStyle',uri:'pages/ArkUI/CanvasFillStyle'}, + {title:'CanvasLineWidth',uri:'pages/ArkUI/CanvasLineWidth'}, + {title:'CanvasStrokeStyle',uri:'pages/ArkUI/CanvasStrokeStyle'}, + {title:'CanvasLineCap',uri:'pages/ArkUI/CanvasLineCap'}, + {title:'CanvasLineJoin',uri:'pages/ArkUI/CanvasLineJoin'}, + {title:'CanvasMiterLimit',uri:'pages/ArkUI/CanvasMiterLimit'}, + {title:'CanvasFont',uri:'pages/ArkUI/CanvasFont'}, + {title:'CanvasTextAlign',uri:'pages/ArkUI/CanvasTextAlign'}, + {title:'CanvasGlobalAlpha',uri:'pages/ArkUI/CanvasGlobalAlpha'}, + {title:'CanvasLineDashOffset',uri:'pages/ArkUI/CanvasLineDashOffset'}, + {title:'CanvasGlobalCompositeOperation',uri:'pages/ArkUI/CanvasGlobalCompositeOperation'}, + {title:'CanvasShadowBlur',uri:'pages/ArkUI/CanvasShadowBlur'}, + {title:'CanvasShadowColor',uri:'pages/ArkUI/CanvasShadowColor'}, + {title:'CanvasShadowOffsetX',uri:'pages/ArkUI/CanvasShadowOffsetX'}, + {title:'CanvasShadowOffsetY',uri:'pages/ArkUI/CanvasShadowOffsetY'}, + {title:'CanvasImageSmoothingEnabled',uri:'pages/ArkUI/CanvasImageSmoothingEnabled'}, + ] + @State ColorObject : string[] = ['#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080', + '#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080', + '#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080'] + onPageShow(){ + if (this.count === 1){ + this.result = router.getParams()['result']; + let titles = router.getParams()['title']; + let name1 = '刚刚点进了哪个用例:'+ titles; + let results = this.result; + if (this.result === 'Pass'){ + this.ColorObject[this.current] = '#ff008000'; + filewrite(name1,results,titles) + } + else if (this.result === 'Fail'){ + this.ColorObject[this.current] = '#ffff0000'; + filewrite(name1,results,titles); + } + else if (this.result === 'None'){ + this.ColorObject[this.current] = this.ColorObject[this.current]; + } + } + + } + build(){ + Column(){ + Row() { + Button() { + Image($r('app.media.ic_public_back')).width('20vp').height('18vp') + }.backgroundColor(Color.Black) + .onClick(() => { + router.back(); + }) + Row(){ + Text('ArkUI SubSystem') + .fontColor(Color.White) + .fontSize('22fp') + }.justifyContent(FlexAlign.SpaceAround).backgroundColor(Color.Black) + Row() { + Button(){ + Image($r('app.media.ic_public_delete')) + .width('30vp') + .height('30vp') + }.backgroundColor(Color.Black) + .onClick(() => { + AlertDialog.show( + { + message: "是否删除所有记录", + primaryButton: { + value: 'Yes', + action: () => { + this.ClearAll = true; + this.ColorObject.forEach((value, index) => { + this.ColorObject[index] = '#ff808080'; + }); + this.ClearText(); + prompt.showToast({ + message: '结果已删除', duration: 1000 + }); + } + }, + secondaryButton: { + value: 'No', + action: () => { + + } + }, + cancel: () => { + + } + } + ) + }) + Button(){ + Image($r('app.media.ic_public_save')) + .width('30vp') + .height('30vp') + .margin({ left: 30 }) + }.backgroundColor(Color.Black) + .onClick(() => { + this.ReadTextParseXml(); + AlertDialog.show({ + message: "报告已生成,如需查看通过命令行输入'hdc_std file recv /data/app/el2/100/base/com.example.actsvalidator/haps/entry/files/ArkUI/ArkUITest.xml -本地路径'", + confirm:{ + value:'OK', + action:()=>{ + prompt.showToast({ + message: '报告已生成', duration: 1000 + }) + } + }, + cancel: () => { + prompt.showToast({ + message: '报告已生成', duration: 1000 + }); + } + }) + }) + } + }.width('100%').justifyContent(FlexAlign.SpaceAround).margin({top:'15vp'}).height('6%').backgroundColor(Color.Black) + List({space:5}){ + ForEach(this.TestCaseList,(item,index) => { + ListItem(){ + Row(){ + Text(item.title).fontSize(16).fontColor(Color.Black) + Text(this.BackColor.toString()).visibility(Visibility.None) + }.width('100%').height(50).alignItems(VerticalAlign.Center).backgroundColor(this.ColorObject[index]) + .onClick(( )=>{ + this.count = 1; + this.ClearAll=false; + this.current = index; + router.push({ + url: item.uri, + }) + }) + } + },item => item.title) + }.width('100%').height('92%') + }.width('100%').height('100%').backgroundColor(Color.Black) + } + ClearText(){ + fileio.rmdirSync(path1); + fileio.mkdirSync(path1); + } + ReadTextParseXml(){ + let ReportPath = path1 + '/ArkUIReport.txt'; + let dir = fileio.opendirSync(path1); + console.info("ssssss"+dir); + while (dir) { + let OP = fileio.openSync(ReportPath, 0o100 | 0o2002, 0o664); + let buf = new ArrayBuffer(40960); + let RD = fileio.readSync(OP,buf); + console.info("ddddd"+RD); + let report; + function ab2str(buf) { + return report = String.fromCharCode.apply(null,new Uint8Array(buf)); + } + ab2str(buf); + let str1 = report.split(";"); + let title = []; + let result = []; + for(let i=0; i{ + this.context.clearRect(100, 160, 150, 100); + this.FillColor = '#FFFF0000'; + this.context.fillStyle = this.FillColor; + this.context.fillRect(100, 160, 150, 100); + this.Vue = true; + }) + Text('Yellow').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(100, 160, 150, 100); + this.FillColor = '#fffffc3c'; + this.context.fillStyle = this.FillColor; + this.context.fillRect(100, 160, 150, 100); + this.Vue = true; + }) + Text('Green').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(100, 160, 150, 100); + this.FillColor = '#ff19fa00'; + this.context.fillStyle = this.FillColor; + this.context.fillRect(100, 160, 150, 100); + this.Vue = true; + }) + }.width('70%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.fillStyle = this.FillColor; + this.context.fillRect(100, 160, 150, 100); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/ArkUI/ArkUI_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} + diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasFont.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasFont.ets new file mode 100644 index 000000000..1315e4b6a --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasFont.ets @@ -0,0 +1,229 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer1'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State name: string = 'CanvasFillStyle'; + @State StepTips: string = '操作步骤:点击不同的字体控件'+'\n'+'预期结果:原本默认字体会改变'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Row(){ + Text('').fontSize(0).border({width:0}).size({width:'0%',height:'1%'}) + } + Row({space:10}){ + Text('font-style').fontSize(13).border({width:0}).size({width:'24%',height:'18%'}) + Text('normal').fontSize(13).border({width:2}).size({width:'24%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal normal 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('italic').fontSize(13).border({width:2}).size({width:'24%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'italic normal 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + } + Row({space:8}) { + Text('font-weight').fontSize(13).border({ width: 0 }).size({ width: '24%', height: '18%' }) + Text('normal').fontSize(13).border({ width: 2 }).size({ width: '16%', height: '18%' }) + .onClick(() => { + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal normal 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('bold').fontSize(13).border({width:2}).size({width:'16%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal bold 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('bolder').fontSize(13).border({width:2}).size({width:'16%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal bolder 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('lighter').fontSize(13).border({width:2}).size({width:'16%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal lighter 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + } + Row({space:5}) { + Text('100').fontSize(13).border({ width: 2 }).size({ width: '10%', height: '18%' }) + .onClick(() => { + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal 100 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('200').fontSize(13).border({width:2}).size({width:'10%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal 200 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('300').fontSize(13).border({width:2}).size({width:'10%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal 300 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('400').fontSize(13).border({width:2}).size({width:'10%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal 400 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('500').fontSize(13).border({width:2}).size({width:'10%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal 500 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('600').fontSize(13).border({width:2}).size({width:'10%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal 600 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('700').fontSize(13).border({width:2}).size({width:'10%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal 700 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('800').fontSize(13).border({width:2}).size({width:'10%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal 800 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('900').fontSize(13).border({width:2}).size({width:'10%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal 900 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + } + Row({space:10}){ + Text('font-family').fontSize(13).border({width:0}).size({width:'24%',height:'18%'}) + Text('sans-serif').fontSize(13).border({width:2}).size({width:'24%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal normal 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('serif').fontSize(13).border({width:2}).size({width:'24%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal normal 120px serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('monospace').fontSize(13).border({width:2}).size({width:'24%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal normal 120px monospace'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + } + Row({space:10}) { + Text('font-size').fontSize(13).border({ width: 0 }).size({ width: '18%', height: '18%' }) + Text('small').fontSize(13).border({ width: 2 }).size({ width: '18%', height: '18%' }) + .onClick(() => { + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal normal 10px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('medium').fontSize(13).border({width:2}).size({width:'18%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal normal 50px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('large').fontSize(13).border({width:2}).size({width:'18%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal normal 80px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + Text('extra').fontSize(13).border({width:2}).size({width:'18%',height:'18%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.font = 'normal normal 120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + this.Vue = true; + }) + } + }.width('90%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.font = '120px sans-serif'; + this.context.fillText("Hello World", 80, 120); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasGlobalAlpha.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasGlobalAlpha.ets new file mode 100644 index 000000000..3dd5606c6 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasGlobalAlpha.ets @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer2'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State X: number = 20; + @State name: string = 'CanvasGlobalAlpha'; + @State StepTips: string = '操作步骤:拖动滑块向右移动'+'\n'+'预期结果:透明度随着拖拽距离而改变,并显示透明度'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text('→').fontSize(16).border({width:2}).size({width:'20%',height:'20%'}) + .translate({ x: this.X, y: 20, z: 5 }) + .gesture( + PanGesture({}) + .onActionStart((event: GestureEvent) => { + this.context.clearRect(100, 100, 250, 200); + console.info('Pan start'); + this.Vue = true; + }) + .onActionUpdate((event: GestureEvent) => { + this.X = event.offsetX; + }) + .onActionEnd(() => { + console.info('Pan end'); + }) + ) + Text('透明度: ' + (this.X)*0.005 ) + }.width('70%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 50, 50); + this.context.globalAlpha = (this.X)*0.005; + this.context.fillStyle = 'rgb(0,0,255)'; + this.context.fillRect(200, 200, 50, 50); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + X: $X, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasGlobalCompositeOperation.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasGlobalCompositeOperation.ets new file mode 100644 index 000000000..54bda6405 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasGlobalCompositeOperation.ets @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer1'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State name: string = 'CanvasGlobalCompositeOperation'; + @State StepTips: string = '操作步骤:点击不同的合成操作的方式'+'\n'+'预期结果:原本默认合成方式会随点击变化'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Row(){ + Text('').fontSize(0).border({width:0}).size({width:'0%',height:'2%'}) + } + Row({space:10}){ + Text('s-over').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 50, 50); + this.context.globalCompositeOperation = 'source-over'; + this.context.fillStyle = 'rgb(0,0,255)'; + this.context.fillRect(180, 180, 50, 50); + this.Vue = true; + }) + Text('s-atop').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 50, 50); + this.context.globalCompositeOperation = 'source-atop'; + this.context.fillStyle = 'rgb(0,0,255)'; + this.context.fillRect(180, 180, 50, 50); + this.Vue = true; + }) + Text('s-in').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 50, 50); + this.context.globalCompositeOperation = 'source-in'; + this.context.fillStyle = 'rgb(0,0,255)'; + this.context.fillRect(180, 180, 50, 50); + this.Vue = true; + }) + Text('s-out').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 50, 50); + this.context.globalCompositeOperation = 'source-out'; + this.context.fillStyle = 'rgb(0,0,255)'; + this.context.fillRect(180, 180, 50, 50); + this.Vue = true; + }) + } + Row({space:10}){ + Text('d-over').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=> { + this.context.clearRect(0, 10, 350, 300); + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 50, 50); + this.context.globalCompositeOperation = 'destination-over'; + this.context.fillStyle = 'rgb(0,0,255)'; + this.context.fillRect(180, 180, 50, 50); + this.Vue = true; + }) + Text('d-atop').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=> { + this.context.clearRect(0, 10, 350, 300); + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 50, 50); + this.context.globalCompositeOperation = 'destination-atop'; + this.context.fillStyle = 'rgb(0,0,255)'; + this.context.fillRect(180, 180, 50, 50); + this.Vue = true; + }) + Text('d-in').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=> { + this.context.clearRect(0, 10, 350, 300); + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 50, 50); + this.context.globalCompositeOperation = 'destination-in'; + this.context.fillStyle = 'rgb(0,0,255)'; + this.context.fillRect(180, 180, 50, 50); + this.Vue = true; + }) + Text('d-out').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=> { + this.context.clearRect(0, 10, 350, 300); + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 50, 50); + this.context.globalCompositeOperation = 'destination-out'; + this.context.fillStyle = 'rgb(0,0,255)'; + this.context.fillRect(180, 180, 50, 50); + this.Vue = true; + }) + } + Row({space:10}){ + Text('lighter').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=> { + this.context.clearRect(0, 10, 350, 300); + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 50, 50); + this.context.globalCompositeOperation = 'lighter'; + this.context.fillStyle = 'rgb(0,0,255)'; + this.context.fillRect(180, 180, 50, 50); + this.Vue = true; + }) + Text('copy').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=> { + this.context.clearRect(0, 10, 350, 300); + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 50, 50); + this.context.globalCompositeOperation = 'copy'; + this.context.fillStyle = 'rgb(0,0,255)'; + this.context.fillRect(180, 180, 50, 50); + this.Vue = true; + }) + Text('xor').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=> { + this.context.clearRect(0, 10, 350, 300); + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 50, 50); + this.context.globalCompositeOperation = 'xor'; + this.context.fillStyle = 'rgb(0,0,255)'; + this.context.fillRect(180, 180, 50, 50); + this.Vue = true; + }) + Text('').fontSize(0).border({width:0}).size({width:'18%',height:'20%'}) + } + }.width('90%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 50, 50); + this.context.globalCompositeOperation = 'source-over'; + this.context.fillStyle = 'rgb(0,0,255)'; + this.context.fillRect(180, 180, 50, 50); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasImageSmoothingEnabled.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasImageSmoothingEnabled.ets new file mode 100644 index 000000000..a6ab794d3 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasImageSmoothingEnabled.ets @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer2'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + private img:ImageBitmap = new ImageBitmap("src/main/resources/base/media/flower.jpg"); + @State FillColor: string = '#FF000000'; + @State X: number = 0; + @State name: string = 'CanvasImageSmoothingEnabled'; + @State StepTips: string = '操作步骤:点击不同的控件'+'\n'+'预期结果:切换平滑过渡效果'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text('True').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(10, 100, 400, 300); + this.context.imageSmoothingEnabled = true; + this.context.drawImage( this.img,0,0,400,200); + this.Vue = true; + }) + Text('False').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(10, 100, 400, 300); + this.context.imageSmoothingEnabled = false; + this.context.drawImage( this.img,0,0,400,200); + this.Vue = true; + }) + }.width('70%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.imageSmoothingEnabled = false; + this.context.drawImage( this.img,0,0,200,200); + }) + }.width('100%').height('60%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + X: $X, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineCap.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineCap.ets new file mode 100644 index 000000000..dba750ab6 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineCap.ets @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer1'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State name: string = 'CanvasLineCap'; + @State StepTips: string = '操作步骤:点击不同的端点样式控件'+'\n'+'预期结果:原本默认端点样式会随点击变化'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text('butt').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(90, 90, 170, 120); + this.context.lineWidth = 8; + this.context.beginPath(); + this.context.lineCap = 'butt'; + this.context.moveTo(100, 100); + this.context.lineTo(250, 100); + this.context.stroke(); + this.Vue = true; + }) + Text('round').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(90, 90, 170, 120); + this.context.lineWidth = 8; + this.context.beginPath(); + this.context.lineCap = 'round'; + this.context.moveTo(100, 100); + this.context.lineTo(250, 100); + this.context.stroke(); + this.Vue = true; + }) + Text('square').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(90, 90, 170, 120); + this.context.lineWidth = 8; + this.context.beginPath(); + this.context.lineCap = 'square'; + this.context.moveTo(100, 100); + this.context.lineTo(250, 100); + this.context.stroke(); + this.Vue = true; + }) + }.width('70%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.lineWidth = 8; + this.context.beginPath(); + this.context.lineCap = 'round'; + this.context.moveTo(100, 100); + this.context.lineTo(250, 100); + this.context.stroke(); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineDashOffset.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineDashOffset.ets new file mode 100644 index 000000000..0a286640f --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineDashOffset.ets @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer2'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State X: number = 0; + @State name: string = 'CanvasLineDashOffset'; + @State StepTips: string = '操作步骤:拖动滑块向右移动'+'\n'+'预期结果:虚线偏移量随着拖拽距离而改变,并显示偏移量'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text('→').fontSize(16).border({width:2}).size({width:'20%',height:'20%'}) + .translate({ x: this.X, y: 20, z: 5 }) + .gesture( + PanGesture({}) + .onActionStart((event: GestureEvent) => { + this.context.clearRect(100, 100, 250, 200); + console.info('Pan start'); + this.Vue = true; + }) + .onActionUpdate((event: GestureEvent) => { + this.X = event.offsetX; + }) + .onActionEnd(() => { + console.info('Pan end'); + }) + ) + Text('虚线偏移量: ' + (this.X)*0.1 ) + }.width('70%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.arc(180, 150, 50, 0, 6.28); + this.context.setLineDash([20,30]); + this.context.lineDashOffset = (this.X)*0.1; + this.context.stroke(); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + X: $X, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineJoin.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineJoin.ets new file mode 100644 index 000000000..8747420cd --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineJoin.ets @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer1'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State name: string = 'CanvasLineJoin'; + @State StepTips: string = '操作步骤:点击不同的交点样式控件'+'\n'+'预期结果:原本默认交点样式会随点击变化'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text('round').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(90, 90, 170, 120); + this.context.beginPath(); + this.context.lineWidth = 8; + this.context.lineJoin = 'round'; + this.context.moveTo(120, 100); + this.context.lineTo(210, 130); + this.context.lineTo(120, 180); + this.context.stroke(); + this.Vue = true; + }) + Text('bevel').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(90, 90, 170, 120); + this.context.beginPath(); + this.context.lineWidth = 8; + this.context.lineJoin = 'bevel'; + this.context.moveTo(120, 100); + this.context.lineTo(210, 130); + this.context.lineTo(120, 180); + this.context.stroke(); + this.Vue = true; + }) + Text('miter').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(90, 90, 170, 120); + this.context.beginPath(); + this.context.lineWidth = 8; + this.context.lineJoin = 'miter'; + this.context.moveTo(120, 100); + this.context.lineTo(210, 130); + this.context.lineTo(120, 180); + this.context.stroke(); + this.Vue = true; + }) + }.width('70%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.beginPath(); + this.context.lineWidth = 8; + this.context.lineJoin = 'miter'; + this.context.moveTo(120, 100); + this.context.lineTo(210, 130); + this.context.lineTo(120, 180); + this.context.stroke(); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineWidth.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineWidth.ets new file mode 100644 index 000000000..9f081ccbf --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasLineWidth.ets @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer2'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State name: string = 'CanvasLineWidth'; + @State StepTips: string = '操作步骤:拖动滑块向右移动'+'\n'+'预期结果:边框会随着移动距离而变粗,并显示边框粗细'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @State X: number = 20; + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text('→').fontSize(16).border({width:2}).size({width:'20%',height:'20%'}) + .translate({ x: this.X, y: 20, z: 5 }) + .gesture( + PanGesture({}) + .onActionStart((event: GestureEvent) => { + this.context.clearRect(100, 100, 250, 200); + console.info('Pan start'); + this.Vue = true; + }) + .onActionUpdate((event: GestureEvent) => { + this.X = event.offsetX; + }) + .onActionEnd(() => { + console.info('Pan end'); + }) + ) + Text('边框粗细: ' + (this.X)*0.05 ) + }.width('70%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.lineWidth = (this.X)*0.05; + this.context.strokeRect(120, 120, 120, 120); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + X: $X, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasMiterLimit.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasMiterLimit.ets new file mode 100644 index 000000000..2b813b802 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasMiterLimit.ets @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer2'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State X: number = 0; + @State name: string = 'CanvasMiterLimit'; + @State StepTips: string = '操作步骤:向右拖动MiterLimit按键'+'\n'+'预期结果:斜接面限制值会随拖动距离变化,并显示限制值大小'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text('MiterLimit').fontSize(18).border({width:2}).size({width:'40%',height:'30%'}) + .translate({ x: this.X, y: 20, z: 5 }) + .gesture( + PanGesture({}) + .onActionStart((event: GestureEvent) => { + this.context.clearRect(100, 100, 250, 200); + console.info('Pan start'); + this.Vue = true; + }) + .onActionUpdate((event: GestureEvent) => { + this.X = event.offsetX; + }) + .onActionEnd(() => { + console.info('Pan end'); + }) + ) + Text('边框粗细: ' + (this.X)*0.05 ) + }.width('70%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.lineWidth = 8; + this.context.lineJoin = 'miter'; + this.context.miterLimit = (this.X)*0.05; + this.context.moveTo(160, 100); + this.context.lineTo(190, 105); + this.context.lineTo(160, 107); + this.context.stroke(); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + X: $X, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowBlur.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowBlur.ets new file mode 100644 index 000000000..0e705b03f --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowBlur.ets @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer2'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State X: number = 0; + @State name: string = 'CanvasShadowBlur'; + @State StepTips: string = '操作步骤:拖动滑块向右移动'+'\n'+'预期结果:阴影会随着拖动距离增大而变模糊,并显示模糊数值'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text('→').fontSize(16).border({width:2}).size({width:'20%',height:'20%'}) + .translate({ x: this.X, y: 20, z: 5 }) + .gesture( + PanGesture({}) + .onActionStart((event: GestureEvent) => { + this.context.clearRect(10, 50, 400, 300); + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 100, 100); + console.info('Pan start'); + this.Vue = true; + }) + .onActionUpdate((event: GestureEvent) => { + this.X = event.offsetX; + }) + .onActionEnd(() => { + console.info('Pan end'); + }) + ) + Text('阴影模糊: ' + this.X ) + }.width('70%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.shadowBlur = this.X; + this.context.shadowColor = 'rgb(0,0,0)'; + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 100, 100); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + X: $X, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowColor.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowColor.ets new file mode 100644 index 000000000..56de4cc14 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowColor.ets @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer2'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State X: number = 0; + @State name: string = 'CanvasShadowColor'; + @State StepTips: string = '操作步骤:点击不同的颜色控件'+'\n'+'预期结果:原本默认蓝色的阴影会随点击变化'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text('Blue').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(10, 100, 400, 300); + this.context.shadowBlur = 30; + this.context.shadowColor = 'rgb(0,0,255)'; + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 100, 100); + this.Vue = true; + }) + Text('Yellow').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(10, 100, 400, 300); + this.context.shadowBlur = 30; + this.context.shadowColor = '#fffffc3c'; + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 100, 100); + this.Vue = true; + }) + Text('Green').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(10, 100, 400, 300); + this.context.shadowBlur = 30; + this.context.shadowColor = '#ff19fa00'; + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 100, 100); + this.Vue = true; + }) + }.width('70%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.shadowBlur = 30; + this.context.shadowColor = 'rgb(0,0,255)'; + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 100, 100); + }) + }.width('100%').height('60%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + X: $X, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowOffsetX.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowOffsetX.ets new file mode 100644 index 000000000..13c9432ac --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowOffsetX.ets @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer2'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State X: number = 0; + @State name: string = 'CanvasShadowOffsetX'; + @State StepTips: string = '操作步骤:拖动滑块向右移动'+'\n'+'预期结果:阴影会随着拖动距离增大而向下偏移,并显示偏移数值'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text('→').fontSize(16).border({width:2}).size({width:'20%',height:'20%'}) + .translate({ x: this.X, y: 20, z: 5 }) + .gesture( + PanGesture({}) + .onActionStart((event: GestureEvent) => { + this.context.clearRect(10, 50, 400, 300); + this.context.shadowColor = 'rgb(0,0,0)'; + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 100, 100); + console.info('Pan start'); + this.Vue = true; + }) + .onActionUpdate((event: GestureEvent) => { + this.X = event.offsetX; + }) + .onActionEnd(() => { + console.info('Pan end'); + }) + ) + Text('阴影偏移: ' + (this.X)*0.05 ) + }.width('70%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.shadowBlur = 10; + this.context.shadowOffsetX = (this.X)*0.05; + this.context.shadowColor = 'rgb(0,0,0)'; + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 100, 100); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + X: $X, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowOffsetY.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowOffsetY.ets new file mode 100644 index 000000000..5269d427f --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasShadowOffsetY.ets @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer2'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State X: number = 0; + @State name: string = 'CanvasShadowOffsetY'; + @State StepTips: string = '操作步骤:拖动滑块向右移动'+'\n'+'预期结果:阴影会随着拖动距离增大而向下偏移,并显示偏移数值'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text('→').fontSize(16).border({width:2}).size({width:'20%',height:'20%'}) + .translate({ x: this.X, y: 20, z: 5 }) + .gesture( + PanGesture({}) + .onActionStart((event: GestureEvent) => { + this.context.clearRect(10, 50, 400, 300); + this.context.shadowColor = 'rgb(0,0,0)'; + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 100, 100); + console.info('Pan start'); + this.Vue = true; + }) + .onActionUpdate((event: GestureEvent) => { + this.X = event.offsetX; + }) + .onActionEnd(() => { + console.info('Pan end'); + }) + ) + Text('阴影偏移: ' + (this.X)*0.05 ) + }.width('70%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.shadowBlur = 10; + this.context.shadowOffsetY = (this.X)*0.05; + this.context.shadowColor = 'rgb(0,0,0)'; + this.context.fillStyle = 'rgb(255,0,0)'; + this.context.fillRect(150, 150, 100, 100); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + X: $X, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasStrokeStyle.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasStrokeStyle.ets new file mode 100644 index 000000000..083c2599b --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasStrokeStyle.ets @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer1'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State name: string = 'CanvasStrokeStyle'; + @State StepTips: string = '操作步骤:点击不同的颜色控件'+'\n'+'预期结果:原本默认黑色的边框会随点击变化'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text('Red').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(90, 150, 170, 120); + this.FillColor = '#FFFF0000'; + this.context.lineWidth = 10; + this.context.strokeStyle = '#FFFF0000'; + this.context.strokeRect(100, 160, 150, 100); + this.Vue = true; + }) + Text('Yellow').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(90, 150, 170, 120); + this.FillColor = '#fffffc3c'; + this.context.lineWidth = 10; + this.context.strokeStyle = '#fffffc3c'; + this.context.strokeRect(100, 160, 150, 100); + this.Vue = true; + }) + Text('Green').fontSize(16).border({width:2}).size({width:'25%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(90, 150, 170, 120); + this.FillColor = '#ff19fa00'; + this.context.lineWidth = 10; + this.context.strokeStyle = '#ff19fa00'; + this.context.strokeRect(100, 160, 150, 100); + this.Vue = true; + }) + }.width('70%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.lineWidth = 10; + this.context.strokeStyle = this.FillColor; + this.context.strokeRect(100, 160, 150, 100); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasTextAlign.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasTextAlign.ets new file mode 100644 index 000000000..bf686a91b --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasTextAlign.ets @@ -0,0 +1,118 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer1'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State name: string = 'CanvasTextAlign'; + @State StepTips: string = '操作步骤:点击不同的文本对齐方式控件'+'\n'+'预期结果:原本默认的对齐方式会随点击变化'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text('start').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.lineWidth = 2; + this.context.moveTo(180, 10); + this.context.lineTo(180, 310); + this.context.stroke(); + this.context.textAlign = 'start'; + this.context.fillText('textAlign=start', 180, 160); + this.Vue = true; + }) + Text('end').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.lineWidth = 2; + this.context.moveTo(180, 10); + this.context.lineTo(180, 310); + this.context.stroke(); + this.context.textAlign = 'end'; + this.context.fillText('textAlign=end', 180, 160); + this.Vue = true; + }) + Text('left').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.lineWidth = 2; + this.context.moveTo(180, 10); + this.context.lineTo(180, 310); + this.context.stroke(); + this.context.textAlign = 'left'; + this.context.fillText('textAlign=left', 180, 160); + this.Vue = true; + }) + Text('center').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.lineWidth = 2; + this.context.moveTo(180, 10); + this.context.lineTo(180, 310); + this.context.stroke(); + this.context.textAlign = 'center'; + this.context.fillText('textAlign=center', 180, 160); + this.Vue = true; + }) + Text('right').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=> { + this.context.clearRect(0, 10, 350, 300); + this.context.lineWidth = 2; + this.context.moveTo(180, 10); + this.context.lineTo(180, 310); + this.context.stroke(); + this.context.textAlign = 'right'; + this.context.fillText('textAlign=right', 180, 160); + this.Vue = true; + }) + }.width('90%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.lineWidth = 2; + this.context.moveTo(180, 10); + this.context.lineTo(180, 310); + this.context.stroke(); + this.context.font = '60px sans-serif'; + this.context.textAlign = 'start'; + this.context.fillText('textAlign=start', 180, 160); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasTextBaseline.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasTextBaseline.ets new file mode 100644 index 000000000..2473a85a0 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/CanvasTextBaseline.ets @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CanvasCustomContainer1'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @State FillColor: string = '#FF000000'; + @State name: string = 'CanvasTextBaseline'; + @State StepTips: string = '操作步骤:点击不同的水平对齐方式'+'\n'+'预期结果:原本默认水平对齐方式会随点击变化'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text('Top').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.strokeStyle = '#0000ff'; + this.context.lineWidth = 2; + this.context.moveTo(0, 120); + this.context.lineTo(400, 120); + this.context.stroke(); + this.context.textBaseline = 'top'; + this.context.fillText('Top', 160, 120); + this.Vue = true; + }) + Text('Bottom').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.strokeStyle = '#0000ff'; + this.context.lineWidth = 2; + this.context.moveTo(0, 120); + this.context.lineTo(400, 120); + this.context.stroke(); + this.context.textBaseline = 'bottom'; + this.context.fillText('Bottom', 160, 120); + this.Vue = true; + }) + Text('Middle').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.strokeStyle = '#0000ff'; + this.context.lineWidth = 2; + this.context.moveTo(0, 120); + this.context.lineTo(400, 120); + this.context.stroke(); + this.context.textBaseline = 'middle'; + this.context.fillText('Middle', 160, 120); + this.Vue = true; + }) + Text('Alphabetic').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=>{ + this.context.clearRect(0, 10, 350, 300); + this.context.strokeStyle = '#0000ff'; + this.context.lineWidth = 2; + this.context.moveTo(0, 120); + this.context.lineTo(400, 120); + this.context.stroke(); + this.context.textBaseline = 'alphabetic'; + this.context.fillText('Alphabetic', 160, 120); + this.Vue = true; + }) + Text('Hanging').fontSize(13).border({width:2}).size({width:'18%',height:'20%'}) + .onClick(()=> { + this.context.clearRect(0, 10, 350, 300); + this.context.strokeStyle = '#0000ff'; + this.context.lineWidth = 2; + this.context.moveTo(0, 120); + this.context.lineTo(400, 120); + this.context.stroke(); + this.context.textBaseline = 'hanging'; + this.context.fillText('Hanging', 160, 120); + this.Vue = true; + }) + }.width('90%').height('30%') + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Canvas(this.context) + .width('100%') + .height('100%') + .backgroundColor('#ffffffff') + .onReady(() =>{ + this.context.strokeStyle = '#0000ff'; + this.context.lineWidth = 2; + this.context.moveTo(0, 120); + this.context.lineTo(400, 120); + this.context.stroke(); + this.context.font = '60px sans-serif'; + this.context.textBaseline = 'top'; + this.context.fillText('Top', 160, 120); + }) + }.width('100%').height('70%') + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/LongPressGesture.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/LongPressGesture.ets new file mode 100644 index 000000000..c1cec3736 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/LongPressGesture.ets @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CustomContainer2'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct LongPressGestureExample { + @State X: number = 0; + @State name: string = 'LongPressGesture'; + @State StepTips: string = '操作步骤:用至少一根手指长按图像(最多十根手指)'+'\n'+'预期结果:长按动作触发计数增加'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({direction:FlexDirection.Column,alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Image($r("app.media.flower")).height('60%').width('70%') + } + .height('250vp').width('350vp').padding(20) + .gesture( + LongPressGesture({ repeat: true }) + .onAction((event: GestureEvent) => { + if (event.repeat) { + this.X++; + this.Vue = true; + } + }) + .onActionEnd(() => { + this.X = 0; + }) + ) + Text('长按动作连续触发:' + this.X).fontColor(Color.Black) + }.width('100%').height('80%').backgroundColor(Color.White) + .justifyContent(FlexAlign.SpaceEvenly) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + content: this.specificNoParam, + StepTips: this.StepTips, + X: $X, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/PanGesture.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/PanGesture.ets new file mode 100644 index 000000000..eb1359bea --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/PanGesture.ets @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CustomContainer3'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct PanGestureExample { + @State X: number = 0; + @State Y: number = 0; + @State name: string = 'PanGesture'; + @State StepTips: string = '操作步骤:用至少一根手指拖动图像(最多十根手指)'+'\n'+'预期结果:图片正常拖动,偏移坐标显示正常'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({direction:FlexDirection.Column,alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Image($r("app.media.flower")).height('60%').width('70%') + } + .height('250vp').width('350vp').padding(20) + .margin(80).translate({ x: this.X, y: this.Y, z: 5 }) + .gesture( + PanGesture({}) + .onActionStart((event: GestureEvent) => { + console.info('Pan start'); + this.Vue = true; + }) + .onActionUpdate((event: GestureEvent) => { + this.X = event.offsetX; + this.Y = event.offsetY; + }) + .onActionEnd(() => { + console.info('Pan end'); + }) + ) + Text('偏移坐标x: ' + this.X + '\n' + '偏移坐标y: ' + this.Y) + }.width('100%').height('80%').backgroundColor(Color.White) + .justifyContent(FlexAlign.SpaceEvenly) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/ArkUI/ArkUI_index', + StepTips:this.StepTips, + content: this.specificNoParam, + X:$X, Y:$Y, + name:$name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/PinchGestureTest.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/PinchGestureTest.ets new file mode 100644 index 000000000..c695570f6 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/PinchGestureTest.ets @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CustomContainer2'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct PinchGuestureTest { + @State X: number = 1; + @State name: string = 'PinchGuesture'; + @State StepTips: string = '操作步骤:用手指触摸捏合图片(至少2根手指,最大为5指)'+'\n'+'预期结果:图片能够被正常捏合放缩'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column(){ + Flex({direction:FlexDirection.Column,alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Image($r("app.media.flower")).height('60%').width('70%') + } + .height('250vp').width('350vp').padding(20) + .scale({ x: this.X, y: this.X, z: this.X }) + .gesture( + PinchGesture() + .onActionUpdate((event: GestureEvent) => { + this.X = event.scale; + this.Vue = true; + }) + ) + Text('捏合放缩比例:'+this.X).fontColor(Color.Black) + } .width('100%').height('80%').backgroundColor(Color.White) + .justifyContent(FlexAlign.SpaceEvenly) + } + + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + X: $X, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/RotationGestureTest.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/RotationGestureTest.ets new file mode 100644 index 000000000..27ead1c14 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/RotationGestureTest.ets @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CustomContainer2'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct RotationGuestureTest { + @State X: number = 0; + @State name: string = 'RotationGuesture'; + @State StepTips: string = '操作步骤:用至少两根手指旋转图像(最多五根手指)'+'\n'+'预期结果:图片能够正常旋转'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column(){ + Flex({direction:FlexDirection.Column,alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Image($r("app.media.flower")).height('60%').width('70%') + } + .height('250vp').width('350vp').padding(20) + .rotate({ x:1, y:1, z:1, angle: this.X }) + .margin(80) + .gesture( + RotationGesture() + .onActionUpdate((event: GestureEvent) => { + this.X = event.angle; + this.Vue = true; + }) + ) + Text('旋转角度:' + this.X) + }.height('80%').width('100%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + X: $X, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/ScrollListTest.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/ScrollListTest.ets new file mode 100644 index 000000000..19aaac6ed --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/ScrollListTest.ets @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct CustomContainerUser { + private listArr: number[] = Array.from(new Array(50).keys()); + @State name: string = 'ScrollingList'; + @State StepTips: string = '操作步骤:滑动列表观察是否能正常滑动'+'\n'+'预期结果:列表滑动正常'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + this.Vue = true; + } + @Builder specificNoParam() { + Column() { + List() { + ForEach(this.listArr,(item:any,index:number) => { + ListItem() { + Text('Item #' + (index + 1)).width('100%').height(50).fontSize(16).fontColor(Color.White).margin({left:'10vp'}) + } + },index => index) + }.height('100%').width('100%').divider({strokeWidth:1,color:Color.Grey}) + }.height('83%').width('100%') + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam.bind(this), + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/SwipeGestureTest.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/SwipeGestureTest.ets new file mode 100644 index 000000000..13b437480 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/SwipeGestureTest.ets @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CustomContainer3'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SwipeGestureTest { + @State X : number = 0; + @State Y : number = 0; + @State name: string = 'SwipeGesture'; + @State StepTips: string = '操作步骤:用至少一根手指滑动图像(最多十根手指)'+'\n'+'预期结果:图片正常滑动,手势滑动角度及速度显示正常'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({direction:FlexDirection.Column,alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Image($r("app.media.flower")).height('60%').width('70%') + } + .height('250vp').width('350vp').padding(20) + .rotate({x: 0, y: 0, z: 1, angle: this.X}) + .gesture( + SwipeGesture({fingers: 1, direction: SwipeDirection.Vertical}) + .onAction((event: GestureEvent) => { + this.Y = event.speed; + this.X = event.angle; + this.Vue = true; + }) + ) + Flex({direction:FlexDirection.Column,alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }){ + Text("滑动手势速度 : " + this.Y) + Text("滑动手势角度 : " + this.X) + }.height('15%').width('100%').padding(20) + } + .width('100%').height('80%').backgroundColor(Color.White) + .justifyContent(FlexAlign.SpaceEvenly) + } + + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam, + X: $X, Y: $Y, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} + diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/TapGesture.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/TapGesture.ets new file mode 100644 index 000000000..a32210ea4 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/TapGesture.ets @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import {CustomContainer} from '../common/CustomContainer4'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct TapGestureExample { + @State value: string = ''; + @State name: string = 'TapGesture'; + @State StepTips: string = '操作步骤:用至少一根手指连续双击图像(最多十根手指)'+'\n'+'预期结果:双击图片后文本提示正常弹出'; + @State Vue: boolean = false; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({direction:FlexDirection.Column,alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Image($r("app.media.flower")).height('60%').width('70%') + } + .height('250vp').width('350vp').padding(20) + .gesture( + TapGesture({ count: 2 }) + .onAction(() => { + this.value = 'TapGesture onAction'; + this.Vue = true; + }) + ) + Text(this.value) + }.width('100%').height('80%').backgroundColor(Color.White) + .justifyContent(FlexAlign.SpaceEvenly) + } + build() { + Column() { + CustomContainer({ + title: this.name, + StepTips: this.StepTips, + Url: 'pages/ArkUI/ArkUI_index', + content: this.specificNoParam, + value: $value, + name: $name, + Vue: $Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/ArkUI/TouchMoveTest.ets b/validator/acts_validator/src/main/ets/pages/ArkUI/TouchMoveTest.ets new file mode 100644 index 000000000..29db7384d --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/ArkUI/TouchMoveTest.ets @@ -0,0 +1,222 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import prompt from '@ohos.prompt'; +import fileio from '@ohos.fileio'; +import router from '@ohos.router'; +import screenshot from '@ohos.screenshot'; +import image from '@ohos.multimedia.image'; +import Logger from '../model/Logger' +import FirstDialog from '../model/FirstDialog'; +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +const TAG = '[Screenshot]'; +let path = globalThis.dir; +@Component +struct CustomContainer1 { + @Link x: number; + @Link y: number; + @Link isshow: Visibility; + @Link name:string; + title : string = ''; + StepTips: string = ''; + Url : string = ''; + Vue : boolean; + @BuilderParam content: () => void; + @Builder + PassBtn(text: Resource, isFullScreen: boolean) { + if(this.Vue == false){ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey).opacity(0.4) + .onClick(()=>{ + + }) + } + else{ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Pass', title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '通过', duration: 1000 + }); + }) + } + } + @Builder + FailBtn(text: Resource, isFullScreen: boolean) { + Button(){ + Image($r('app.media.ic_public_fail')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Fail',title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '失败', duration: 1000 + }); + }) + } + build() { + Column() { + Row() { + Button(){ + Image($r('app.media.ic_public_back')).width('20vp').height('18vp').margin({left:'20vp'}) + }.backgroundColor(Color.Black) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'None', title:this.name,} + }) + }) + Text(this.title).fontColor(Color.White).fontSize('18fp').margin({left:'-20vp'}) + Text('hello').fontColor(Color.White).visibility(Visibility.Hidden) + }.backgroundColor(Color.Black).height('10%').width('100%').justifyContent(FlexAlign.SpaceBetween) + this.content(); + Blank() + Row() { + this.PassBtn($r('app.string.btn_fullscreen'), true); + Button(){ + Image($r('app.media.ic_public_help')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(() =>{ + AlertDialog.show( + { + title:'操作提示', + message: this.StepTips, + confirm:{ + value:'OK', + action:()=>{ + } + } + } + ) + }) + this.FailBtn($r('app.string.btn_fullscreen'), true); + }.width('100%').justifyContent(FlexAlign.SpaceEvenly).backgroundColor(Color.Black) + }.height('98%').width('100%') + } + async savePicture(data: image.PixelMap, context: any) { + Logger.info(TAG, `savePicture`) + let packOpts: image.PackingOption = { + format: "image/jpeg", quality: 100 + }; + let info = { + prefix: 'IMG_', suffix: '.jpg', directory: mediaLibrary.DirectoryType.DIR_IMAGE + }; + let name = this.name; + let displayName = `${info.prefix}${name}${info.suffix}`; + let dirPath = path + '/' + displayName; + let imagePackerApi = image.createImagePacker(); + let arrayBuffer = await imagePackerApi.packing(data, packOpts); + let fd = fileio.openSync(dirPath,0o102,0o666); + imagePackerApi.release(); + try { + await fileio.write(fd, arrayBuffer); + } catch (err) { + Logger.error(`write failed, code is ${err.code}, message is ${err.message}`); + } + await fileio.close(fd); + Logger.info(TAG, `write done`); + } + getScreen = (isFullScreen: boolean) => { + let screenshotOptions: screenshot.ScreenshotOptions = { + screenRect: { left: 0, top: 0, width: 400, height: 400 }, + imageSize: { width: 400, height: 400 }, + rotation: 0, + displayId: 0 + }; + if (isFullScreen) { + screenshotOptions = { + rotation: 0 + } + } + try { + screenshot.save(screenshotOptions, (err, data: image.PixelMap) => { + if (err) { + Logger.info(TAG, `Failed to save the screenshot. Error:${JSON.stringify(err)}`); + } + Logger.info(TAG, 'save callback'); + this.savePicture(data, getContext(this) as any); + }) + } catch (err) { + Logger.error(`save failed, code is ${err.code}, message is ${err.message}`); + } + } +} + +@Entry +@Component +struct SetCircle { + @State x: number = 0; + @State y: number = 0; + @State Vue: boolean = false; + @State isshow: Visibility = Visibility.None; + @State name: string = 'TouchMove'; + @State StepTips: string = '操作步骤:手指触摸屏幕并滑动' + '\n' + '预期结果:在手指触摸处出现红色圆圈,并跟随手指滑动'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam1() { + Column() { + Circle() + .width('20vp').height('20vp').position({ x: this.x, y: this.y }).visibility(this.isshow) + .fill(Color.Red) + }.onTouch((event: TouchEvent) => { + let x = event.touches[0].x; + let y = event.touches[0].y; + if (event.type === TouchType.Down) { + this.x = x; + this.y = y; + this.isshow = Visibility.Visible; + } + else if (event.type === TouchType.Move) { + this.x = x; + this.y = y; + this.isshow = Visibility.Visible; + } + else if (event.type === TouchType.Up) { + this.isshow = Visibility.None; + } + this.Vue = true; + }) + .width('100%').height('80%').backgroundColor(Color.White) + + } + + build() { + Column() { + CustomContainer1({ + title: this.name, + Url: 'pages/ArkUI/ArkUI_index', + StepTips: this.StepTips, + content: this.specificNoParam1, + x: $x, + y: $y, + isshow: $isshow, + name: $name, + Vue: this.Vue, + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/MediaLibrary_index.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/MediaLibrary_index.ets new file mode 100644 index 000000000..275491501 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/MediaLibrary_index.ets @@ -0,0 +1,297 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import prompt from '@ohos.prompt'; +import router from '@ohos.router'; +import fileio from '@ohos.fileio'; +import xml from '@ohos.xml'; +import fileIO from '@ohos.fileio'; +import util from '@ohos.util'; + +const TAG = 'ParseXML'; +let path = globalThis.dir; +let path1; +path1 = path + '/MediaLibrary'; + +@Entry +@Component +struct IndexPage { + @State BackColor: string = '#ff808080'; + @State ClearAll : boolean = false; + private current : number = undefined; + @State count : number = 0; + @State result : string = ''; + private TestCaseList = [ + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGEPREVIEW_PR_0100',uri:'pages/MediaLibrary/startImagePreviewPromise1'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGEPREVIEW_PR_0200',uri:'pages/MediaLibrary/startImagePreviewPromise2'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGEPREVIEW_PR_0300',uri:'pages/MediaLibrary/startImagePreviewPromise3'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGEPREVIEW_PR_ERR_0400',uri:'pages/MediaLibrary/startImagePreviewPromise4'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGEPREVIEW_INDEX_CB_0100',uri:'pages/MediaLibrary/startImagePreviewCallback1'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGEPREVIEW_INDEX_CB_0200',uri:'pages/MediaLibrary/startImagePreviewCallback2'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGEPREVIEW_INDEX_CB_0300',uri:'pages/MediaLibrary/startImagePreviewCallback3'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGEPREVIEW_INDEX_CB_ERR_0400',uri:'pages/MediaLibrary/startImagePreviewCallback4'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGEPREVIEW_CB_0100',uri:'pages/MediaLibrary/startImagePreviewCallback5'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGEPREVIEW_CB_0200',uri:'pages/MediaLibrary/startImagePreviewCallback6'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGEPREVIEW_CB_ERR_0300',uri:'pages/MediaLibrary/startImagePreviewCallback7'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGESELECT_CB_0100',uri:'pages/MediaLibrary/startMediaSelectCallback1'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGESELECT_CB_0200',uri:'pages/MediaLibrary/startMediaSelectCallback2'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGESELECT_CB_0300',uri:'pages/MediaLibrary/startMediaSelectCallback3'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGESELECT_CB_0400',uri:'pages/MediaLibrary/startMediaSelectCallback4'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGESELECT_PR_0100',uri:'pages/MediaLibrary/startMediaSelectPromise1'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGESELECT_PR_0200',uri:'pages/MediaLibrary/startMediaSelectPromise2'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGESELECT_PR_0300',uri:'pages/MediaLibrary/startMediaSelectPromise3'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STARTIMAGESELECT_PR_0400',uri:'pages/MediaLibrary/startMediaSelectPromise4'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STOREMEDIAASSET_PR_0100',uri:'pages/MediaLibrary/storeMediaAssetPromise1'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STOREMEDIAASSET_PR_0200',uri:'pages/MediaLibrary/storeMediaAssetPromise2'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STOREMEDIAASSET_PR_0300',uri:'pages/MediaLibrary/storeMediaAssetPromise3'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STOREMEDIAASSET_PR_0400',uri:'pages/MediaLibrary/storeMediaAssetPromise4'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STOREMEDIAASSET_PR_ERR_0500',uri:'pages/MediaLibrary/storeMediaAssetPromise5'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STOREMEDIAASSET_CB_0100',uri:'pages/MediaLibrary/storeMediaAssetCallback1'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STOREMEDIAASSET_CB_0200',uri:'pages/MediaLibrary/storeMediaAssetCallback2'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STOREMEDIAASSET_CB_0300',uri:'pages/MediaLibrary/storeMediaAssetCallback3'}, + {title:'SUB_MULTIMEDIA_MEDIALIBRARY_STOREMEDIAASSET_CB_0400',uri:'pages/MediaLibrary/storeMediaAssetCallback4'}, + ] + @State ColorObject : string[] = ['#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080', + '#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080', + '#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080','#ff808080'] + onPageShow(){ + if (this.count === 1){ + this.result = router.getParams()['result']; + let titles = router.getParams()['title']; + let name1 = '刚刚点进了哪个用例:'+ titles; + let results = this.result; + if (this.result === 'Pass'){ + this.ColorObject[this.current] = '#ff008000'; + filewrite(name1,results,titles); + } + else if (this.result === 'Fail'){ + this.ColorObject[this.current] = '#ffff0000'; + filewrite(name1,results,titles); + } + else if (this.result === 'None'){ + this.ColorObject[this.current] = this.ColorObject[this.current]; + } + } + + } + build(){ + Column(){ + Row() { + Button() { + Image($r('app.media.ic_public_back')).width('20vp').height('18vp') + }.backgroundColor(Color.Black) + .onClick(() => { + router.back(); + }) + Row(){ + Text('MediaLibrary') + .fontColor(Color.White) + .fontSize('22fp') + }.justifyContent(FlexAlign.SpaceAround).backgroundColor(Color.Black) + Row() { + Button(){ + Image($r('app.media.ic_public_delete')) + .width('30vp') + .height('30vp') + }.backgroundColor(Color.Black) + .onClick(() => { + AlertDialog.show( + { + message: "是否删除所有记录", + primaryButton: { + value: 'Yes', + action: () => { + this.ClearAll = true; + this.ColorObject.forEach((value, index) => { + this.ColorObject[index] = '#ff808080'; + }); + this.ClearText(); + prompt.showToast({ + message: '结果已删除', duration: 1000 + }); + } + }, + secondaryButton: { + value: 'No', + action: () => { + + } + }, + cancel: () => { + + } + } + ) + }) + Button(){ + Image($r('app.media.ic_public_save')) + .width('30vp') + .height('30vp') + .margin({ left: 30 }) + }.backgroundColor(Color.Black) + .onClick(() => { + this.ReadTextParseXml(); + AlertDialog.show({ + message: "报告已生成,如需查看通过命令行输入'hdc_std file recv /data/app/el2/100/base/com.example.actsvalidator/haps/entry/files/MediaLibrary/MediaLibraryTest.xml -本地路径'", + confirm:{ + value:'OK', + action:()=>{ + prompt.showToast({ + message: '报告已生成', duration: 1000 + }) + } + }, + cancel: () => { + prompt.showToast({ + message: '报告已生成', duration: 1000 + }) + } + }) + }) + } + }.width('100%').justifyContent(FlexAlign.SpaceAround).margin({top:'15vp'}).height('6%').backgroundColor(Color.Black) + List({space:5}){ + ForEach(this.TestCaseList,(item,index) => { + ListItem(){ + Row(){ + Text(item.title).fontSize(16).fontColor(Color.Black) + Text(this.BackColor.toString()).visibility(Visibility.None) + }.width('100%').height(50).alignItems(VerticalAlign.Center).backgroundColor(this.ColorObject[index]) + .onClick(( )=>{ + this.count = 1; + this.ClearAll=false; + this.current = index; + router.push({ + url: item.uri, + }); + }) + } + },item => item.title) + }.width('100%').height('92%') + }.width('100%').height('100%').backgroundColor(Color.Black) + } + ClearText(){ + fileio.rmdirSync(path1); + fileio.mkdirSync(path1); + } + ReadTextParseXml() { + let ReportPath = path1 + '/MediaLibraryReport.txt'; + let dir = fileio.opendirSync(path1); + console.info("ssssss" + dir); + while (dir) { + let OP = fileio.openSync(ReportPath, 0o100 | 0o2002, 0o664); + let buf = new ArrayBuffer(40960); + let RD = fileio.readSync(OP,buf); + console.info("ddddd"+RD); + let report; + function ab2str(buf) { + return report = String.fromCharCode.apply(null, new Uint8Array(buf)); + } + ab2str(buf); + let str1 = report.split(";"); + let title = []; + let result = []; + for (let i = 0; i < Math.floor(str1.length / 2); i++) { + title[i] = str1[i*2]; + result[i] = str1[i * 2+1]; + } + let FailIndex = report.indexOf('Fail'); + let FailNum = 0; + while (FailIndex != -1) { + console.log(FailIndex); + FailNum++; + FailIndex = report.indexOf('Fail',FailIndex + 1); + } + let failNum = (FailNum).toString(); + let PassIndex = report.indexOf('Pass'); + let PassNum = 0; + while (PassIndex != -1) { + console.log(PassIndex); + PassNum++; + PassIndex = report.indexOf('Pass',PassIndex + 1); + } + let TestNum = FailNum + PassNum; + let testNum = (TestNum).toString(); + let ignoreNum = (28-TestNum).toString(); + let arrayBuffer = new ArrayBuffer(40960); + let bufView = new DataView(arrayBuffer); + let serializer = new xml.XmlSerializer(bufView); + serializer.setDeclaration(); + serializer.startElement("testsuite"); + serializer.setAttributes("name", "ActsMediaLibraryTest"); + serializer.setAttributes("time", " "); + serializer.setAttributes("errors", "0"); + serializer.setAttributes("disabled", "0"); + serializer.setAttributes("failures", failNum); + serializer.setAttributes("ignored", ignoreNum); + serializer.setAttributes("tests", testNum); + serializer.setAttributes("message", " "); + serializer.setAttributes("modulename", "ActsMediaLibraryTest"); + for (let i = 0; i < title.length; i++) { + serializer.startElement("testcase"); + serializer.setAttributes("name", String(title[i])); + serializer.setAttributes("status", " "); + serializer.setAttributes("time", " "); + serializer.setAttributes("classname", " "); + serializer.setAttributes("result", String(result[i])); + serializer.setAttributes("level", " "); + serializer.setAttributes("message", " "); + serializer.endElement(); + } + serializer.endElement(); + + let that = new util.TextDecoder('utf-8'); + let array = new Uint8Array(arrayBuffer); + let serializerStr = that.decode(array); + let xmlPath = path1 + "/MediaLibraryTest.xml"; + console.info(xmlPath); + try { + console.error(TAG, "write xmlPath =" + xmlPath); + var xmlfd = fileIO.openSync(xmlPath, 0o102, 0o666); + fileIO.writeSync(xmlfd, serializerStr); + } catch (err) { + console.error(TAG, "read xmlPath =" + xmlPath + "error:" + err); + } finally { + fileIO.closeSync(xmlfd); + } + return; + } + } +} +function filewrite(name1,results,titles){ + let txtpath = path1 + '/MediaLibraryReport.txt'; + let fd = fileio.openSync(txtpath, 0o100 | 0o2002, 0o664); + let buf = new ArrayBuffer(4096); + let RD = fileio.readSync(fd,buf); + console.info("RRRRRRRRRRd"+RD); + let report = String.fromCharCode.apply(null,new Uint8Array(buf)); + let WriteTitle = (titles).toString(); + let number = WriteTitle.length + 6; + let Index = report.indexOf(WriteTitle); + let Log = (titles+";"+results+";").toString(); + if (Index == -1){ + fileio.writeSync(fd,Log); + } + else if (Index != -1){ + let key = report.substring(Index,Index+number); + let FD = fileio.openSync(txtpath, 0o102, 0o666); + report = report.replace(key,Log); + let buffer = new ArrayBuffer(4096); + let rd = fileio.readSync(FD,buffer); + let Report = report.substring(0,rd); + fileio.closeSync(FD); + let Fd = fileio.openSync(txtpath, 0o102, 0o666); + fileio.writeSync(Fd,Report); + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback1.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback1.ets new file mode 100644 index 000000000..dda216ee9 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback1.ets @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startImagePreviewCallback1'; + @State StepTips: string = '测试步骤:点击“点击预览”按钮'+'\n'+'预期结果:可以预览到一张图片'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击预览').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startImagePreviewCallback1'; + let images = [ + "datashare:///media/image/3", + ]; + let index = 1; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startImagePreview(images, index, (err) => { + if (err) { + console.log(TAG + "An error occurred when previewing the images." + JSON.stringify(err)); + return; + } + console.log(TAG + "Succeeded in previewing the images."); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback2.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback2.ets new file mode 100644 index 000000000..23a15813e --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback2.ets @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startImagePreviewCallback2'; + @State StepTips: string = '测试步骤:点击“点击预览”按钮'+'\n'+'预期结果:起始图片为第一张图片,一共可以预览到两张图片'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击预览').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startImagePreviewCallback2'; + let images = [ + "datashare:///media/image/3", + "datashare:///media/image/4", + ]; + let index = 1; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startImagePreview(images, index, (err) => { + if (err) { + console.log(TAG + "An error occurred when previewing the images." + JSON.stringify(err)); + return; + } + console.log(TAG + "Succeeded in previewing the images."); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback3.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback3.ets new file mode 100644 index 000000000..3c6cb5540 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback3.ets @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startImagePreviewCallback3'; + @State StepTips: string = '测试步骤:点击“点击预览”按钮'+'\n'+'预期结果:起始图片为第三张图片,一共可以预览到四张图片'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击预览').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startImagePreviewCallback3'; + let images = [ + "datashare:///media/image/3", + "datashare:///media/image/4", + "datashare:///media/image/5", + "datashare:///media/image/6", + ]; + let index = 2; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startImagePreview(images, index, (err) => { + if (err) { + console.log(TAG + "An error occurred when previewing the images." + JSON.stringify(err)); + return; + } + console.log(TAG + "Succeeded in previewing the images."); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback4.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback4.ets new file mode 100644 index 000000000..ab23b2ba5 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback4.ets @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startImagePreviewCallback4'; + @State StepTips: string = '测试步骤:点击“点击预览”按钮'+'\n'+'预期结果:预览图片失败'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击预览').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startImagePreviewCallback4'; + let images = [ + "datashare:///media/image/9999", + "datashare:///media/image/9998", + "datashare:///media/image/9997", + "datashare:///media/image/9996", + ]; + let index = 2; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startImagePreview(images, index, (err) => { + if (err) { + console.log(TAG + "An error occurred when previewing the images." + JSON.stringify(err)); + return; + } + console.log(TAG + "Succeeded in previewing the images."); + }); + }) + + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback5.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback5.ets new file mode 100644 index 000000000..a7c74d7d0 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback5.ets @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startImagePreviewCallback5'; + @State StepTips: string = '测试步骤:点击“点击预览”按钮'+'\n'+'预期结果:成功预览一张图片'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击预览').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startImagePreviewCallback5'; + let images = [ + "datashare:///media/image/3", + ]; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startImagePreview(images, (err) => { + if (err) { + console.log(TAG + "startImagePreview_One An error occurred when previewing the images." + JSON.stringify(err)); + return; + } + console.log(TAG + "startImagePreview_One Succeeded in previewing the images."); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback6.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback6.ets new file mode 100644 index 000000000..15cb61dcb --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback6.ets @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startImagePreviewCallback6'; + @State StepTips: string = '测试步骤:点击“点击预览”按钮'+'\n'+'预期结果:成功预览五张图片'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击预览').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startImagePreviewCallback6'; + let images = [ + "datashare:///media/image/3", + "datashare:///media/image/4", + "datashare:///media/image/5", + "datashare:///media/image/6", + "datashare:///media/image/2", + ]; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startImagePreview(images, (err) => { + if (err) { + console.log(TAG + "startImagePreview_MultiPle An error occurred when previewing the images." + JSON.stringify(err)); + return; + } + console.log(TAG + "startImagePreview_MultiPle Succeeded in previewing the images."); + }); + }) + + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback7.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback7.ets new file mode 100644 index 000000000..db8c63dc1 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewCallback7.ets @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startImagePreviewCallback7'; + @State StepTips: string = '测试步骤:点击“点击预览”按钮'+'\n'+'预期结果:预览图片失败'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击预览').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startImagePreviewCallback7'; + let images = [ + "datashare:///media/image/9999", + ]; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startImagePreview(images, (err) => { + if (err) { + console.log(TAG + "startImagePreview_One An error occurred when previewing the images." + JSON.stringify(err)); + return; + } + console.log(TAG + "startImagePreview_One Succeeded in previewing the images."); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise1.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise1.ets new file mode 100644 index 000000000..0ef1b89fe --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise1.ets @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startImagePreviewPromise1'; + @State StepTips: string = '测试步骤:点击“点击预览”按钮' + '\n' + '预期结果:可以成功预览到一张图片'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击预览').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startImagePreviewPromise1'; + let images = [ + "datashare:///media/image/3", + ]; + let index = 1; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startImagePreview(images, index).then(() => { + console.log(TAG + "Succeeded in previewing the images."); + }).catch((err) => { + console.log(TAG + "An error occurred when previewing the images." + JSON.stringify(err)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/MediaLibrary/MediaLibrary_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} + diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise2.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise2.ets new file mode 100644 index 000000000..20bd95286 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise2.ets @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startImagePreviewPromise2'; + @State StepTips: string = '测试步骤:点击“点击预览”按钮' + '\n' + '预期结果:起始图片为第一张图片,一共可以预览到两张图片'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击预览').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startImagePreviewPromise2'; + let images = [ + "datashare:///media/image/3", + "datashare:///media/image/4", + ]; + let index = 1; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startImagePreview(images, index).then(() => { + console.log(TAG + "Succeeded in previewing the images."); + }).catch((err) => { + console.log(TAG + "An error occurred when previewing the images." + JSON.stringify(err)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/MediaLibrary/MediaLibrary_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} + diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise3.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise3.ets new file mode 100644 index 000000000..777793801 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise3.ets @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startImagePreviewPromise3'; + @State StepTips: string = '测试步骤:点击“点击预览”按钮' + '\n' + '预期结果:起始图片为第二张图片,一共可以预览到三张图片'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击预览').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startImagePreviewPromise3'; + let images = [ + "datashare:///media/image/3", + "datashare:///media/image/4", + "datashare:///media/image/5", + ]; + let index = 1; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startImagePreview(images, index).then(() => { + console.log(TAG + "Succeeded in previewing the images."); + }).catch((err) => { + console.log(TAG + "An error occurred when previewing the images." + JSON.stringify(err)); + }); + }) + + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/MediaLibrary/MediaLibrary_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} + diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise4.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise4.ets new file mode 100644 index 000000000..a0978c6f2 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startImagePreviewPromise4.ets @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startImagePreviewPromise4'; + @State StepTips: string = '测试步骤:点击“点击预览”按钮' + '\n' + '预期结果:预览图片失败'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击预览').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startImagePreviewPromise4'; + let images = [ + "datashare:///media/image/9999", + "datashare:///media/image/9998", + "datashare:///media/image/9997", + ]; + let index = 1; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startImagePreview(images, index).then(() => { + console.log(TAG + "Succeeded in previewing the images."); + }).catch((err) => { + console.log(TAG + "An error occurred when previewing the images." + JSON.stringify(err)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + + build() { + Column() { + CustomContainer({ + title: this.name, + Url: 'pages/MediaLibrary/MediaLibrary_index', + StepTips: this.StepTips, + content: this.specificNoParam, + FillColor: $FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} + diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback1.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback1.ets new file mode 100644 index 000000000..53c617af6 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback1.ets @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startMediaSelectCallback1'; + @State StepTips: string = '测试步骤:点击“点击选择”按钮'+'\n'+'预期结果:可以选择一张图片(单选)'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击选择').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startMediaSelectCallback1'; + let option : mediaLibrary.MediaSelectOption = { + type : "image", + count : 1 + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startMediaSelect(option, (err, value) => { + if (err) { + console.log(TAG + "An error occurred when selecting image resources." + JSON.stringify(err)); + return; + } + console.log(TAG + "image resources selected." + JSON.stringify(value)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback2.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback2.ets new file mode 100644 index 000000000..f5f5af805 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback2.ets @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startMediaSelectCallback2'; + @State StepTips: string = '测试步骤:点击“点击选择”按钮'+'\n'+'预期结果:可以选择多张图片(多选)'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击选择').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startMediaSelectCallback2'; + let option : mediaLibrary.MediaSelectOption = { + type : "image", + count : 2 + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startMediaSelect(option, (err, value) => { + if (err) { + console.log(TAG + "An error occurred when selecting image resources." + JSON.stringify(err)); + return; + } + console.log(TAG + "image resources selected." + JSON.stringify(value)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback3.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback3.ets new file mode 100644 index 000000000..1fd60fdf1 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback3.ets @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startMediaSelectCallback3'; + @State StepTips: string = '测试步骤:点击“点击选择”按钮'+'\n'+'预期结果:可以选择多个图片、视频文件'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击选择').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startMediaSelectCallback3'; + let option : mediaLibrary.MediaSelectOption = { + type : "media", + count : 2 + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startMediaSelect(option, (err, value) => { + if (err) { + console.log(TAG + "An error occurred when selecting image resources." + JSON.stringify(err)); + return; + } + console.log(TAG + "image resources selected." + JSON.stringify(value)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback4.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback4.ets new file mode 100644 index 000000000..cde6cafa1 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectCallback4.ets @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startMediaSelectCallback4'; + @State StepTips: string = '测试步骤:点击“点击选择”按钮'+'\n'+'预期结果:可以选择多个视频资源'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击选择').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startMediaSelectCallback4'; + let option : mediaLibrary.MediaSelectOption = { + type : "video", + count : 2 + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startMediaSelect(option, (err, value) => { + if (err) { + console.log(TAG + "An error occurred when selecting image resources." + JSON.stringify(err)); + return; + } + console.log(TAG + "image resources selected." + JSON.stringify(value)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise1.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise1.ets new file mode 100644 index 000000000..2105f1598 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise1.ets @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startMediaSelectPromise1'; + @State StepTips: string = '测试步骤:点击“点击选择”按钮'+'\n'+'预期结果:可以选择单张图片'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击选择').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startMediaSelectPromise1'; + let option : mediaLibrary.MediaSelectOption = { + type : "image", + count : 1 + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startMediaSelect(option).then((value) => { + console.log(TAG + "Media resources selected." + JSON.stringify(value)); + }).catch((err) => { + console.log(TAG + "An error occurred when selecting media resources." + JSON.stringify(err)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise2.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise2.ets new file mode 100644 index 000000000..577e05fdf --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise2.ets @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startMediaSelectPromise2'; + @State StepTips: string = '测试步骤:点击“点击选择”按钮'+'\n'+'预期结果:可以选择多张图片'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击选择').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startMediaSelectPromise2'; + let option : mediaLibrary.MediaSelectOption = { + type : "image", + count : 2 + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startMediaSelect(option).then((value) => { + console.log(TAG + "Media resources selected." + JSON.stringify(value)); + }).catch((err) => { + console.log(TAG + "An error occurred when selecting media resources." + JSON.stringify(err)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise3.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise3.ets new file mode 100644 index 000000000..6d07d3f96 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise3.ets @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startMediaSelectPromise3'; + @State StepTips: string = '测试步骤:点击“点击选择”按钮'+'\n'+'预期结果:可以选择多个图片、视频资源'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击选择').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startMediaSelect5_media2'; + let option : mediaLibrary.MediaSelectOption = { + type : "media", + count : 2 + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startMediaSelect(option).then((value) => { + console.log(TAG + "Media resources selected." + JSON.stringify(value)); + }).catch((err) => { + console.log(TAG + "An error occurred when selecting media resources." + JSON.stringify(err)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise4.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise4.ets new file mode 100644 index 000000000..5e33a6d9f --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/startMediaSelectPromise4.ets @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'startMediaSelectPromise4'; + @State StepTips: string = '测试步骤:点击“点击选择”按钮'+'\n'+'预期结果:可以选择单个视频'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击选择').margin('5%').fontSize(20).border({ width: 1 }).size({ width: '75%', height: '30%' }) + .onClick(() => { + let TAG = 'startMediaSelect5_video2'; + let option : mediaLibrary.MediaSelectOption = { + type : "video", + count : -1 + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).startMediaSelect(option).then((value) => { + console.log(TAG + "Media resources selected." + JSON.stringify(value)); + }).catch((err) => { + console.log(TAG + "An error occurred when selecting media resources." + JSON.stringify(err)); + }); + }) + + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback1.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback1.ets new file mode 100644 index 000000000..5093fd261 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback1.ets @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fileio from '@ohos.fileio'; +import featureAbility from '@ohos.ability.featureAbility'; +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'storeMediaAssetCallback1'; + @State StepTips: string = '操作步骤:点击“点击保存”按钮'+'\n'+'预期结果:成功保存一张图片,资源内容为“hello world”'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam(){ + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击保存').margin('2%').backgroundColor('#FFDDDDF8').fontSize(20).border({ width: 1 }).size({ width: '70%', height: '20%' }) + .onClick(async () => { + let TAG = 'storeMediaAssetCallback1'; + let data = await globalThis.abilityContext.getFilesDir(); + let time = new Date().getTime(); + console.log("data is"+ JSON.stringify(data)); + data = 'data/storage/el2/base/haps/entry'; + let JpgPath = data + "/files/"+time + ".jpg"; + + let srcFd =await fileio.open(JpgPath,0o102,0o0600); + await fileio.write(srcFd,"hello world"); + await fileio.close(srcFd); + + let option = { + src : JpgPath, + mimeType : "image/*", + relativePath : "Pictures/" + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).storeMediaAsset(option, (err, value) => { + if (err) { + console.log(TAG +"An error occurred when storing image resources." + JSON.stringify(err)); + return; + } + AlertDialog.show( + { + title: '保存成功', + message: '查询到Pictures路径下新增一个.jpg格式的图片资源,资源内容为“hello world”', + confirm: { + value: 'OK', + action: () => { + console.info(TAG + 'Button-clicking callback') + } + }, + cancel: () => { + console.info(TAG + 'Closed callbacks') + } + } + ) + console.log(TAG + "image resources stored. "+ JSON.stringify(value)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback2.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback2.ets new file mode 100644 index 000000000..050fcf8b1 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback2.ets @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fileio from '@ohos.fileio'; +import featureAbility from '@ohos.ability.featureAbility'; +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'storeMediaAssetCallback2'; + @State StepTips: string = '操作步骤:点击“点击保存”按钮'+'\n'+'预期结果:成功保存音频,资源内容为“hello world”'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam(){ + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击保存').margin('2%').backgroundColor('#FFDDDDF8').fontSize(20).border({ width: 1 }).size({ width: '70%', height: '20%' }) + .onClick(async () => { + let TAG = 'storeMediaAssetCallback2'; + let data = await globalThis.abilityContext.getFilesDir(); + let time = new Date().getTime(); + console.log("data is"+ JSON.stringify(data)); + data = 'data/storage/el2/base/haps/entry'; + let PathMp3 = data + "/files/"+time + ".mp3"; + + let srcFd =await fileio.open(PathMp3,0o102,0o0600); + await fileio.write(srcFd,"hello world"); + await fileio.close(srcFd); + + let option = { + src : PathMp3, + mimeType : "audio/mp3", + relativePath : "Audios/" + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).storeMediaAsset(option, (err, value) => { + if (err) { + console.log(TAG + "An error occurred when storing audios resources."+ JSON.stringify(err)); + return; + } + AlertDialog.show( + { + title: '保存成功', + message: '查询到Audios路径下新增一个.mp3格式的音频资源,资源内容为“hello world”', + confirm: { + value: 'OK', + action: () => { + console.info(TAG + 'Button-clicking callback') + } + }, + cancel: () => { + console.info(TAG + 'Closed callbacks') + } + } + ) + console.log(TAG + "audios resources stored. "+ JSON.stringify(value)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback3.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback3.ets new file mode 100644 index 000000000..9c7146266 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback3.ets @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fileio from '@ohos.fileio'; +import featureAbility from '@ohos.ability.featureAbility'; +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'storeMediaAssetCallback3'; + @State StepTips: string = '操作步骤:点击“点击保存”按钮'+'\n'+'预期结果:成功保存视频,资源内容为“hello world”'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam(){ + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击保存').margin('2%').backgroundColor('#FFDDDDF8').fontSize(20).border({ width: 1 }).size({ width: '70%', height: '20%' }) + .onClick(async () => { + let TAG = 'storeMediaAssetCallback3'; + let data = await globalThis.abilityContext.getFilesDir(); + let time = new Date().getTime(); + console.log("data is"+ JSON.stringify(data)); + data = 'data/storage/el2/base/haps/entry'; + let PathMp4 = data + "/files/"+time + ".mp4"; + + let srcFd =await fileio.open(PathMp4,0o102,0o0600); + await fileio.write(srcFd,"hello world"); + await fileio.close(srcFd); + + let option = { + src : PathMp4, + mimeType : "video/mp4", + relativePath : "Videos/" + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).storeMediaAsset(option, (err, value) => { + if (err) { + console.log(TAG + "An error occurred when storing videos resources."+ JSON.stringify(err)); + return; + } + AlertDialog.show( + { + title: '保存成功', + message: '查询到Videos路径下新增一个.mp4格式的视频资源,资源内容为“hello world”', + confirm: { + value: 'OK', + action: () => { + console.info(TAG + 'Button-clicking callback') + } + }, + cancel: () => { + console.info(TAG + 'Closed callbacks') + } + } + ) + console.log(TAG + "videos resources stored. "+ JSON.stringify(value)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback4.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback4.ets new file mode 100644 index 000000000..c0f349cc3 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetCallback4.ets @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fileio from '@ohos.fileio'; +import featureAbility from '@ohos.ability.featureAbility'; +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'storeMediaAssetCallback4'; + @State StepTips: string = '操作步骤:点击“点击保存”按钮'+'\n'+'预期结果:成功保存文件,资源内容为“hello world”'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam(){ + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击保存').margin('2%').backgroundColor('#FFDDDDF8').fontSize(20).border({ width: 1 }).size({ width: '70%', height: '20%' }) + .onClick(async () => { + let TAG = 'storeMediaAssetCallback4'; + let data = await globalThis.abilityContext.getFilesDir(); + let time = new Date().getTime(); + console.log("data is"+ JSON.stringify(data)); + data = 'data/storage/el2/base/haps/entry'; + let PathPdf = data + "/files/"+time + ".Pdf"; + + let srcFd =await fileio.open(PathPdf,0o102,0o0600); + await fileio.write(srcFd,"hello world"); + await fileio.close(srcFd); + + let option = { + src : PathPdf, + mimeType : "file/pdf", + relativePath : "Documents/" + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).storeMediaAsset(option, (err, value) => { + if (err) { + console.log(TAG + "An error occurred when storing files resources."+ JSON.stringify(err)); + return; + } + AlertDialog.show( + { + title: '保存成功', + message: '查询到Documents路径下新增一个.Pdf格式的文件资源,资源内容为“hello world”', + confirm: { + value: 'OK', + action: () => { + console.info(TAG + 'Button-clicking1 callback') + } + }, + cancel: () => { + console.info(TAG + 'Closed1 callbacks') + } + } + ) + console.log(TAG + "files resources stored. "+ JSON.stringify(value)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise1.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise1.ets new file mode 100644 index 000000000..5ead6443b --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise1.ets @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import fileio from '@ohos.fileio'; +import featureAbility from '@ohos.ability.featureAbility'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'storeMediaAssetPromise1'; + @State StepTips: string = '操作步骤:点击“点击保存”按钮'+'\n'+'预期结果:成功保存图片,资源内容为“hello world”'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击保存').margin('2%').backgroundColor('#FFDDDDF8').fontSize(20).border({ width: 1 }).size({ width: '70%', height: '20%' }) + .onClick(async () => { + let TAG = 'storeMediaAssetPromise1'; + let context0 = featureAbility.getContext(); + let data = await context0.getFilesDir(); + let time = new Date().getTime(); + console.log("data is"+ JSON.stringify(data)); + data = 'data/storage/el2/base/haps/entry'; + let JpgPath = data + "/files/"+time + ".jpg"; + + let srcFd =await fileio.open(JpgPath,0o102,0o0600); + await fileio.write(srcFd,"hello world"); + await fileio.close(srcFd); + + let option = { + src : JpgPath, + mimeType : "image/*", + relativePath : "Pictures/" + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).storeMediaAsset(option).then((value) => { + AlertDialog.show( + { + title: '保存成功', + message: '查询到Pictures路径下新增一个.jpg格式的图片资源,资源内容为“hello world”', + confirm: { + value: 'OK', + action: () => { + console.info(TAG + 'Button-clicking callback') + } + }, + cancel: () => { + console.info(TAG + 'Closed callbacks') + } + } + ) + console.log(TAG + "image resources stored. "+ JSON.stringify(value)); + }).catch((err) => { + console.log(TAG + "An error occurred when storing image resources."+ JSON.stringify(err)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise2.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise2.ets new file mode 100644 index 000000000..1201ec8a2 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise2.ets @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import fileio from '@ohos.fileio'; +import featureAbility from '@ohos.ability.featureAbility'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'storeMediaAssetPromise2'; + @State StepTips: string = '操作步骤:点击“点击保存”按钮'+'\n'+'预期结果:成功保存音频,资源内容为“hello world”'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击保存').margin('2%').backgroundColor('#FFDDDDF8').fontSize(20).border({ width: 1 }).size({ width: '70%', height: '20%' }) + .onClick(async () => { + let TAG = 'storeMediaAssetPromise2'; + let data = await globalThis.abilityContext.getFilesDir(); + let time = new Date().getTime(); + console.log("data is"+ JSON.stringify(data)); + data = 'data/storage/el2/base/haps/entry'; + let PathMp3 = data + "/files/"+time + ".mp3"; + + let srcFd =await fileio.open(PathMp3,0o102,0o0600); + await fileio.write(srcFd,"hello world"); + await fileio.close(srcFd); + + let option = { + src : PathMp3, + mimeType : "audio/mp3", + relativePath : "Audios/" + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).storeMediaAsset(option).then((value) => { + AlertDialog.show( + { + title: '保存成功', + message: '查询到Audios路径下新增一个.mp3格式的音频资源,资源内容为“hello world”', + confirm: { + value: 'OK', + action: () => { + console.info(TAG + 'Button-clicking callback') + } + }, + cancel: () => { + console.info(TAG + 'Closed callbacks') + } + } + ) + console.log(TAG + "audios resources stored. "+ JSON.stringify(value)); + }).catch((err) => { + console.log(TAG + "An error occurred when storing audios resources."+ JSON.stringify(err)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise3.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise3.ets new file mode 100644 index 000000000..58be029a6 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise3.ets @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import fileio from '@ohos.fileio'; +import featureAbility from '@ohos.ability.featureAbility'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'storeMediaAssetPromise3'; + @State StepTips: string = '操作步骤:点击“点击保存”按钮'+'\n'+'预期结果:成功保存视频,资源内容为“hello world”'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击保存').margin('2%').backgroundColor('#FFDDDDF8').fontSize(20).border({ width: 1 }).size({ width: '70%', height: '20%' }) + .onClick(async () => { + let TAG = 'storeMediaAssetPromise3'; + let data = await globalThis.abilityContext.getFilesDir(); + let time = new Date().getTime(); + console.log("data is"+ JSON.stringify(data)); + data = 'data/storage/el2/base/haps/entry'; + let PathMp4 = data + "/files/"+time + ".mp4"; + + let srcFd =await fileio.open(PathMp4,0o102,0o0600); + await fileio.write(srcFd,"hello world"); + await fileio.close(srcFd); + + let option = { + src : PathMp4, + mimeType : "video/mp4", + relativePath : "Videos/" + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).storeMediaAsset(option).then((value) => { + AlertDialog.show( + { + title: '保存成功', + message: '查询到Videos路径下新增一个.mp4格式的视频资源,资源内容为“hello world”', + confirm: { + value: 'OK', + action: () => { + console.info(TAG + ' Button-clicking callback') + } + }, + cancel: () => { + console.info(TAG + ' Closed callbacks') + } + } + ) + console.log(TAG + " videos resources stored. "+ JSON.stringify(value)); + }).catch((err) => { + console.log(TAG + " An error occurred when storing videos resources."+ JSON.stringify(err)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise4.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise4.ets new file mode 100644 index 000000000..d1c4171c1 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise4.ets @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import fileio from '@ohos.fileio'; +import featureAbility from '@ohos.ability.featureAbility'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'storeMediaAssetPromise4'; + @State StepTips: string = '操作步骤:点击“点击保存”按钮'+'\n'+'预期结果:成功保存文件,资源内容为“hello world”'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击保存').margin('2%').backgroundColor('#FFDDDDF8').fontSize(20).border({ width: 1 }).size({ width: '70%', height: '20%' }) + .onClick(async () => { + let TAG = 'storeMediaAssetPromise4'; + let data = await globalThis.abilityContext.getFilesDir(); + let time = new Date().getTime(); + console.log("data is"+ JSON.stringify(data)); + data = 'data/storage/el2/base/haps/entry'; + let PathPdf = data + "/files/"+time + ".Pdf"; + + let srcFd =await fileio.open(PathPdf,0o102,0o0600); + await fileio.write(srcFd,"hello world"); + await fileio.close(srcFd); + + let option = { + src : PathPdf, + mimeType : "file/pdf", + relativePath : "Documents/" + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).storeMediaAsset(option).then((value) => { + AlertDialog.show( + { + title: '保存成功', + message: '查询到Documents路径下新增一个.Pdf格式的文件资源,资源内容为“hello world”', + confirm: { + value: 'OK', + action: () => { + console.info(TAG + 'Button-clicking callback') + } + }, + cancel: () => { + console.info(TAG + 'Closed callbacks') + } + } + ) + console.log(TAG + "files resources stored. "+ JSON.stringify(value)); + }).catch((err) => { + console.log(TAG + "An error occurred when storing files resources."+ JSON.stringify(err)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise5.ets b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise5.ets new file mode 100644 index 000000000..d94969056 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/MediaLibrary/storeMediaAssetPromise5.ets @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import fileio from '@ohos.fileio'; +import featureAbility from '@ohos.ability.featureAbility'; +import {CustomContainer} from '../common/MediaCustomContainer'; +import FirstDialog from '../model/FirstDialog'; +@Entry +@Component +struct SetCircle { + @State FillColor: string = '#FF000000'; + @State name: string = 'storeMediaAssetPromise5'; + @State StepTips: string = '操作步骤:点击“点击保存”按钮'+'\n'+'预期结果:保存图片失败'; + async aboutToAppear(){ + await FirstDialog.ChooseDialog(this.StepTips,this.name); + } + @Builder specificNoParam() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) { + Text('点击保存').margin('2%').backgroundColor('#FFDDDDF8').fontSize(20).border({ width: 1 }).size({ width: '70%', height: '20%' }) + .onClick(async () => { + let TAG = 'storeMediaAssetPromise5'; + let data = await globalThis.abilityContext.getFilesDir(); + let time = new Date().getTime(); + console.log("data is"+ JSON.stringify(data)); + data = 'data/storage/el2/base/haps/entry'; + let JpgPath = data + "/files/"+time + ".jpg"; + + let srcFd =await fileio.open(JpgPath,0o102,0o0600); + await fileio.write(srcFd,"hello world"); + await fileio.close(srcFd); + + let option = { + src : JpgPath, + mimeType : "123", + relativePath : "Pictures/" + }; + mediaLibrary.getMediaLibrary(globalThis.abilityContext).storeMediaAsset(option).then((value) => { + console.log(TAG + "image resources stored. "+ JSON.stringify(value)); + }).catch((err) => { + AlertDialog.show( + { + title: '保存失败', + message: '媒体MIME类型错误', + confirm: { + value: 'OK', + action: () => { + console.info(TAG + 'Button-clicking callback') + } + }, + cancel: () => { + console.info(TAG + 'Closed callbacks') + } + } + ) + console.log(TAG + "An error occurred when storing image resources."+ JSON.stringify(err)); + }); + }) + } + }.width('100%').height('80%').backgroundColor(Color.White) + } + build() { + Column() { + CustomContainer({ + title: this.name, + Url:'pages/MediaLibrary/MediaLibrary_index', + StepTips:this.StepTips, + content: this.specificNoParam, + FillColor:$FillColor, + name:$name + }) + }.width('100%').height('100%').backgroundColor(Color.Black) + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/common/CanvasCustomContainer1.ets b/validator/acts_validator/src/main/ets/pages/common/CanvasCustomContainer1.ets new file mode 100644 index 000000000..966c801a2 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/common/CanvasCustomContainer1.ets @@ -0,0 +1,166 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fileio from '@ohos.fileio'; +import prompt from '@ohos.prompt'; +import router from '@ohos.router'; +import screenshot from '@ohos.screenshot'; +import image from '@ohos.multimedia.image'; +import Logger from '../model/Logger'; +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; + +let path = globalThis.dir; +const TAG = '[Screenshot]'; +@Component +export struct CustomContainer { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @Link FillColor: string; + @Link name:string; + Url : string = ''; + title : string = ''; + StepTips: string = ''; + @Link Vue : boolean; + @BuilderParam content: () => void; + @Builder + PassBtn(text: Resource, isFullScreen: boolean) { + if(this.Vue == false){ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey).opacity(0.4) + .onClick(()=>{ + + }) + } + else{ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Pass', title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '通过', duration: 1000 + }); + }) + } + } + @Builder + FailBtn(text: Resource, isFullScreen: boolean) { + Button(){ + Image($r('app.media.ic_public_fail')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Fail',title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '失败', duration: 1000 + }); + }) + } + build() { + Column() { + Row() { + Button(){ + Image($r('app.media.ic_public_back')).width('20vp').height('18vp').margin({left:'20vp'}) + }.backgroundColor(Color.Black) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'None', } + }) + }) + Text(this.title).fontColor(Color.White).fontSize('18fp').margin({left:'-20vp'}) + Text('hello').fontColor(Color.White).visibility(Visibility.Hidden) + }.backgroundColor(Color.Black).height('10%').width('100%').justifyContent(FlexAlign.SpaceBetween) + this.content(); + Blank() + Row() { + this.PassBtn($r('app.string.btn_fullscreen'), true); + Button(){ + Image($r('app.media.ic_public_help')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(() =>{ + AlertDialog.show( + { + title:'操作提示', + message: this.StepTips, + confirm:{ + value:'OK', + action:()=>{ + } + } + } + ) + }) + this.FailBtn($r('app.string.btn_fullscreen'), true); + }.width('100%').justifyContent(FlexAlign.SpaceEvenly).backgroundColor(Color.Black) + }.height('98%').width('100%') + } + async savePicture(data: image.PixelMap, context: any) { + Logger.info(TAG, `savePicture`); + let packOpts: image.PackingOption = { + format: "image/jpeg", quality: 100 + }; + let info = { + prefix: 'IMG_', suffix: '.jpg', directory: mediaLibrary.DirectoryType.DIR_IMAGE + }; + let name = this.name; + let displayName = `${info.prefix}${name}${info.suffix}`; + let dirPath = path + '/' + displayName; + let imagePackerApi = image.createImagePacker(); + let arrayBuffer = await imagePackerApi.packing(data, packOpts); + let fd = fileio.openSync(dirPath,0o102,0o666); + imagePackerApi.release(); + try { + await fileio.write(fd, arrayBuffer); + } catch (err) { + Logger.error(`write failed, code is ${err.code}, message is ${err.message}`); + } + await fileio.close(fd); + Logger.info(TAG, `write done`); + } + getScreen = (isFullScreen: boolean) => { + let screenshotOptions: screenshot.ScreenshotOptions = { + screenRect: { left: 0, top: 0, width: 400, height: 400 }, + imageSize: { width: 400, height: 400 }, + rotation: 0, + displayId: 0 + }; + if (isFullScreen) { + screenshotOptions = { + rotation: 0 + } + } + try { + screenshot.save(screenshotOptions, (err, data: image.PixelMap) => { + if (err) { + Logger.info(TAG, `Failed to save the screenshot. Error:${JSON.stringify(err)}`); + } + Logger.info(TAG, 'save callback'); + this.savePicture(data, getContext(this) as any); + }) + } catch (err) { + Logger.error(`save failed, code is ${err.code}, message is ${err.message}`); + } + } +} diff --git a/validator/acts_validator/src/main/ets/pages/common/CanvasCustomContainer2.ets b/validator/acts_validator/src/main/ets/pages/common/CanvasCustomContainer2.ets new file mode 100644 index 000000000..431aab946 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/common/CanvasCustomContainer2.ets @@ -0,0 +1,168 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fileio from '@ohos.fileio'; +import prompt from '@ohos.prompt'; +import router from '@ohos.router'; +import screenshot from '@ohos.screenshot'; +import image from '@ohos.multimedia.image'; +import Logger from '../model/Logger'; +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; + +let path = globalThis.dir; + +const TAG = '[Screenshot]'; +@Component +export struct CustomContainer { + private settings: RenderingContextSettings = new RenderingContextSettings(true); + private context: CanvasRenderingContext2D = new CanvasRenderingContext2D(this.settings); + @Link FillColor: string; + @Link X: number; + @Link name: string; + Url : string = ''; + title : string = ''; + StepTips: string = ''; + @Link Vue: boolean; + @BuilderParam content: () => void; + @Builder + PassBtn(text: Resource, isFullScreen: boolean) { + if(this.Vue == false){ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey).opacity(0.4) + .onClick(()=>{ + + }) + } + else{ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Pass', title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '通过', duration: 1000 + }); + }) + } + } + @Builder + FailBtn(text: Resource, isFullScreen: boolean) { + Button(){ + Image($r('app.media.ic_public_fail')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Fail',title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '失败', duration: 1000 + }); + }) + } + build() { + Column() { + Row() { + Button(){ + Image($r('app.media.ic_public_back')).width('20vp').height('18vp').margin({left:'20vp'}) + }.backgroundColor(Color.Black) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'None',} + }) + }) + Text(this.title).fontColor(Color.White).fontSize('18fp').margin({left:'-20vp'}) + Text('hello').fontColor(Color.White).visibility(Visibility.Hidden) + }.backgroundColor(Color.Black).height('10%').width('100%').justifyContent(FlexAlign.SpaceBetween) + this.content(); + Blank() + Row() { + this.PassBtn($r('app.string.btn_fullscreen'), true); + Button(){ + Image($r('app.media.ic_public_help')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(() =>{ + AlertDialog.show( + { + title:'操作提示', + message: this.StepTips, + confirm:{ + value:'OK', + action:()=>{ + } + } + } + ) + }) + this.FailBtn($r('app.string.btn_fullscreen'), true); + }.width('100%').justifyContent(FlexAlign.SpaceEvenly).backgroundColor(Color.Black) + }.height('98%').width('100%') + } + async savePicture(data: image.PixelMap, context: any) { + Logger.info(TAG, `savePicture`); + let packOpts: image.PackingOption = { + format: "image/jpeg", quality: 100 + }; + let info = { + prefix: 'IMG_', suffix: '.jpg', directory: mediaLibrary.DirectoryType.DIR_IMAGE + }; + let name = this.name; + let displayName = `${info.prefix}${name}${info.suffix}`; + let dirPath = path + '/' + displayName; + let imagePackerApi = image.createImagePacker(); + let arrayBuffer = await imagePackerApi.packing(data, packOpts); + let fd = fileio.openSync(dirPath,0o102,0o666); + imagePackerApi.release(); + try { + await fileio.write(fd, arrayBuffer); + } catch (err) { + Logger.error(`write failed, code is ${err.code}, message is ${err.message}`); + } + await fileio.close(fd); + Logger.info(TAG, `write done`); + } + getScreen = (isFullScreen: boolean) => { + let screenshotOptions: screenshot.ScreenshotOptions = { + screenRect: { left: 0, top: 0, width: 400, height: 400 }, + imageSize: { width: 400, height: 400 }, + rotation: 0, + displayId: 0 + }; + if (isFullScreen) { + screenshotOptions = { + rotation: 0 + } + } + try { + screenshot.save(screenshotOptions, (err, data: image.PixelMap) => { + if (err) { + Logger.info(TAG, `Failed to save the screenshot. Error:${JSON.stringify(err)}`); + } + Logger.info(TAG, 'save callback'); + this.savePicture(data, getContext(this) as any); + }) + } catch (err) { + Logger.error(`save failed, code is ${err.code}, message is ${err.message}`); + } + } +} diff --git a/validator/acts_validator/src/main/ets/pages/common/CustomContainer.ets b/validator/acts_validator/src/main/ets/pages/common/CustomContainer.ets new file mode 100644 index 000000000..45b9bb5b1 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/common/CustomContainer.ets @@ -0,0 +1,163 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import prompt from '@ohos.prompt'; +import fileio from '@ohos.fileio'; +import router from '@ohos.router'; +import screenshot from '@ohos.screenshot'; +import image from '@ohos.multimedia.image'; +import Logger from '../model/Logger'; +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; + +let path = globalThis.dir; + +const TAG = '[Screenshot]'; +@Component +export struct CustomContainer { + @Link name : string; + title : string = ''; + StepTips: string = ''; + Url : string = ''; + @Link Vue : boolean; + @BuilderParam content: () => void; + @Builder + PassBtn(text: Resource, isFullScreen: boolean) { + if(this.Vue == false){ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey).opacity(0.4) + .onClick(()=>{ + + }) + } + else{ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Pass', title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '通过', duration: 1000 + }); + }) + } + } + @Builder + FailBtn(text: Resource, isFullScreen: boolean) { + Button(){ + Image($r('app.media.ic_public_fail')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Fail',title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '失败', duration: 1000 + }); + }) + } + build() { + Column() { + Row() { + Button(){ + Image($r('app.media.ic_public_back')).width('20vp').height('18vp').margin({left:'20vp'}) + }.backgroundColor(Color.Black) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'None',} + }) + }) + Text(this.title).fontColor(Color.White).fontSize('18fp').margin({left:'-20vp'}) + Text('hello').fontColor(Color.White).visibility(Visibility.Hidden) + }.backgroundColor(Color.Black).height('10%').width('100%').justifyContent(FlexAlign.SpaceBetween) + this.content(); + Blank() + Row() { + this.PassBtn($r('app.string.btn_fullscreen'), true); + Button(){ + Image($r('app.media.ic_public_help')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(() =>{ + AlertDialog.show({ + title:'操作提示', + message: this.StepTips, + confirm:{ + value:'OK', + action:()=>{ + } + } + }) + }) + this.FailBtn($r('app.string.btn_fullscreen'), true); + }.width('100%').justifyContent(FlexAlign.SpaceEvenly).backgroundColor(Color.Black) + }.height('98%').width('100%') + } + async savePicture(data: image.PixelMap, context: any) { + Logger.info(TAG, `savePicture`); + let packOpts: image.PackingOption = { + format: "image/jpeg", quality: 100 + }; + let info = { + prefix: 'IMG_', suffix: '.jpg', directory: mediaLibrary.DirectoryType.DIR_IMAGE + }; + let name = this.name; + let displayName = `${info.prefix}${name}${info.suffix}`; + let dirPath = path + '/' + displayName; + let imagePackerApi = image.createImagePacker(); + let arrayBuffer = await imagePackerApi.packing(data, packOpts); + let fd = fileio.openSync(dirPath,0o102,0o666); + imagePackerApi.release(); + try { + await fileio.write(fd, arrayBuffer); + } catch (err) { + Logger.error(`write failed, code is ${err.code}, message is ${err.message}`); + } + await fileio.close(fd); + Logger.info(TAG, `write done`); + + } + getScreen = (isFullScreen: boolean) => { + let screenshotOptions: screenshot.ScreenshotOptions = { + screenRect: { left: 0, top: 0, width: 400, height: 400 }, + imageSize: { width: 400, height: 400 }, + rotation: 0, + displayId: 0 + }; + if (isFullScreen) { + screenshotOptions = { + rotation: 0 + } + } + try { + screenshot.save(screenshotOptions, (err, data: image.PixelMap) => { + if (err) { + Logger.info(TAG, `Failed to save the screenshot. Error:${JSON.stringify(err)}`); + } + Logger.info(TAG, 'save callback'); + this.savePicture(data, getContext(this) as any); + }) + } catch (err) { + Logger.error(`save failed, code is ${err.code}, message is ${err.message}`); + } + } +} diff --git a/validator/acts_validator/src/main/ets/pages/common/CustomContainer2.ets b/validator/acts_validator/src/main/ets/pages/common/CustomContainer2.ets new file mode 100644 index 000000000..6fd227dab --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/common/CustomContainer2.ets @@ -0,0 +1,164 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fileio from '@ohos.fileio'; +import prompt from '@ohos.prompt'; +import router from '@ohos.router'; +import screenshot from '@ohos.screenshot'; +import image from '@ohos.multimedia.image'; +import Logger from '../model/Logger'; +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; + +let path = globalThis.dir; +const TAG = '[Screenshot]'; +@Component +export struct CustomContainer { + @Link X: number; + @Link name: string; + title : string = ''; + StepTips: string = ''; + Url : string = ''; + @Link Vue : boolean; + @BuilderParam content: () => void; + @Builder + PassBtn(text: Resource, isFullScreen: boolean) { + if(this.Vue == false){ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey).opacity(0.4) + .onClick(()=>{ + + }) + } + else{ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Pass', title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '通过', duration: 1000 + }); + }) + } + } + @Builder + FailBtn(text: Resource, isFullScreen: boolean) { + Button(){ + Image($r('app.media.ic_public_fail')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Fail',title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '失败', duration: 1000 + }); + }) + } + build() { + Column() { + Row() { + Button(){ + Image($r('app.media.ic_public_back')).width('20vp').height('18vp').margin({left:'20vp'}) + }.backgroundColor(Color.Black) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'None', } + }) + }) + Text(this.title).fontColor(Color.White).fontSize('18fp').margin({left:'-20vp'}) + Text('hello').fontColor(Color.White).visibility(Visibility.Hidden) + }.backgroundColor(Color.Black).height('10%').width('100%').justifyContent(FlexAlign.SpaceBetween) + this.content(); + Blank() + Row() { + this.PassBtn($r('app.string.btn_fullscreen'), true); + Button(){ + Image($r('app.media.ic_public_help')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(() =>{ + AlertDialog.show( + { + title:'操作提示', + message: this.StepTips, + confirm:{ + value:'OK', + action:()=>{ + } + } + } + ) + }) + this.FailBtn($r('app.string.btn_fullscreen'), true); + }.width('100%').justifyContent(FlexAlign.SpaceEvenly).backgroundColor(Color.Black) + }.height('98%').width('100%') + } + async savePicture(data: image.PixelMap, context: any) { + Logger.info(TAG, `savePicture`); + let packOpts: image.PackingOption = { + format: "image/jpeg", quality: 100 + }; + let info = { + prefix: 'IMG_', suffix: '.jpg', directory: mediaLibrary.DirectoryType.DIR_IMAGE + }; + let name = this.name; + let displayName = `${info.prefix}${name}${info.suffix}`; + let dirPath = path + '/' + displayName; + let imagePackerApi = image.createImagePacker(); + let arrayBuffer = await imagePackerApi.packing(data, packOpts); + let fd = fileio.openSync(dirPath,0o102,0o666); + imagePackerApi.release(); + try { + await fileio.write(fd, arrayBuffer); + } catch (err) { + Logger.error(`write failed, code is ${err.code}, message is ${err.message}`); + } + await fileio.close(fd); + Logger.info(TAG, `write done`); + } + getScreen = (isFullScreen: boolean) => { + let screenshotOptions: screenshot.ScreenshotOptions = { + screenRect: { left: 0, top: 0, width: 400, height: 400 }, + imageSize: { width: 400, height: 400 }, + rotation: 0, + displayId: 0 + }; + if (isFullScreen) { + screenshotOptions = { + rotation: 0 + } + } + try { + screenshot.save(screenshotOptions, (err, data: image.PixelMap) => { + if (err) { + Logger.info(TAG, `Failed to save the screenshot. Error:${JSON.stringify(err)}`); + } + Logger.info(TAG, 'save callback'); + this.savePicture(data, getContext(this) as any); + }) + } catch (err) { + Logger.error(`save failed, code is ${err.code}, message is ${err.message}`); + } + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/common/CustomContainer3.ets b/validator/acts_validator/src/main/ets/pages/common/CustomContainer3.ets new file mode 100644 index 000000000..1b930fe67 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/common/CustomContainer3.ets @@ -0,0 +1,165 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fileio from '@ohos.fileio'; +import prompt from '@ohos.prompt'; +import router from '@ohos.router'; +import screenshot from '@ohos.screenshot'; +import image from '@ohos.multimedia.image'; +import Logger from '../model/Logger'; +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; + +let path = globalThis.dir; +const TAG = '[Screenshot]'; +@Component +export struct CustomContainer { + @Link X: number; + @Link Y: number; + @Link name:string; + title : string = ''; + StepTips: string = ''; + Url : string = ''; + @Link Vue : boolean; + @BuilderParam content: () => void; + @Builder + PassBtn(text: Resource, isFullScreen: boolean) { + if(this.Vue == false){ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey).opacity(0.4) + .onClick(()=>{ + + }) + } + else{ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Pass', title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '通过', duration: 1000 + }); + }) + } + } + @Builder + FailBtn(text: Resource, isFullScreen: boolean) { + Button(){ + Image($r('app.media.ic_public_fail')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Fail',title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '失败', duration: 1000 + }); + }) + } + build() { + Column() { + Row() { + Button(){ + Image($r('app.media.ic_public_back')).width('20vp').height('18vp').margin({left:'20vp'}) + }.backgroundColor(Color.Black) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'None', } + }) + }) + Text(this.title).fontColor(Color.White).fontSize('18fp').margin({left:'-20vp'}) + Text('hello').fontColor(Color.White).visibility(Visibility.Hidden) + }.backgroundColor(Color.Black).height('10%').width('100%').justifyContent(FlexAlign.SpaceBetween) + this.content(); + Blank() + Row() { + this.PassBtn($r('app.string.btn_fullscreen'), true); + Button(){ + Image($r('app.media.ic_public_help')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(() =>{ + AlertDialog.show( + { + title:'操作提示', + message: this.StepTips, + confirm:{ + value:'OK', + action:()=>{ + } + } + } + ) + }) + this.FailBtn($r('app.string.btn_fullscreen'), true); + }.width('100%').justifyContent(FlexAlign.SpaceEvenly).backgroundColor(Color.Black) + }.height('98%').width('100%') + } + async savePicture(data: image.PixelMap, context: any) { + Logger.info(TAG, `savePicture`); + let packOpts: image.PackingOption = { + format: "image/jpeg", quality: 100 + }; + let info = { + prefix: 'IMG_', suffix: '.jpg', directory: mediaLibrary.DirectoryType.DIR_IMAGE + }; + let name = this.name; + let displayName = `${info.prefix}${name}${info.suffix}`; + let dirPath = path + '/' + displayName; + let imagePackerApi = image.createImagePacker(); + let arrayBuffer = await imagePackerApi.packing(data, packOpts); + let fd = fileio.openSync(dirPath,0o102,0o666); + imagePackerApi.release(); + try { + await fileio.write(fd, arrayBuffer); + } catch (err) { + Logger.error(`write failed, code is ${err.code}, message is ${err.message}`); + } + await fileio.close(fd); + Logger.info(TAG, `write done`); + } + getScreen = (isFullScreen: boolean) => { + let screenshotOptions: screenshot.ScreenshotOptions = { + screenRect: { left: 0, top: 0, width: 400, height: 400 }, + imageSize: { width: 400, height: 400 }, + rotation: 0, + displayId: 0 + }; + if (isFullScreen) { + screenshotOptions = { + rotation: 0 + } + } + try { + screenshot.save(screenshotOptions, (err, data: image.PixelMap) => { + if (err) { + Logger.info(TAG, `Failed to save the screenshot. Error:${JSON.stringify(err)}`); + } + Logger.info(TAG, 'save callback'); + this.savePicture(data, getContext(this) as any); + }) + } catch (err) { + Logger.error(`save failed, code is ${err.code}, message is ${err.message}`); + } + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/common/CustomContainer4.ets b/validator/acts_validator/src/main/ets/pages/common/CustomContainer4.ets new file mode 100644 index 000000000..f23f59316 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/common/CustomContainer4.ets @@ -0,0 +1,162 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fileio from '@ohos.fileio'; +import prompt from '@ohos.prompt'; +import router from '@ohos.router'; +import screenshot from '@ohos.screenshot'; +import image from '@ohos.multimedia.image'; +import Logger from '../model/Logger'; +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; + +let path = globalThis.dir; +const TAG = '[Screenshot]'; +@Component +export struct CustomContainer { + @Link value: string; + @Link name: string; + title : string = ''; + StepTips: string = ''; + Url : string = ''; + @Link Vue : boolean; + @BuilderParam content: () => void; + @Builder + PassBtn(text: Resource, isFullScreen: boolean) { + if(this.Vue == false){ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey).opacity(0.4) + .onClick(()=>{ + + }) + } + else{ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Pass', title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '通过', duration: 1000 + }); + }) + } + } + @Builder + FailBtn(text: Resource, isFullScreen: boolean) { + Button(){ + Image($r('app.media.ic_public_fail')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Fail',title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '失败', duration: 1000 + }); + }) + } + build() { + Column() { + Row() { + Button(){ + Image($r('app.media.ic_public_back')).width('20vp').height('18vp').margin({left:'20vp'}) + }.backgroundColor(Color.Black) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'None', } + }) + }) + Text(this.title).fontColor(Color.White).fontSize('18fp').margin({left:'-20vp'}) + Text('hello').fontColor(Color.White).visibility(Visibility.Hidden) + }.backgroundColor(Color.Black).height('10%').width('100%').justifyContent(FlexAlign.SpaceBetween) + this.content(); + Blank() + Row() { + this.PassBtn($r('app.string.btn_fullscreen'), true); + Button(){ + Image($r('app.media.ic_public_help')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(() =>{ + AlertDialog.show({ + title:'操作提示', + message: this.StepTips, + confirm:{ + value:'OK', + action:()=>{ + } + } + }) + }) + this.FailBtn($r('app.string.btn_fullscreen'), true); + }.width('100%').justifyContent(FlexAlign.SpaceEvenly).backgroundColor(Color.Black) + }.height('98%').width('100%') + } + async savePicture(data: image.PixelMap, context: any) { + Logger.info(TAG, `savePicture`); + let packOpts: image.PackingOption = { + format: "image/jpeg", quality: 100 + }; + let info = { + prefix: 'IMG_', suffix: '.jpg', directory: mediaLibrary.DirectoryType.DIR_IMAGE + }; + let name = this.name; + let displayName = `${info.prefix}${name}${info.suffix}`; + let dirPath = path + '/' + displayName; + let imagePackerApi = image.createImagePacker(); + let arrayBuffer = await imagePackerApi.packing(data, packOpts); + let fd = fileio.openSync(dirPath,0o102,0o666); + imagePackerApi.release(); + try { + await fileio.write(fd, arrayBuffer); + } catch (err) { + Logger.error(`write failed, code is ${err.code}, message is ${err.message}`); + } + await fileio.close(fd); + Logger.info(TAG, `write done`); + } + getScreen = (isFullScreen: boolean) => { + let screenshotOptions: screenshot.ScreenshotOptions = { + screenRect: { left: 0, top: 0, width: 400, height: 400 }, + imageSize: { width: 400, height: 400 }, + rotation: 0, + displayId: 0 + }; + if (isFullScreen) { + screenshotOptions = { + rotation: 0 + } + } + try { + screenshot.save(screenshotOptions, (err, data: image.PixelMap) => { + if (err) { + Logger.info(TAG, `Failed to save the screenshot. Error:${JSON.stringify(err)}`); + } + Logger.info(TAG, 'save callback'); + this.savePicture(data, getContext(this) as any); + }) + } catch (err) { + Logger.error(`save failed, code is ${err.code}, message is ${err.message}`); + } + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/common/CustomContainer5.ets b/validator/acts_validator/src/main/ets/pages/common/CustomContainer5.ets new file mode 100644 index 000000000..f29cc4c52 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/common/CustomContainer5.ets @@ -0,0 +1,166 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fileio from '@ohos.fileio'; +import prompt from '@ohos.prompt'; +import router from '@ohos.router'; +import screenshot from '@ohos.screenshot'; +import image from '@ohos.multimedia.image'; +import Logger from '../model/Logger'; +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; + +let path = globalThis.dir; +const TAG = '[Screenshot]'; +@Component +export struct CustomContainer { + @Link X: number; + @Link Y: number; + @Link V: Visibility; + @Link name: string; + title : string = ''; + StepTips: string = ''; + Url : string = ''; + @Link Vue : boolean; + @BuilderParam content: () => void; + @Builder + PassBtn(text: Resource, isFullScreen: boolean) { + if(this.Vue == false){ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey).opacity(0.4) + .onClick(()=>{ + + }) + } + else{ + Button({stateEffect:this.Vue}) { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Pass', title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '通过', duration: 1000 + }); + }) + } + } + @Builder + FailBtn(text: Resource, isFullScreen: boolean) { + Button(){ + Image($r('app.media.ic_public_fail')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Fail',title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '失败', duration: 1000 + }); + }) + } + build() { + Column() { + Row() { + Button(){ + Image($r('app.media.ic_public_back')).width('20vp').height('18vp').margin({left:'20vp'}) + }.backgroundColor(Color.Black) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'None',} + }) + }) + Text(this.title).fontColor(Color.White).fontSize('18fp').margin({left:'-20vp'}) + Text('hello').fontColor(Color.White).visibility(Visibility.Hidden) + }.backgroundColor(Color.Black).height('10%').width('100%').justifyContent(FlexAlign.SpaceBetween) + this.content(); + Blank() + Row() { + this.PassBtn($r('app.string.btn_fullscreen'), true); + Button(){ + Image($r('app.media.ic_public_help')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(() =>{ + AlertDialog.show( + { + title:'操作提示', + message: this.StepTips, + confirm:{ + value:'OK', + action:()=>{ + } + } + } + ) + }) + this.FailBtn($r('app.string.btn_fullscreen'), true); + }.width('100%').justifyContent(FlexAlign.SpaceEvenly).backgroundColor(Color.Black) + }.height('98%').width('100%') + } + async savePicture(data: image.PixelMap, context: any) { + Logger.info(TAG, `savePicture`); + let packOpts: image.PackingOption = { + format: "image/jpeg", quality: 100 + }; + let info = { + prefix: 'IMG_', suffix: '.jpg', directory: mediaLibrary.DirectoryType.DIR_IMAGE + }; + let name = this.name; + let displayName = `${info.prefix}${name}${info.suffix}`; + let dirPath = path + '/' + displayName; + let imagePackerApi = image.createImagePacker(); + let arrayBuffer = await imagePackerApi.packing(data, packOpts); + let fd = fileio.openSync(dirPath,0o102,0o666); + imagePackerApi.release(); + try { + await fileio.write(fd, arrayBuffer); + } catch (err) { + Logger.error(`write failed, code is ${err.code}, message is ${err.message}`); + } + await fileio.close(fd); + Logger.info(TAG, `write done`); + } + getScreen = (isFullScreen: boolean) => { + let screenshotOptions: screenshot.ScreenshotOptions = { + screenRect: { left: 0, top: 0, width: 400, height: 400 }, + imageSize: { width: 400, height: 400 }, + rotation: 0, + displayId: 0 + }; + if (isFullScreen) { + screenshotOptions = { + rotation: 0 + } + } + try { + screenshot.save(screenshotOptions, (err, data: image.PixelMap) => { + if (err) { + Logger.info(TAG, `Failed to save the screenshot. Error:${JSON.stringify(err)}`); + } + Logger.info(TAG, 'save callback'); + this.savePicture(data, getContext(this) as any); + }) + } catch (err) { + Logger.error(`save failed, code is ${err.code}, message is ${err.message}`); + } + } +} diff --git a/validator/acts_validator/src/main/ets/pages/common/MediaCustomContainer.ets b/validator/acts_validator/src/main/ets/pages/common/MediaCustomContainer.ets new file mode 100644 index 000000000..94de1f01b --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/common/MediaCustomContainer.ets @@ -0,0 +1,153 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import fileio from '@ohos.fileio'; +import prompt from '@ohos.prompt'; +import router from '@ohos.router'; +import screenshot from '@ohos.screenshot'; +import image from '@ohos.multimedia.image'; +import Logger from '../model/Logger'; +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; + +let path = globalThis.dir; +const TAG = '[Screenshot]'; +@Component +export struct CustomContainer { + @Link FillColor: string; + @Link name: string; + Url : string = ''; + title : string = ''; + StepTips: string = ''; + @BuilderParam content: () => void; + @Builder + PassBtn(text: Resource, isFullScreen: boolean) { + Button() { + Image($r('app.media.ic_public_pass')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Pass', title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '通过', duration: 1000 + }); + }) + } + @Builder + FailBtn(text: Resource, isFullScreen: boolean) { + Button(){ + Image($r('app.media.ic_public_fail')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'Fail',title : this.name, + } + }) + this.getScreen(isFullScreen); + prompt.showToast({ + message: '失败', duration: 1000 + }); + }) + } + build() { + Column() { + Row() { + Button(){ + Image($r('app.media.ic_public_back')).width('20vp').height('18vp').margin({left:'20vp'}) + }.backgroundColor(Color.Black) + .onClick(()=>{ + router.back({ + url:this.Url, + params: {result : 'None',} + }) + }) + Text(this.title).fontColor(Color.White).fontSize('18fp').margin({left:'-20vp'}) + Text('hello').fontColor(Color.White).visibility(Visibility.Hidden) + }.backgroundColor(Color.Black).height('10%').width('100%').justifyContent(FlexAlign.SpaceBetween) + this.content(); + Blank() + Row() { + this.PassBtn($r('app.string.btn_fullscreen'), true); + Button(){ + Image($r('app.media.ic_public_help')).width('20vp').height('20vp') + }.width('30%').height('30vp').backgroundColor(Color.Grey) + .onClick(() =>{ + AlertDialog.show( + { + title:'操作提示', + message: this.StepTips, + confirm:{ + value:'OK', + action:()=>{ + } + } + } + ) + }) + this.FailBtn($r('app.string.btn_fullscreen'), true); + }.width('100%').justifyContent(FlexAlign.SpaceEvenly).backgroundColor(Color.Black) + }.height('98%').width('100%') + } + async savePicture(data: image.PixelMap, context: any) { + Logger.info(TAG, `savePicture`); + let packOpts: image.PackingOption = { + format: "image/jpeg", quality: 100 + }; + let info = { + prefix: 'IMG_', suffix: '.jpg', directory: mediaLibrary.DirectoryType.DIR_IMAGE + }; + let name = this.name; + let displayName = `${info.prefix}${name}${info.suffix}`; + let dirPath = path + '/' + displayName; + let imagePackerApi = image.createImagePacker(); + let arrayBuffer = await imagePackerApi.packing(data, packOpts); + let fd = fileio.openSync(dirPath,0o102,0o666); + imagePackerApi.release(); + try { + await fileio.write(fd, arrayBuffer); + } catch (err) { + Logger.error(`write failed, code is ${err.code}, message is ${err.message}`); + } + await fileio.close(fd); + Logger.info(TAG, `write done`); + } + getScreen = (isFullScreen: boolean) => { + let screenshotOptions: screenshot.ScreenshotOptions = { + screenRect: { left: 0, top: 0, width: 400, height: 400 }, + imageSize: { width: 400, height: 400 }, + rotation: 0, + displayId: 0 + }; + if (isFullScreen) { + screenshotOptions = { + rotation: 0 + } + } + try { + screenshot.save(screenshotOptions, (err, data: image.PixelMap) => { + if (err) { + Logger.info(TAG, `Failed to save the screenshot. Error:${JSON.stringify(err)}`); + } + Logger.info(TAG, 'save callback'); + this.savePicture(data, getContext(this) as any); + }) + } catch (err) { + Logger.error(`save failed, code is ${err.code}, message is ${err.message}`); + } + } +} diff --git a/validator/acts_validator/src/main/ets/pages/index.ets b/validator/acts_validator/src/main/ets/pages/index.ets new file mode 100644 index 000000000..5c402903b --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/index.ets @@ -0,0 +1,323 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import prompt from '@ohos.prompt'; +import router from '@ohos.router'; +import fileio from '@ohos.fileio'; +import xml from '@ohos.xml'; +import fileIO from '@ohos.fileio'; +import util from '@ohos.util'; +import DateTimeUtil from './model/DateTimeUtil' + +const TAG = 'ParseXML'; +let path=globalThis.dir; +let path1; +let path2; +console.info("ssssssssss"+path); +path1 = path + '/ArkUI'; +console.info("ssssssssss"+path1); +path2 = path + '/MediaLibrary'; +console.info("ssssssssss"+path2); +fileio.rmdirSync(path); +fileio.mkdirSync(path); +fileio.mkdirSync(path1); +fileio.mkdirSync(path2); + +@Entry +@Component +struct IndexPage { + private TestCaseList = [ + {title:'ArkUI',uri:'pages/ArkUI/ArkUI_index'}, + {title:'MediaLibrary',uri:'pages/MediaLibrary/MediaLibrary_index'}, + {title:'Camera',uri:'pages/Camera/Camera_index'}, + ] + @State ColorObject : string[] = ['#ff808080','#ff808080','#ff808080'] + build(){ + Column(){ + Row() { + Text('ActValidator') + .fontColor(Color.White) + .fontSize('22fp') + Row() { + Button(){ + Image($r('app.media.ic_public_delete')) + .width('30vp') + .height('30vp') + }.backgroundColor(Color.Black) + .onClick(() => { + AlertDialog.show( + { + message: "是否删除所有记录", + primaryButton: { + value: 'Yes', + action: () => { + this.ClearText(); + prompt.showToast({ + message: '结果已删除', duration: 1000 + }); + } + }, + secondaryButton: { + value: 'No', + action: () => { + + } + }, + cancel: () => { + + } + } + ) + }) + Button(){ + Image($r('app.media.ic_public_save')) + .width('30vp') + .height('30vp') + .margin({ left: 30 }) + }.backgroundColor(Color.Black) + .onClick(() => { + this.SaveXml(); + AlertDialog.show({ + message: "报告已生成,如需查看通过命令行输入'hdc_std file recv hdc_std file recv /data/app/el2/100/base/com.example.actsvalidator/haps/entry/files/Test.xml -本地路径'", + confirm:{ + value:'OK', + action:()=>{ + prompt.showToast({ + message: '总报告已生成', duration: 1000 + }) + } + }, + cancel: () => { + prompt.showToast({ + message: '总报告已生成', duration: 1000 + }); + } + }) + }) + } + }.width('100%').justifyContent(FlexAlign.SpaceAround).margin({top:'15vp'}).height('6%') + List({space:5}){ + ForEach(this.TestCaseList,(item,index) => { + ListItem(){ + Row(){ + Text(item.title).fontSize(16).fontColor(Color.Black) + }.width('100%').height(50).alignItems(VerticalAlign.Center).backgroundColor(this.ColorObject[index]) + .onClick(()=>{ + router.push({ + url: item.uri, + }) + let dateTimeUtil = new DateTimeUtil(); + let time = `${dateTimeUtil.getFullYear()}-${dateTimeUtil.getMonth()}-${dateTimeUtil.getDate()} ${dateTimeUtil.getHour()}:${dateTimeUtil.getMinute()}:${dateTimeUtil.getSecond()}`; + let TimePath = path + "/Time.txt"; + let OP = fileio.openSync(TimePath, 0o100 | 0o2002, 0o664); + let buf = new ArrayBuffer(4096); + fileio.readSync(OP,buf); + let Log = (time + ";").toString(); + fileio.writeSync(OP,Log); + }) + } + },item => item.title) + }.width('100%').height('92%') + }.width('100%').height('100%').backgroundColor(Color.Black) + } + ClearText(){ + fileio.rmdirSync(path); + fileio.mkdirSync(path); + fileio.mkdirSync(path1); + fileio.mkdirSync(path2); + } + SaveXml() { + let dateTimeUtil = new DateTimeUtil(); + let endtime = `${dateTimeUtil.getFullYear()}-${dateTimeUtil.getMonth()}-${dateTimeUtil.getDate()} ${dateTimeUtil.getHour()}:${dateTimeUtil.getMinute()}:${dateTimeUtil.getSecond()}`; + let TimePath = path + "/Time.txt"; + let fd = fileio.openSync(TimePath, 0o100 | 0o2002, 0o664); + let buf = new ArrayBuffer(40960); + fileio.readSync(fd,buf); + let StartTime = String.fromCharCode.apply(null, new Uint8Array(buf)); + let Index = StartTime.indexOf(';'); + let starttime = StartTime.substring(0,Index); + + let path11 = path1 + '/ArkUI.txt'; + let path22 = path2 + '/MediaLibrary.txt'; + let OP1 = fileio.openSync(path11, 0o100 | 0o2002, 0o664); + let buf1 = new ArrayBuffer(40960); + fileio.readSync(OP1,buf1); + let ArkUIReport; + let MediaLibraryReport; + + function ab2str1(buf1) { + return ArkUIReport = String.fromCharCode.apply(null, new Uint8Array(buf1)); + } + ab2str1(buf1); + let str1 = ArkUIReport.split(";"); + let title1 = []; + let result1 = []; + for (let i = 0; i < Math.floor(str1.length / 2); i++) { + title1[i] = str1[i * 2]; + result1[i] = str1[i * 2 + 1]; + } + + let OP2 = fileio.openSync(path22, 0o100 | 0o2002, 0o664); + let buf2 = new ArrayBuffer(40960); + fileio.readSync(OP2,buf2); + function ab2str2(buf2) { + return MediaLibraryReport = String.fromCharCode.apply(null, new Uint8Array(buf2)); + } + ab2str2(buf2); + let str2 = MediaLibraryReport.split(";"); + let title2 = []; + let result2 = []; + for (let i = 0; i < Math.floor(str2.length / 2); i++) { + title2[i] = str2[i * 2]; + result2[i] = str2[i * 2 + 1]; + } + + let report = ArkUIReport + MediaLibraryReport; + let FailIndex = report.indexOf('Fail'); + let FailNum = 0; + while(FailIndex != -1) { + console.log(FailIndex); + FailNum++; + FailIndex = report.indexOf('Fail',FailIndex + 1); + } + let failNum = (FailNum).toString(); + let PassIndex = report.indexOf('Pass'); + let PassNum = 0; + while(PassIndex != -1) { + console.log(PassIndex); + PassNum++; + PassIndex = report.indexOf('Pass',PassIndex + 1); + } + let TestNum = FailNum + PassNum; + let testNum = (TestNum).toString(); + let ignoreNum = (52-TestNum).toString(); + + let ArkUIFailIndex = ArkUIReport.indexOf('Fail'); + let ArkUIFailNum = 0; + while (ArkUIFailIndex != -1) { + console.log(ArkUIFailIndex); + ArkUIFailNum++; + ArkUIFailIndex = ArkUIReport.indexOf('Fail',ArkUIFailIndex + 1); + } + let ArkuiFailNum = (ArkUIFailNum).toString(); + let ArkUIPassIndex = ArkUIReport.indexOf('Pass'); + let ArkUIPassNum = 0; + while (ArkUIPassIndex != -1) { + console.log(ArkUIPassIndex); + ArkUIPassNum++; + ArkUIPassIndex = ArkUIReport.indexOf('Pass',ArkUIPassIndex + 1); + } + let ArkUITestNum = ArkUIFailNum + ArkUIPassNum; + let ArkuiTestNum = (ArkUIPassNum).toString(); + let ArkUIIgnoreNum = (24-ArkUITestNum).toString(); + + let MediaLibraryFailIndex = MediaLibraryReport.indexOf('Fail'); + let MediaLibraryFailNum = 0; + while (MediaLibraryFailIndex != -1) { + console.log(MediaLibraryFailIndex); + MediaLibraryFailNum++; + MediaLibraryFailIndex = MediaLibraryReport.indexOf('Fail',MediaLibraryFailIndex + 1); + } + let medialibraryFailNum = (MediaLibraryFailNum).toString(); + let MediaLibraryPassIndex = MediaLibraryReport.indexOf('Pass'); + let MediaLibraryPassNum = 0; + while (MediaLibraryPassIndex != -1) { + console.log(MediaLibraryPassIndex); + MediaLibraryPassNum++; + MediaLibraryPassIndex = MediaLibraryReport.indexOf('Pass',MediaLibraryPassIndex + 1); + } + let MediaLibraryTestNum = MediaLibraryFailNum + MediaLibraryPassNum; + let medialibraryTestNum = (MediaLibraryPassNum).toString(); + let MediaLibraryIgnoreNum = (28-MediaLibraryTestNum).toString(); + + let arrayBuffer = new ArrayBuffer(40960); + let bufView = new DataView(arrayBuffer); + let serializer = new xml.XmlSerializer(bufView); + serializer.setDeclaration(); + serializer.startElement("testsuites"); + serializer.setAttributes("name", "ActValidator"); + serializer.setAttributes("starttime", starttime); + serializer.setAttributes("endtime", endtime); + serializer.setAttributes("errors", "0"); + serializer.setAttributes("disabled", "0"); + serializer.setAttributes("failures", failNum); + serializer.setAttributes("tests", testNum); + serializer.setAttributes("ignored", ignoreNum); + serializer.setAttributes("unavailable", "0"); + serializer.setAttributes("productinfo", "{ }"); + serializer.setAttributes("modules", " "); + serializer.setAttributes("runmodules", " "); + serializer.startElement("testsuite"); + serializer.setAttributes("name", "ActsArkUITest"); + serializer.setAttributes("time", " "); + serializer.setAttributes("errors", "0"); + serializer.setAttributes("disabled", "0"); + serializer.setAttributes("failures", ArkuiFailNum); + serializer.setAttributes("ignored", ArkUIIgnoreNum); + serializer.setAttributes("tests", ArkuiTestNum); + serializer.setAttributes("message", " "); + serializer.setAttributes("modulename", "ActsArkUITest"); + for (let i = 0; i < title1.length; i++) { + serializer.startElement("testcase"); + serializer.setAttributes("name", String(title1[i])); + serializer.setAttributes("status", " "); + serializer.setAttributes("time", " "); + serializer.setAttributes("classname", " "); + serializer.setAttributes("result", String(result1[i])); + serializer.setAttributes("level", " "); + serializer.setAttributes("message", " "); + serializer.endElement(); + } + serializer.endElement(); + + serializer.startElement("testsuite"); + serializer.setAttributes("name", "ActsMediaLibraryTest"); + serializer.setAttributes("time", " "); + serializer.setAttributes("errors", "0"); + serializer.setAttributes("disabled", "0"); + serializer.setAttributes("failures", medialibraryFailNum); + serializer.setAttributes("ignored", MediaLibraryIgnoreNum); + serializer.setAttributes("tests", medialibraryTestNum); + serializer.setAttributes("message", " "); + serializer.setAttributes("modulename", "ActsMediaLibraryTest"); + for (let i = 0; i < title2.length; i++) { + serializer.startElement("testcase"); + serializer.setAttributes("name", String(title2[i])); + serializer.setAttributes("status", " "); + serializer.setAttributes("time", " "); + serializer.setAttributes("classname", " "); + serializer.setAttributes("result", String(result2[i])); + serializer.setAttributes("level", " "); + serializer.setAttributes("message", " "); + serializer.endElement(); + } + serializer.endElement(); + serializer.endElement(); + + let that = new util.TextDecoder('utf-8'); + let array = new Uint8Array(arrayBuffer); + let serializerStr = that.decode(array); + let xmlPath = path + "/Test.xml"; + console.info(xmlPath); + try { + console.error(TAG, "write xmlPath =" + xmlPath); + var xmlfd = fileIO.openSync(xmlPath, 0o102, 0o666); + fileIO.writeSync(xmlfd, serializerStr); + } catch (err) { + console.error(TAG, "read xmlPath =" + xmlPath + "error:" + err); + } finally { + fileIO.closeSync(xmlfd); + } + } +} diff --git a/validator/acts_validator/src/main/ets/pages/model/DateTimeUtil.ts b/validator/acts_validator/src/main/ets/pages/model/DateTimeUtil.ts new file mode 100644 index 000000000..0bcf322db --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/model/DateTimeUtil.ts @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file 日期工具 + */ +export default class DateTimeUtil { + + /** + * 时分秒 + */ + getHour() { + const DATETIME = new Date() + return DATETIME.getHours() + } + getMinute() { + const DATETIME = new Date() + return DATETIME.getMinutes() + } + getSecond() { + const DATETIME = new Date() + return DATETIME.getSeconds() + } + + /** + * 年月日 + */ + getFullYear() { + const DATETIME = new Date() + return DATETIME.getFullYear() + } + getMonth() { + const DATETIME = new Date() + return DATETIME.getMonth() + 1 + } + getDate() { + const DATETIME = new Date() + return DATETIME.getDate() + } + + /** + * 日期不足两位补充0 + * @param value-数据值 + */ + fill(value: number) { + return (value > 9 ? '' : '0') + value + } + + /** + * 年月日格式修饰 + * @param year + * @param month + * @param date + */ + concatDate(year: number, month: number, date: number) { + return `${year}${this.fill(month)}${this.fill(date)}` + } + + /** + * 时分秒格式修饰 + * @param hours + * @param minutes + * @param seconds + */ + concatTime(hours: number, minutes: number, seconds: number) { + return `${this.fill(hours)}${this.fill(minutes)}${this.fill(seconds)}` + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/model/FirstDialog.ets b/validator/acts_validator/src/main/ets/pages/model/FirstDialog.ets new file mode 100644 index 000000000..d67039dd0 --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/model/FirstDialog.ets @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import data_preferences from '@ohos.data.preferences'; + + +export default class FirstDialog{ + static ChooseDialog = async (StepTips:string,name: string)=>{ + let Test = null; + let context =null; + context = globalThis.getContext(); + let preferences; + + let promise = data_preferences.getPreferences(context,'mystore'); + await promise.then((object) => { + preferences = object; + }); + promise = preferences.get(name, 0); + await promise.then((data) => { + Test = data; + console.info("Succeeded in getting value of 'startup'. Data: " + data); + }); + if(Test != 1) { + AlertDialog.show( + { + title: '操作提示', + message: StepTips, + primaryButton: { + value: '不再提醒',fontColor:Color.Grey, + action: () => { + let promise = preferences.put(name, 1); + promise.then(() => { + console.info("Succeeded in putting value of 'test'."); + }); + promise = preferences.flush(); + promise.then(() => { + console.info("Succeeded in flushing."); + }); + } + }, + secondaryButton: { + value: '我已知晓', + action: () => { + + } + }, + cancel: () => { + + } + } + ) + } + return; + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/ets/pages/model/Logger.ts b/validator/acts_validator/src/main/ets/pages/model/Logger.ts new file mode 100644 index 000000000..b69da312c --- /dev/null +++ b/validator/acts_validator/src/main/ets/pages/model/Logger.ts @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import hilog from '@ohos.hilog'; + +class Logger { + private domain: number; + private prefix: string; + private format: string = "%{public}s, %{public}s"; + + constructor(prefix: string) { + this.prefix = prefix; + this.domain = 0xFF00; + } + + debug(...args: any[]) { + hilog.debug(this.domain, this.prefix, this.format, args); + } + + info(...args: any[]) { + hilog.info(this.domain, this.prefix, this.format, args); + } + + warn(...args: any[]) { + hilog.warn(this.domain, this.prefix, this.format, args); + } + + error(...args: any[]) { + hilog.error(this.domain, this.prefix, this.format, args); + } +} + +export default new Logger('[Screenshot]'); \ No newline at end of file diff --git a/validator/acts_validator/src/main/module.json b/validator/acts_validator/src/main/module.json new file mode 100644 index 000000000..79d273133 --- /dev/null +++ b/validator/acts_validator/src/main/module.json @@ -0,0 +1,56 @@ +{ + "module": { + "name": "entry", + "type": "entry", + "srcEntrance": "./ets/Application/MyAbilityStage.ts", + "description": "$string:entry_desc", + "mainElement": "MainAbility", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "uiSyntax": "ets", + "metadata": [ + { + "name": "ArkTSPartialUpdate", + "value": "false" + } + ], + "abilities": [ + { + "name": "MainAbility", + "srcEntrance": "./ets/MainAbility/MainAbility.ts", + "description": "$string:MainAbility_desc", + "icon": "$media:icon", + "label": "$string:MainAbility_label", + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:white", + "visible": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ], + "requestPermissions": [ + { + "name": "ohos.permission.CAPTURE_SCREEN" + }, + { + "name": "ohos.permission.WRITE_MEDIA" + }, + { + "name": "ohos.permission.READ_MEDIA" + } + ] + } +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/resources/base/element/color.json b/validator/acts_validator/src/main/resources/base/element/color.json new file mode 100644 index 000000000..62a137a61 --- /dev/null +++ b/validator/acts_validator/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "white", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/resources/base/element/string.json b/validator/acts_validator/src/main/resources/base/element/string.json new file mode 100644 index 000000000..ee20d6330 --- /dev/null +++ b/validator/acts_validator/src/main/resources/base/element/string.json @@ -0,0 +1,36 @@ +{ + "string": [ + { + "name": "entry_desc", + "value": "description" + }, + { + "name": "MainAbility_desc", + "value": "description" + }, + { + "name": "MainAbility_label", + "value": "Validator" + }, + { + "name": "entry_MainAbility", + "value": "eTSScreenshot" + }, + { + "name": "description_mainability", + "value": "eTS_Empty Ability" + }, + { + "name": "btn_fullscreen", + "value": "FullScreen screenshot" + }, + { + "name": "btn_fixedsize", + "value": "Fixed-size screenshot" + }, + { + "name": "ok", + "value": "OK" + } + ] +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/resources/base/media/flower.jpg b/validator/acts_validator/src/main/resources/base/media/flower.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a728e771a8b9d69b6f7339bd030857c084e292de GIT binary patch literal 88438 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 eqKYb506 + + Public/ic_public_back + + + + + + + + + + \ No newline at end of file diff --git a/validator/acts_validator/src/main/resources/base/media/ic_public_delete.svg b/validator/acts_validator/src/main/resources/base/media/ic_public_delete.svg new file mode 100644 index 000000000..6ded900a8 --- /dev/null +++ b/validator/acts_validator/src/main/resources/base/media/ic_public_delete.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/validator/acts_validator/src/main/resources/base/media/ic_public_fail.svg b/validator/acts_validator/src/main/resources/base/media/ic_public_fail.svg new file mode 100644 index 000000000..da97afa2a --- /dev/null +++ b/validator/acts_validator/src/main/resources/base/media/ic_public_fail.svg @@ -0,0 +1,13 @@ + + + Public/ic_public_close_filled + + + + + + + + + + \ No newline at end of file diff --git a/validator/acts_validator/src/main/resources/base/media/ic_public_help.svg b/validator/acts_validator/src/main/resources/base/media/ic_public_help.svg new file mode 100644 index 000000000..ca4694935 --- /dev/null +++ b/validator/acts_validator/src/main/resources/base/media/ic_public_help.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/validator/acts_validator/src/main/resources/base/media/ic_public_pass.svg b/validator/acts_validator/src/main/resources/base/media/ic_public_pass.svg new file mode 100644 index 000000000..0f31e322f --- /dev/null +++ b/validator/acts_validator/src/main/resources/base/media/ic_public_pass.svg @@ -0,0 +1,13 @@ + + + Public/ic_public_todo_filled + + + + + + + + + + \ No newline at end of file diff --git a/validator/acts_validator/src/main/resources/base/media/ic_public_save.svg b/validator/acts_validator/src/main/resources/base/media/ic_public_save.svg new file mode 100644 index 000000000..48c58dc2f --- /dev/null +++ b/validator/acts_validator/src/main/resources/base/media/ic_public_save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/validator/acts_validator/src/main/resources/base/media/icon.png b/validator/acts_validator/src/main/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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%0A063s|sd+iBf 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

rm}tFbx15e0M4LeW3(*Xm*hOXgq~zPB7w6 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

&a|4O!gdyfD}YxIQb=^$V|uZ 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

Z!=!B*lIh_N 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 D{}8K{ literal 0 HcmV?d00001 diff --git a/validator/acts_validator/src/main/resources/base/profile/main_pages.json b/validator/acts_validator/src/main/resources/base/profile/main_pages.json new file mode 100644 index 000000000..9d09ade29 --- /dev/null +++ b/validator/acts_validator/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,60 @@ +{ + "src": [ + "pages/index", + "pages/ArkUI/ArkUI_index", + "pages/ArkUI/ScrollListTest", + "pages/ArkUI/CanvasFillStyle", + "pages/ArkUI/LongPressGesture", + "pages/ArkUI/PanGesture", + "pages/ArkUI/PinchGestureTest", + "pages/ArkUI/RotationGestureTest", + "pages/ArkUI/SwipeGestureTest", + "pages/ArkUI/TapGesture", + "pages/ArkUI/TouchMoveTest", + "pages/ArkUI/CanvasLineWidth", + "pages/ArkUI/CanvasStrokeStyle", + "pages/ArkUI/CanvasLineCap", + "pages/ArkUI/CanvasLineJoin", + "pages/ArkUI/CanvasMiterLimit", + "pages/ArkUI/CanvasFont", + "pages/ArkUI/CanvasTextAlign", + "pages/ArkUI/CanvasTextBaseline", + "pages/ArkUI/CanvasGlobalCompositeOperation", + "pages/ArkUI/CanvasShadowBlur", + "pages/ArkUI/CanvasShadowColor", + "pages/ArkUI/CanvasShadowOffsetX", + "pages/ArkUI/CanvasImageSmoothingEnabled", + "pages/ArkUI/CanvasGlobalAlpha", + "pages/ArkUI/CanvasLineDashOffset", + "pages/ArkUI/CanvasShadowOffsetY", + "pages/MediaLibrary/MediaLibrary_index", + "pages/MediaLibrary/startImagePreviewCallback1", + "pages/MediaLibrary/startImagePreviewCallback2", + "pages/MediaLibrary/startImagePreviewCallback3", + "pages/MediaLibrary/startImagePreviewCallback4", + "pages/MediaLibrary/startImagePreviewCallback5", + "pages/MediaLibrary/startImagePreviewCallback6", + "pages/MediaLibrary/startImagePreviewCallback7", + "pages/MediaLibrary/startImagePreviewPromise1", + "pages/MediaLibrary/startImagePreviewPromise2", + "pages/MediaLibrary/startImagePreviewPromise3", + "pages/MediaLibrary/startImagePreviewPromise4", + "pages/MediaLibrary/startMediaSelectCallback1", + "pages/MediaLibrary/startMediaSelectCallback2", + "pages/MediaLibrary/startMediaSelectCallback3", + "pages/MediaLibrary/startMediaSelectCallback4", + "pages/MediaLibrary/startMediaSelectPromise1", + "pages/MediaLibrary/startMediaSelectPromise2", + "pages/MediaLibrary/startMediaSelectPromise3", + "pages/MediaLibrary/startMediaSelectPromise4", + "pages/MediaLibrary/storeMediaAssetCallback1", + "pages/MediaLibrary/storeMediaAssetCallback2", + "pages/MediaLibrary/storeMediaAssetCallback3", + "pages/MediaLibrary/storeMediaAssetCallback4", + "pages/MediaLibrary/storeMediaAssetPromise1", + "pages/MediaLibrary/storeMediaAssetPromise2", + "pages/MediaLibrary/storeMediaAssetPromise3", + "pages/MediaLibrary/storeMediaAssetPromise4", + "pages/MediaLibrary/storeMediaAssetPromise5" + ] +} diff --git a/validator/acts_validator/src/main/resources/en/element/string.json b/validator/acts_validator/src/main/resources/en/element/string.json new file mode 100644 index 000000000..4016c00b1 --- /dev/null +++ b/validator/acts_validator/src/main/resources/en/element/string.json @@ -0,0 +1,36 @@ +{ + "string": [ + { + "name": "entry_desc", + "value": "description" + }, + { + "name": "MainAbility_desc", + "value": "description" + }, + { + "name": "MainAbility_label", + "value": "Validator" + }, + { + "name": "entry_MainAbility", + "value": "eTSScreenshot" + }, + { + "name": "description_mainability", + "value": "eTS_Empty Ability" + }, + { + "name": "btn_fullscreen", + "value": "FullScreen screenshot" + }, + { + "name": "btn_fixedsize", + "value": "Fixed-size screenshot" + }, + { + "name": "ok", + "value": "OK" + } + ] +} \ No newline at end of file diff --git a/validator/acts_validator/src/main/resources/zh/element/string.json b/validator/acts_validator/src/main/resources/zh/element/string.json new file mode 100644 index 000000000..ef866d7c1 --- /dev/null +++ b/validator/acts_validator/src/main/resources/zh/element/string.json @@ -0,0 +1,36 @@ +{ + "string": [ + { + "name": "entry_desc", + "value": "description" + }, + { + "name": "MainAbility_desc", + "value": "description" + }, + { + "name": "MainAbility_label", + "value": "Validator" + }, + { + "name": "entry_MainAbility", + "value": "eTS屏幕截图" + }, + { + "name": "description_mainability", + "value": "eTS_Empty Ability" + }, + { + "name": "btn_fullscreen", + "value": "全屏截图" + }, + { + "name": "btn_fixedsize", + "value": "固定大小截图" + }, + { + "name": "ok", + "value": "确定" + } + ] +} \ No newline at end of file -- GitLab

+(Dt3?Wh` z`;{wGR2_jQseXBT_0wx}H&-XFEDS77^wgGSp7pY8Yph(J>=mlaQ*iyKw-)|+XX&fk z3!kh(xkK)$i!#E(&e)Ch%LL`#0p$)ke|>R`!(9k@B)CJl<4ZxgQxN3($@ky>_|yM< z_rrC-JwEkxWV{QMdq|X(f0!xY?t1o+mG52?uk9FyE?Y2+T(=&!|Hlcp5A>}5WN7zp zREA5vA~mo4Vpyc(g$M`#pcA1H)=_cpiK+fBE{Bp+yv8SLLob+ncpUfiHm<0SDz87& z+~?^P!veCHXC}p&xu!AWFm_TXk%~|M?$gx7K*xc-wVkzf=Y09^+0~W4tG8S0d+qIG zC^rOTx6h_!GT`oB%sfkJI2SXA0)go{1b3?}VminU{f-k1z}*JsB#qVgy9CC5e8`%e zaA8)y%-W9~wr9uPC_LuWY4WZ6Bs~*X|F^>4?Gf5jg$$!;?!*|;$Y=UB%VYhkll@C$ zJu`zHLz?DJMGduPElh=GFV9J85*7C-rK4S~(*x>-(YE;!6%S~^57r_nkW{CO%af{0 zQ|qddBz56Ah2}{aTcc9mj*R<9L7}OrG*lxm>2Ir+*JOj6q5`rg5Xii40oUyJ0w2Xf z66|^fv8udesC%9&1slN2jg1P~PcRIaR$rP0bq^B-Q}N4gP0;KknkJst3SRTI0;D~T zum@Ow^tB3(pl$`P9Y&=EB;?+yEla`T1Ir`8P9@G6k=Ks3P!~X0yJ3yIw?jNNU8(Fj z?{uCje3=C?%S+5Un$~>4I)LsdIANU9*WvDzL1gzTU_M3cbTJDkAyNtVL>y|Q9mX$TKZ*K zG45f<8+qdn-f<9u9ejs=?^2Yr=>gfyAgOZL1k9_*xD2>Myf>C4cQ=-dsKj%<&3s#R zaj=DYD#x->3V|Cft zzGc#Va~io3*VT*Ro{?Y)F{zvt#?6*#S3#`$3_f>`q%6IDxXm0PA(! z2=Ooj+PLTh%Cr4;g0y#Fd)?U%C$`Un?Qvtf^3zROdG zTptJGwe9cMvA_S2%VYY^kLucO(uPs7WZD*+j@mz?Z}Pa-v8O)X|G@5p&nKq2efH(( z58qtk%<-yylgEyD^rv{ojno9!QP8FqJn(ULUP4!aI%B$12uFiaRo64Yr;5-r^ zPj85ybE~9++I}vM@g8!3`xl=qe|c+>!+mkA9dN%Kyti2*qTvR=Ukx6dnE|}x((TQ$>=PfQqx`c#Sd3hUL z2(ysM(;Xc2e0@*l7l##9oK4BMDpQ!8PG+9z%r}o79;YNK0Y-H>k_quT0c@8G8R_3| zVSvL3Xb)=3c?v%GVJOvO~YyM{rdJy$A;;-QoGBe z0n9#uMKrU>78cq-dd)~E+zL~K$JpuuGxcNUKF=vSqdPSD&GnhG`g}!QA@I69F|;y1 zbaQ?RaKAQ7U3RAj+ks=Yr($lnb9rI_0w2fuk)Da}HolL_OTJX* zCIE;7ZBk$w)?#&n+BVG%cSD+jO?| zC}fx>6=zqM#g-Oas3^WD5`|>vTZTt}5S8+m(%M6ccHgefxbeYid>|p)v6d&Ym!{zR zcFC)G3KHLI9T8ePL1oLT^Z8!uFVmXtZK5jpG+s>}uR^xN48T;h)E4oQztHTw!c3pg zgpcPm@yK_`cAUdh3@N2!?G&XxsZn5oLft&-OPa-bHKobolBDY5#Dp(Q|WAn zY@tsz*4xzGDemj38JnocDm5|nX7=IC_A+xypueD962+|p?&OC_Cnr0HyL~Ei&1T+( zgmu6j1Iit62gfm71inMRlNm@Nv2T|`wR{aDNVem{aQq@WazRk>!p8eSZx$>4yx~4mA3jgXN?4WZo}s==AGd-M157j9>M@2}tNR6~4X^MH0`p+U4G%ksdg=`;;e`j(O~tK}d^XkJJU^lY-+_F9 z8%6_?yf85Y@|@Q#!`mR+uZ*i#MpU!CR6jt|R8&_SUzi+HmU*$MGPO%qGSw>u+^^4e z3dLkJ(}T^us!Cw!_Db(h-^`8;RQ0HHtIC4KwP6>cPj1tFOxyAW9h+zNT5sBCLl5== z2cou)Gx=wLa_}8T==VJiY_~lj9x9%Myc1p73#>a4=((=nY0q}pkzs)F-;n=0?hoMY zc<(Mdnvau@E!aoq_wTZNZuiNTcNxF&q26!*q4n}R`(FL)evFs@dhmsJ4n4cu@+A`Z zc28w$DZjqJqXI{+TE{Xd7qB?uXHV* zJ7oRxR-OCbdXKsJX?G8l{rvN_+c!tAEe)*BbPcNOf=^qOW`yIvdc8Wr>cow;sn71L zetK(>nqO0rY9~}un7^x{u7sD#r8;G6Q+IDJ{PXV0KW{EjgC{|`m*rfJ4fg=t7bZdW zj+IIE>~Q;?wdo%~^Pk8M1LaOdX8!Az;pt1X%Ze-i`QNYS7CM8&>=M#^LFbF{_7~#p z&RnuM9cJPddek;R%hYS%N%!5R-g}NYeQ?a_{Uc6)*Rgs_%i{OCmTzkr|L&04-%<+v zdnd&{=ZsIEH9Zq-laX^SH8U_L_l$?f;lM!CnwrG8IIrW!Ka5TEiHvowX^fVr&jzNj z^99T^m3d_`w`As$!aRk51oH%D8cUDOK|fk`{dOA*%QU<3gL>lA{ItgXuBr4i0@EP- zhI02VXC9TrcMQiuW}8dmoojaIB0<6n^I;Xjs#rvxUV5qT=zLj4gTJNg8xDSdunYX7 zN7%cL=iWB=d67$a0~g9fKYE%Oo@FOPnb8HR^B1RLk#Z7u<}u`aH;LR7$LKyjuxsD{3fv2&Ci1yk-VeD-+#Uru$&s zc?kht)3K?FHZy@vX+<7y%Qriu;UVw~V_g%ys{VE<7IRJ21yuzpmH7#^rD<)A<-=VK zQ-g~6u{JE-ux^{_Rt>bM)b-Nl>XMp@r1IjRf~q`Ht(>X1p>r`AyG zLOcxZm!=C2nIh&}vd(vpJi@(8CQaZTc??(un?zC`rZMDdr)0Ow0=q-#3OIfwgf`^$ zgilLm%O2-=inBZ%OdCjgzD(bb>G-n!J{0~4SV2A5y8WZQCA+ygTUA}Gsjuj3uBOh{ zDr)%zUiX3Ql0qe5U7prdn$ldBs;JCpug&XiF2k#%koIjgBdxVVE#kiB%1%iMmM@BX z8?6xHzv#BwfHB%mA^$v&3C6p*I+KCvbHgo^g4EXp3jpI#n;!?bLzqj764mtuFfa4{ z@~aaa;5)?obYCN+x=fT_oOU5UDM(xpLq%!YtLFw~fIAQmxGznp`r4|bRjKVw`9FO< zzdA3U9;hhI3y?KL6_@zB2JGBv^yD6kCwEyry2tJTJk@|E^!Py+cF2Pr@*%hb<=i;~ zY6IDj=N#+gix*(M%a+Iv#2<90lRfsd2-0zRXusno8cu}%oz`rd1sy@^y|$0;vU+TX z`Q~lLFYGjW9dQ3Z_qBiMy!LnPSO22@(%V|k{p0ZFZ6?ow{yQul!4I~}>VfU%?37o|h6l+D#P{t}pfj?!fWqcUC{YvGD1&aVnQK)zQ&hcEQg{ zh?wlXvM_vQY4rN)#3wiA0Qb*tEqr=)=Egil#MhN2rbhcs4^f?A0q!uRs+(8V;Z6$u zds6P-fA?<=cOtt0cOEeF^UvRQbc&(e<5GMg<6Qvv&{$i*-RHt7D0jf!#A~;?&jDlC zoktx%JnHzqfy3W)ZQed;{U;ssx3o|slLHl>M0+ucyi8oV`-csy_!C<&TC6aaJJ&qO&=Fh_2bHbDHV;vqOF~ z4*M~EA0m>T8`E`U$88?ZFZ30c#kPp@LH2%`7^LP{A8e`WZd`{o$2tbS#Ki$cB_@ou z*J8j749G>@(y}&jzM_I`0EV(U8(987^Oz(h%yN7(D2g(GFsga zw@i080_AwQBI9yFLNJcJ=QYeG#5?WXjkhffE5VV+)dlAxIl5QaYQ9d7bwg z(^RYxrUI)0tp2JBBG=|ySEid5hGB?cx6k!-q(>*2AF_IFuf=matsmcS|2W_dQGCb+ z=w$kWY}fT<`rb^>iyic0I-YdY^%hh))VeF%?Z~#-u#YU+c5AlFhV8Uqdu`Ybb9N9C z+v(xmmh7P8L;GymZYzf4ep^}`?Xh@dzx9**tzOt|_QE#fmp(9fVe66C|GNLhceGvs z-~X!f@}IRge{k$Kfcs91X94#e77y_O#P4&U{#aVh4{JI98d@H@e!u;*du^ZEYx{)0 z^NV||9?-Ubc)KZZziGeiqxf={m~ z*JcUs6Wy@e=`n#b!^)M}UI=;ceQKcf_O;m`sh-St-+U+RnhJ3LrOzGzzWtVp69Dca zaq8u0m*_-Kz&$+9E-1<>Al%F|*x3Gz?meIT4nw!y$DMZ@IDD|*{Ez$1UfXZ>%0AOq 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