diff --git a/arkui/ace_ets_components_ux/ace_ets_component_datepicker/src/main/ets/TestAbility/pages/DatePicker.ets b/arkui/ace_ets_components_ux/ace_ets_component_datepicker/src/main/ets/TestAbility/pages/DatePicker.ets new file mode 100644 index 0000000000000000000000000000000000000000..eec079adbddf951622fd172ff36f377bef1fa624 --- /dev/null +++ b/arkui/ace_ets_components_ux/ace_ets_component_datepicker/src/main/ets/TestAbility/pages/DatePicker.ets @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2023 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 common from '@ohos.app.ability.common'; +import window from '@ohos.window'; +import router from '@ohos.router'; + +@Entry +@Component +struct DatePickerDialogExample { + + private changeOrientation(isLandscape: boolean) { + // 获取UIAbility实例的上下文信息 + let context = getContext(this) as common.UIAbilityContext; + // 调用该接口手动改变设备横竖屏状态 + window.getLastWindow(context).then((lastWindow) => { + lastWindow.setPreferredOrientation(isLandscape ? window.Orientation.LANDSCAPE : window.Orientation.PORTRAIT) + }); + } + selectedDate: Date = new Date("2010-2-2") + + build() { + Column() { + Button('Landscape') + .fontColor(Color.Black) + .focusable(true) + .onClick(() => { + this.changeOrientation(true); + }) + + Button('Portrait') + .fontColor(Color.Black) + .focusable(true) + .onClick(() => { + this.changeOrientation(false); + }) + Button("DatePickerDialog") + .margin(20) + .onClick(() => { + DatePickerDialog.show({ + start: new Date("2000-1-1"), + end: new Date("2100-12-31"), + selected: this.selectedDate, + onDateAccept: (value: Date) => { + console.info("DatePickerDialog:onAccept()" + value.toString()) + }, + onCancel: () => { + console.info("DatePickerDialog:onCancel()") + }, + onDateChange: (value: Date) => { + console.info("DatePickerDialog:onChange()" + value.toString()) + } + }) + }) + + Button("DatePickerDialog") + .margin(20) + .onClick(() => { + DatePickerDialog.show({ + start: new Date("2000-1-1"), + end: new Date("2100-12-31"), + selected: this.selectedDate, + lunar: false, + showTime: true, + onDateAccept: (value: Date) => { + this.selectedDate = value + console.info("DatePickerDialog:onDateAccept()" + value.toString()) + }, + onCancel: () => { + console.info("DatePickerDialog:onCancel()") + }, + onDateChange: (value: Date) => { + console.info("DatePickerDialog:onDateChange()" + value.toString()) + } + }) + }) + DatePicker({ + start: new Date('1970-1-1'), + end: new Date('2100-1-1'), + selected: this.selectedDate + }).key('Stage_DatePicker_Test_0010') + .onDateChange((value: Date) => { + console.info('DatePicker:onDateChange() select current date is: ' + value.toString()) + }) + }.width('100%') + } +} \ No newline at end of file diff --git a/arkui/ace_ets_components_ux/ace_ets_component_datepicker/src/main/ets/test/DatePicker.test.ets b/arkui/ace_ets_components_ux/ace_ets_component_datepicker/src/main/ets/test/DatePicker.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..879182268b3ff6d78cc6e533a2954bca4923cc07 --- /dev/null +++ b/arkui/ace_ets_components_ux/ace_ets_component_datepicker/src/main/ets/test/DatePicker.test.ets @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2023 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 hilog from '@ohos.hilog'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' +import router from '@system.router'; + +export default function ActsDatePickerTest() { + describe('ActsDatePickerTest', function () { + beforeEach(async function (done) { + console.info("flex beforeEach start"); + let options = { + uri: 'TestAbility/pages/DatePicker', + } + try { + router.clear(); + let pages = router.getState(); + console.info("get DatePicker state success " + JSON.stringify(pages)); + if (!("DatePicker" == pages.name)) { + console.info("get DatePicker state success " + JSON.stringify(pages.name)); + let result = await router.push(options); + console.info("push DatePicker page success " + JSON.stringify(result)); + } + } catch (err) { + console.error("push DatePicker page error: " + err); + } + done() + }); + it('Stage_DatePicker_Test_0010', 0, async function (done) { + console.info('Stage_DatePicker_Test_0010 START'); + try{ + let strJson = getInspectorByKey('Stage_DatePicker_Test_0010'); + console.info('Stage_DatePicker_Test_0010 START :'+ JSON.stringify(strJson)); + let obj = JSON.parse(strJson); + console.info("Stage_DatePicker_Test_0010 obj is: " + JSON.stringify(obj)); + let onDateChange = obj.$attrs.onDateChange + expect(typeof onDateChange).assertEqual("undefined") + let DatePickerDialog: DatePickerDialogOptions = { + onDateAccept: (value: Date) => { + console.info("DatePickerDialog:onAccept()" + value.toString()) + }, + onDateChange: (value: Date) => { + console.info("DatePickerDialog:onChange()" + value.toString()) + }} + console.info("Stage_DatePicker_Test_0010 InsertValue is: " + JSON.stringify(DatePickerDialog)) + expect(typeof DatePickerDialog.onDateAccept).assertEqual("function") + expect(typeof DatePickerDialog.onDateChange).assertEqual("function") + console.info('Stage_DatePicker_Test_0010 END '); + } catch(err) { + expect().assertFail() + console.info('Stage_DatePicker_Test_0010 ERR '+ JSON.stringify(err)); + } + done(); + }); + + }) +} \ No newline at end of file diff --git a/arkui/ace_ets_components_ux/ace_ets_component_datepicker/src/main/ets/test/List.test.ets b/arkui/ace_ets_components_ux/ace_ets_component_datepicker/src/main/ets/test/List.test.ets index eebd28f62dc2ccce3ea349988b3ad8d57a4ad452..078f22f392498d3c2f0156833ae6a3a6fb8d379d 100644 --- a/arkui/ace_ets_components_ux/ace_ets_component_datepicker/src/main/ets/test/List.test.ets +++ b/arkui/ace_ets_components_ux/ace_ets_component_datepicker/src/main/ets/test/List.test.ets @@ -13,8 +13,9 @@ * limitations under the License. */ import datepicker from './DatePicker' +import ActsDatePickerTest from './DatePicker.test' export default function testsuite() { datepicker() - + ActsDatePickerTest() } \ No newline at end of file diff --git a/arkui/ace_ets_components_ux/ace_ets_component_datepicker/src/main/resources/base/profile/test_pages.json b/arkui/ace_ets_components_ux/ace_ets_component_datepicker/src/main/resources/base/profile/test_pages.json index 77e90731b5a38d861663029b483df3d3ac9ec74b..39447f3d23f6d337ebbc0267b5daebcd6141f69b 100644 --- a/arkui/ace_ets_components_ux/ace_ets_component_datepicker/src/main/resources/base/profile/test_pages.json +++ b/arkui/ace_ets_components_ux/ace_ets_component_datepicker/src/main/resources/base/profile/test_pages.json @@ -1,5 +1,6 @@ { "src": [ - "TestAbility/pages/Index" + "TestAbility/pages/Index", + "TestAbility/pages/DatePicker" ] }