From 6078bdce23ab2579999a6cf29c765df62619d07b Mon Sep 17 00:00:00 2001 From: zhanghailin Date: Thu, 9 Feb 2023 10:13:09 +0800 Subject: [PATCH] FlexAlignItems xts code submit Signed-off-by: zhanghailin --- .../ItemAlign_Stretch/FlexAlignSelf.ets | 48 +++++++ .../alignItems/ItemAlign_Stretch/FlexBase.ets | 64 +++++++++ .../ItemAlign_Stretch/FlexExceed.ets | 66 +++++++++ .../ItemAlign_Stretch/FlexHeightModify.ets | 60 ++++++++ .../ItemAlign_Stretch/FlexMargin.ets | 49 +++++++ .../ItemAlign_Stretch/FlexOffset.ets | 48 +++++++ .../ItemAlign_Stretch/FlexPadding.ets | 51 +++++++ .../ItemAlign_Stretch/FlexTextMargin.ets | 60 ++++++++ .../ItemAlign_Stretch/FlexVisibility.ets | 60 ++++++++ .../FlexAlignSelfJsunit.test.ets | 82 +++++++++++ .../ItemAlign_Stretch/FlexBaseJsunit.test.ets | 126 +++++++++++++++++ .../FlexExceedJsunit.test.ets | 123 ++++++++++++++++ .../FlexHeightModifyJsunit.test.ets | 125 +++++++++++++++++ .../FlexMarginJsunit.test.ets | 84 +++++++++++ .../FlexOffsetJsunit.test.ets | 76 ++++++++++ .../FlexPaddingJsunit.test.ets | 124 ++++++++++++++++ .../FlexTextMarginJsunit.test.ets | 122 ++++++++++++++++ .../FlexVisibilityJsunit.test.ets | 132 ++++++++++++++++++ 18 files changed, 1500 insertions(+) create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexAlignSelf.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexBase.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexExceed.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexHeightModify.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexMargin.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexOffset.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexPadding.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexTextMargin.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexVisibility.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexAlignSelfJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexBaseJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexExceedJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexHeightModifyJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexMarginJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexOffsetJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexPaddingJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexTextMarginJsunit.test.ets create mode 100644 arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexVisibilityJsunit.test.ets diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexAlignSelf.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexAlignSelf.ets new file mode 100644 index 000000000..da548cce7 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexAlignSelf.ets @@ -0,0 +1,48 @@ +/* + * 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_Stretch { + private content: string = "FlexAlignSelf_Stretch Page"; + + onPageShow() { + console.info('FlexAlignSelf_Stretch page show called'); + } + + onBuildDone() { + console.info('FlexAlignSelf_Stretch page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexTest12').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Stretch, + 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%').alignItems(HorizontalAlign.Start) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexBase.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexBase.ets new file mode 100644 index 000000000..7b6df161c --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/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_Stretch { + @State testHeight: number = 150 + @State testWidth: number = 450 + messageManager:MessageManager = new MessageManager() + private content: string = "FlexBase_Stretch Page"; + onPageShow() { + console.info('FlexBase_Stretch 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_Stretch page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexBase_1').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Stretch, + 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%').alignItems(HorizontalAlign.Start) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexExceed.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexExceed.ets new file mode 100644 index 000000000..a890a2854 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/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_Stretch { + @State testPadding: number = 0 + @State testMargin: number = 0 + messageManager:MessageManager = new MessageManager() + private content: string = "FlexExceed_Stretch Page"; + onPageShow() { + console.info('FlexExceed_Stretch 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_Stretch page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexExceed_1').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Stretch, + 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%').alignItems(HorizontalAlign.Start) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexHeightModify.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexHeightModify.ets new file mode 100644 index 000000000..20b3398b1 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexHeightModify.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 FlexHeightModify_Stretch { + @State testHeight: number = 50 + messageManager:MessageManager = new MessageManager() + private content: string = "FlexHeightModify_Stretch Page"; + onPageShow() { + console.info('FlexHeightModify_Stretch 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_Stretch page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexHeightModify').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Stretch, + 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%').alignItems(HorizontalAlign.Start) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexMargin.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexMargin.ets new file mode 100644 index 000000000..ec0586084 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexMargin.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 FlexMargin_Stretch { + private content: string = "FlexMargin_Stretch Page"; + + onPageShow() { + console.info('FlexMargin_Stretch page show called'); + } + + onBuildDone() { + console.info('FlexMargin_Stretch page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexTest05').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Stretch, + 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%').alignItems(HorizontalAlign.Start) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexOffset.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexOffset.ets new file mode 100644 index 000000000..d127e0495 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexOffset.ets @@ -0,0 +1,48 @@ +/* + * 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_Stretch { + private content: string = "FlexOffset_Stretch Page"; + + onPageShow() { + console.info('FlexOffset_Stretch page show called'); + } + + onBuildDone() { + console.info('FlexOffset_Stretch page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexTest09').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Stretch, + 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%').alignItems(HorizontalAlign.Start) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexPadding.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexPadding.ets new file mode 100644 index 000000000..a8110d683 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexPadding.ets @@ -0,0 +1,51 @@ +/* + * 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_Stretch { + @State testPadding: number = 0 + messageManager:MessageManager = new MessageManager() + private content: string = "FlexPadding_Stretch Page"; + onPageShow() { + console.info('FlexPadding_Stretch page show called'); + } + + onBuildDone() { + console.info('FlexPadding_Stretch page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexPadding_1').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Stretch, + 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%').alignItems(HorizontalAlign.Start) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexTextMargin.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexTextMargin.ets new file mode 100644 index 000000000..812695b2f --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/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_Stretch { + @State testTextMargin: number = 0 + messageManager:MessageManager = new MessageManager() + private content: string = "FlexTextMargin_Stretch Page"; + onPageShow() { + console.info('FlexTextMargin_Stretch 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_Stretch page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexTextMargin_1').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Stretch, + 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_Stretch/FlexVisibility.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/FlexVisibility.ets new file mode 100644 index 000000000..ac9f9f432 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/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_Stretch { + @State testVisibility: number = Visibility.Visible + messageManager:MessageManager = new MessageManager() + private content: string = "FlexVisibility_Stretch Page"; + onPageShow() { + console.info('FlexVisibility_Stretch 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_Stretch page build done called'); + } + + build() { + Column() { + Column() { + Text('FlexTest10').fontSize(9).fontColor(0xCCCCCC).width('90%') + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Stretch, + 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%').alignItems(HorizontalAlign.Start) + }.width('100%') + } +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexAlignSelfJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexAlignSelfJsunit.test.ets new file mode 100644 index 000000000..c6a58130c --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/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"; +export default function flexAlignSelf_StretchJsunit() { + describe('flexItemAlignStretchTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/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_STRETCH_1300 + * @tc.name testFlexItemAlignStretchSetAlignSelf + * @tc.desc The first subcomponent set ItemAlign.End attribute. + */ + it('testFlexItemAlignStretchSetAlignSelf', 0, async function (done) { + console.info('new testFlexItemAlignStretchSetAlignSelf START'); + let strJson1 = getInspectorByKey('flexAlignSelf'); + let obj1 = JSON.parse(strJson1); + let strJson2 = getInspectorByKey('textAlignSelf01'); + let obj2 = JSON.parse(strJson2); + let textAlignSelf01 = CommonFunc.getComponentRect('textAlignSelf01'); + let textAlignSelf02 = CommonFunc.getComponentRect('textAlignSelf02'); + let textAlignSelf03 = CommonFunc.getComponentRect('textAlignSelf03'); + let flexAlignSelf01 = CommonFunc.getComponentRect('flexAlignSelf'); + expect(textAlignSelf02.top).assertEqual(textAlignSelf03.top) + expect(textAlignSelf03.top).assertEqual(flexAlignSelf01.top) + + expect(textAlignSelf01.left).assertEqual(flexAlignSelf01.left) + expect(textAlignSelf01.right).assertEqual(textAlignSelf02.left) + expect(textAlignSelf02.bottom).assertEqual(textAlignSelf03.bottom) + + expect(Math.round(textAlignSelf01.bottom - textAlignSelf01.top)).assertEqual(vp2px(50)) + expect(Math.round(textAlignSelf01.right - textAlignSelf01.left)).assertEqual(vp2px(150)) + expect(Math.round(textAlignSelf02.bottom - textAlignSelf02.top)).assertEqual(vp2px(200)) + expect(Math.round(textAlignSelf02.right - textAlignSelf02.left)).assertEqual(vp2px(150)) + expect(Math.round(textAlignSelf03.bottom - textAlignSelf03.top)).assertEqual(vp2px(200)) + expect(Math.round(textAlignSelf03.right - textAlignSelf03.left)).assertEqual(vp2px(150)) + + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Stretch') + expect(obj2.$attrs.alignSelf).assertEqual("ItemAlign.End"); + console.info('new testFlexItemAlignStretchSetAlignSelf END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexBaseJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexBaseJsunit.test.ets new file mode 100644 index 000000000..076ab71e2 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexBaseJsunit.test.ets @@ -0,0 +1,126 @@ +/* + * 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_StretchJsunit() { + describe('flexItemAlignStretchTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/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_STRETCH_0100 + * @tc.name testFlexItemAlignStretch + * @tc.desc The subcomponent is inside the parent component. + */ + it('testFlexItemAlignStretch', 0, async function (done) { + console.info('new testFlexItemAlignStretch 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(flex01.top).assertEqual(textFlex01.top) + expect(textFlex01.top).assertEqual(textFlex02.top) + expect(textFlex02.top).assertEqual(textFlex03.top) + expect(textFlex01.bottom).assertEqual(textFlex02.bottom) + expect(textFlex02.bottom).assertEqual(textFlex03.bottom) + + expect(textFlex01.right).assertEqual(textFlex02.left) + expect(textFlex02.right).assertEqual(textFlex03.left) + expect(Math.round(flex01.right - textFlex03.right)).assertEqual(vp2px(50)) + + expect(Math.round(textFlex01.bottom - textFlex01.top)).assertEqual(vp2px(200)) + expect(Math.round(textFlex02.bottom - textFlex02.top)).assertEqual(vp2px(200)) + expect(Math.round(textFlex03.bottom - textFlex03.top)).assertEqual(vp2px(200)) + 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.Stretch') + console.info('new testFlexItemAlignStretch END'); + done(); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_STRETCH_0200 + * @tc.name testFlexItemAlignStretchExceed + * @tc.desc The subcomponent exceeds the parent component. + */ + it('testFlexItemAlignStretchExceed', 0, async function (done) { + console.info('new testFlexItemAlignStretchExceed 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(flex01.top).assertEqual(textFlex01.top) + expect(textFlex01.top).assertEqual(textFlex02.top) + expect(textFlex02.top).assertEqual(textFlex03.top) + + expect(textFlex01.bottom).assertEqual(flex01.bottom) + expect(flex01.right).assertEqual(textFlex03.right) + expect(textFlex01.bottom).assertEqual(textFlex02.bottom) + expect(textFlex02.bottom).assertEqual(textFlex03.bottom) + + expect(Math.round(textFlex01.bottom - textFlex01.top)).assertEqual(vp2px(140)) + expect(Math.round(textFlex02.bottom - textFlex02.top)).assertEqual(vp2px(140)) + expect(Math.round(textFlex03.bottom - textFlex03.top)).assertEqual(vp2px(140)) + 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.Stretch') + console.info('new testFlexItemAlignStretchExceed END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexExceedJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexExceedJsunit.test.ets new file mode 100644 index 000000000..254f18133 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexExceedJsunit.test.ets @@ -0,0 +1,123 @@ +/* + * 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_StretchJsunit() { + describe('flexItemAlignStretchTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/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_STRETCH_0600 + * @tc.name testFlexItemAlignStretchSetMarPad + * @tc.desc Subcomponent inside when parent component set margin and padding. + */ + it('testFlexItemAlignStretchSetMarPad', 0, async function (done) { + console.info('new testFlexItemAlignStretchSetMarPad 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(textExceed01.top).assertEqual(textExceed02.top) + expect(textExceed02.top).assertEqual(textExceed03.top) + expect(textExceed01.top).assertLarger(flexExceed01.top) + + expect(textExceed01.bottom).assertEqual(textExceed02.bottom) + expect(textExceed02.bottom).assertEqual(textExceed03.bottom) + expect(textExceed01.bottom).assertLess(flexExceed01.bottom) + expect(textExceed01.left).assertLarger(flexExceed01.left) + expect(textExceed03.right).assertLess(flexExceed01.right) + expect(Math.round(textExceed01.bottom - textExceed01.top)).assertEqual(vp2px(180)) + expect(Math.round(textExceed02.bottom - textExceed02.top)).assertEqual(vp2px(180)) + expect(Math.round(textExceed03.bottom - textExceed03.top)).assertEqual(vp2px(180)) + 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.Stretch') + console.info('new testFlexItemAlignStretchSetMarPad END'); + done(); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_STRETCH_0700 + * @tc.name testFlexItemAlignStretchSetMarPadExceed + * @tc.desc Subcomponent outside when parent component set margin and padding. + */ + it('testFlexItemAlignStretchSetMarPadExceed', 0, async function (done) { + console.info('new testFlexItemAlignStretchSetMarPadExceed 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(textExceed01.top).assertEqual(textExceed02.top) + expect(textExceed02.top).assertEqual(textExceed03.top) + expect(textExceed01.top).assertLarger(flexExceed01.top) + + expect(textExceed01.bottom).assertEqual(textExceed02.bottom) + expect(textExceed02.bottom).assertEqual(textExceed03.bottom) + expect(textExceed01.bottom).assertLess(flexExceed01.bottom) + expect(textExceed01.left).assertLarger(flexExceed01.left) + expect(textExceed03.right).assertLess(flexExceed01.right) + expect(Math.round(textExceed01.bottom - textExceed01.top)).assertEqual(vp2px(140)) + expect(Math.round(textExceed02.bottom - textExceed02.top)).assertEqual(vp2px(140)) + expect(Math.round(textExceed03.bottom - textExceed03.top)).assertEqual(vp2px(140)) + 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.Stretch') + console.info('new testFlexItemAlignStretchSetMarPadExceed END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexHeightModifyJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexHeightModifyJsunit.test.ets new file mode 100644 index 000000000..a41ac41df --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexHeightModifyJsunit.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 flexHeightModify_StretchJsunit() { + describe('flexItemAlignStretchTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/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_STRETCH_0800 + * @tc.name testFlexItemAlignStretchDefaultSize + * @tc.desc Check the the default height of the first subcomponent. + */ + it('testFlexItemAlignStretchDefaultSize', 0, async function (done) { + console.info('new testFlexItemAlignStretchDefaultSize START'); + globalThis.value.message.notify({name:'height', value:80}); + await CommonFunc.sleep(1000); + 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.top).assertEqual(textHeightModify02.top) + expect(textHeightModify02.top).assertEqual(textHeightModify03.top) + expect(textHeightModify03.top).assertEqual(flexHeightModify.top) + + expect(textHeightModify01.bottom).assertEqual(textHeightModify02.bottom) + expect(textHeightModify02.bottom).assertEqual(textHeightModify03.bottom) + + expect(textHeightModify01.left).assertEqual(flexHeightModify.left) + expect(textHeightModify02.left).assertEqual(textHeightModify01.right) + expect(textHeightModify03.right).assertLess(flexHeightModify.right) + + expect(Math.round(textHeightModify01.bottom - textHeightModify01.top)).assertEqual(vp2px(200)) + expect(Math.round(textHeightModify02.bottom - textHeightModify02.top)).assertEqual(vp2px(200)) + expect(Math.round(textHeightModify03.bottom - textHeightModify03.top)).assertEqual(vp2px(200)) + 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.Stretch') + console.info('new testFlexItemAlignStretchDefaultSize END'); + done(); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_STRETCH_0900 + * @tc.name testFlexItemAlignStretchHeightModify + * @tc.desc Modify the first subcomponent's height. + */ + it('testFlexItemAlignStretchHeightModify', 0, async function (done) { + console.info('new testFlexItemAlignStretchHeightModify START'); + globalThis.value.message.notify({name:'height', value:80}); + await CommonFunc.sleep(1000); + 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.top).assertEqual(textHeightModify02.top) + expect(textHeightModify02.top).assertEqual(textHeightModify03.top) + expect(textHeightModify03.top).assertEqual(flexHeightModify.top) + + expect(textHeightModify01.bottom).assertEqual(textHeightModify02.bottom) + expect(textHeightModify02.bottom).assertEqual(textHeightModify03.bottom) + + expect(textHeightModify01.left).assertEqual(flexHeightModify.left) + expect(textHeightModify02.left).assertEqual(textHeightModify01.right) + expect(textHeightModify03.right).assertLess(flexHeightModify.right) + + expect(Math.round(textHeightModify01.bottom - textHeightModify01.top)).assertEqual(vp2px(200)) + expect(Math.round(textHeightModify02.bottom - textHeightModify02.top)).assertEqual(vp2px(200)) + expect(Math.round(textHeightModify03.bottom - textHeightModify03.top)).assertEqual(vp2px(200)) + 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.Stretch') + console.info('new testFlexItemAlignStretchHeightModify END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexMarginJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexMarginJsunit.test.ets new file mode 100644 index 000000000..9f420c9df --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexMarginJsunit.test.ets @@ -0,0 +1,84 @@ +/* + * 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_StretchJsunit() { + describe('flexItemAlignStretchTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/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_STRETCH_0500 + * @tc.name testItemAlignStretchParentSetMargin + * @tc.desc Parent component set margin attribute. + */ + it('testItemAlignStretchParentSetMargin', 0, async function (done) { + console.info('new testItemAlignStretchParentSetMargin 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.top).assertEqual(textFlexMargin02.top) + expect(textFlexMargin02.top).assertEqual(textFlexMargin03.top) + expect(textFlexMargin03.top).assertEqual(flexMargin.top) + + expect(textFlexMargin01.bottom).assertEqual(textFlexMargin02.bottom) + expect(textFlexMargin02.bottom).assertEqual(textFlexMargin03.bottom) + expect(textFlexMargin03.bottom).assertEqual(flexMargin.bottom) + expect(textFlexMargin01.left).assertEqual(flexMargin.left) + expect(textFlexMargin02.left).assertEqual(textFlexMargin01.right) + expect(textFlexMargin03.left).assertEqual(textFlexMargin02.right) + expect(Math.round(flexMargin.right - textFlexMargin03.right)).assertEqual(vp2px(50)) + + expect(Math.round(textFlexMargin01.bottom - textFlexMargin01.top)).assertEqual(vp2px(200)) + expect(Math.round(textFlexMargin02.bottom - textFlexMargin02.top)).assertEqual(vp2px(200)) + expect(Math.round(textFlexMargin03.bottom - textFlexMargin03.top)).assertEqual(vp2px(200)) + 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.Stretch') + console.info('new testItemAlignStretchParentSetMargin END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexOffsetJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexOffsetJsunit.test.ets new file mode 100644 index 000000000..8746a0526 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexOffsetJsunit.test.ets @@ -0,0 +1,76 @@ +/* + * 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_StretchJsunit() { + describe('flexItemAlignStretchTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/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_STRETCH_1000 + * @tc.name testFlexItemAlignStretchSetOffset + * @tc.desc First subcomponent set offset attribute. + */ + it('testFlexItemAlignStretchSetOffset', 0, async function (done) { + console.info('new testFlexItemAlignStretchSetOffset 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(textOffset02.top).assertEqual(textOffset03.top) + expect(textOffset03.top).assertEqual(flexOffset.top) + expect(Math.round((textOffset01.left - flexOffset.left)*10)/10).assertEqual(Math.round(vp2px(15)*10)/10) + expect(Math.round(textOffset01.top - flexOffset.top)).assertEqual(vp2px(30)) + expect(textOffset02.bottom).assertEqual(textOffset03.bottom) + expect(Math.round(textOffset01.bottom - textOffset01.top)).assertEqual(vp2px(200)) + expect(Math.round(textOffset02.bottom - textOffset02.top)).assertEqual(vp2px(200)) + expect(Math.round(textOffset03.bottom - textOffset03.top)).assertEqual(vp2px(200)) + 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.Stretch') + console.info('new testFlexItemAlignStretchSetOffset END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexPaddingJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexPaddingJsunit.test.ets new file mode 100644 index 000000000..4d50c9ac4 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexPaddingJsunit.test.ets @@ -0,0 +1,124 @@ +/* + * 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 flexPadding_StretchJsunit() { + describe('flexItemAlignStretchTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/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_STRETCH_0300 + * @tc.name testFlexItemAlignStretchParentSetPadding + * @tc.desc Parent component set paddding,subcomponent does not exceed the parent component. + */ + it('testFlexItemAlignStretchParentSetPadding', 0, async function (done) { + console.info('new testFlexItemAlignStretchParentSetPadding 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(textFlexPadding01.top).assertEqual(textFlexPadding02.top) + expect(textFlexPadding02.top).assertEqual(textFlexPadding03.top) + expect(Math.round(textFlexPadding01.top - flexPadding01.top)).assertEqual(vp2px(10)) + + expect(textFlexPadding01.bottom).assertEqual(textFlexPadding02.bottom) + expect(textFlexPadding02.bottom).assertEqual(textFlexPadding03.bottom) + expect(flexPadding01.bottom).assertLarger(textFlexPadding01.bottom) + expect(flexPadding01.right).assertLarger(textFlexPadding03.right) + expect(Math.round(textFlexPadding01.left - flexPadding01.left)).assertEqual(vp2px(10)) + + expect(Math.round(textFlexPadding01.bottom - textFlexPadding01.top)).assertEqual(vp2px(150)) + expect(Math.round(textFlexPadding02.bottom - textFlexPadding02.top)).assertEqual(vp2px(150)) + 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.Stretch') + console.info('new testFlexItemAlignStretchParentSetPadding END'); + done(); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_STRETCH_0400 + * @tc.name testFlexItemAlignStretchParentSetPaddingExceed + * @tc.desc Parent component set paddding,subcomponent exceedS the parent component. + */ + it('testFlexItemAlignStretchParentSetPaddingExceed', 0, async function (done) { + console.info('new testFlexItemAlignStretchParentSetPaddingExceed 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(textFlexPadding01.top).assertEqual(textFlexPadding02.top) + expect(textFlexPadding02.top).assertEqual(textFlexPadding03.top) + expect(Math.round(textFlexPadding01.top - flexPadding01.top)).assertEqual(vp2px(30)) + + expect(textFlexPadding01.bottom).assertEqual(textFlexPadding02.bottom) + expect(textFlexPadding02.bottom).assertEqual(textFlexPadding03.bottom) + expect(Math.round(flexPadding01.bottom - textFlexPadding01.bottom)).assertEqual(vp2px(20)) + expect(Math.round(textFlexPadding01.left - flexPadding01.left)).assertEqual(vp2px(30)) + expect(textFlexPadding03.right).assertLess(flexPadding01.right) + + expect(Math.round(textFlexPadding01.bottom - textFlexPadding01.top)).assertEqual(vp2px(150)) + expect(Math.round(textFlexPadding02.bottom - textFlexPadding02.top)).assertEqual(vp2px(150)) + 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.Stretch') + console.info('new testFlexItemAlignStretchParentSetPaddingExceed END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexTextMarginJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexTextMarginJsunit.test.ets new file mode 100644 index 000000000..38078c563 --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexTextMarginJsunit.test.ets @@ -0,0 +1,122 @@ +/* + * 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_StretchJsunit() { + describe('flexItemAlignStretchTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/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_STRETCH_1400 + * @tc.name testFlexItemAlignStretchSubSetMargin + * @tc.desc Subcomponents set margin within the scope of the parent component. + */ + it('testFlexItemAlignStretchSubSetMargin', 0, async function (done) { + console.info('new testFlexItemAlignStretchSubSetMargin 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(textMargin02.top).assertEqual(textMargin03.top) + expect(textMargin03.top).assertEqual(flexTextMargin01.top) + expect(Math.round(textMargin01.top - flexTextMargin01.top)).assertEqual(vp2px(10)) + expect(textMargin02.bottom).assertEqual(textMargin03.bottom) + expect(textMargin03.bottom).assertEqual(flexTextMargin01.bottom) + expect(Math.round(flexTextMargin01.bottom - textMargin01.bottom)).assertEqual(vp2px(10)) + + expect(Math.round(textMargin01.bottom - textMargin01.top)).assertEqual(vp2px(180)) + expect(Math.round(textMargin02.bottom - textMargin02.top)).assertEqual(vp2px(200)) + expect(Math.round(textMargin03.bottom - textMargin03.top)).assertEqual(vp2px(200)) + 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.Stretch') + console.info('new testFlexItemAlignStretchSubSetMargin END'); + done(); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_STRETCH_1500 + * @tc.name testFlexItemAlignStretchSubSetMarginExceed + * @tc.desc Subcomponents set margin outside the scope of the parent component. + */ + it('testFlexItemAlignStretchSubSetMarginExceed', 0, async function (done) { + console.info('new testFlexItemAlignStretchSubSetMarginExceed 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(textMargin02.top).assertEqual(textMargin03.top) + expect(textMargin03.top).assertEqual(flexTextMargin01.top) + expect(Math.round(textMargin01.top - flexTextMargin01.top)).assertEqual(vp2px(30)) + expect(textMargin02.bottom).assertEqual(textMargin03.bottom) + expect(textMargin03.bottom).assertEqual(flexTextMargin01.bottom) + expect(Math.round(flexTextMargin01.bottom - textMargin01.bottom)).assertEqual(vp2px(30)) + expect(Math.round(textMargin01.bottom - textMargin01.top)).assertEqual(vp2px(140)) + expect(Math.round(textMargin02.bottom - textMargin02.top)).assertEqual(vp2px(200)) + expect(Math.round(textMargin03.bottom - textMargin03.top)).assertEqual(vp2px(200)) + 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.Stretch') + console.info('new testFlexItemAlignStretchSubSetMarginExceed END'); + done(); + }); + }) +} diff --git a/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexVisibilityJsunit.test.ets b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexVisibilityJsunit.test.ets new file mode 100644 index 000000000..6c6ea493d --- /dev/null +++ b/arkui/ace_ets_layout_test/entry/src/main/ets/test/Flex/alignItems/ItemAlign_Stretch/FlexVisibilityJsunit.test.ets @@ -0,0 +1,132 @@ +/* + * 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_StretchJsunit() { + describe('flexItemAlignStretchTest', function () { + beforeEach(async function (done) { + let options = { + uri: 'MainAbility/pages/Flex/alignItems/ItemAlign_Stretch/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_STRETCH_1100 + * @tc.name testFlexItemAlignStretchSubSetVisibilityNone + * @tc.desc The first subcomponent set Visibility.None attribute. + */ + it('testFlexItemAlignStretchSubSetVisibilityNone', 0, async function (done) { + console.info('new testFlexItemAlignStretchSubSetVisibilityNone 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(textVisible02.top).assertEqual(textVisible03.top) + expect(textVisible03.top).assertEqual(flexVisible.top) + expect(textVisible01.left).assertEqual(textVisible01.right) + expect(textVisible01.right).assertEqual(flexVisible.left) + expect(textVisible02.bottom).assertEqual(textVisible03.bottom) + + expect(Math.round(textVisible02.bottom - textVisible02.top)).assertEqual(vp2px(200)) + expect(Math.round(textVisible03.bottom - textVisible03.top)).assertEqual(vp2px(200)) + expect(Math.round(textVisible02.right - textVisible02.left)).assertEqual(vp2px(150)) + expect(Math.round(textVisible03.right - textVisible03.left)).assertEqual(vp2px(150)) + + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Stretch') + } catch (err) { + console.error('[testFlexItemAlignBaselineSubSetVisibilityNone] failed'); + expect().assertFail(); + } + console.info('new testFlexItemAlignStretchSubSetVisibilityNone END'); + done(); + }); + + /** + * @tc.number SUB_ACE_FLEXALIGNITEMS_STRETCH_1200 + * @tc.name testFlexItemAlignStretchSubSetVisibilityHidden + * @tc.desc The first subcomponent set Visibility.Hidden attribute. + */ + it('testFlexItemAlignStretchSubSetVisibilityHidden', 0, async function (done) { + console.info('new testFlexItemAlignStretchSubSetVisibilityHidden 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(textVisible01.top).assertEqual(textVisible02.top) + expect(textVisible02.top).assertEqual(textVisible03.top) + expect(textVisible03.top).assertEqual(flexVisible.top) + expect(textVisible01.left).assertEqual(flexVisible.left) + expect(textVisible01.right).assertEqual(textVisible02.left) + expect(textVisible01.bottom).assertEqual(textVisible02.bottom) + expect(textVisible02.bottom).assertEqual(textVisible03.bottom) + + expect(Math.round(textVisible01.bottom - textVisible01.top)).assertEqual(vp2px(200)) + expect(Math.round(textVisible02.bottom - textVisible02.top)).assertEqual(vp2px(200)) + expect(Math.round(textVisible03.bottom - textVisible03.top)).assertEqual(vp2px(200)) + expect(Math.round(textVisible01.right - textVisible01.left)).assertEqual(vp2px(150)) + expect(Math.round(textVisible02.right - textVisible02.left)).assertEqual(vp2px(150)) + expect(Math.round(textVisible03.right - textVisible03.left)).assertEqual(vp2px(150)) + expect(obj1.$attrs.constructor.direction).assertEqual('FlexDirection.Row') + expect(obj1.$attrs.constructor.alignItems).assertEqual('ItemAlign.Stretch') + } catch (err) { + console.error('[testFlexItemAlignBaselineSubSetVisibilityHidden] failed'); + expect().assertFail(); + } + console.info('new testFlexItemAlignStretchSubSetVisibilityHidden END'); + done(); + }); + }) +} -- GitLab