diff --git a/ace/BUILD.gn b/ace/BUILD.gn index 3eb3f2f1b2724ad094ed053cfcacfef63db1e6ae..543828be2ade81485903d644fa3603af3ce7bbac 100755 --- a/ace/BUILD.gn +++ b/ace/BUILD.gn @@ -14,6 +14,8 @@ group("ace") { testonly = true deps = [ + "ace_ets_component:AceEtsComponentTest", + "ace_ets_component:AceEtsComponentTest", "ace_ets_standard:ActsAceEtsStTest", "ace_ets_test:ActsAceEtsTest", "ace_ets_third_test:ActsAceEtsThirdTest", diff --git a/ace/ace_ets_component/BUILD.gn b/ace/ace_ets_component/BUILD.gn new file mode 100755 index 0000000000000000000000000000000000000000..ecfc7942d2d6b74ee7ec1e82da1a1d0bd369bd88 --- /dev/null +++ b/ace/ace_ets_component/BUILD.gn @@ -0,0 +1,32 @@ +# Copyright (c) 2021 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("//test/xts/tools/build/suite.gni") + +ohos_js_hap_suite("AceEtsComponentTest") { + hap_profile = "./entry/src/main/config.json" + deps = [ + ":ace_ets_component_assets", + ":ace_ets_component_resources", + ] + ets2abc = true + certificate_profile = "./signature/openharmony_sx.p7b" + hap_name = "AceEtsComponentTest" +} +ohos_js_assets("ace_ets_component_assets") { + source_dir = "./entry/src/main/ets/MainAbility" +} +ohos_resources("ace_ets_component_resources") { + sources = [ "./entry/src/main/resources" ] + hap_profile = "./entry/src/main/config.json" +} diff --git a/ace/ace_ets_component/Test.json b/ace/ace_ets_component/Test.json new file mode 100755 index 0000000000000000000000000000000000000000..870693b0e4a22dfca51efc737327a7276335d2eb --- /dev/null +++ b/ace/ace_ets_component/Test.json @@ -0,0 +1,18 @@ +{ + "description": "Configuration for aceceshi Tests", + "driver": { + "type": "JSUnitTest", + "test-timeout": "60000", + "package": "com.open.harmony.acetest", + "shell-timeout": "60000" + }, + "kits": [ + { + "test-file-name": [ + "AceEtsComponentTest.hap" + ], + "type": "AppInstallKit", + "cleanup-apps": true + } + ] +} diff --git a/ace/ace_ets_component/entry/src/main/config.json b/ace/ace_ets_component/entry/src/main/config.json new file mode 100755 index 0000000000000000000000000000000000000000..9f78b9f865d0acc4a08b8da9a0338bc3a472ee2a --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/config.json @@ -0,0 +1,74 @@ +{ + "app": { + "bundleName": "com.open.harmony.acetest", + "vendor": "open", + "version": { + "code": 1000000, + "name": "1.0.0" + }, + "apiVersion": { + "compatible": 7, + "releaseType": "Release", + "target": 7 + } + }, + "deviceConfig": {}, + "module": { + "package": "com.open.harmony.acetest", + "name": ".MyApplication", + "mainAbility": "com.open.harmony.acetest.MainAbility", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry", + "installationFree": false + }, + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "orientation": "unspecified", + "visible": true, + "srcPath": "MainAbility", + "name": ".MainAbility", + "srcLanguage": "ets", + "icon": "$media:icon", + "description": "$string:description_mainability", + "formsEnabled": false, + "label": "$string:entry_MainAbility", + "type": "page", + "launchType": "standard" + } + ], + "js": [ + { + "mode": { + "syntax": "ets", + "type": "pageAbility" + }, + "pages": [ + "pages/index", + "pages/ellipse", + "pages/systemRouterA", + "pages/systemRouterB" + ], + "name": ".MainAbility", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ] + } +} \ No newline at end of file diff --git a/ace/ace_ets_component/entry/src/main/ets/MainAbility/app.ets b/ace/ace_ets_component/entry/src/main/ets/MainAbility/app.ets new file mode 100755 index 0000000000000000000000000000000000000000..5d603333c7bf5167e7d1d3ead6c9daa9c4b2862d --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/ets/MainAbility/app.ets @@ -0,0 +1,22 @@ +/** + * Copyright (c) 2021 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. + */ +export default { + onCreate() { + console.info('Application onCreate') + }, + onDestroy() { + console.info('Application onDestroy') + }, +} \ No newline at end of file diff --git a/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/ellipse.ets b/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/ellipse.ets new file mode 100755 index 0000000000000000000000000000000000000000..12d06fd1deb39a8afd272bd5dfdfe34d8ff85be0 --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/ellipse.ets @@ -0,0 +1,51 @@ +// @ts-nocheck +/** + * Copyright (c) 2021 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 events_emitter from '@ohos.emitter' + +@Entry +@Component +struct EllipseExample { + @State width: string = "200px"; + @State height: string = "200px"; + + onPageShow() { + console.info('[ellipse] page show called'); + var stateChangeEvent = { + eventId: 5, + priority: events_emitter.EventPriority.LOW + } + events_emitter.on(stateChangeEvent, this.stateChangCallBack); + } + + private stateChangCallBack = (eventData) => { + console.info("[ellipse] page stateChangCallBack"); + if (eventData != null) { + console.info("[ellipse] page state change called:" + JSON.stringify(eventData)); + if(eventData.data.width != null) { + this.width = eventData.data.width; + } + if(eventData.data.height != null) { + this.height = eventData.data.height; + } + } + } + + build() { + Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center,justifyContent: FlexAlign.Center}) { + Ellipse().width(`${this.width}`).height(`${this.height}`).key('ellipse') + }.width('100%').height('100%') + } +} \ No newline at end of file diff --git a/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/gridContainer.ets b/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/gridContainer.ets new file mode 100755 index 0000000000000000000000000000000000000000..246648a0a186388880b77725dbba6b250649fd71 --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/gridContainer.ets @@ -0,0 +1,108 @@ +// @ts-nocheck +/** + * Copyright (c) 2021 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 events_emitter from '@ohos.emitter' + +@Entry +@Component +struct GridContainerExample { + @State sizeType: SizeType = SizeType.XS; + private stateChangCallBack = (eventData) => { + if (eventData != null) { + console.info("gridContainer page state change called:" + JSON.stringify(eventData)); + switch (eventData.data.sizeType) { + case 'Auto': + this.sizeType = SizeType.Auto; + break; + case 'XS': + this.sizeType = SizeType.XS; + break; + case 'SM': + this.sizeType = SizeType.SM; + break; + case 'MD': + this.sizeType = SizeType.MD; + break; + case 'LG': + this.sizeType = SizeType.LG; + break; + default: + this.sizeType = SizeType.Auto; + } + } + } + + onPageShow() { + console.info('gridContainer page show called'); + var stateChangeEvent = { + eventId: 7, + priority: events_emitter.EventPriority.LOW + } + events_emitter.on(stateChangeEvent, this.stateChangCallBack); + } + + build() { + Column({ space: 5 }) { + GridContainer({ columns: 12, sizeType: this.sizeType, gutter: 10, margin: 20 }) { + Row() { + Text('1') + .fontSize(20) + .useSizeType({ + xs: { span: 6, offset: 0 }, + sm: { span: 2, offset: 0 }, + md: { span: 2, offset: 0 }, + lg: { span: 2, offset: 0 } + }) + .height(50) + .backgroundColor(0x4582B4) + .textAlign(TextAlign.Center) + Text('2') + .fontSize(20) + .useSizeType({ + xs: { span: 2, offset: 6 }, + sm: { span: 6, offset: 2 }, + md: { span: 2, offset: 2 }, + lg: { span: 2, offset: 2 } + }) + .height(50) + .backgroundColor(0x00BFFF) + .textAlign(TextAlign.Center) + Text('3') + .fontSize(20) + .useSizeType({ + xs: { span: 2, offset: 8 }, + sm: { span: 2, offset: 8 }, + md: { span: 6, offset: 4 }, + lg: { span: 2, offset: 4 } + }) + .height(50) + .backgroundColor(0x4682B4) + .textAlign(TextAlign.Center) + Text('4') + .fontSize(20) + .useSizeType({ + xs: { span: 2, offset: 10 }, + sm: { span: 2, offset: 10 }, + md: { span: 2, offset: 10 }, + lg: { span: 6, offset: 6 } + }) + .height(50) + .backgroundColor(0x00BFFF) + .textAlign(TextAlign.Center) + } + }.width('90%').key('gridContainer').margin({ top: 300 }) + } + } +} \ No newline at end of file diff --git a/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/index.ets b/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/index.ets new file mode 100755 index 0000000000000000000000000000000000000000..a9c75c7154b8b5d6f5f76b1cf05cff275d4386f4 --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/index.ets @@ -0,0 +1,64 @@ +// @ts-nocheck +/** + * Copyright (c) 2021 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 file from '@system.file'; + +import {Core, ExpectExtend, InstrumentLog, ReportExtend} from "deccjsunit/index.ets"; +import testsuite from "../test/List.test.ets"; +import featureAbility from "@ohos.ability.featureAbility"; + +@Entry +@Component +struct MyComponent { + aboutToAppear() { + console.info("start run testcase!!!!") + featureAbility.getWant() + .then((Want) => { + const core = Core.getInstance(); + const expectExtend = new ExpectExtend({ + 'id': 'extend' + }); + core.addService('expect', expectExtend); + const reportExtend = new ReportExtend(file); + core.addService('report', reportExtend); + core.init(); + core.subscribeEvent('task', reportExtend); + const configService = core.getDefaultService('config'); + console.info('parameters---->' + JSON.stringify(Want.parameters)); + configService.setConfig(Want.parameters); + testsuite(); + core.execute(); + console.info('Operation successful. Data: ' + JSON.stringify(Want)); + }) + .catch((error) => { + console.error('Operation failed. Cause: ' + JSON.stringify(error)); + }) + } + + build() { + Flex({ + direction: FlexDirection.Column, + alignItems: ItemAlign.Center, + justifyContent: FlexAlign.Center + }) { + Text('ACE ETS TEST') + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + .height('100%') + } +} + diff --git a/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/swiper.ets b/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/swiper.ets new file mode 100755 index 0000000000000000000000000000000000000000..574516a4a8cc94a8673f5ac6840b212603d3c78b --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/swiper.ets @@ -0,0 +1,203 @@ +// @ts-nocheck +/** + * Copyright (c) 2021 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 events_emitter from '@ohos.emitter' + +class MyDataSource implements IDataSource { + private list: number[] = [] + private listener: DataChangeListener + + constructor(list: number[]) { + this.list = list + } + + totalCount(): number { + return this.list.length + } + + getData(index: number): any { + return this.list[index] + } + + registerDataChangeListener(listener: DataChangeListener): void { + this.listener = listener + } + + unregisterDataChangeListener() { + } +} + +@Entry +@Component +struct SwiperExample { + private swiperController: SwiperController = new SwiperController() + private data: MyDataSource = new MyDataSource([]) + @State index: number = 1 + @State autoPlay: boolean = true + @State interval: number = 4000 + @State indicator: boolean = true + @State loop: boolean = false + @State duration: number = 1000 + @State vertical: boolean = false + @State itemSpace: number = 0 + @State onActionCalledOne: boolean = false; + @State onActionCalledTwo: boolean = false; + @State onActionCalledThree: boolean = false; + + private aboutToAppear(): void { + let list = [] + for (var i = 1; i <= 10; i++) { + list.push(i.toString()); + } + this.data = new MyDataSource(list) + } + + build() { + Column({ space: 5 }) { + Swiper(this.swiperController) { + LazyForEach(this.data, (item: string) => { + Text(item) + .width('90%') + .height(160) + .backgroundColor(0xAFEEEE) + .textAlign(TextAlign.Center) + .fontSize(20) + }, item => item) + } + .cachedCount(2) + .index(this.index) + .autoPlay(this.autoPlay) + .interval(this.interval) + .indicator(this.indicator) + .loop(this.loop) + .duration(this.duration) + .vertical(this.vertical) + .itemSpace(this.itemSpace) + .key('swiper') + .onChange((index: number) => { + console.info(index.toString()) + this.onActionCalledThree = true; + console.info('onChange current action state is: ' + this.onActionCalledThree); + try { + var backData = { + data: { + "ACTION": this.onActionCalledThree, + } + } + var backEvent = { + eventId: 20, + priority: events_emitter.EventPriority.LOW + } + console.info("onChange start to emit action state") + events_emitter.emit(backEvent, backData) + } catch (err) { + console.info("onChange emit action state err: " + JSON.stringify(err.message)) + } + }) + + Flex({ justifyContent: FlexAlign.SpaceAround }) { + Button('next') + .key('button1') + .onClick(() => { + this.swiperController.showNext(); + this.onActionCalledOne = true; + console.info('button1 current action state is: ' + this.onActionCalledOne); + try { + var backData = { + data: { + "ACTION": this.onActionCalledOne, + } + } + var backEvent = { + eventId: 18, + priority: events_emitter.EventPriority.LOW + } + console.info("button1 start to emit action state") + events_emitter.emit(backEvent, backData) + } catch (err) { + console.info("button1 emit action state err: " + JSON.stringify(err.message)) + } + }) + Button('preview') + .key('button2') + .onClick(() => { + this.swiperController.showPrevious() + this.onActionCalledTwo = true; + console.info('button2 current action state is: ' + this.onActionCalledTwo); + try { + var backData = { + data: { + "ACTION": this.onActionCalledTwo, + } + } + var backEvent = { + eventId: 19, + priority: events_emitter.EventPriority.LOW + } + console.info("button2 start to emit action state") + events_emitter.emit(backEvent, backData) + } catch (err) { + console.info("button2 emit action state err: " + JSON.stringify(err.message)) + } + }) + } + }.margin({ top: 5 }) + } + + onPageShow() { + console.info('swiper page show called'); + var stateChangeEvent = { + eventId: 17, + priority: events_emitter.EventPriority.LOW + } + events_emitter.on(stateChangeEvent, this.stateChangCallBack) + + var stateChangeEventOne = { + eventId: 55, + priority: events_emitter.EventPriority.LOW + } + events_emitter.on(stateChangeEventOne, this.stateChangCallBack) + } + + private stateChangCallBack = (eventData) => { + if (eventData != null) { + console.info("swiper page state change called:" + JSON.stringify(eventData)); + if (eventData.data.index != null) { + this.index = parseInt(eventData.data.index); + } + if (eventData.data.autoPlay != null) { + this.autoPlay = eventData.data.autoPlay; + } + if (eventData.data.interval != null) { + this.interval = parseInt(eventData.data.interval); + } + if (eventData.data.indicator != null) { + this.indicator = eventData.data.indicator; + } + if (eventData.data.loop != null) { + this.loop = eventData.data.loop; + } + if (eventData.data.duration != null) { + this.duration = parseInt(eventData.data.duration); + } + if (eventData.data.vertical != null) { + this.vertical = eventData.data.vertical; + } + if (eventData.data.itemSpace != null) { + this.itemSpace = parseInt(eventData.data.itemSpace); + } + } + } +} \ No newline at end of file diff --git a/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/systemRouterA.ets b/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/systemRouterA.ets new file mode 100755 index 0000000000000000000000000000000000000000..25b16bb823fee645701c268a51bb72a7217f37d6 --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/systemRouterA.ets @@ -0,0 +1,54 @@ +/** + * Copyright (c) 2021 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 router from '@system.router'; + +@Entry +@Component +struct SystemRouterA { + build() { + Flex({direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center}) { + Text('A Page') + .fontSize(50) + .fontWeight(FontWeight.Bold) + Button('Push') + .key('pushButtonA') + .backgroundColor('#FF0B8FE2') + .fontSize(20) + .margin({top: 20}) + .onClick(() => { + router.push({ + uri: 'pages/systemRouterB', + params: { + data: 'B Page' + } + }); + }); + Button('Replace') + .key('ReplaceButtonA') + .backgroundColor('#FF0B8FE2') + .fontSize(20) + .margin({top: 20}) + .onClick(() => { + router.replace({ + uri: 'pages/systemRouterB', + params: { + data: 'B Page' + } + }); + }); + }.width('100%').height('100%') + } +} \ No newline at end of file diff --git a/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/systemRouterB.ets b/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/systemRouterB.ets new file mode 100755 index 0000000000000000000000000000000000000000..1e8148fe133f9d81e95923aeb704489ddd949dc6 --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/ets/MainAbility/pages/systemRouterB.ets @@ -0,0 +1,53 @@ +/** + * Copyright (c) 2021 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 router from '@system.router'; +import events_emitter from '@ohos.emitter'; + +@Entry +@Component +struct SystemRouterB { + build() { + Flex({direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center}) { + Text('B Page') + .fontSize(50) + .fontWeight(FontWeight.Bold) + }.width('100%').height('100%') + } + onPageShow() { + let params = router.getParams(); + if (params && params.data) { + console.info("[SystemRouterB] getParams result: " + params.data); + this.getRouterParams(params.data); + } + } + getRouterParams(data) { + try { + let paramsData = { + data: { + "params": data, + } + } + let paramsEvent = { + eventId: 3, + priority: events_emitter.EventPriority.LOW + } + console.info("[SystemRouterB] start to emit params"); + events_emitter.emit(paramsEvent, paramsData); + } catch (err) { + console.info("[SystemRouterB] emit params err: " + JSON.stringify(err.message)); + } + } +} \ No newline at end of file diff --git a/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/EllipseJsunit.test.ets b/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/EllipseJsunit.test.ets new file mode 100755 index 0000000000000000000000000000000000000000..95232edf6c6b6956dff6f8c8466d4311aa7dc4da --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/EllipseJsunit.test.ets @@ -0,0 +1,89 @@ +// @ts-nocheck +/** + * Copyright (c) 2021 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from "deccjsunit/index.ets" +import router from '@system.router'; +import events_emitter from '@ohos.emitter' +import Utils from './Utils'; + +export default function ellipseJsunit() { + describe('appInfoTest', function () { + beforeEach(async function (done) { + console.info("ellipse beforeEach start"); + let options = { + uri: 'pages/ellipse', + } + try { + router.clear(); + let pages = router.getState(); + console.info("get ellipse state pages:" + JSON.stringify(pages)); + if (!("ellipse" == pages.name)) { + console.info("get ellipse state pages.name:" + JSON.stringify(pages.name)); + let result = await router.push(options); + await Utils.sleep(2000); + console.info("push ellipse page result:" + JSON.stringify(result)); + } + } catch (err) { + console.error("push ellipse page error:" + JSON.stringify(result)); + } + done() + }); + + afterEach(async function () { + await Utils.sleep(1000); + console.info("ellipse after each called"); + }); + + it('testEllipse01', 0, async function (done) { + console.info('[testEllipse01] START'); + await Utils.sleep(1000); + let strJson = getInspectorByKey('ellipse'); + let obj = JSON.parse(strJson); + console.info("[testEllipse02] obj is: " + JSON.stringify(obj)); + expect(obj.$attrs.height).assertEqual('200.000000px'); + expect(obj.$attrs.width).assertEqual('200.000000px'); + console.info('testEllipse02 END'); + done(); + }); + + it('testEllipse02', 0, async function (done) { + console.info('[testEllipse02] START'); + try { + var eventData = { + data: { + "width": '500px', + "height": '500px' + } + } + var innerEvent = { + eventId: 5, + priority: events_emitter.EventPriority.LOW + } + console.info("[testEllipse02] start to publish emit"); + events_emitter.emit(innerEvent, eventData); + } catch (err) { + console.log("[testEllipse02] change component data error: " + err.message); + } + await Utils.sleep(1000); + let strJson = getInspectorByKey('ellipse'); + let obj = JSON.parse(strJson); + console.info("[testEllipse02] obj is: " + JSON.stringify(obj)); + expect(obj.$attrs.height).assertEqual('500.000000px'); + expect(obj.$attrs.width).assertEqual('500.000000px'); + console.info('testEllipse02 END'); + done(); + }); + }) +} diff --git a/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/GridContainerJsunit.test.ets b/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/GridContainerJsunit.test.ets new file mode 100755 index 0000000000000000000000000000000000000000..8155cfcd919d93b27814009511719ff89671ac58 --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/GridContainerJsunit.test.ets @@ -0,0 +1,90 @@ +// @ts-nocheck +/** + * Copyright (c) 2021 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from "deccjsunit/index.ets" +import router from '@system.router'; +import events_emitter from '@ohos.emitter' +import Utils from './Utils'; + +export default function girdContainerJsunit() { + describe('appInfoTest', function () { + beforeEach(async function (done) { + console.info("girdContainer beforeEach start"); + let options = { + uri: 'pages/gridContainer', + } + try { + router.clear(); + let pages = router.getState(); + console.info("get girdContainer state pages:" + JSON.stringify(pages)); + if (!("gridContainer" == pages.name)) { + console.info("get girdContainer state pages.name:" + JSON.stringify(pages.name)); + let result = await router.push(options); + await Utils.sleep(2000); + console.info("push girdContainer page result:" + JSON.stringify(result)); + } + } catch (err) { + console.error("push girdContainer page error:" + JSON.stringify(result)); + } + done() + }); + + afterEach(async function () { + await Utils.sleep(1000); + console.info("girdContainer after each called"); + }); + + it('testGirdContainer01', 0, async function (done) { + console.info('[testGirdContainer01] START'); + await Utils.sleep(1000); + let strJson = getInspectorByKey('gridContainer'); + let obj = JSON.parse(strJson); + console.info("[testGirdContainer01] obj is: " + JSON.stringify(obj)); + expect(obj.$type).assertEqual('GridContainer'); + expect(obj.$attrs.constructor.columns).assertEqual('12'); + expect(obj.$attrs.constructor.sizeType).assertEqual('SizeType.XS'); + expect(obj.$attrs.constructor.gutter).assertEqual('10.000000vp'); + expect(obj.$attrs.constructor.margin).assertEqual('20.000000vp'); + console.info('testGirdContainer01 END'); + done(); + }); + + it('testGirdContainer02', 0, async function (done) { + console.info('[testEllipse02] START'); + try { + var eventData = { + data: { + "sizeType": 'SM' + } + } + var innerEvent = { + eventId: 7, + priority: events_emitter.EventPriority.LOW + } + console.info("[testGirdContainer02] start to publish emit"); + events_emitter.emit(innerEvent, eventData); + } catch (err) { + console.log("[testGirdContainer02] change component data error: " + err.message); + } + await Utils.sleep(1000); + let strJson = getInspectorByKey('gridContainer'); + let obj = JSON.parse(strJson); + console.info("[testGirdContainer02] obj is: " + JSON.stringify(obj)); + expect(obj.$attrs.constructor.sizeType).assertEqual('SizeType.SM'); + console.info('testGirdContainer02 END'); + done(); + }); + }) +} diff --git a/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/List.test.ets b/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/List.test.ets new file mode 100755 index 0000000000000000000000000000000000000000..045fb1e88eae3dab909789c022bb1d2a1d0d5bbc --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/List.test.ets @@ -0,0 +1,21 @@ +/** + * Copyright (c) 2021 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 ellipseJsunit from './EllipseJsunit.test.ets'; +import systemRouterJsunit from './SystemRouterJsunit.test.ets'; + +export default function testsuite() { + ellipseJsunit(); + systemRouterJsunit(); +} \ No newline at end of file diff --git a/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/SwiperJsunit.test.ets b/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/SwiperJsunit.test.ets new file mode 100755 index 0000000000000000000000000000000000000000..a5853fec323a3ffa95b9f37404a4027226d7a425 --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/SwiperJsunit.test.ets @@ -0,0 +1,211 @@ +/** + * Copyright (c) 2021 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. + */ +// @ts-nocheck +import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from "deccjsunit/index.ets" +import router from '@system.router'; +import Utils from './Utils'; +import events_emitter from '@ohos.emitter'; + +export default function swiperJsunit() { + describe('swiperTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'pages/swiper', + } + try { + router.clear(); + let pages = router.getState(); + console.info("get swiper state success " + JSON.stringify(pages)); + if (!("stepper" == pages.name)) { + console.info("get swiper state success " + JSON.stringify(pages.name)); + let result = await router.push(options); + await Utils.sleep(1000); + console.info("push swiper page success " + JSON.stringify(result)); + } + } catch (err) { + console.error("push swiper page error " + JSON.stringify(result)); + } + done() + }); + + afterEach(async function () { + await Utils.sleep(1000); + console.info("swiper after each called"); + }); + + it('swiperTest_0100', 0, async function (done) { + console.info('swiperTest_0100 START'); + let strJson = getInspectorByKey('swiper'); + console.info("swiperTest_0100 component strJson:" + strJson); + let obj = JSON.parse(strJson); + console.info("swiperTest_0100 component obj is: " + JSON.stringify(obj)); + expect(obj.$type).assertEqual('Swiper'); + expect(obj.$attrs.index).assertEqual('1'); + expect(obj.$attrs.autoPlay).assertEqual('true'); + expect(obj.$attrs.interval).assertEqual('4000'); + expect(obj.$attrs.indicator).assertEqual('true'); + expect(obj.$attrs.loop).assertEqual('false'); + expect(obj.$attrs.duration).assertEqual('1000.000000'); + expect(obj.$attrs.vertical).assertEqual('false'); + expect(obj.$attrs.itemSpace).assertEqual('0.000000vp'); + expect(obj.$attrs.disableSwipe).assertEqual('false'); + console.info('swiperTest_0100 END'); + done(); + }); + + it('swiperTest_0200', 0, async function (done) { + console.info('swiperTest_0200 START'); + try { + let eventData = { + data: { + "index": "3", + "autoPlay": "false", + "interval": "3000", + "indicator": "false", + "duration": "500", + "itemSpace": "1", + } + } + let indexEvent = { + eventId: 17, + priority: events_emitter.EventPriority.LOW + } + console.info("swiperTest_0200 start to publish emit"); + events_emitter.emit(indexEvent, eventData); + } catch (err) { + console.log("swiperTest_0200 change component data error: " + err.message); + } + await Utils.sleep(4000); + let strJsonNew = getInspectorByKey('swiper'); + let objNew = JSON.parse(strJsonNew); + console.info("swiperTest_0200 component objNew is: " + JSON.stringify(objNew)); + expect(objNew.$attrs.index).assertEqual('3'); + expect(objNew.$attrs.autoPlay).assertEqual('false'); + expect(objNew.$attrs.interval).assertEqual('3000'); + expect(objNew.$attrs.indicator).assertEqual('false'); + expect(objNew.$attrs.duration).assertEqual('500.000000'); + expect(objNew.$attrs.itemSpace).assertEqual('1.000000vp'); + console.info('swiperTest_0200 END'); + done(); + }); + + it('swiperTest_0300', 0, async function (done) { + console.info('swiperTest_0300 START'); + await Utils.sleep(1500); + let callback = (indexEvent) => { + console.info("swiperTest_0300 get state result is: " + JSON.stringify(indexEvent)); + expect(indexEvent.data.ACTION).assertEqual(true); + } + let indexEvent = { + eventId: 18, + priority: events_emitter.EventPriority.LOW + } + try { + events_emitter.on(indexEvent, callback); + } catch (err) { + console.info("swiperTest_0300 on events_emitter err : " + JSON.stringify(err)); + } + console.info("swiperTest_0300 click result is: " + JSON.stringify(sendEventByKey('button1',10,""))); + await Utils.sleep(1000); + console.info('swiperTest_0300 END'); + done(); + }); + + it('swiperTest_0400', 0, async function (done) { + console.info('swiperTest_0400 START'); + await Utils.sleep(1500); + let callback = (indexEvent) => { + console.info("swiperTest_0400 get state result is: " + JSON.stringify(indexEvent)); + expect(indexEvent.data.ACTION).assertEqual(true); + } + let indexEvent = { + eventId: 19, + priority: events_emitter.EventPriority.LOW + } + try { + events_emitter.on(indexEvent, callback); + } catch (err) { + console.info("swiperTest_0400 on events_emitter err : " + JSON.stringify(err)); + } + console.info("swiperTest_0400 click result is: " + JSON.stringify(sendEventByKey('button2',10,""))); + await Utils.sleep(1000); + console.info('swiperTest_0400 END'); + done(); + }); + + it('swiperTest_0500', 0, async function (done) { + console.info('swiperTest_0500 START'); + await Utils.sleep(1500); + let callbackOne = (indexEventOne) => { + console.info("swiperTest_0500 get state result is: " + JSON.stringify(indexEventOne)); + expect(indexEventOne.data.ACTION).assertEqual(true); + } + let indexEventOne = { + eventId: 19, + priority: events_emitter.EventPriority.LOW + } + try { + events_emitter.on(indexEventOne, callbackOne); + } catch (err) { + console.info("swiperTest_0500 on events_emitter err : " + JSON.stringify(err)); + } + console.info("swiperTest_0500 click result is: " + JSON.stringify(sendEventByKey('button2',10,""))); + await Utils.sleep(1500); + let callback = (indexEvent) => { + console.info("swiperTest_0500 get state result is: " + JSON.stringify(indexEvent)); + expect(indexEvent.data.ACTION).assertEqual(true); + } + let indexEvent = { + eventId: 20, + priority: events_emitter.EventPriority.LOW + } + try { + events_emitter.on(indexEvent, callback); + } catch (err) { + console.info("swiperTest_0500 on events_emitter err : " + JSON.stringify(err)); + } + console.info('swiperTest_0500 END'); + done(); + }); + + it('swiperTest_0600', 0, async function (done) { + console.info('swiperTest_0600 START'); + try { + let eventData = { + data: { + "loop": true, + "vertical": true, + } + } + let indexEvent = { + eventId: 55, + priority: events_emitter.EventPriority.LOW + } + console.info("swiperTest_0600 start to publish emit"); + events_emitter.emit(indexEvent, eventData); + } catch (err) { + console.log("swiperTest_0600 change component data error: " + err.message); + } + await Utils.sleep(3000); + let strJsonNew = getInspectorByKey('swiper'); + let objNew = JSON.parse(strJsonNew); + console.info("swiperTest_0600 component objNew is: " + JSON.stringify(objNew)); + expect(objNew.$attrs.loop).assertEqual('true'); + expect(objNew.$attrs.vertical).assertEqual('true'); + console.info('swiperTest_0600 END'); + done(); + }); + }) +} \ No newline at end of file diff --git a/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/SystemRouterJsunit.test.ets b/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/SystemRouterJsunit.test.ets new file mode 100755 index 0000000000000000000000000000000000000000..0fa4962f137adac7d97f75d13a6ad34ce6d77643 --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/SystemRouterJsunit.test.ets @@ -0,0 +1,151 @@ +// @ts-nocheck +/** + * Copyright (c) 2021 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from "deccjsunit/index.ets" +import router from '@system.router'; +import Utils from './Utils'; +import events_emitter from '@ohos.emitter'; + +export default function systemRouterJsunit() { + describe('systemRouterTest', function () { + it('systemRouterTest001', 0, async function (done) { + console.info('[systemRouterTest001] START'); + let options = { + uri: 'pages/systemRouterA', + } + try { + let result = await router.push(options); + await Utils.sleep(1000); + console.info("[systemRouterTest001] push page success " + JSON.stringify(result)); + let pages = router.getState(); + expect(pages.index).assertEqual(2); + expect(pages.name).assertEqual('systemRouterA'); + expect(pages.path).assertEqual('pages/'); + } catch (err) { + console.error("[systemRouterTest001] push page error " + JSON.stringify(result)); + } + await Utils.sleep(2000); + done(); + }); + + it('systemRouterTest002', 0, async function (done) { + console.info('[systemRouterTest002] START'); + let options = { + uri: 'pages/systemRouterA' + } + try { + let result = await router.push(options); + console.info("[systemRouterTest002] push page success " + JSON.stringify(result)); + } catch (err) { + console.error("[systemRouterTest002] push page error " + JSON.stringify(result)); + } + await Utils.sleep(1500); + let callback = (paramsEvent) => { + console.info("[systemRouterTest002] get state result is: " + JSON.stringify(paramsEvent)); + expect(paramsEvent.data.params).assertEqual('B Page'); + } + let paramsEvent = { + eventId: 3, + priority: events_emitter.EventPriority.LOW + } + try { + events_emitter.on(paramsEvent, callback); + } catch (err) { + console.info("[systemRouterTest002] on events_emitter err : " + JSON.stringify(err)); + } + console.info("[systemRouterTest002] click push button result is: " + + JSON.stringify(sendEventByKey('pushButtonA', 10, ""))); + await Utils.sleep(1000); + router.back(); + await Utils.sleep(1000); + done(); + }); + + it('systemRouterTest003', 0, async function (done) { + console.info('[systemRouterTest003] START'); + await Utils.sleep(1000); + router.clear(); + await Utils.sleep(2000); + let size = router.getLength(); + console.info("[systemRouterTest003] size" + size); + expect(size).assertEqual("1"); + await Utils.sleep(1000); + done(); + }); + + it('systemRouterTest004', 0, async function (done) { + console.info('[systemRouterTest004] START'); + router.clear(); + await Utils.sleep(1000); + let options = { + uri: 'pages/systemRouterA' + } + try { + let result = await router.push(options); + console.info("[systemRouterTest004] push page success " + JSON.stringify(result)); + } catch (err) { + console.error("[systemRouterTest004] push page error " + JSON.stringify(result)); + } + await Utils.sleep(1000); + let optionsB = { + uri: 'pages/systemRouterB' + } + try { + let result = await router.replace(optionsB); + console.info("[systemRouterTest004] push page success " + JSON.stringify(result)); + } catch (err) { + console.error("[systemRouterTest004] push page error " + JSON.stringify(result)); + } + await Utils.sleep(1500); + let size = router.getLength(); + console.info("[systemRouterTest004] size" + size); + expect(size).assertEqual("2"); + done(); + }); + + it('systemRouterTest005', 0, async function(done) { + console.info('[systemRouterTest005] START'); + let options = { + uri: 'pages/systemRouterA' + } + try { + let result = await router.push(options); + console.info("[systemRouterTest005] push page success " + JSON.stringify(result)); + } catch (err) { + console.error("[systemRouterTest005] push page error " + JSON.stringify(result)); + } + await Utils.sleep(1000); + router.clear(); + await Utils.sleep(1500); + let callback = (paramsEvent) => { + console.info("[systemRouterTest005] get state result is: " + JSON.stringify(paramsEvent)); + expect(paramsEvent.data.params).assertEqual('B Page'); + } + let paramsEvent = { + eventId: 3, + priority: events_emitter.EventPriority.LOW + } + try { + events_emitter.on(paramsEvent, callback); + } catch (err) { + console.info("[systemRouterTest005] on events_emitter err : " + JSON.stringify(err)); + } + console.info("[systemRouterTest005] click replace button result is: " + + JSON.stringify(sendEventByKey('ReplaceButtonA', 10, ""))); + done(); + }); + }); +} + diff --git a/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/Utils.ets b/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/Utils.ets new file mode 100755 index 0000000000000000000000000000000000000000..0f4b16d766f1feeb75edd8cc84cd1448d61e569a --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/ets/MainAbility/test/Utils.ets @@ -0,0 +1,118 @@ +// @ts-nocheck +/** + * Copyright (c) 2021 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. + */ + +export default class Utils { + static rect_left; + static rect_top; + static rect_right; + static rect_bottom; + static rect_value; + + static sleep(time) { + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve() + }, time) + }).then(() => { + console.info(`sleep ${time} over...`) + }) + } + + static getComponentRect(key) { + let strJson = getInspectorByKey(key); + let obj = JSON.parse(strJson); + console.info("[getInspectorByKey] current component obj is: " + JSON.stringify(obj)); + let rectInfo = JSON.parse('[' + obj.$rect + ']') + console.info("[getInspectorByKey] rectInfo is: " + rectInfo); + this.rect_left = JSON.parse('[' + rectInfo[0] + ']')[0] + this.rect_top = JSON.parse('[' + rectInfo[0] + ']')[1] + this.rect_right = JSON.parse('[' + rectInfo[1] + ']')[0] + this.rect_bottom = JSON.parse('[' + rectInfo[1] + ']')[1] + return this.rect_value = { + "left": this.rect_left, "top": this.rect_top, "right": this.rect_right, "bottom": this.rect_bottom + } + } + + static async swipe(downX, downY, upX, upY, steps) { + console.info('start to swipe') + this.drags(downX, downY, upX, upY, steps, false) + } + + static async drag(downX, downY, upX, upY, steps) { + console.info('start to drag') + this.drags(downX, downY, upX, upY, steps, true) + } + + static async drags(downX, downY, upX, upY, steps, drag) { + var xStep; + var yStep; + var swipeSteps; + var ret; + xStep = 0; + yStep = 0; + ret = false; + swipeSteps = steps; + if (swipeSteps == 0) { + swipeSteps = 1; + } + xStep = (upX - downX) / swipeSteps; + yStep = (upY - downY) / swipeSteps; + console.info('move step is: ' + 'xStep: ' + xStep + ' yStep: ' + yStep) + var downPonit: TouchObject = { + id: 1, + x: downX, + y: downY, + type: TouchType.Down, + } + console.info('down touch started: ' + JSON.stringify(downPonit)) + sendTouchEvent(downPonit); + console.info('start to move') + if (drag) { + await this.sleep(500) + } + for (var i = 1;i <= swipeSteps; i++) { + var movePoint: TouchObject = { + id: 1, + x: downX + (xStep * i), + y: downY + (yStep * i), + type: TouchType.Move + } + console.info('move touch started: ' + JSON.stringify(movePoint)) + ret = sendTouchEvent(movePoint) + if (ret == false) { + break; + } + await this.sleep(5) + } + console.info('start to up') + if (drag) { + await this.sleep(100) + } + var upPoint: TouchObject = { + id: 1, + x: upX, + y: upY, + type: TouchType.Up, + } + console.info('up touch started: ' + JSON.stringify(upPoint)) + sendTouchEvent(upPoint) + await this.sleep(500) + } +} + + + + diff --git a/ace/ace_ets_component/entry/src/main/ets/MainAbility/utils/Constants.ets b/ace/ace_ets_component/entry/src/main/ets/MainAbility/utils/Constants.ets new file mode 100755 index 0000000000000000000000000000000000000000..1f0ab94537426e4732d63297403d99c1abe19543 --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/ets/MainAbility/utils/Constants.ets @@ -0,0 +1,111 @@ +/** + * Copyright (c) 2021 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. + */ +const TYPE = '$type' +const ID = '$ID' +const Z_INDEX = '$z-index' +const RECT = '$rect' +const DEBUGLINE = '$debugLine' +const ATTRS = '$attrs' +const ATTRS_SEPIA = 'sepia' +const ATTRS_ASPECTRATIO = 'aspectRatio' +const ATTRS_CONTRAST = 'contrast' +const ATTRS_SATURATE = 'saturate' +const ATTRS_HUEROTATE = 'hueRotate' +const ATTRS_INVERT = 'invert' +const ATTRS_BRIGHTNESS = 'brightness' +const ATTRS_BACKDROPBLUR = 'backdropBlur' +const ATTRS_GRAYSCALE = 'grayscale' +const ATTRS_BLUR = 'blur' +const ATTRS_GRIDOFFSET = 'gridOffset' +const ATTRS_FLEXSHRINK = 'flexShrink' +const ATTRS_FLEXGROW = 'flexGrow' +const ATTRS_OPACITY = 'opacity' +const ATTRS_DIRECTION = 'direction' +const ATTRS_ALIGN = 'align' +const ATTRS_HEIGHT = 'height' +const ATTRS_BACKGROUNDCOLOR = 'backgroundColor' +const ATTRS_ALIGNSELF = 'alignSelf' +const ATTRS_BORDERWIDTH = 'borderWidth' +const ATTRS_WIDTH = 'width' +const ATTRS_BORDERCOLOR = 'borderColor' +const ATTRS_MARGIN_BOTTOM = 'margin-bottom' +const ATTRS_BORDERSTYLE = 'borderStyle' +const ATTRS_MARGIN_RIGHT = 'margin-right' +const ATTRS_CONSTRAINTSIZE = 'constraintSize' +const ATTRS_NARGIN_LEFT = 'margin-left' +const ATTRS_BACKGROUNDIMAGE = 'backgroundImage' +const ATTRS_MARGIN_TOP = 'margin-top' +const ATTRS_BORDERRADIUS = 'borderRadius' +const ATTRS_FLEXBASIC = 'flexBasis' +const ATTRS_VISIBILITY = 'visibility' +const ATTRS_PASSWORD = 'password' +const ATTRS_CHECKED = 'checked' +const ATTRS_SELECTED = 'selected' +const ATTRS_LONG_CLICKABLE = 'long-clickable' +const ATTRS_FOCUSED = 'focused' +const ATTRS_SCROLLABLE = 'scrollable' +const ATTRS_CLICKABLE = 'clickable' +const ATTRS_FOCUSABLE = 'focusable' +const ATTRS_CHECKABLE = 'checkable' +const ATTRS_CLIP = 'clip' +const ATTRS_ENABLE = 'enabled' +const ATTRS_DISPLAYPRIORITY = 'displayPriority' +const ATTRS_LAYOUTWEIGHT = 'layoutWeight' +const ATTRS_LAYOUTPRIORITY = 'layoutPriority' +const ATTRS_GRIDSPAN = 'gridSpan' +const ATTRS_ZINDEX = 'zIndex' +const ATTRS_USEALIGN = 'useAlign' +const ATTRS_USEALIGN_EDGE = 'edge' +const ATTRS_USEALIGN_OFFSET = 'offset' +const ATTRS_MASK = 'mask' +const ATTRS_MARKANCHOR = 'markAnchor' +const ATTRS_MARKANCHOR_X = 'x' +const ATTRS_MARKANCHOR_Y = 'y' +const ATTRS_PADDING = 'padding' +const ATTRS_POSITION = 'position' +const ATTRS_POSITION_X = 'x' +const ATTRS_POSITION_Y = 'y' +const ATTRS_BACKGROUNDIMAGEPOSITION = 'backgroundImagePosition' +const ATTRS_BACKGROUNDIMAGEPOSITION_X = 'x' +const ATTRS_BACKGROUNDIMAGEPOSITION_Y = 'y' +const ATTRS_BACKGROUNDIMAGESIZE = 'backgroundImageSize' +const ATTRS_OFFSET = 'offset' +const ATTRS_OFFSET_X = 'x' +const ATTRS_OFFSET_Y = 'y' +const ATTRS_SHADOW = 'shadow' +const ATTRS_SHADOW_RADIUS = 'radius' +const ATTRS_SHADOW_COLOR = 'color' +const ATTRS_SHADOW_OFFSETX = 'offsetX' +const ATTRS_SHADOW_OFFSETY = 'offsetY' +const ATTRS_WINDOWBLUR = 'windowBlur' +const ATTRS_WINDOWBLUR_PERCENT = 'percent' +const ATTRS_WINDOWBLUR_STYLE = 'style' +const ATTRS_FONTFAMILY = 'fontFamily' +const ATTRS_FONTWEIGHT = 'fontWeight' +const ATTRS_FONTSTYLE = 'fontStyle' +const ATTRS_FONTSIZE = 'fontSize' +const ATTRS_TEXTCASE = 'textCase' +const ATTRS_MAXLINES = 'maxLines' +const ATTRS_DECORATION = 'decoration' +const ATTRS_BASELINEOFFSET = 'baselineOffset' +const ATTRS_TEXTOVERFLOW = 'textOverflow' +const ATTRS_LINEHEIGHT = 'lineHeight' +const ATTRS_FONTCOLOR = 'fontColor' +const ATTRS_TEXTALIGN = 'textAlign' +const ATTRS_CONTENT = 'content' + + + + diff --git a/ace/ace_ets_component/entry/src/main/resources/base/element/string.json b/ace/ace_ets_component/entry/src/main/resources/base/element/string.json new file mode 100755 index 0000000000000000000000000000000000000000..c3c18f1e4990cc72fba7f18b9fb3d3ad0b0a20e9 --- /dev/null +++ b/ace/ace_ets_component/entry/src/main/resources/base/element/string.json @@ -0,0 +1,12 @@ +{ + "string": [ + { + "name": "entry_MainAbility", + "value": "entry_MainAbility" + }, + { + "name": "description_mainability", + "value": "ETS_Empty Ability" + } + ] +} \ No newline at end of file diff --git a/ace/ace_ets_component/entry/src/main/resources/base/media/icon.png b/ace/ace_ets_component/entry/src/main/resources/base/media/icon.png new file mode 100755 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c Binary files /dev/null and b/ace/ace_ets_component/entry/src/main/resources/base/media/icon.png differ diff --git a/ace/ace_ets_component/signature/openharmony_sx.p7b b/ace/ace_ets_component/signature/openharmony_sx.p7b new file mode 100755 index 0000000000000000000000000000000000000000..9be1e98fa4c0c28ca997ed660112fa16b194f0f5 Binary files /dev/null and b/ace/ace_ets_component/signature/openharmony_sx.p7b differ