From 47a8ae94d000915878176e5e4ec26998d46a79d7 Mon Sep 17 00:00:00 2001 From: zhanghailin Date: Mon, 20 Feb 2023 10:38:35 +0800 Subject: [PATCH] FlexAlignItems-Center xts code submit Signed-off-by: zhanghailin --- .../ItemAlign_Center/FlexAlignSelf.ets | 49 +++++++ .../alignItems/ItemAlign_Center/FlexBase.ets | 64 +++++++++ .../ItemAlign_Center/FlexExceed.ets | 66 +++++++++ .../ItemAlign_Center/FlexHeightModify.ets | 59 +++++++++ .../ItemAlign_Center/FlexMargin.ets | 50 +++++++ .../ItemAlign_Center/FlexOffset.ets | 49 +++++++ .../ItemAlign_Center/FlexPadding.ets | 61 +++++++++ .../ItemAlign_Center/FlexTextMargin.ets | 60 +++++++++ .../ItemAlign_Center/FlexVisibility.ets | 60 +++++++++ .../FlexAlignSelfJsunit.test.ets | 82 ++++++++++++ .../ItemAlign_Center/FlexBaseJsunit.test.ets | 119 +++++++++++++++++ .../FlexExceedJsunit.test.ets | 113 ++++++++++++++++ .../FlexHeightModifyJsunit.test.ets | 111 ++++++++++++++++ .../FlexMarginJsunit.test.ets | 80 +++++++++++ .../FlexOffsetJsunit.test.ets | 77 +++++++++++ .../FlexPaddingJsunit.test.ets | 111 ++++++++++++++++ .../FlexTextMarginJsunit.test.ets | 116 ++++++++++++++++ .../FlexVisibilityJsunit.test.ets | 125 ++++++++++++++++++ 18 files changed, 1452 insertions(+) create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexAlignSelf.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexBase.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexExceed.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexHeightModify.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexMargin.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexOffset.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexPadding.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexTextMargin.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexVisibility.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexAlignSelfJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexBaseJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexExceedJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexHeightModifyJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexMarginJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexOffsetJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexPaddingJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexTextMarginJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexVisibilityJsunit.test.ets diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexAlignSelf.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexAlignSelf.ets new file mode 100644 index 000000000..179222b65 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexAlignSelf.ets @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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. + */ + +@Entry +@Component +struct FlexAlignSelf_Center { + private content: string = "FlexAlignSelf_Center Page"; + + onPageShow() { + console.info('FlexAlignSelf_Center page show called'); + } + + onBuildDone() { + console.info('FlexAlignSelf_Center page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexTest12').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Center, + wrap: FlexWrap.NoWrap, + }) { + Text('1').width(150).height(50).backgroundColor(0xF5DEB3).alignSelf(ItemAlign.End).key('textAlignSelf01') + Text('2').width(150).height(100).backgroundColor(0xD2B48C).key('textAlignSelf02') + Text('3').width(150).height(150).backgroundColor(0xF5DEB3).key('textAlignSelf03') + } + .key('flexAlignSelf') + .height(200) + .width(500) + .backgroundColor(0xAFEEEE) + }.width('100%').margin({ top: 5 }) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexBase.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexBase.ets new file mode 100644 index 000000000..b01a49e75 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexBase.ets @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 '../../../../common/MessageManager'; +@Entry +@Component +struct FlexBase_Center { + @State testHeight: number = 150 + @State testWidth: number = 450 + messageManager:MessageManager = new MessageManager() + private content: string = "FlexBase_Center Page"; + onPageShow() { + console.info('FlexBase_Center onPageShow'); + globalThis.value = { + name:'messageManager',message:this.messageManager + } + let callback:Callback = (message:any) => { + console.log('message = ' + message.name + "--" + message.value); + if (message.name == 'height') { + this.testHeight = message.value; + } + if (message.name == 'width') { + this.testWidth = message.value; + } + } + this.messageManager.registerCallback(callback); + } + + onBuildDone() { + console.info('FlexBase_Center page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexBase_1').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Center, + wrap: FlexWrap.NoWrap, + }) { + Text('1').width(150).height(50).backgroundColor(0xF5DEB3).key('textFlex01') + Text('2').width(150).height(100).backgroundColor(0xD2B48C).key('textFlex02') + Text('3').width(150).height(150).backgroundColor(0xF5DEB3).key('textFlex03') + } + .key('flex01') + .height(this.testHeight) + .width(this.testWidth) + .backgroundColor(0xAFEEEE) + }.width('100%').margin({ top: 5 }) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexExceed.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexExceed.ets new file mode 100644 index 000000000..38e766d68 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexExceed.ets @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 '../../../../common/MessageManager'; +@Entry +@Component +struct FlexExceed_Center { + @State testPadding: number = 0 + @State testMargin: number = 0 + messageManager:MessageManager = new MessageManager() + private content: string = "FlexExceed_Center Page"; + onPageShow() { + console.info('FlexBase_Center onPageShow'); + globalThis.value = { + name:'messageManager',message:this.messageManager + } + let callback:Callback = (message:any) => { + console.log('message = ' + message.name + "--" + message.value); + if (message.name == 'padding') { + this.testPadding = message.value; + } + if (message.name == 'margin') { + this.testMargin = message.value; + } + } + this.messageManager.registerCallback(callback); + } + + onBuildDone() { + console.info('FlexExceed_Center page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexExceed_1').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Center, + wrap: FlexWrap.NoWrap, + }) { + Text('1').width(150).height(50).backgroundColor(0xF5DEB3).key('textExceed01') + Text('2').width(150).height(100).backgroundColor(0xD2B48C).key('textExceed02') + Text('3').width(150).height(150).backgroundColor(0xF5DEB3).key('textExceed03') + } + .key('flexExceed01') + .height(200) + .width(500) + .margin(this.testMargin) + .padding(this.testPadding) + .backgroundColor(0xAFEEEE) + }.width('100%').margin({ top: 5 }).alignItems(HorizontalAlign.Start) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexHeightModify.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexHeightModify.ets new file mode 100644 index 000000000..971e9676b --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexHeightModify.ets @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 '../../../../common/MessageManager'; +@Entry +@Component +struct FlexHeightModify_Center { + @State testHeight: number = 50 + messageManager:MessageManager = new MessageManager() + private content: string = "FlexHeightModify_Center Page"; + onPageShow() { + console.info('FlexHeightModify_Center onPageShow'); + globalThis.value = { + name:'messageManager',message:this.messageManager + } + let callback:Callback = (message:any) => { + console.log('message = ' + message.name + "--" + message.value); + if (message.name == 'height') { + this.testHeight = message.value; + } + } + this.messageManager.registerCallback(callback); + } + onBuildDone() { + console.info('FlexHeightModify_Center page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexHeightModify').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Center, + wrap: FlexWrap.NoWrap, + }) { + Text('1').width(150).height(this.testHeight).backgroundColor(0xF5DEB3).key('textHeightModify01') + Text('2').width(150).height(100).backgroundColor(0xD2B48C).key('textHeightModify02') + Text('3').width(150).height(150).backgroundColor(0xF5DEB3).key('textHeightModify03') + } + .key('flexHeightModify') + .height(200) + .width(500) + .backgroundColor(0xAFEEEE) + }.width('100%').margin({ top: 5 }) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexMargin.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexMargin.ets new file mode 100644 index 000000000..bf3f4830b --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexMargin.ets @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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. + */ + +@Entry +@Component +struct FlexMargin_Center { + private content: string = "FlexMargin_Center Page"; + + onPageShow() { + console.info('FlexMargin_Center page show called'); + } + + onBuildDone() { + console.info('FlexMargin_Center page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexTest05').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Center, + wrap: FlexWrap.NoWrap, + }) { + Text('1').width(150).height(50).backgroundColor(0xF5DEB3).key('textFlexMargin01') + Text('2').width(150).height(100).backgroundColor(0xD2B48C).key('textFlexMargin02') + Text('3').width(150).height(150).backgroundColor(0xF5DEB3).key('textFlexMargin03') + } + .key('flexMargin') + .height(200) + .width(500) + .margin(10) + .backgroundColor(0xAFEEEE) + }.width('100%').margin({ top: 5 }).alignItems(HorizontalAlign.Start) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexOffset.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexOffset.ets new file mode 100644 index 000000000..05535bb7b --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexOffset.ets @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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. + */ + +@Entry +@Component +struct FlexOffset_Center { + private content: string = "FlexOffset_Center Page"; + + onPageShow() { + console.info('FlexOffset_Center page show called'); + } + + onBuildDone() { + console.info('FlexOffset_Center page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexTest09').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Center, + wrap: FlexWrap.NoWrap, + }) { + Text('1').width(150).height(50).backgroundColor(0xF5DEB3).offset({ x: 15, y: 30 }).key('textOffset01') + Text('2').width(150).height(100).backgroundColor(0xD2B48C).key('textOffset02') + Text('3').width(150).height(150).backgroundColor(0xF5DEB3).key('textOffset03') + } + .key('flexOffset') + .height(200) + .width(500) + .backgroundColor(0xAFEEEE) + }.width('100%').margin({ top: 5 }) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexPadding.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexPadding.ets new file mode 100644 index 000000000..8ae2359c6 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexPadding.ets @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 '../../../../common/MessageManager'; +@Entry +@Component +struct FlexPadding_Center { + @State testPadding: number = 0 + messageManager:MessageManager = new MessageManager() + private content: string = "FlexPadding_Center Page"; + onPageShow() { + console.info('FlexPadding_Center onPageShow'); + globalThis.value = { + name:'messageManager',message:this.messageManager + } + let callback:Callback = (message:any) => { + console.log('message = ' + message.name + "--" + message.value); + if (message.name == 'padding') { + this.testPadding = message.value; + } + } + this.messageManager.registerCallback(callback); + } + + onBuildDone() { + console.info('FlexPadding_Center page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexPadding_1').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Center, + wrap: FlexWrap.NoWrap, + }) { + Text('1').width(150).height(50).backgroundColor(0xF5DEB3).key('textFlexPadding01') + Text('2').width(150).height(100).backgroundColor(0xD2B48C).key('textFlexPadding02') + Text('3').width(150).height(150).backgroundColor(0xF5DEB3).key('textFlexPadding03') + } + .key('flexPadding01') + .height(200) + .width(500) + .padding(this.testPadding) + .backgroundColor(0xAFEEEE) + }.width('100%').margin({ top: 5 }).alignItems(HorizontalAlign.Start) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexTextMargin.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexTextMargin.ets new file mode 100644 index 000000000..d7bf9b68d --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexTextMargin.ets @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 '../../../../common/MessageManager'; +@Entry +@Component +struct FlexTextMargin_Center { + @State testTextMargin: number = 0 + messageManager:MessageManager = new MessageManager() + private content: string = "FlexTextMargin_Center Page"; + onPageShow() { + console.info('FlexBase_Center onPageShow'); + globalThis.value = { + name:'messageManager',message:this.messageManager + } + let callback:Callback = (message:any) => { + console.log('message = ' + message.name + "--" + message.value); + if (message.name == 'margin') { + this.testTextMargin = message.value; + } + } + this.messageManager.registerCallback(callback); + } + + onBuildDone() { + console.info('FlexTextMargin_Center page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexTextMargin_1').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Center, + wrap: FlexWrap.NoWrap, + }) { + Text('1').width(150).height(50).backgroundColor(0xF5DEB3).margin(this.testTextMargin).key('textMargin01') + Text('2').width(150).height(100).backgroundColor(0xD2B48C).key('textMargin02') + Text('3').width(150).height(150).backgroundColor(0xF5DEB3).key('textMargin03') + } + .key('flexTextMargin01') + .height(200) + .width(500) + .backgroundColor(0xAFEEEE) + }.width('100%').alignItems(HorizontalAlign.Start) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexVisibility.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexVisibility.ets new file mode 100644 index 000000000..bde828e4e --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexVisibility.ets @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 '../../../../common/MessageManager'; +@Entry +@Component +struct FlexVisibility_Center { + @State testVisibility: number = Visibility.Visible + messageManager:MessageManager = new MessageManager() + private content: string = "FlexVisibility_Center Page"; + onPageShow() { + console.info('FlexBase_Center onPageShow'); + globalThis.value = { + name:'messageManager',message:this.messageManager + } + let callback:Callback = (message:any) => { + console.log('message = ' + message.name + "--" + message.value); + if (message.name == 'visibility') { + this.testVisibility = message.value; + } + } + this.messageManager.registerCallback(callback); + } + + onBuildDone() { + console.info('FlexVisibility_Center page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexTest10').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Center, + wrap: FlexWrap.NoWrap, + }) { + Text('1').width(150).height(50).backgroundColor(0xF5DEB3).visibility(this.testVisibility).key('textVisible01') + Text('2').width(150).height(100).backgroundColor(0xD2B48C).key('textVisible02') + Text('3').width(150).height(150).backgroundColor(0xF5DEB3).key('textVisible03') + } + .key('flexVisible') + .height(200) + .width(500) + .backgroundColor(0xAFEEEE) + }.width('100%').margin({ top: 5 }) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexAlignSelfJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexAlignSelfJsunit.test.ets new file mode 100644 index 000000000..1bb01b669 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexAlignSelfJsunit.test.ets @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 "@ohos/hypium"; +import router from '@system.router'; +import CommonFunc from "../../../../MainAbility/common/Common"; +import { MessageManager,Callback } from '../../../../MainAbility/common/MessageManager'; +export default function flexAlignSelf_CenterJsunit() { + describe('flexItemAlignCenterTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexAlignSelf', + } + try { + router.clear(); + await CommonFunc.sleep(1000); + let pages = router.getState(); + console.info("get FlexSecond state success " + JSON.stringify(pages)); + if (!("FlexSecond" == pages.name)) { + console.info("get FlexSecond state success " + JSON.stringify(pages.name)); + let result = await router.push(options) + console.info("push FlexSecond page success " + JSON.stringify(result)); + } + } catch (err) { + console.error("push FlexSecond page error " + JSON.stringify(err)); + } + await CommonFunc.sleep(2000); + done() + }); + + afterEach(async function () { + await CommonFunc.sleep(1000); + console.info("FlexSecond after each called"); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_1300 + * @tc.name testFlexItemAlignCenterSetAlignSelf + * @tc.desc The first subcomponent set ItemAlign.End attribute. + */ + it('testFlexItemAlignCenterSetAlignSelf', 0, async function (done) { + console.info('new testFlexItemAlignCenterSetAlignSelf START'); + let strJson1 = getInspectorByKey('flexAlignSelf'); + let obj1 = JSON.parse(strJson1); + let strJson2 = getInspectorByKey('textAlignSelf01'); + let obj2 = JSON.parse(strJson2); + let alignSelf01 = CommonFunc.getComponentRect('textAlignSelf01'); + let alignSelf02 = CommonFunc.getComponentRect('textAlignSelf02'); + let alignSelf03 = CommonFunc.getComponentRect('textAlignSelf03'); + let flexAlignSelf01 = CommonFunc.getComponentRect('flexAlignSelf'); + expect(alignSelf01.bottom).assertEqual(flexAlignSelf01.bottom) + expect(Math.round(alignSelf01.bottom - alignSelf01.top)).assertEqual(vp2px(50)) + expect(Math.round(alignSelf01.right - alignSelf01.left)).assertEqual(vp2px(150)) + expect(Math.round(alignSelf02.bottom - alignSelf02.top)).assertEqual(vp2px(100)) + expect(Math.round(alignSelf02.right - alignSelf02.left)).assertEqual(vp2px(150)) + expect(Math.round(alignSelf03.bottom - alignSelf03.top)).assertEqual(vp2px(150)) + expect(Math.round(alignSelf03.right - alignSelf03.left)).assertEqual(vp2px(150)) + expect(alignSelf02.top - flexAlignSelf01.top).assertEqual(flexAlignSelf01.bottom - alignSelf02.bottom) + expect(alignSelf03.top - flexAlignSelf01.top).assertEqual(flexAlignSelf01.bottom - alignSelf03.bottom) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + expect(obj2.$attrs.alignSelf).assertEqual("ItemAlign.End"); + expect(Math.round(alignSelf03.right - alignSelf03.left)).assertEqual(vp2px(150)) + expect(Math.round(alignSelf02.right - alignSelf02.left)).assertEqual(vp2px(150)) + expect(Math.round(flexAlignSelf01.right - alignSelf03.right)).assertEqual(vp2px(50)) + console.info('new testFlexItemAlignCenterSetAlignSelf END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexBaseJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexBaseJsunit.test.ets new file mode 100644 index 000000000..7979e29ad --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexBaseJsunit.test.ets @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 "@ohos/hypium"; +import router from '@system.router'; +import CommonFunc from "../../../../MainAbility/common/Common"; +import { MessageManager,Callback } from '../../../../MainAbility/common/MessageManager'; +export default function flexBase_CenterJsunit() { + describe('flexItemAlignCenterTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexBase', + } + try { + router.clear(); + await CommonFunc.sleep(1000); + let pages = router.getState(); + console.info("get FlexBase state success " + JSON.stringify(pages)); + if (!("FlexBase" == pages.name)) { + console.info("get FlexBase state success " + JSON.stringify(pages.name)); + let result = await router.push(options) + console.info("push FlexBase page success " + JSON.stringify(result)); + } + } catch (err) { + console.error("push FlexBase page error " + JSON.stringify(err)); + } + await CommonFunc.sleep(2000); + done() + }); + afterEach(async function () { + await CommonFunc.sleep(1000); + console.info("FlexBase after each called"); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_0100 + * @tc.name testFlexItemAlignCenter + * @tc.desc The subcomponent is inside the parent component. + */ + it('testFlexItemAlignCenter', 0, async function (done) { + console.info('new testFlexItemAlignCenter START'); + globalThis.value.message.notify({name:'height', value:200}); + globalThis.value.message.notify({name:'width', value:500}); + await CommonFunc.sleep(2000); + let strJson1 = getInspectorByKey('flex01'); + let obj1 = JSON.parse(strJson1); + let textFlex01 = CommonFunc.getComponentRect('textFlex01'); + let textFlex02 = CommonFunc.getComponentRect('textFlex02'); + let textFlex03 = CommonFunc.getComponentRect('textFlex03'); + let flex01 = CommonFunc.getComponentRect('flex01'); + expect(textFlex01.left).assertEqual(flex01.left) + expect(textFlex01.right).assertEqual(textFlex02.left) + expect(textFlex02.right).assertEqual(textFlex03.left) + expect(Math.round(flex01.right - textFlex03.right)).assertEqual(vp2px(50)) + expect(textFlex01.top - flex01.top).assertEqual(flex01.bottom - textFlex01.bottom) + expect(textFlex02.top - flex01.top).assertEqual(flex01.bottom - textFlex02.bottom) + expect(textFlex03.top - flex01.top).assertEqual(flex01.bottom - textFlex03.bottom) + expect(Math.round(textFlex01.bottom - textFlex01.top)).assertEqual(vp2px(50)) + expect(Math.round(textFlex02.bottom - textFlex02.top)).assertEqual(vp2px(100)) + expect(Math.round(textFlex03.bottom - textFlex03.top)).assertEqual(vp2px(150)) + expect(Math.round(textFlex01.right - textFlex01.left)).assertEqual(vp2px(150)) + expect(Math.round(textFlex02.right - textFlex02.left)).assertEqual(vp2px(150)) + expect(Math.round(textFlex03.right - textFlex03.left)).assertEqual(vp2px(150)) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + console.info('new testFlexItemAlignCenter END'); + done(); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_0200 + * @tc.name testFlexItemAlignCenterExceed + * @tc.desc The subcomponent exceeds the parent component. + */ + it('testFlexItemAlignCenterExceed', 0, async function (done) { + console.info('new testFlexItemAlignCenterExceed START'); + globalThis.value.message.notify({name:'height', value:140}); + globalThis.value.message.notify({name:'width', value:420}); + await CommonFunc.sleep(3000); + let strJson1 = getInspectorByKey('flex01'); + let obj1 = JSON.parse(strJson1); + let textFlex01 = CommonFunc.getComponentRect('textFlex01'); + let textFlex02 = CommonFunc.getComponentRect('textFlex02'); + let textFlex03 = CommonFunc.getComponentRect('textFlex03'); + let flex01 = CommonFunc.getComponentRect('flex01'); + expect(textFlex01.left).assertEqual(flex01.left) + expect(textFlex01.right).assertEqual(textFlex02.left) + expect(textFlex02.right).assertEqual(textFlex03.left) + expect(textFlex03.top).assertLess(flex01.top) + expect(textFlex03.bottom).assertLarger(flex01.bottom) + expect(textFlex03.right).assertEqual(flex01.right) + expect(textFlex01.top - flex01.top).assertEqual(flex01.bottom - textFlex01.bottom) + expect(textFlex02.top - flex01.top).assertEqual(flex01.bottom - textFlex02.bottom) + expect(Math.round(textFlex01.bottom - textFlex01.top)).assertEqual(vp2px(50)) + expect(Math.round(textFlex02.bottom - textFlex02.top)).assertEqual(vp2px(100)) + expect(Math.round(textFlex03.bottom - textFlex03.top)).assertEqual(vp2px(150)) + expect(Math.round(textFlex01.right - textFlex01.left)).assertEqual(vp2px(140)) + expect(Math.round(textFlex02.right - textFlex02.left)).assertEqual(vp2px(140)) + expect(Math.round(textFlex03.right - textFlex03.left)).assertEqual(vp2px(140)) + + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + console.info('new testFlexItemAlignCenterExceed END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexExceedJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexExceedJsunit.test.ets new file mode 100644 index 000000000..a961593d8 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexExceedJsunit.test.ets @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 "@ohos/hypium"; +import router from '@system.router'; +import CommonFunc from "../../../../MainAbility/common/Common"; +import { MessageManager,Callback } from '../../../../MainAbility/common/MessageManager'; +export default function flexExceed_CenterJsunit() { + describe('flexItemAlignCenterTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexExceed', + } + try { + router.clear(); + await CommonFunc.sleep(1000); + let pages = router.getState(); + console.info("get FlexExceed state success " + JSON.stringify(pages)); + if (!("FlexExceed" == pages.name)) { + console.info("get FlexExceed state success " + JSON.stringify(pages.name)); + let result = await router.push(options) + console.info("push FlexExceed page success " + JSON.stringify(result)); + } + } catch (err) { + console.error("push FlexExceed page error " + JSON.stringify(err)); + } + await CommonFunc.sleep(2000); + done() + }); + afterEach(async function () { + await CommonFunc.sleep(1000); + console.info("FlexExceed after each called"); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_0600 + * @tc.name testFlexItemAlignCenterSetMarPad + * @tc.desc Subcomponent inside when parent component set margin and padding. + */ + it('testFlexItemAlignCenterSetMarPad', 0, async function (done) { + console.info('new testFlexItemAlignCenterSetMarPad START'); + globalThis.value.message.notify({name:'padding', value:10}) + globalThis.value.message.notify({name:'margin', value:10}) + await CommonFunc.sleep(2000); + let strJson1 = getInspectorByKey('flexExceed01'); + let obj1 = JSON.parse(strJson1); + let textExceed01 = CommonFunc.getComponentRect('textExceed01'); + let textExceed02 = CommonFunc.getComponentRect('textExceed02'); + let textExceed03 = CommonFunc.getComponentRect('textExceed03'); + let flexExceed01 = CommonFunc.getComponentRect('flexExceed01'); + expect(Math.round(textExceed01.left - flexExceed01.left)).assertEqual(vp2px(10)) + expect(textExceed03.right).assertLess(flexExceed01.right) + expect(textExceed01.top - flexExceed01.top).assertEqual(flexExceed01.bottom - textExceed01.bottom) + expect(textExceed02.top - flexExceed01.top).assertEqual(flexExceed01.bottom - textExceed02.bottom) + expect(textExceed03.top - flexExceed01.top).assertEqual(flexExceed01.bottom - textExceed03.bottom) + expect(Math.round(textExceed01.bottom - textExceed01.top)).assertEqual(vp2px(50)) + expect(Math.round(textExceed02.bottom - textExceed02.top)).assertEqual(vp2px(100)) + expect(Math.round(textExceed03.bottom - textExceed03.top)).assertEqual(vp2px(150)) + expect(Math.round(textExceed01.right - textExceed01.left)).assertEqual(vp2px(150)) + expect(Math.round(textExceed02.right - textExceed02.left)).assertEqual(vp2px(150)) + expect(Math.round(textExceed03.right - textExceed03.left)).assertEqual(vp2px(150)) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + console.info('new testFlexItemAlignCenterSetMarPad END'); + done(); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_0700 + * @tc.name testFlexItemAlignCenterSetMarPadExceed + * @tc.desc Subcomponent outside when parent component set margin and padding. + */ + it('testFlexItemAlignCenterSetMarPadExceed', 0, async function (done) { + console.info('new testFlexItemAlignCenterSetMarPadExceed START'); + globalThis.value.message.notify({name:'padding', value:30}); + globalThis.value.message.notify({name:'margin', value:30}); + await CommonFunc.sleep(2000); + let strJson1 = getInspectorByKey('flexExceed01'); + let obj1 = JSON.parse(strJson1); + let textExceed01 = CommonFunc.getComponentRect('textExceed01'); + let textExceed02 = CommonFunc.getComponentRect('textExceed02'); + let textExceed03 = CommonFunc.getComponentRect('textExceed03'); + let flexExceed01 = CommonFunc.getComponentRect('flexExceed01'); + expect(Math.round(textExceed01.left - flexExceed01.left)).assertEqual(vp2px(30)) + expect(textExceed03.right).assertLess(flexExceed01.right) + expect(textExceed01.top - flexExceed01.top).assertEqual(flexExceed01.bottom - textExceed01.bottom) + expect(textExceed02.top - flexExceed01.top).assertEqual(flexExceed01.bottom - textExceed02.bottom) + expect(textExceed03.top - flexExceed01.top).assertEqual(flexExceed01.bottom - textExceed03.bottom) + expect(Math.round(textExceed01.bottom - textExceed01.top)).assertEqual(vp2px(50)) + expect(Math.round(textExceed02.bottom - textExceed02.top)).assertEqual(vp2px(100)) + expect(Math.round(textExceed03.bottom - textExceed03.top)).assertEqual(vp2px(150)) + expect(Math.round(textExceed01.right - textExceed01.left)).assertEqual(vp2px(440/3)) + expect(Math.round(textExceed02.right - textExceed02.left)).assertEqual(vp2px(440/3)) + expect(Math.round(textExceed03.right - textExceed03.left)).assertEqual(vp2px(440/3)) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + console.info('new testFlexItemAlignCenterSetMarPadExceed END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexHeightModifyJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexHeightModifyJsunit.test.ets new file mode 100644 index 000000000..116fa3ff7 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexHeightModifyJsunit.test.ets @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 "@ohos/hypium"; +import router from '@system.router'; +import CommonFunc from "../../../../MainAbility/common/Common"; +import { MessageManager,Callback } from '../../../../MainAbility/common/MessageManager'; +export default function flexHeightModify_CenterJsunit() { + describe('flexItemAlignCenterTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexHeightModify', + } + try { + router.clear(); + await CommonFunc.sleep(1000); + let pages = router.getState(); + console.info("get FlexHeightModify state success " + JSON.stringify(pages)); + if (!("FlexHeightModify" == pages.name)) { + console.info("get FlexHeightModify state success " + JSON.stringify(pages.name)); + let result = await router.push(options) + console.info("push FlexHeightModify page success " + JSON.stringify(result)); + } + } catch (err) { + console.error("push FlexHeightModify page error " + JSON.stringify(err)); + } + await CommonFunc.sleep(2000); + done() + }); + afterEach(async function () { + await CommonFunc.sleep(1000); + console.info("FlexHeightModify after each called"); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_0800 + * @tc.name testFlexItemAlignCenterDefaultSize + * @tc.desc Modify the first subcomponent's height. + */ + it('testFlexItemAlignCenterDefaultSize', 0, async function (done) { + console.info('new testFlexItemAlignCenterDefaultSize START'); + let strJson1 = getInspectorByKey('flexHeightModify'); + let obj1 = JSON.parse(strJson1); + let textHeightModify01 = CommonFunc.getComponentRect('textHeightModify01'); + let textHeightModify02 = CommonFunc.getComponentRect('textHeightModify02'); + let textHeightModify03 = CommonFunc.getComponentRect('textHeightModify03'); + let flexHeightModify = CommonFunc.getComponentRect('flexHeightModify'); + expect(textHeightModify01.left).assertEqual(flexHeightModify.left) + expect(textHeightModify02.left).assertEqual(textHeightModify01.right) + expect(textHeightModify01.top - flexHeightModify.top).assertEqual(flexHeightModify.bottom - textHeightModify01.bottom) + expect(textHeightModify02.top - flexHeightModify.top).assertEqual(flexHeightModify.bottom - textHeightModify02.bottom) + expect(textHeightModify03.top - flexHeightModify.top).assertEqual(flexHeightModify.bottom - textHeightModify03.bottom) + expect(Math.round((textHeightModify01.top - flexHeightModify.top)*10)/10).assertEqual(Math.round(vp2px(75)*10)/10) + expect(Math.round(textHeightModify01.bottom - textHeightModify01.top)).assertEqual(vp2px(50)) + expect(Math.round(textHeightModify02.bottom - textHeightModify02.top)).assertEqual(vp2px(100)) + expect(Math.round(textHeightModify03.bottom - textHeightModify03.top)).assertEqual(vp2px(150)) + expect(Math.round(textHeightModify01.right - textHeightModify01.left)).assertEqual(vp2px(150)) + expect(Math.round(textHeightModify02.right - textHeightModify02.left)).assertEqual(vp2px(150)) + expect(Math.round(textHeightModify03.right - textHeightModify03.left)).assertEqual(vp2px(150)) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + console.info('new testFlexItemAlignCenterDefaultSize END'); + done(); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_0900 + * @tc.name testFlexItemAlignCenterHeightModify + * @tc.desc Modify the first subcomponent's height. + */ + it('testFlexItemAlignCenterHeightModify', 0, async function (done) { + console.info('new testFlexItemAlignCenterHeightModify START'); + globalThis.value.message.notify({name:'height', value:80}); + await CommonFunc.sleep(2000); + let strJson1 = getInspectorByKey('flexHeightModify'); + let obj1 = JSON.parse(strJson1); + let textHeightModify01 = CommonFunc.getComponentRect('textHeightModify01'); + let textHeightModify02 = CommonFunc.getComponentRect('textHeightModify02'); + let textHeightModify03 = CommonFunc.getComponentRect('textHeightModify03'); + let flexHeightModify = CommonFunc.getComponentRect('flexHeightModify'); + expect(textHeightModify01.left).assertEqual(flexHeightModify.left) + expect(textHeightModify02.left).assertEqual(textHeightModify01.right) + expect(textHeightModify01.top - flexHeightModify.top).assertEqual(flexHeightModify.bottom - textHeightModify01.bottom) + expect(textHeightModify02.top - flexHeightModify.top).assertEqual(flexHeightModify.bottom - textHeightModify02.bottom) + expect(textHeightModify03.top - flexHeightModify.top).assertEqual(flexHeightModify.bottom - textHeightModify03.bottom) + expect(Math.round(textHeightModify01.top - flexHeightModify.top)).assertEqual(vp2px(60)) + expect(Math.round(textHeightModify01.bottom - textHeightModify01.top)).assertEqual(vp2px(80)) + expect(Math.round(textHeightModify02.bottom - textHeightModify02.top)).assertEqual(vp2px(100)) + expect(Math.round(textHeightModify03.bottom - textHeightModify03.top)).assertEqual(vp2px(150)) + expect(Math.round(textHeightModify01.right - textHeightModify01.left)).assertEqual(vp2px(150)) + expect(Math.round(textHeightModify02.right - textHeightModify02.left)).assertEqual(vp2px(150)) + expect(Math.round(textHeightModify03.right - textHeightModify03.left)).assertEqual(vp2px(150)) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + console.info('new testFlexItemAlignCenterHeightModify END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexMarginJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexMarginJsunit.test.ets new file mode 100644 index 000000000..d55360070 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexMarginJsunit.test.ets @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 "@ohos/hypium"; +import router from '@system.router'; +import CommonFunc from "../../../../MainAbility/common/Common"; +export default function flexMargin_CenterJsunit() { + describe('flexItemAlignCenterTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexMargin', + } + try { + router.clear(); + await CommonFunc.sleep(1000); + let pages = router.getState(); + console.info("get FlexMargin state success " + JSON.stringify(pages)); + if (!("FlexMargin" == pages.name)) { + console.info("get FlexMargin state success " + JSON.stringify(pages.name)); + let result = await router.push(options) + console.info("push FlexMargin page success " + JSON.stringify(result)); + } + } catch (err) { + console.error("push FlexMargin page error " + JSON.stringify(err)); + } + await CommonFunc.sleep(2000); + done() + }); + afterEach(async function () { + await CommonFunc.sleep(1000); + console.info("FlexMargin after each called"); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_0500 + * @tc.name testItemAlignCenterParentSetMargin + * @tc.desc Parent component set margin attribute. + */ + it('testItemAlignCenterParentSetMargin', 0, async function (done) { + console.info('new testItemAlignCenterParentSetMargin START'); + let strJson1 = getInspectorByKey('flexMargin'); + let obj1 = JSON.parse(strJson1); + let textFlexMargin01 = CommonFunc.getComponentRect('textFlexMargin01'); + let textFlexMargin02 = CommonFunc.getComponentRect('textFlexMargin02'); + let textFlexMargin03 = CommonFunc.getComponentRect('textFlexMargin03'); + let flexMargin = CommonFunc.getComponentRect('flexMargin'); + expect(textFlexMargin01.left).assertEqual(flexMargin.left) + expect(textFlexMargin01.right).assertEqual(textFlexMargin02.left) + expect(textFlexMargin02.right).assertEqual(textFlexMargin03.left) + + expect(Math.round(flexMargin.right - textFlexMargin03.right)).assertEqual(vp2px(50)) + expect(textFlexMargin01.top - flexMargin.top).assertEqual(flexMargin.bottom - textFlexMargin01.bottom) + expect(textFlexMargin02.top - flexMargin.top).assertEqual(flexMargin.bottom - textFlexMargin02.bottom) + expect(textFlexMargin03.top - flexMargin.top).assertEqual(flexMargin.bottom - textFlexMargin03.bottom) + expect(Math.round(textFlexMargin01.bottom - textFlexMargin01.top)).assertEqual(vp2px(50)) + expect(Math.round(textFlexMargin02.bottom - textFlexMargin02.top)).assertEqual(vp2px(100)) + expect(Math.round(textFlexMargin03.bottom - textFlexMargin03.top)).assertEqual(vp2px(150)) + expect(Math.round(textFlexMargin01.right - textFlexMargin01.left)).assertEqual(vp2px(150)) + expect(Math.round(textFlexMargin02.right - textFlexMargin02.left)).assertEqual(vp2px(150)) + expect(Math.round(textFlexMargin03.right - textFlexMargin03.left)).assertEqual(vp2px(150)) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + console.info('new testItemAlignCenterParentSetMargin END'); + done(); + }); + + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexOffsetJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexOffsetJsunit.test.ets new file mode 100644 index 000000000..42e098584 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexOffsetJsunit.test.ets @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 "@ohos/hypium"; +import router from '@system.router'; +import CommonFunc from "../../../../MainAbility/common/Common"; +export default function flexOffset_CenterJsunit() { + describe('flexItemAlignCenterTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexOffset', + } + try { + router.clear(); + await CommonFunc.sleep(1000); + let pages = router.getState(); + console.info("get flexOffsetTest state success " + JSON.stringify(pages)); + if (!("flexOffsetTest" == pages.name)) { + console.info("get flexOffsetTest state success " + JSON.stringify(pages.name)); + let result = await router.push(options) + console.info("push flexOffsetTest page success " + JSON.stringify(result)); + } + } catch (err) { + console.error("push flexOffsetTest page error " + JSON.stringify(err)); + } + await CommonFunc.sleep(2000); + done() + }); + afterEach(async function () { + await CommonFunc.sleep(1000); + console.info("flexOffsetTest after each called"); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_1000 + * @tc.name testFlexItemAlignCenterSetOffset + * @tc.desc First subcomponent set offset attribute. + */ + it('testFlexItemAlignCenterSetOffset', 0, async function (done) { + console.info('new testFlexItemAlignCenterSetOffset START'); + let strJson1 = getInspectorByKey('flexOffset'); + let obj1 = JSON.parse(strJson1); + let textOffset01 = CommonFunc.getComponentRect('textOffset01'); + let textOffset02 = CommonFunc.getComponentRect('textOffset02'); + let textOffset03 = CommonFunc.getComponentRect('textOffset03'); + let flexOffset = CommonFunc.getComponentRect('flexOffset'); + expect(Math.round((textOffset01.right - textOffset02.left)*10)/10).assertEqual(Math.round(vp2px(15)*10)/10) + expect(Math.round((textOffset01.top - flexOffset.top)*10)/10).assertEqual(Math.round(vp2px(105)*10)/10) + expect(Math.round((textOffset01.left - flexOffset.left)*10)/10).assertEqual(Math.round(vp2px(15)*10)/10) + expect(Math.round((flexOffset.bottom - textOffset01.bottom)*10)/10).assertEqual(Math.round(vp2px(45)*10)/10) + expect(textOffset02.top - flexOffset.top).assertEqual(flexOffset.bottom - textOffset02.bottom) + expect(textOffset03.top - flexOffset.top).assertEqual(flexOffset.bottom - textOffset03.bottom) + expect(Math.round(textOffset01.bottom - textOffset01.top)).assertEqual(vp2px(50)) + expect(Math.round(textOffset02.bottom - textOffset02.top)).assertEqual(vp2px(100)) + expect(Math.round(textOffset03.bottom - textOffset03.top)).assertEqual(vp2px(150)) + expect(Math.round(textOffset01.right - textOffset01.left)).assertEqual(vp2px(150)) + expect(Math.round(textOffset02.right - textOffset02.left)).assertEqual(vp2px(150)) + expect(Math.round(textOffset03.right - textOffset03.left)).assertEqual(vp2px(150)) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + console.info('new testFlexItemAlignCenterSetOffset END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexPaddingJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexPaddingJsunit.test.ets new file mode 100644 index 000000000..3e9e87751 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexPaddingJsunit.test.ets @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 '../../../../MainAbility/common/MessageManager'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from "@ohos/hypium"; +import router from '@system.router'; +import CommonFunc from "../../../../MainAbility/common/Common"; +export default function flexPadding_CenterJsunit() { + describe('flexItemAlignCenterTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexPadding', + } + try { + router.clear(); + await CommonFunc.sleep(1000); + let pages = router.getState(); + console.info("get FlexPadding state success " + JSON.stringify(pages)); + if (!("FlexPadding" == pages.name)) { + console.info("get FlexPadding state success " + JSON.stringify(pages.name)); + let result = await router.push(options) + console.info("push FlexPadding page success " + JSON.stringify(result)); + } + } catch (err) { + console.error("push FlexPadding page error " + JSON.stringify(err)); + } + await CommonFunc.sleep(2000); + done() + }); + afterEach(async function () { + await CommonFunc.sleep(1000); + console.info("FlexPadding after each called"); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_0300 + * @tc.name testFlexItemAlignCenterParentSetPadding + * @tc.desc Parent component set paddding,subcomponent does not exceed the parent component. + */ + it('testFlexItemAlignCenterParentSetPadding', 0, async function (done) { + console.info('new testFlexItemAlignCenterParentSetPadding START'); + globalThis.value.message.notify({name:'padding', value:10}); + await CommonFunc.sleep(2000); + let strJson1 = getInspectorByKey('flexPadding01'); + let obj1 = JSON.parse(strJson1); + let textFlexPadding01 = CommonFunc.getComponentRect('textFlexPadding01'); + let textFlexPadding02 = CommonFunc.getComponentRect('textFlexPadding02'); + let textFlexPadding03 = CommonFunc.getComponentRect('textFlexPadding03'); + let flexPadding01 = CommonFunc.getComponentRect('flexPadding01'); + expect(Math.round(textFlexPadding01.left - flexPadding01.left)).assertEqual(vp2px(10)) + expect(Math.round(flexPadding01.right - textFlexPadding03.right)).assertEqual(vp2px(40)) + expect(textFlexPadding01.top - flexPadding01.top).assertEqual(flexPadding01.bottom - textFlexPadding01.bottom) + expect(textFlexPadding02.top - flexPadding01.top).assertEqual(flexPadding01.bottom - textFlexPadding02.bottom) + expect(textFlexPadding03.top - flexPadding01.top).assertEqual(flexPadding01.bottom - textFlexPadding03.bottom) + expect(Math.round(textFlexPadding01.bottom - textFlexPadding01.top)).assertEqual(vp2px(50)) + expect(Math.round(textFlexPadding02.bottom - textFlexPadding02.top)).assertEqual(vp2px(100)) + expect(Math.round(textFlexPadding03.bottom - textFlexPadding03.top)).assertEqual(vp2px(150)) + expect(Math.round(textFlexPadding01.right - textFlexPadding01.left)).assertEqual(vp2px(150)) + expect(Math.round(textFlexPadding02.right - textFlexPadding02.left)).assertEqual(vp2px(150)) + expect(Math.round(textFlexPadding03.right - textFlexPadding03.left)).assertEqual(vp2px(150)) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + console.info('new testFlexItemAlignCenterParentSetPadding END'); + done(); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_0400 + * @tc.name testFlexItemAlignCenterParentSetPaddingExceed + * @tc.desc Parent component set paddding,subcomponent exceedS the parent component. + */ + it('testFlexItemAlignCenterParentSetPaddingExceed', 0, async function (done) { + console.info('new testFlexItemAlignCenterParentSetPaddingExceed START'); + globalThis.value.message.notify({name:'padding', value:30}); + await CommonFunc.sleep(2000); + let strJson1 = getInspectorByKey('flexPadding01'); + let obj1 = JSON.parse(strJson1); + let textFlexPadding01 = CommonFunc.getComponentRect('textFlexPadding01'); + let textFlexPadding02 = CommonFunc.getComponentRect('textFlexPadding02'); + let textFlexPadding03 = CommonFunc.getComponentRect('textFlexPadding03'); + let flexPadding01 = CommonFunc.getComponentRect('flexPadding01'); + expect(Math.round(textFlexPadding01.left - flexPadding01.left)).assertEqual(vp2px(30)) + expect(Math.round(flexPadding01.right - textFlexPadding03.right)).assertEqual(vp2px(30)) + expect(textFlexPadding01.top - flexPadding01.top).assertEqual(flexPadding01.bottom - textFlexPadding01.bottom) + expect(textFlexPadding02.top - flexPadding01.top).assertEqual(flexPadding01.bottom - textFlexPadding02.bottom) + expect(textFlexPadding03.top - flexPadding01.top).assertEqual(flexPadding01.bottom - textFlexPadding03.bottom) + expect(Math.round(textFlexPadding01.bottom - textFlexPadding01.top)).assertEqual(vp2px(50)) + expect(Math.round(textFlexPadding02.bottom - textFlexPadding02.top)).assertEqual(vp2px(100)) + expect(Math.round(textFlexPadding03.bottom - textFlexPadding03.top)).assertEqual(vp2px(150)) + expect(Math.round(textFlexPadding01.right - textFlexPadding01.left)).assertEqual(vp2px(440/3)) + expect(Math.round(textFlexPadding02.right - textFlexPadding02.left)).assertEqual(vp2px(440/3)) + expect(Math.round(textFlexPadding03.right - textFlexPadding03.left)).assertEqual(vp2px(440/3)) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + console.info('new testFlexItemAlignCenterParentSetPaddingExceed END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexTextMarginJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexTextMarginJsunit.test.ets new file mode 100644 index 000000000..585c03913 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexTextMarginJsunit.test.ets @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 "@ohos/hypium"; +import router from '@system.router'; +import CommonFunc from "../../../../MainAbility/common/Common"; +import { MessageManager,Callback } from '../../../../MainAbility/common/MessageManager'; +export default function flexTextMargin_CenterJsunit() { + describe('flexItemAlignCenterTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexTextMargin', + } + try { + router.clear(); + await CommonFunc.sleep(1000); + let pages = router.getState(); + console.info("get FlexTextMargin state success " + JSON.stringify(pages)); + if (!("FlexTextMargin" == pages.name)) { + console.info("get FlexTextMargin state success " + JSON.stringify(pages.name)); + let result = await router.push(options) + console.info("push FlexTextMargin page success " + JSON.stringify(result)); + } + } catch (err) { + console.error("push FlexTextMargin page error " + JSON.stringify(err)); + } + await CommonFunc.sleep(2000); + done() + }); + afterEach(async function () { + await CommonFunc.sleep(1000); + console.info("FlexTextMargin after each called"); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_1400 + * @tc.name testFlexItemAlignCenterSubSetMargin + * @tc.desc Subcomponents set margin within the scope of the parent component. + */ + it('testFlexItemAlignCenterSubSetMargin', 0, async function (done) { + console.info('new testFlexItemAlignCenterSubSetMargin START'); + globalThis.value.message.notify({name:'margin', value:10}); + await CommonFunc.sleep(2000); + let strJson1 = getInspectorByKey('flexTextMargin01'); + let obj1 = JSON.parse(strJson1); + let textMargin01 = CommonFunc.getComponentRect('textMargin01'); + let textMargin02 = CommonFunc.getComponentRect('textMargin02'); + let textMargin03 = CommonFunc.getComponentRect('textMargin03'); + let flexTextMargin01 = CommonFunc.getComponentRect('flexTextMargin01'); + expect(Math.round(textMargin01.left - flexTextMargin01.left)).assertEqual(vp2px(10)) + expect(Math.round(textMargin02.left - textMargin01.right)).assertEqual(vp2px(10)) + expect(textMargin03.left).assertEqual(textMargin02.right) + expect(Math.round(flexTextMargin01.right - textMargin03.right)).assertEqual(vp2px(30)) + + expect(textMargin01.top - flexTextMargin01.top).assertEqual(flexTextMargin01.bottom - textMargin01.bottom) + expect(textMargin02.top - flexTextMargin01.top).assertEqual(flexTextMargin01.bottom - textMargin02.bottom) + expect(textMargin03.top - flexTextMargin01.top).assertEqual(flexTextMargin01.bottom - textMargin03.bottom) + expect(Math.round(textMargin01.bottom - textMargin01.top)).assertEqual(vp2px(50)) + expect(Math.round(textMargin02.bottom - textMargin02.top)).assertEqual(vp2px(100)) + expect(Math.round(textMargin03.bottom - textMargin03.top)).assertEqual(vp2px(150)) + expect(Math.round(textMargin01.right - textMargin01.left)).assertEqual(vp2px(150)) + expect(Math.round(textMargin02.right - textMargin02.left)).assertEqual(vp2px(150)) + expect(Math.round(textMargin03.right - textMargin03.left)).assertEqual(vp2px(150)) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + console.info('new testFlexItemAlignCenterSubSetMargin END'); + done(); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_1500 + * @tc.name testFlexItemAlignCenterSubSetMarginExceed + * @tc.desc Subcomponents set margin outside the scope of the parent component. + */ + it('testFlexItemAlignCenterSubSetMarginExceed', 0, async function (done) { + console.info('new testFlexItemAlignCenterSubSetMarginExceed START'); + globalThis.value.message.notify({name:'margin', value:30}); + await CommonFunc.sleep(2000); + let strJson1 = getInspectorByKey('flexTextMargin01'); + let obj1 = JSON.parse(strJson1); + let textMargin01 = CommonFunc.getComponentRect('textMargin01'); + let textMargin02 = CommonFunc.getComponentRect('textMargin02'); + let textMargin03 = CommonFunc.getComponentRect('textMargin03'); + let flexTextMargin01 = CommonFunc.getComponentRect('flexTextMargin01'); + expect(Math.round(textMargin01.left - flexTextMargin01.left)).assertEqual(vp2px(30)) + expect(Math.round(textMargin02.left - textMargin01.right)).assertEqual(vp2px(30)) + expect(textMargin03.left).assertEqual(textMargin02.right) + expect(textMargin03.right).assertEqual(flexTextMargin01.right) + expect(textMargin01.top - flexTextMargin01.top).assertEqual(flexTextMargin01.bottom - textMargin01.bottom) + expect(textMargin02.top - flexTextMargin01.top).assertEqual(flexTextMargin01.bottom - textMargin02.bottom) + expect(textMargin03.top - flexTextMargin01.top).assertEqual(flexTextMargin01.bottom - textMargin03.bottom) + expect(Math.round(textMargin01.bottom - textMargin01.top)).assertEqual(vp2px(50)) + expect(Math.round(textMargin02.bottom - textMargin02.top)).assertEqual(vp2px(100)) + expect(Math.round(textMargin03.bottom - textMargin03.top)).assertEqual(vp2px(150)) + expect(Math.round(textMargin01.right - textMargin01.left)).assertEqual(vp2px(440/3)) + expect(Math.round(textMargin02.right - textMargin02.left)).assertEqual(vp2px(440/3)) + expect(Math.round(textMargin03.right - textMargin03.left)).assertEqual(vp2px(440/3)) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + console.info('new testFlexItemAlignCenterSubSetMarginExceed END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexVisibilityJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexVisibilityJsunit.test.ets new file mode 100644 index 000000000..d9c930da5 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Center/FlexVisibilityJsunit.test.ets @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2023 iSoftStone Information Technology (Group) 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 "@ohos/hypium"; +import router from '@system.router'; +import CommonFunc from "../../../../MainAbility/common/Common"; +import { MessageManager,Callback } from '../../../../MainAbility/common/MessageManager'; +export default function flexVisibility_CenterJsunit() { + describe('flexItemAlignCenterTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Center/FlexVisibility', + } + try { + router.clear(); + await CommonFunc.sleep(1000); + let pages = router.getState(); + console.info("get FlexVisibility state success " + JSON.stringify(pages)); + if (!("FlexVisibility" == pages.name)) { + console.info("get FlexVisibility state success " + JSON.stringify(pages.name)); + let result = await router.push(options) + console.info("push FlexVisibility page success " + JSON.stringify(result)); + } + } catch (err) { + console.error("push FlexVisibility page error " + JSON.stringify(err)); + } + await CommonFunc.sleep(2000); + done() + }); + + afterEach(async function () { + await CommonFunc.sleep(1000); + console.info("FlexVisibility after each called"); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_1100 + * @tc.name testFlexItemAlignCenterSubSetVisibilityNone + * @tc.desc The first subcomponent set Visibility.None attribute. + */ + it('testFlexItemAlignCenterSubSetVisibilityNone', 0, async function (done) { + console.info('new testFlexItemAlignCenterSubSetVisibilityNone START'); + try { + globalThis.value.message.notify({name:'visibility', value:Visibility.None}); + await CommonFunc.sleep(2000); + let strJson1 = getInspectorByKey('flexVisible'); + let obj1 = JSON.parse(strJson1); + let strJson2 = getInspectorByKey('textVisible01'); + let obj2 = JSON.parse(strJson2); + expect(obj2.$attrs.visibility).assertEqual("Visibility.None"); + let textVisible01 = CommonFunc.getComponentRect('textVisible01'); + let textVisible02 = CommonFunc.getComponentRect('textVisible02'); + let textVisible03 = CommonFunc.getComponentRect('textVisible03'); + let flexVisible = CommonFunc.getComponentRect('flexVisible'); + expect(textVisible01.left).assertEqual(textVisible01.right) + expect(textVisible01.left).assertEqual(flexVisible.left) + expect(Math.round(textVisible02.bottom - textVisible02.top)).assertEqual(vp2px(100)) + expect(Math.round(textVisible03.bottom - textVisible03.top)).assertEqual(vp2px(150)) + expect(Math.round(textVisible02.right - textVisible02.left)).assertEqual(vp2px(150)) + expect(Math.round(textVisible03.right - textVisible03.left)).assertEqual(vp2px(150)) + expect(Math.round(flexVisible.right - textVisible03.right)).assertEqual(vp2px(200)) + expect(textVisible02.top - flexVisible.top).assertEqual(flexVisible.bottom - textVisible02.bottom) + expect(textVisible03.top - flexVisible.top).assertEqual(flexVisible.bottom - textVisible03.bottom) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + } catch (err) { + console.error('[testFlexItemAlignBaselineSubSetVisibilityNone] failed'); + expect().assertFail(); + } + console.info('new testFlexItemAlignCenterSubSetVisibilityNone END'); + done(); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_CENTER_1200 + * @tc.name testFlexItemAlignCenterSubSetVisibilityHidden + * @tc.desc The first subcomponent set Visibility.Hidden attribute. + */ + it('testFlexItemAlignCenterSubSetVisibilityHidden', 0, async function (done) { + console.info('new testFlexItemAlignCenterSubSetVisibilityHidden START'); + try { + globalThis.value.message.notify({name:'visibility', value:Visibility.Hidden}); + await CommonFunc.sleep(2000); + let strJson1 = getInspectorByKey('flexVisible'); + let obj1 = JSON.parse(strJson1); + let strJson2 = getInspectorByKey('textVisible01'); + let obj2 = JSON.parse(strJson2); + expect(obj2.$attrs.visibility).assertEqual("Visibility.Hidden"); + let textVisible01 = CommonFunc.getComponentRect('textVisible01'); + let textVisible02 = CommonFunc.getComponentRect('textVisible02'); + let textVisible03 = CommonFunc.getComponentRect('textVisible03'); + let flexVisible = CommonFunc.getComponentRect('flexVisible'); + expect(Math.round(textVisible01.bottom - textVisible01.top)).assertEqual(vp2px(50)) + expect(Math.round(textVisible01.right - textVisible01.left)).assertEqual(vp2px(150)) + expect(Math.round(textVisible02.bottom - textVisible02.top)).assertEqual(vp2px(100)) + expect(Math.round(textVisible02.right - textVisible02.left)).assertEqual(vp2px(150)) + expect(Math.round(textVisible03.bottom - textVisible03.top)).assertEqual(vp2px(150)) + expect(Math.round(textVisible03.right - textVisible03.left)).assertEqual(vp2px(150)) + expect(Math.round(flexVisible.right - textVisible03.right)).assertEqual(vp2px(50)) + expect(textVisible01.top - flexVisible.top).assertEqual(flexVisible.bottom - textVisible01.bottom) + expect(textVisible02.top - flexVisible.top).assertEqual(flexVisible.bottom - textVisible02.bottom) + expect(textVisible03.top - flexVisible.top).assertEqual(flexVisible.bottom - textVisible03.bottom) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Center') + } catch (err) { + console.error('[testFlexItemAlignBaselineSubSetVisibilityHidden] failed'); + expect().assertFail(); + } + console.info('new testFlexItemAlignCenterSubSetVisibilityHidden END'); + done(); + }); + }) +} -- GitLab