提交 27e522fc 编写于 作者: Z zhouke

增加uitest xts用例.Signed-off-by: <zhouke35@huawei.com>.

Signed-off-by: Nzhouke <zhouke35@huawei.com>
上级 a81bd987
...@@ -16,6 +16,9 @@ import("//build/ohos_var.gni") ...@@ -16,6 +16,9 @@ import("//build/ohos_var.gni")
group("arkXtest") { group("arkXtest") {
testonly = true testonly = true
if (is_standard_system) { if (is_standard_system) {
deps = [ "uitest:uitestActs" ] deps = [
"uitest:ActsUiTest",
"uitestScene:ActsUiTestScene"
]
} }
} }
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
import("//test/xts/tools/build/suite.gni") import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("uitestActs") { ohos_js_hap_suite("ActsUiTest") {
hap_profile = "./src/main/config.json" hap_profile = "./src/main/config.json"
deps = [ deps = [
":uitest_ets_assets", ":uitest_ets_assets",
...@@ -22,14 +22,17 @@ ohos_js_hap_suite("uitestActs") { ...@@ -22,14 +22,17 @@ ohos_js_hap_suite("uitestActs") {
] ]
ets2abc = true ets2abc = true
certificate_profile = "//test/xts/acts/arkXtest/uitest/signature/auto_ohos_default_com.uitest.test.p7b" certificate_profile = "//test/xts/acts/arkXtest/uitest/signature/auto_ohos_default_com.uitest.test.p7b"
hap_name = "uitestActs" hap_name = "ActsUiTest"
} }
ohos_js_assets("uitest_ets_assets") { ohos_js_assets("uitest_ets_assets") {
source_dir = "./src/main/ets/MainAbility" source_dir = "./src/main/ets/MainAbility"
} }
ohos_js_assets("uitest_ets_test_assets") { ohos_js_assets("uitest_ets_test_assets") {
source_dir = "./src/main/ets/TestAbility" source_dir = "./src/main/ets/TestAbility"
} }
ohos_resources("uitest_ets_resources") { ohos_resources("uitest_ets_resources") {
sources = [ "./src/main/resources" ] sources = [ "./src/main/resources" ]
hap_profile = "./src/main/config.json" hap_profile = "./src/main/config.json"
......
...@@ -5,33 +5,32 @@ ...@@ -5,33 +5,32 @@
"test-timeout": "1800000", "test-timeout": "1800000",
"bundle-name": "com.uitest.acts", "bundle-name": "com.uitest.acts",
"package-name": "com.uitest.acts", "package-name": "com.uitest.acts",
"shell-timeout": "60000" "shell-timeout": "180000"
}, },
"kits": [ "kits": [
{
"type": "PushKit",
"push": [
"ActsUiTestScene.hap -> /data/ActsUiTestScene.hap"
]
},
{ {
"test-file-name": [ "test-file-name": [
"$module.hap" "ActsUiTest.hap",
"ActsUiTestScene.hap"
], ],
"type": "AppInstallKit", "type": "AppInstallKit",
"cleanup-apps": true "cleanup-apps": true
}, },
{
"type": "PushKit",
"push": [
"resource/arkXtest/arkXtest_windowsTest.hap -> /data/local/tmp/arkXtest_windowsTest.hap",
"resource/arkXtest/window_manager_config.xml -> /system/etc/window/resources/window_manager_config.xml"
]
},
{ {
"type": "ShellKit", "type": "ShellKit",
"run-command": [ "run-command": [
"param set persist.ace.testmode.enabled 1",
"power-shell wakeup", "power-shell wakeup",
"hilog -Q pidoff",
"hilog -b DEBUG",
"uinput -T -d 300 600 -m 300 600 300 100 -u 300 100", "uinput -T -d 300 600 -m 300 600 300 100 -u 300 100",
"power-shell setmode 602", "power-shell setmode 602"
"bm install -p /data/local/tmp/arkXtest_windowsTest.hap"
],
"teardown-command": [
"bm uninstall -n com.example.windows"
] ]
} }
] ]
......
...@@ -72,10 +72,7 @@ ...@@ -72,10 +72,7 @@
"type": "pageAbility" "type": "pageAbility"
}, },
"pages": [ "pages": [
"pages/index", "pages/index"
"pages/second",
"pages/third",
"pages/fourth"
], ],
"name": ".MainAbility", "name": ".MainAbility",
"window": { "window": {
......
/**
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import router from '@system.router';
import prompt from '@ohos.prompt';
@Entry @Entry
@Component @Component
struct ScrollExample { struct Index {
scroller: Scroller = new Scroller() @State message: string = 'Hello World'
private arr: number[] = [1,2,3,4]
build() { build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { Row() {
Text('MainPage') Column() {
.fontSize(50) Text(this.message)
.fontWeight(FontWeight.Bold) .fontSize(50)
Stack({ alignContent: Alignment.TopStart }) { .fontWeight(FontWeight.Bold)
Scroll(this.scroller) { }
Column() { .width('100%')
Button() {
Text('next page')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}
.key('my-key')
.type(ButtonType.Capsule)
.margin({ top: 20 })
.onClick(() => {
router.push({ uri: 'pages/second' })
})
.gesture(
LongPressGesture({ repeat: false })
.onAction((event: GestureEvent) => {
router.push({ uri: 'pages/fourth' })
})
)
Button() {
Text('Click twice')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}
.type(ButtonType.Capsule)
.margin({ top: 20 })
.gesture(
TapGesture({ count: 1 })
.onAction(() => {
router.push({ uri: 'pages/third' })
})
)
Checkbox({ name: 'hi' })
.size({ width: 30, height: 30 })
TextInput({ placeholder: 'welcome', text: 'Hello World' })
.type(InputType.Normal)
.width(300)
.height(50)
.fontSize(40)
.enabled(true)
.margin({ top: 20 })
ForEach(this.arr, (item) => {
Text(item.toString())
.width('100%')
.height('30%')
.backgroundColor(0xFFFFFF)
.borderRadius(75)
.fontSize(80)
.textAlign(TextAlign.Center)
.margin({ top: 10 })
}, item => item)
Button() {
Text('bottom')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}.type(ButtonType.Capsule)
.margin({
top: 20, left: 150
})
.onClick(() => {
router.push({ uri: 'pages/second' })
})
}.width('100%')
}
.scrollable(ScrollDirection.Vertical)
.scrollBar(BarState.On)
.scrollBarColor(Color.Gray)
.scrollBarWidth(30)
.onScroll((xOffset: number, yOffset: number) => {
console.info(xOffset + ' ' + yOffset)
})
}.width('100%').height('100%').backgroundColor(0xDCDCDC)
} }
.height('100%')
} }
} }
\ No newline at end of file
...@@ -12,96 +12,20 @@ ...@@ -12,96 +12,20 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import router from '@system.router';
import prompt from '@ohos.prompt';
@Entry @Entry
@Component @Component
struct ScrollExample { struct Index {
scroller: Scroller = new Scroller() @State message: string = 'Hello World'
private arr: number[] = [1,2,3,4]
build() { build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { Row() {
Text('MainPage') Column() {
.fontSize(50) Text(this.message)
.fontWeight(FontWeight.Bold) .fontSize(50)
Stack({ alignContent: Alignment.TopStart }) { .fontWeight(FontWeight.Bold)
Scroll(this.scroller) { }
Column() { .width('100%')
Button() {
Text('next page')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}
.key('my-key')
.type(ButtonType.Capsule)
.margin({ top: 20 })
.onClick(() => {
router.push({ uri: 'pages/second' })
})
.gesture(
LongPressGesture({ repeat: false })
.onAction((event: GestureEvent) => {
router.push({ uri: 'pages/fourth' })
})
)
Button() {
Text('Click twice')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}
.type(ButtonType.Capsule)
.margin({ top: 20 })
.gesture(
TapGesture({ count: 1 })
.onAction(() => {
router.push({ uri: 'pages/third' })
})
)
Checkbox({ name: 'hi' })
.size({ width: 30, height: 30 })
TextInput({ placeholder: 'welcome', text: 'Hello World' })
.type(InputType.Normal)
.width(300)
.height(50)
.fontSize(40)
.enabled(true)
.margin({ top: 20 })
ForEach(this.arr, (item) => {
Text(item.toString())
.width('100%')
.height('30%')
.backgroundColor(0xFFFFFF)
.borderRadius(75)
.fontSize(80)
.textAlign(TextAlign.Center)
.margin({ top: 10 })
}, item => item)
Button() {
Text('bottom')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}.type(ButtonType.Capsule)
.margin({
top: 20, left: 150
})
.onClick(() => {
router.push({ uri: 'pages/second' })
})
}.width('100%')
}
.scrollable(ScrollDirection.Vertical)
.scrollBar(BarState.On)
.scrollBarColor(Color.Gray)
.scrollBarWidth(30)
.onScroll((xOffset: number, yOffset: number) => {
console.info(xOffset + ' ' + yOffset)
})
}.width('100%').height('100%').backgroundColor(0xDCDCDC)
} }
.height('100%')
} }
} }
\ No newline at end of file
...@@ -2,11 +2,11 @@ ...@@ -2,11 +2,11 @@
"string": [ "string": [
{ {
"name": "entry_MainAbility", "name": "entry_MainAbility",
"value": "entry_MainAbility" "value": "uitest_MainAbility"
}, },
{ {
"name": "description_mainability", "name": "description_mainability",
"value": "ETS_Empty Ability" "value": "uitest_MainAbility"
}, },
{ {
"name": "TestAbility_desc", "name": "TestAbility_desc",
......
# Copyright (C) 2022 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//test/xts/tools/build/suite.gni")
ohos_hap_assist_suite("ActsUiTestScene") {
hap_profile = "./src/main/config.json"
deps = [
":uitest_scene_ets_assets",
":uitest_scene_ets_resources",
]
ets2abc = true
js_build_mode = "debug"
testonly = true
certificate_profile = "//test/xts/acts/arkXtest/uitestScene/signature/auto_ohos_default_com.uitest.test.p7b"
hap_name = "ActsUiTestScene"
}
ohos_js_assets("uitest_scene_ets_assets") {
source_dir = "./src/main/ets/MainAbility"
}
ohos_resources("uitest_scene_ets_resources") {
sources = [ "./src/main/resources" ]
hap_profile = "./src/main/config.json"
}
{
"app": {
"vendor": "open",
"bundleName": "com.uitestScene.acts",
"version": {
"code": 1000000,
"name": "1.0.0"
},
"apiVersion": {
"compatible": 7,
"releaseType": "Release",
"target": 8
}
},
"deviceConfig": {},
"module": {
"package": "com.uitestScene.acts",
"name": ".MyApplication",
"mainAbility": ".MainAbility",
"srcPath": "MainAbility",
"deviceType": [
"phone"
],
"distro": {
"moduleType": "entry",
"installationFree": false,
"deliveryWithInstall": true,
"moduleName": "entry"
},
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"orientation": "unspecified",
"visible": true,
"srcPath": "MainAbility",
"name": ".MainAbility",
"srcLanguage": "ets",
"icon": "$media:icon",
"description": "$string:description_mainability",
"formsEnabled": false,
"label": "$string:entry_MainAbility",
"type": "page",
"launchType": "standard"
}
],
"js": [
{
"mode": {
"syntax": "ets",
"type": "pageAbility"
},
"pages": [
"pages/index",
"pages/second",
"pages/third",
"pages/fourth",
"pages/screen"
],
"name": ".MainAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
]
}
}
\ No newline at end of file
/**
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export default {
onCreate() {
console.info('Application onCreate')
},
onDestroy() {
console.info('Application onDestroy')
},
}
\ No newline at end of file
/**
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import router from '@system.router';
import prompt from '@ohos.prompt';
@Entry
@Component
struct ScrollExample {
scroller: Scroller = new Scroller()
private arr: number[] = [1,2,3,4]
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text('MainPage')
.fontSize(50)
.fontWeight(FontWeight.Bold)
Stack({ alignContent: Alignment.TopStart }) {
Scroll(this.scroller) {
Column() {
Button() {
Text('next page')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}
.key('my-key')
.type(ButtonType.Capsule)
.margin({ top: 20 })
.onClick(() => {
router.push({ uri: 'pages/second' })
})
.gesture(
LongPressGesture({ repeat: false })
.onAction((event: GestureEvent) => {
router.push({ uri: 'pages/fourth' })
})
)
Button() {
Text('Click twice')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}
.type(ButtonType.Capsule)
.margin({ top: 20 })
.gesture(
TapGesture({ count: 1 })
.onAction(() => {
router.push({ uri: 'pages/third' })
})
)
Button() {
Text('jump')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}
.type(ButtonType.Capsule)
.margin({ top: 20 })
.onClick(() => {
router.push({ uri: 'pages/screen' })
})
Checkbox({ name: 'hi' })
.size({ width: 30, height: 30 })
TextInput({ placeholder: 'welcome', text: 'Hello World' })
.type(InputType.Normal)
.width(300)
.height(50)
.fontSize(40)
.enabled(true)
.margin({ top: 20 })
ForEach(this.arr, (item) => {
Text(item.toString())
.width('100%')
.height('30%')
.backgroundColor(0xFFFFFF)
.borderRadius(75)
.fontSize(80)
.textAlign(TextAlign.Center)
.margin({ top: 10 })
}, item => item)
Button() {
Text('bottom')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}.type(ButtonType.Capsule)
.margin({
top: 20, left: 150
})
.onClick(() => {
router.push({ uri: 'pages/second' })
})
}.width('100%')
}
.scrollable(ScrollDirection.Vertical)
.scrollBar(BarState.On)
.scrollBarColor(Color.Gray)
.scrollBarWidth(30)
.onScroll((xOffset: number, yOffset: number) => {
console.info(xOffset + ' ' + yOffset)
})
}.width('100%').height('100%').backgroundColor(0xDCDCDC)
}
}
}
/**
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import router from '@system.router';
import prompt from '@ohos.prompt';
@Entry
@Component
struct Screen {
@State myscale: number = 1
build() {
Column() {
Image($r('app.media.computer'))
.objectFit(ImageFit.Auto)
.height(200)
.width(200)
.position({x:150, y:200})
.scale({ x: this.myscale, y: this.myscale, z: this.myscale })
.gesture(
PinchGesture()
.onActionStart((event: GestureEvent) => {
console.info('Pinch start')
})
.onActionUpdate((event: GestureEvent) => {
this.myscale = event.scale
})
.onActionEnd(() => {
console.info('Pinch end')
})
)
}
.width('100%')
.height('100%')
}
}
\ No newline at end of file
{
"string": [
{
"name": "entry_MainAbility",
"value": "Scene_MainAbility"
},
{
"name": "description_mainability",
"value": "Scene_MainAbility"
},
{
"name": "TestAbility_desc",
"value": "description"
},
{
"name": "TestAbility_label",
"value": "label"
}
]
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册