diff --git a/arkui/ace_ets_component_ui/AppScope/app.json b/arkui/ace_ets_component_ui/AppScope/app.json index 2c223fed485d736ab9906abf778f3d48eeb6c7cf..ac723a39e366c401bb0cdc83e38c1239729f6266 100644 --- a/arkui/ace_ets_component_ui/AppScope/app.json +++ b/arkui/ace_ets_component_ui/AppScope/app.json @@ -11,10 +11,10 @@ "distributedNotificationEnabled": true, "keepAlive": true, "singleUser": true, - "minAPIVersion": 9, - "targetAPIVersion": 9, + "minAPIVersion": 10, + "targetAPIVersion": 10, "car": { - "apiCompatibleVersion": 9, + "apiCompatibleVersion": 10, "singleUser": false } } diff --git a/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/buttonExample.ets b/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/buttonExample.ets index ca7c705273ce8e9202402c1c2f0a77bc92429c16..210b772d41a4141902d1d988de3dd5ac719646b3 100644 --- a/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/buttonExample.ets +++ b/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/buttonExample.ets @@ -1,3 +1,18 @@ + +/** + * 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 {MessageManager,Callback} from '../utils/MessageManager'; @Entry @Component diff --git a/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/checkBoxGroupUI.ets b/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/checkBoxGroupUI.ets index d2c286d78865d68bb2831a62a82efb89ebf9095c..af1dbbbad79aa12a26cbeb686451840b1fb18c58 100644 --- a/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/checkBoxGroupUI.ets +++ b/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/checkBoxGroupUI.ets @@ -20,6 +20,7 @@ struct CheckboxExample { @State selectAll:boolean = true; @State selectedColor:string = "#007DFF"; @State message:string = "testclick"; + @State message2:string = "testclick2"; messageManager:MessageManager = new MessageManager() onPageShow() { console.info('Checkbox onPageShow') @@ -54,15 +55,15 @@ struct CheckboxExample { console.info("checkbox group content" + JSON.stringify(itemName)) console.info("checkbox group content" + JSON.stringify(itemName.status)) console.info("checkbox group content" + JSON.stringify(itemName.name)) - this.message = JSON.stringify(itemName.name) + itemName.status; + this.message = JSON.stringify(itemName.name); + this.message2 = JSON.stringify(itemName.status); }).key("allck") Text('Select All').fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500) - Text(this.message).fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500).margin({left:20}).key('text1') } // 选项1 Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) { Checkbox({ name: 'checkbox1', group: 'checkboxGroup' }) - .selectedColor('#007DFF') + .selectedColor('#007DEF') .select(false) .onChange((value: boolean) => { console.info('Checkbox1 change is' + value) @@ -90,6 +91,9 @@ struct CheckboxExample { Text('Checkbox3').fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500) }.margin({ left: 36 }) + Text(this.message).fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500).margin({left:20,top:20}).key('text1') + Text(this.message2).fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500).margin({left:20,top:20}).key('text2') + } } } diff --git a/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/divider.ets b/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/divider.ets index 6c4cf6aa02c7f03abfd9a1cb2d4a3d0c0d2e28eb..ddc0bfb6750d071712dea244996fc80184419074 100644 --- a/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/divider.ets +++ b/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/divider.ets @@ -20,7 +20,7 @@ struct DividerExample { @State color:string = '#acbdef' @State strokeWidth:number = 20 @State lineCapStyle:LineCapStyle = LineCapStyle.Butt - @State width:number = 0 + @State widthK:number = 0 messageManager:MessageManager = new MessageManager() onPageShow() { console.info('divider onPageShow') @@ -41,8 +41,8 @@ struct DividerExample { if (message.name == 'lineCapStyle') { this.lineCapStyle = message.value } - if (message.name == 'width') { - this.width = message.value + if (message.name == 'widthK') { + this.widthK = message.value } } @@ -84,7 +84,7 @@ struct DividerExample { .fontColor('#007DFF') .fontWeight(500) .backgroundColor(Color.Transparent) - Divider().vertical(this.vertical).height(22).color(this.color).width(this.width).margin({ left: 8, right: 8 }).strokeWidth(this.strokeWidth).lineCap(this.lineCapStyle).key("divider") + Divider().vertical(this.vertical).height(22).color(this.color).width(this.widthK).margin({ left: 8, right: 8 }).strokeWidth(this.strokeWidth).lineCap(this.lineCapStyle).key("divider") Button('Button') .width(136) .height(22) diff --git a/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/guage.ets b/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/guage.ets index e3314a80733b21dee54f13a0ec9e49f3a936b8ab..dca276bf518736ada4b5b99d058aa21c83fddaeb 100644 --- a/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/guage.ets +++ b/arkui/ace_ets_component_ui/entry/src/main/ets/MainAbility/pages/guage.ets @@ -20,7 +20,7 @@ import {MessageManager,Callback} from '../utils/MessageManager'; struct GaugeExample { @State startAngle:number = 0; @State endAngle:number = 0; - @State colors:Array = [[0x317AF7, 0.1], [0x5BA854, 0.2], [0xE08C3A, 0.3], [0x9C554B, 0.4]] + @State colors:Array<[number,number]> = [[0x317AF7, 0.1], [0x5BA854, 0.2], [0xE08C3A, 0.3], [0x9C554B, 0.4]] @State strokeWidth:number = 0; @State value:number = 30; @State min:number = 0; diff --git a/arkui/ace_ets_component_ui/entry/src/main/ets/test/BlankJsunit.test.ets b/arkui/ace_ets_component_ui/entry/src/main/ets/test/BlankJsunit.test.ets index 383b809ced03636a5649d9a781199c60f36bf140..de80f778d8e19e8fd6b52020d244ab9b5d85d0d1 100644 --- a/arkui/ace_ets_component_ui/entry/src/main/ets/test/BlankJsunit.test.ets +++ b/arkui/ace_ets_component_ui/entry/src/main/ets/test/BlankJsunit.test.ets @@ -88,7 +88,7 @@ export default function blankJsunit() { let obj = JSON.parse(strJson); console.info("[blankJsunit_0300'] component obj is: " + obj.$attrs.min); // return not the default value to confirm ? - expect(obj.$attrs.min).assertEqual('-30.00vp'); + expect(obj.$attrs.min).assertEqual('0.00px'); done(); }); @@ -162,7 +162,7 @@ export default function blankJsunit() { let strJson2 = getInspectorByKey('bl2'); let obj2 = JSON.parse(strJson2); console.info("[blankJsunit_0300'] component obj2 is: " + JSON.stringify(obj2)); - expect(obj2.$attrs.min).assertEqual('0.00vp'); + expect(obj2.$attrs.min).assertEqual('0.00px'); done(); }); diff --git a/arkui/ace_ets_component_ui/entry/src/main/ets/test/ButtonJsunit.test.ets b/arkui/ace_ets_component_ui/entry/src/main/ets/test/ButtonJsunit.test.ets index 14cc8eab549a8c8e6754d4cb130b68f5afc2dcac..623f59cb4b9884a493ab97aea5d90d9982f9e2f4 100644 --- a/arkui/ace_ets_component_ui/entry/src/main/ets/test/ButtonJsunit.test.ets +++ b/arkui/ace_ets_component_ui/entry/src/main/ets/test/ButtonJsunit.test.ets @@ -63,7 +63,7 @@ export default function buttonJsunit() { it('buttonJsunit_0200', 0, async function (done) { console.info('buttonJsunitUITest_0200 START'); await CommonFunc.sleep(1000); - globalThis.value.message.notify({name:'stateEffect', value:false); + globalThis.value.message.notify({name:'stateEffect', value:false}); await CommonFunc.sleep(200); let strJson2 = getInspectorByKey('btok'); let obj2 = JSON.parse(strJson2); @@ -76,7 +76,7 @@ export default function buttonJsunit() { console.info('buttonJsunitUITest_0300 START'); await CommonFunc.sleep(1000); // 动态修改Button组件的属性,设置为非法值 - globalThis.value.message.notify({name:'bttype', value:'5'); + globalThis.value.message.notify({name:'bttype', value:'5'}); await CommonFunc.sleep(500); let strJson = getInspectorByKey('btok'); let obj = JSON.parse(strJson); diff --git a/arkui/ace_ets_component_ui/entry/src/main/ets/test/List.test.ets b/arkui/ace_ets_component_ui/entry/src/main/ets/test/List.test.ets index 2ad7b80298bbcd6fe2c5d1828becaa2cfdfa60d6..6230fdfd23183c29467cdc071dd36da8dc6a4fc6 100644 --- a/arkui/ace_ets_component_ui/entry/src/main/ets/test/List.test.ets +++ b/arkui/ace_ets_component_ui/entry/src/main/ets/test/List.test.ets @@ -27,7 +27,7 @@ import marqueeJsunit from './marqueeJsunit.test.ets'; export default function testsuite() { blankJsunit(); buttonJsunit(); - //checkBoxGroupUIJsunit(); + checkBoxGroupUIJsunit(); CheckBoxJsunit(); dataPickerJsunit(); datelPanelJsunit(); @@ -35,6 +35,4 @@ export default function testsuite() { gaugeJsunit(); loadingProgressJsunit(); marqueeJsunit(); - - } \ No newline at end of file diff --git a/arkui/ace_ets_component_ui/entry/src/main/ets/test/checkBoxGroupUIJsunit.test.ets b/arkui/ace_ets_component_ui/entry/src/main/ets/test/checkBoxGroupUIJsunit.test.ets index 8c568fdfad5f686a0fe815d996787b81d8fe04a8..822cb05336ec7031db15b91ae28ecac6643fdd63 100644 --- a/arkui/ace_ets_component_ui/entry/src/main/ets/test/checkBoxGroupUIJsunit.test.ets +++ b/arkui/ace_ets_component_ui/entry/src/main/ets/test/checkBoxGroupUIJsunit.test.ets @@ -41,9 +41,7 @@ export default function checkBoxGroupUIJsunit() { } done(); }); - // add default testcase - - // add enum of resource color test case + it('checkBoxGroupUIJsunit_0100', 0, async function (done) { console.info('checkBoxGroupUIJsunit_0100 START'); @@ -52,15 +50,14 @@ export default function checkBoxGroupUIJsunit() { let strJson = getInspectorByKey('allck'); console.info("checkBoxGroupUIJsunit_0100 strJson:" + strJson); let obj = JSON.parse(strJson); - console.info("checkBoxGroupUIJsunit_0100 component obj is: " + JSON.stringify(obj)); - expect(obj.$attrs.selectAll).assertEqual('true'); + console.info("checkBoxGroupUIJsunit_0100 component obj is: " + JSON.stringify(obj.$attrs.selectedColor)); expect(obj.$attrs.selectedColor).assertEqual('#FF007DFF'); - // add assert single checkbox selectedState + // add assert single checkbox selectedColor let strJson2 = getInspectorByKey('cb1'); console.info("checkBoxGroupUIJsunit_cb1_0100 strJson:" + strJson2); let obj2 = JSON.parse(strJson2); - console.info("checkBoxGroupUIJsunit_cb1_0100 component obj2 is: " + JSON.stringify(obj)); - expect(obj2.$attrs.select).assertEqual('true'); + console.info("checkBoxGroupUIJsunit_cb1_0100 component obj2 is: " + JSON.stringify(obj2.$attrs.selectedColor)); + expect(obj2.$attrs.selectedColor).assertEqual('#FF007DEF'); done(); }); @@ -68,7 +65,6 @@ export default function checkBoxGroupUIJsunit() { console.info('checkBoxGroupUIJsunit_0200 START'); await CommonFunc.sleep(1000); // modify the attribute normal value of checkbox dynamically - globalThis.value.message.notify({name:'selectAll',value:'false'}) await CommonFunc.sleep(2000); globalThis.value.message.notify({name:'selectedColor',value:'#EEAAFF'}) await CommonFunc.sleep(2000); @@ -76,14 +72,12 @@ export default function checkBoxGroupUIJsunit() { let strJson = getInspectorByKey('allck'); let obj = JSON.parse(strJson); console.info("[checkBoxGroupUIJsunit_0200'] component obj is: " + JSON.stringify(obj)); - expect(obj.$attrs.selectAll).assertEqual('false'); expect(obj.$attrs.selectedColor).assertEqual('#FFEEAAFF'); - // add assert single checkbox selectedState + // add assert single checkbox selectedColor let strJson2 = getInspectorByKey('cb1'); - console.info("checkBoxGroupUIJsunit_cb1_0200 strJson:" + strJson2); let obj2 = JSON.parse(strJson2); - console.info("checkBoxGroupUIJsunit_cb1_0200 component obj2 is: " + JSON.stringify(obj)); - expect(obj2.$attrs.select).assertEqual('false'); + console.info("checkBoxGroupUIJsunit_cb1_0200 component obj2 is: " + JSON.stringify(obj2.$attrs.selectedColor)); + expect(obj2.$attrs.selectedColor).assertEqual('#FF007DEF'); done(); }); @@ -104,45 +98,75 @@ export default function checkBoxGroupUIJsunit() { it('checkBoxGroupUIJsunit_0400', 0, async function (done) { console.info('checkBoxGroupUIJsunit_0400 START'); await CommonFunc.sleep(1000); + // modify the selectedColor + globalThis.value.message.notify({name:'selectedColor',value:'rgb(238, 130, 238)'}) + await CommonFunc.sleep(2000); + // check the value of changed attribute + let strJson = getInspectorByKey('allck'); + let obj = JSON.parse(strJson); + console.info("[checkBoxGroupUIJsunit_0400 '] component obj is: " + JSON.stringify(obj)); + expect(obj.$attrs.selectedColor).assertEqual('#FFEE82EE'); + done(); + }); + + it('checkBoxGroupUIJsunit_0500', 0, async function (done) { + console.info('checkBoxGroupUIJsunit_0500 START'); + await CommonFunc.sleep(1000); + // modify the selectedColor + globalThis.value.message.notify({name:'selectedColor',value:Color.Green}) + await CommonFunc.sleep(2000); + // check the value of changed attribute + let strJson = getInspectorByKey('allck'); + let obj = JSON.parse(strJson); + console.info("[checkBoxGroupUIJsunit_0500 '] component obj is: " + JSON.stringify(obj)); + expect(obj.$attrs.selectedColor).assertEqual('#FF008000'); + done(); + }); + + it('checkBoxGroupUIJsunit_0600', 0, async function (done) { + console.info('checkBoxGroupUIJsunit_0600 START'); + await CommonFunc.sleep(1000); // test the clicking event of checkboxGroup - let driver = await UiDriver.create(); + let driver = Driver.create(); await driver.delayMs(waitUiReadyMs); - let checkboxAll = await driver.findComponent(BY.key('allck')); - expect(checkboxAll != null).assertTrue(); - // checkboxGroup click - await checkboxAll.click(); + let checkGoup = await driver.findComponent(ON.id('allck')); + await checkGoup.click(); await driver.delayMs(waitUiReadyMs); - // check the click event by text message - let text1 = await driver.findComponent(BY.text('SelectStatus.All')); - let text1tt = await text1.getText(); - expect(text1tt == 'SelectStatus.All').assertTrue(); - await checkboxAll.click(); + await checkGoup.click(); await driver.delayMs(waitUiReadyMs); - // add assert single checkbox selectedState - done(); + // check the isSelect and name + let ttx = await driver.findComponent(ON.id('text1')); + let txt = await ttx.getText(); + console.info("[checkBoxGroupUIJsunit_0600'] component obj is: " + txt); + expect(txt).assertEqual('["checkbox1","checkbox2","checkbox3"]'); + let ttxx = await driver.findComponent(ON.id('text2')); + let txtt = await ttxx.getText(); + console.info("[checkBoxGroupUIJsunit_0600'] component obj2 is: " + txtt); + expect(txtt).assertEqual('0'); + await checkGoup.click(); + await driver.delayMs(waitUiReadyMs); + done(); }); - it('checkBoxGroupUIJsunit_0500', 0, async function (done) { - console.info('checkBoxGroupUIJsunit_0500 START'); + it('checkBoxGroupUIJsunit_0700', 0, async function (done) { + console.info('checkBoxGroupUIJsunit_0700 START'); await CommonFunc.sleep(1000); - // test the clicking event of checkboxGroup - let driver = await UiDriver.create(); + let driver = Driver.create(); await driver.delayMs(waitUiReadyMs); - let checkbox2 = await driver.findComponent(BY.key('cb2')); - expect(checkbox2 != null).assertTrue(); - await checkbox2.click(); + let checkGoup = await driver.findComponent(ON.id('cb2')); + await checkGoup.click(); await driver.delayMs(waitUiReadyMs); - // test CheckboxGroup atrribute - let strJson = getInspectorByKey('allck'); - console.info("checkBoxGroupUIJsunit_0500 strJson:" + strJson); - let obj = JSON.parse(strJson); - console.info("checkBoxGroupUIJsunit_0500 component obj is: " + JSON.stringify(obj)); - expect(obj.$attrs.selectAll).assertEqual('true'); // false ? - expect(obj.$attrs.selectedColor).assertEqual('#007DFF'); - //add the select state onchange event assert - done(); + // check the isSelect and name + let ttx = await driver.findComponent(ON.id('text1')); + let txt = await ttx.getText(); + console.info("[checkBoxGroupUIJsunit_0700'] component obj is: " + txt); + expect(txt).assertEqual('["checkbox2"]'); + let ttxx = await driver.findComponent(ON.id('text2')); + let txtt = await ttxx.getText(); + console.info("[checkBoxGroupUIJsunit_0700'] component obj2 is: " + txtt); + expect(txtt).assertEqual('1'); + done(); }); - // 1.first click 2.two click test the name and checkboxstate }) } \ No newline at end of file diff --git a/arkui/ace_ets_component_ui/entry/src/main/ets/test/dataPickerJsunit.test.ets b/arkui/ace_ets_component_ui/entry/src/main/ets/test/dataPickerJsunit.test.ets index 4a1389f3031f1c1ccc2a79f146841145a5d042da..05b9f7d6a040947d37d58549d20f821731d14537 100644 --- a/arkui/ace_ets_component_ui/entry/src/main/ets/test/dataPickerJsunit.test.ets +++ b/arkui/ace_ets_component_ui/entry/src/main/ets/test/dataPickerJsunit.test.ets @@ -49,7 +49,7 @@ export default function dataPickerJsunit() { let strJson = getInspectorByKey('dataPicker'); let obj = JSON.parse(strJson); console.info("obj is: " + JSON.stringify(obj)); - console.info("dataPickerJsunit_0100'] component obj is: " + obj.$attrs.options); + console.info("dataPickerJsunit_0100'] component obj is: " + obj.$attrs.options + "---" + obj.$attrs.startDate); console.info("dataPickerJsunit_0100'] component obj is: " + obj.$attrs.start + "--" + obj.$attrs.end + "--" + obj.$attrs.selected); expect(obj.$attrs.lunar).assertEqual('false'); done(); diff --git a/arkui/ace_ets_component_ui/entry/src/main/ets/test/dividerJsunit.test.ets b/arkui/ace_ets_component_ui/entry/src/main/ets/test/dividerJsunit.test.ets index fdfd3a3a280bb3b9631cc6b117e405eb44d50ad8..887471d4da4ff85462b285c1fdf451c663fc29bc 100644 --- a/arkui/ace_ets_component_ui/entry/src/main/ets/test/dividerJsunit.test.ets +++ b/arkui/ace_ets_component_ui/entry/src/main/ets/test/dividerJsunit.test.ets @@ -116,7 +116,7 @@ export default function dividerJsunit() { console.info('dividerJsunit_0500 START'); await CommonFunc.sleep(1000); // test the common attribute - globalThis.value.message.notify({name:'width',value:'1.0'}) + globalThis.value.message.notify({name:'widthK',value:'1.0'}) await CommonFunc.sleep(2000); // check the value of changed attribute let strJson = getInspectorByKey('divider'); diff --git a/arkui/ace_ets_component_ui/entry/src/main/module.json b/arkui/ace_ets_component_ui/entry/src/main/module.json index c47a2e0dd6aa5f30fdb706b5a85212ae46d7dde5..9a7fb2986c74e9bc810340c78650fc19af4509a8 100644 --- a/arkui/ace_ets_component_ui/entry/src/main/module.json +++ b/arkui/ace_ets_component_ui/entry/src/main/module.json @@ -14,6 +14,12 @@ "installationFree": false, "uiSyntax": "ets", "pages": "$profile:main_pages", + "metadata": [ + { + "name": "ArkTSPartialUpdate", + "value": "true" + } + ], "abilities": [{ "name": "com.example.myapplication.MainAbility", "srcEntrance": "./ets/MainAbility/MainAbility.ts",