diff --git a/resourceschedule/resourceschedule_standard/BUILD.gn b/resourceschedule/resourceschedule_standard/BUILD.gn index 44d0f78e3db5749fc951f9be36738440d93bffab..f6856225f1693f3c432e7482728a3c279c8a8bf2 100644 --- a/resourceschedule/resourceschedule_standard/BUILD.gn +++ b/resourceschedule/resourceschedule_standard/BUILD.gn @@ -19,6 +19,7 @@ group("resourceschedule_standard") { deps = [ "backgroundtaskmanager:resourceschedule_backgroundtaskmanager_js_test", "reminderagent:resourceschedule_reminderagent_js_test", + "workscheduler:resourceschedule_workscheduler_js_test", ] } } diff --git a/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/config.json b/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/config.json index 4bfcac71cca3b710c269f57894d1628a0346c40a..48be015ebfb25ff147ce0db144befc3ca0dee44b 100644 --- a/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/config.json +++ b/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/config.json @@ -36,6 +36,9 @@ ] } ], + "backgroundModes": [ + "dataTransfer" + ], "name": "ohos.acts.resourceschedule.taskmgr.js.function.MainAbility", "icon": "$media:icon", "description": "$string:mainability_description", @@ -55,6 +58,16 @@ "autoDesignWidth": false } } - ] + ], + "defPermissions": [ + { + "name": "ohos.permission.KEEP_BACKGROUND_RUNNING" + } + ], + "reqPermissions": [ + { + "name": "ohos.permission.KEEP_BACKGROUND_RUNNING" + } + ] } } diff --git a/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/js/default/test/BackgroundTaskMagrJs.test.js b/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/js/default/test/BackgroundTaskMagrJs.test.js index e7389dd8d4e1683a08e982b65de534fa7ab9e844..b846ad17de266f0b9a0159e8e66053915012b5cc 100755 --- a/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/js/default/test/BackgroundTaskMagrJs.test.js +++ b/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/js/default/test/BackgroundTaskMagrJs.test.js @@ -18,6 +18,7 @@ import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from ' describe("TransientTaskJsTest", function () { beforeAll(function() { + /* * @tc.setup: setup invoked before all testcases */ @@ -25,6 +26,7 @@ describe("TransientTaskJsTest", function () { }) afterAll(function() { + /* * @tc.teardown: teardown invoked after all testcases */ @@ -32,6 +34,7 @@ describe("TransientTaskJsTest", function () { }) beforeEach(function() { + /* * @tc.setup: setup invoked before each testcases */ @@ -39,6 +42,7 @@ describe("TransientTaskJsTest", function () { }) afterEach(function() { + /* * @tc.teardown: teardown invoked after each testcases */ @@ -49,7 +53,7 @@ describe("TransientTaskJsTest", function () { * @tc.name: TransientTaskJsTest001 * @tc.desc: test request a suspend delay * @tc.type: FUNC - * @tc.require: AR000GH86K AR000GH86N AR000GH86L + * @tc.require: */ it("TransientTaskJsTest001", 0, async function (done) { console.info('----------------------TransientTaskJsTest001---------------------------'); @@ -69,7 +73,7 @@ describe("TransientTaskJsTest", function () { * @tc.name: TransientTaskJsTest002 * @tc.desc: test transient task more than three * @tc.type: FUNC - * @tc.require: AR000GH86K AR000GH86L AR000GH86N + * @tc.require: */ it("TransientTaskJsTest002", 0, async function (done) { console.info('----------------------TransientTaskJsTest002---------------------------'); @@ -94,7 +98,7 @@ describe("TransientTaskJsTest", function () { * @tc.name: TransientTaskJsTest003 * @tc.desc: test getRemainingDelayTime Promise * @tc.type: FUNC - * @tc.require: AR000GH86M AR000GH860 AR000GH86L + * @tc.require: */ it("TransientTaskJsTest003", 0, async function (done) { function callback() {} @@ -126,7 +130,7 @@ describe("TransientTaskJsTest", function () { * @tc.name: TransientTaskJsTest004 * @tc.desc: test getRemainingDelayTime Callback * @tc.type: FUNC - * @tc.require: AR000GH86M AR000GH860 AR000GH86L + * @tc.require: */ it("TransientTaskJsTest004", 0, async function (done) { function callback() {} @@ -160,7 +164,7 @@ describe("TransientTaskJsTest", function () { * @tc.name: TransientTaskJsTest005 * @tc.desc: test request a suspend delay * @tc.type: FUNC - * @tc.require: AR000GH86K AR000GH86N AR000GH86L + * @tc.require: */ it("TransientTaskJsTest005", 0, async function (done) { console.info('----------------------TransientTaskJsTest005---------------------------'); diff --git a/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/js/default/test/ContinuousTaskJsunit.test.js b/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/js/default/test/ContinuousTaskJsunit.test.js new file mode 100644 index 0000000000000000000000000000000000000000..f050f148215e439fa4b358ff4e86ef25e46aa3ba --- /dev/null +++ b/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/js/default/test/ContinuousTaskJsunit.test.js @@ -0,0 +1,390 @@ +/* + * 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 notification from '@ohos.notification'; +import wantAgent from '@ohos.wantAgent'; +import particleAbility from '@ohos.ability.particleAbility' +import backgroundTaskManager from '@ohos.backgroundTaskManager' +import featureAbility from '@ohos.ability.featureAbility' + +import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' + +describe("ContinuousTaskJsTest", function () { + beforeAll(function() { + + /* + * @tc.setup: setup invoked before all testcases + */ + console.info('beforeAll called') + }) + + afterAll(function() { + + /* + * @tc.teardown: teardown invoked after all testcases + */ + console.info('afterAll called') + }) + + beforeEach(function() { + + /* + * @tc.setup: setup invoked before each testcases + */ + console.info('beforeEach called') + }) + + afterEach(function() { + + /* + * @tc.teardown: teardown invoked after each testcases + */ + console.info('afterEach called') + particleAbility.cancelBackgroundRunning(); + setTimeout(() => {}, 500); + backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext()); + setTimeout(() => {}, 500); + }) + + /* + * @tc.name:ContinuousTaskJsTest001 + * @tc.desc:verify new startBackgroundrunning interface promise mode work properly + * @tc.type: FUNC + * @tc.require: + */ + it("ContinuousTaskJsTest001", 0, async function (done) { + let wantAgentInfo = { + wants: [ + { + bundleName: "com.continuoustask.test", + abilityName: "com.continuoustask.test.MainAbility" + } + ], + operationType: 2, + requestCode: 0, + wantAgentFlags: [3] + }; + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(), + backgroundTaskManager.BackgroundMode.DATA_TRANSFER, data).then(() => { + console.log("ContinuousTaskJsTest001 startBackgroundRunning success"); + expect(true).assertTrue(); + setTimeout(() => { + done(); + }, 500); + }).catch((err) => { + expect(false).assertTrue(); + console.log("ContinuousTaskJsTest001 startBackgroundRunning failure"); + setTimeout(() => { + done(); + }, 500); + }); + }); + }) + + /* + * @tc.name:ContinuousTaskJsTest002 + * @tc.desc:verify new startBackgroundrunning interface callback mode work properly + * @tc.type: FUNC + * @tc.require: + */ + it("ContinuousTaskJsTest002", 0, async function (done) { + function conTaskCallback(err, data) { + if (err) { + console.info('ContinuousTaskJsTest002 startBackgroundRunning failed'); + expect(false).assertTrue(); + } else { + console.info('ContinuousTaskJsTest002 startBackgroundRunning succeed'); + expect(true).assertTrue(); + } + setTimeout(()=>{ + done(); + }, 500); + } + let wantAgentInfo = { + wants: [ + { + bundleName: "com.continuoustask.test", + abilityName: "com.continuoustask.test.MainAbility" + } + ], + operationType: 2, + requestCode: 0, + wantAgentFlags: [3] + }; + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(), + backgroundTaskManager.BackgroundMode.DATA_TRANSFER, data, conTaskCallback); + }); + }) + + /* + * @tc.name:ContinuousTaskJsTest003 + * @tc.desc:verify old startBackgroundrunning interface promise mode work properly + * @tc.type: FUNC + * @tc.require: + */ + it("ContinuousTaskJsTest003", 0, async function (done) { + let wantAgentInfo = { + wants: [ + { + bundleName: "com.continuoustask.test", + abilityName: "com.continuoustask.test.MainAbility" + } + ], + operationType: 2, + requestCode: 0, + wantAgentFlags: [3] + }; + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + let basicContent = { + title: "title", + text: "text" + }; + + let notificationContent = { + contentType: notification.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, + normal: basicContent + }; + + let request = { + content: notificationContent, + wantAgent: data + } + + let id = 1; + + particleAbility.startBackgroundRunning(id, request).then((data) => { + console.log("ContinuousTaskJsTest003 startBackgroundRunning success"); + expect(true).assertTrue(); + setTimeout(() => { + done(); + }, 500); + }).catch((err) => { + expect(false).assertTrue(); + console.log("ContinuousTaskJsTest003 startBackgroundRunning failure"); + setTimeout(() => { + done(); + }, 500); + }); + }); + }) + + /* + * @tc.name:ContinuousTaskJsTest004 + * @tc.desc:verify old startBackgroundrunning interface callback mode work properly + * @tc.type: FUNC + * @tc.require: + */ + it("ContinuousTaskJsTest004", 0, async function (done) { + function conTaskCallback(err, data) { + if (err) { + console.info('ContinuousTaskJsTest004 startBackgroundRunning failure'); + expect(false).assertTrue(); + } else { + console.info('ContinuousTaskJsTest004 startBackgroundRunning success'); + expect(true).assertTrue(); + } + setTimeout(()=>{ + done(); + }, 500); + } + let wantAgentInfo = { + wants: [ + { + bundleName: "com.continuoustask.test", + abilityName: "com.continuoustask.test.MainAbility" + } + ], + operationType: 2, + requestCode: 0, + wantAgentFlags: [3] + }; + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + let basicContent = { + title: "title", + text: "text" + }; + + let notificationContent = { + contentType: notification.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, + normal: basicContent + }; + + let request = { + content: notificationContent, + wantAgent: data + } + + let id = 1; + + particleAbility.startBackgroundRunning(id, request, conTaskCallback); + }); + }) + + /* + * @tc.name:ContinuousTaskJsTest005 + * @tc.desc:verify new api stopBackgroundrunning interface promise mode work properly + * @tc.type: FUNC + * @tc.require: + */ + it("ContinuousTaskJsTest005", 0, async function (done) { + let wantAgentInfo = { + wants: [ + { + bundleName: "com.continuoustask.test", + abilityName: "com.continuoustask.test.MainAbility" + } + ], + operationType: 2, + requestCode: 0, + wantAgentFlags: [3] + }; + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(), + backgroundTaskManager.BackgroundMode.DATA_TRANSFER, data).then((data) => { + backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext()).then((data) => { + console.log("ContinuousTaskJsTest005 cancelBackgroundRunning success"); + expect(true).assertTrue(); + setTimeout(() => { + done(); + }, 500); + }).catch((err) => { + expect(false).assertTrue(); + console.log("ContinuousTaskJsTest005 cancelBackgroundRunning failure"); + setTimeout(() => { + done(); + }, 500); + }); + }) + }); + }) + + /* + * @tc.name:ContinuousTaskJsTest006 + * @tc.desc:verify new api stopBackgroundrunning interface callback mode work properly + * @tc.type: FUNC + * @tc.require: + */ + it("ContinuousTaskJsTest006", 0, async function (done) { + function conTaskCallback(err, data) { + if (err) { + console.info('ContinuousTaskJsTest006 startBackgroundRunning failure'); + expect(false).assertTrue(); + } else { + console.info('ContinuousTaskJsTest006 startBackgroundRunning success'); + expect(true).assertTrue(); + } + setTimeout(()=>{ + done(); + }, 500); + } + let wantAgentInfo = { + wants: [ + { + bundleName: "com.continuoustask.test", + abilityName: "com.continuoustask.test.MainAbility" + } + ], + operationType: 2, + requestCode: 0, + wantAgentFlags: [3] + }; + wantAgent.getWantAgent(wantAgentInfo).then((data) => { + backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(), + backgroundTaskManager.BackgroundMode.DATA_TRANSFER, data).then((data) => { + backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext(), conTaskCallback); + }) + }); + }) + + /* + * @tc.name:ContinuousTaskJsTest007 + * @tc.desc:verify old api cancelBackgroundrunning interface promise mode work properly + * @tc.type: FUNC + * @tc.require: + */ + it("ContinuousTaskJsTest007", 0, async function (done) { + let wantAgentInfo = { + wants: [ + { + bundleName: "com.continuoustask.test", + abilityName: "com.continuoustask.test.MainAbility" + } + ], + operationType: 2, + requestCode: 0, + wantAgentFlags: [3] + }; + await wantAgent.getWantAgent(wantAgentInfo).then((data) => { + particleAbility.startBackgroundRunning(data); + setTimeout(()=>{ + }, 500); + }); + + particleAbility.cancelBackgroundRunning().then(() => { + console.log("ContinuousTaskJsTest007 cancelBackgroundRunning success"); + expect(true).assertTrue(); + setTimeout(() => { + done(); + }, 500); + }).catch( (err) => { + expect(false).assertTrue(); + console.log("ContinuousTaskJsTest007 cancelBackgroundRunning failure"); + setTimeout(() => { + done(); + }, 500); + }); + }) + + /* + * @tc.name:ContinuousTaskJsTest008 + * @tc.desc:verify old cancelBackgroundrunning interface callback mode work properly + * @tc.type: FUNC + * @tc.require: + */ + it("ContinuousTaskJsTest008", 0, async function (done) { + function conTaskCallback(err, data) { + if (err) { + console.info('ContinuousTaskJsTest008 startBackgroundRunning failure'); + expect(false).assertTrue(); + } else { + console.info('ContinuousTaskJsTest008 startBackgroundRunning success'); + expect(true).assertTrue(); + } + setTimeout(()=>{ + done(); + }, 500); + } + let wantAgentInfo = { + wants: [ + { + bundleName: "com.continuoustask.test", + abilityName: "com.continuoustask.test.MainAbility" + } + ], + operationType: 2, + requestCode: 0, + wantAgentFlags: [3] + }; + await wantAgent.getWantAgent(wantAgentInfo).then((data) => { + particleAbility.startBackgroundRunning(data); + setTimeout(()=>{ + }, 500); + }); + + particleAbility.cancelBackgroundRunning(conTaskCallback); + }) +}) \ No newline at end of file diff --git a/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/js/default/test/List.test.js b/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/js/default/test/List.test.js index 4f9eddaf490c96e23597fee1833b8aa8130a3935..6f41586fab945d6ab844209ff65619fa1e3ace8f 100755 --- a/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/js/default/test/List.test.js +++ b/resourceschedule/resourceschedule_standard/backgroundtaskmanager/src/main/js/default/test/List.test.js @@ -14,6 +14,8 @@ */ require('./BackgroundTaskMagrJs.test.js') +require('./ContinuousTaskJsunit.test.js') + diff --git a/resourceschedule/resourceschedule_standard/workscheduler/BUILD.gn b/resourceschedule/resourceschedule_standard/workscheduler/BUILD.gn new file mode 100644 index 0000000000000000000000000000000000000000..bf4768981b1a655adb4b0fab2e4cc52a94152623 --- /dev/null +++ b/resourceschedule/resourceschedule_standard/workscheduler/BUILD.gn @@ -0,0 +1,31 @@ +# Copyright (C) 2021 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_js_hap_suite("resourceschedule_workscheduler_js_test") { + hap_profile = "./src/main/config.json" + deps = [ + ":resourceschedule_js_assets", + ":resourceschedule_js_resources", + ] + certificate_profile = "./signature/openharmony_sx.p7b" + hap_name = "ActsResourcescheduleWorkSchedulerTest" +} +ohos_js_assets("resourceschedule_js_assets") { + source_dir = "./src/main/js/default" +} +ohos_resources("resourceschedule_js_resources") { + sources = [ "./src/main/resources" ] + hap_profile = "./src/main/config.json" +} diff --git a/resourceschedule/resourceschedule_standard/workscheduler/Test.json b/resourceschedule/resourceschedule_standard/workscheduler/Test.json new file mode 100644 index 0000000000000000000000000000000000000000..77338dc7860cc8a12dbdb8ed0a0d79449c227207 --- /dev/null +++ b/resourceschedule/resourceschedule_standard/workscheduler/Test.json @@ -0,0 +1,18 @@ +{ + "description": "Configuration for resourceschedule js api Tests", + "driver": { + "type": "JSUnitTest", + "test-timeout": "300000", + "package": "ohos.acts.resourceschedule.workscheduler.js.function", + "shell-timeout": "60000" + }, + "kits": [ + { + "test-file-name": [ + "ActsResourcescheduleWorkSchedulerTest.hap" + ], + "type": "AppInstallKit", + "cleanup-apps": true + } + ] +} diff --git a/resourceschedule/resourceschedule_standard/workscheduler/signature/openharmony_sx.p7b b/resourceschedule/resourceschedule_standard/workscheduler/signature/openharmony_sx.p7b new file mode 100644 index 0000000000000000000000000000000000000000..9be1e98fa4c0c28ca997ed660112fa16b194f0f5 Binary files /dev/null and b/resourceschedule/resourceschedule_standard/workscheduler/signature/openharmony_sx.p7b differ diff --git a/resourceschedule/resourceschedule_standard/workscheduler/src/main/config.json b/resourceschedule/resourceschedule_standard/workscheduler/src/main/config.json new file mode 100644 index 0000000000000000000000000000000000000000..a584f7a59febec4c8ae01d7dd2af34bc61229e50 --- /dev/null +++ b/resourceschedule/resourceschedule_standard/workscheduler/src/main/config.json @@ -0,0 +1,60 @@ +{ + "app": { + "bundleName": "ohos.acts.resourceschedule.workscheduler.js.function", + "vendor": "example", + "version": { + "code": 1, + "name": "1.0" + }, + "apiVersion": { + "compatible": 4, + "target": 5 + } + }, + "deviceConfig": {}, + "module": { + "package": "ohos.acts.resourceschedule.workscheduler.js.function", + "name": ".MyApplication", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry" + }, + "abilities": [ + { + "visible": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "name": "ohos.acts.resourceschedule.workscheduler.js.function.MainAbility", + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "launchType": "standard" + } + ], + "js": [ + { + "pages": [ + "pages/index/index" + ], + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ] + } +} diff --git a/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/app.js b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/app.js new file mode 100644 index 0000000000000000000000000000000000000000..e423f4bce4698ec1d7dc86c3eea3990a5e7b1085 --- /dev/null +++ b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/app.js @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2021 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('AceApplication onCreate'); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git a/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/i18n/en-US.json b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/i18n/en-US.json new file mode 100644 index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c --- /dev/null +++ b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/i18n/en-US.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "Hello", + "world": "World" + } +} \ No newline at end of file diff --git a/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/i18n/zh-CN.json b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/i18n/zh-CN.json new file mode 100644 index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f --- /dev/null +++ b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/i18n/zh-CN.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + } +} \ No newline at end of file diff --git a/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/pages/index/index.css b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/pages/index/index.css new file mode 100644 index 0000000000000000000000000000000000000000..6fda792753f2e15f22b529c7b90a82185b2770bf --- /dev/null +++ b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/pages/index/index.css @@ -0,0 +1,9 @@ +.container { + flex-direction: column; + justify-content: center; + align-items: center; +} + +.title { + font-size: 100px; +} diff --git a/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/pages/index/index.hml b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/pages/index/index.hml new file mode 100644 index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184 --- /dev/null +++ b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/pages/index/index.hml @@ -0,0 +1,5 @@ +
+ + {{ $t('strings.hello') }} {{ title }} + +
diff --git a/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/pages/index/index.js b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/pages/index/index.js new file mode 100644 index 0000000000000000000000000000000000000000..0c564bb030d56eb17a14063cee23df41abced5ba --- /dev/null +++ b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/pages/index/index.js @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 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 {Core, ExpectExtend} from 'deccjsunit/index' + +const injectRef = Object.getPrototypeOf(global) || global +injectRef.regeneratorRuntime = require('@babel/runtime/regenerator') + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + }, + onShow() { + console.info('onShow finish') + const core = Core.getInstance() + const expectExtend = new ExpectExtend({ + 'id': 'extend' + }) + core.addService('expect', expectExtend) + core.init() + + const configService = core.getDefaultService('config') + configService.setConfig(this) + + require('../../test/List.test') + core.execute() + }, + onReady() { + }, +} diff --git a/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/test/List.test.js b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/test/List.test.js new file mode 100644 index 0000000000000000000000000000000000000000..a83df0fefc414475f8a40e9ce0eec391cd2a0a11 --- /dev/null +++ b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/test/List.test.js @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2021 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. + */ + +require('./WorkScheduler.test.js') + + + + diff --git a/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/test/WorkScheduler.test.js b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/test/WorkScheduler.test.js new file mode 100644 index 0000000000000000000000000000000000000000..d05da4c7ae55194c65679adb09e2603b282d6eb0 --- /dev/null +++ b/resourceschedule/resourceschedule_standard/workscheduler/src/main/js/default/test/WorkScheduler.test.js @@ -0,0 +1,621 @@ +/* + * 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 workScheduler from '@ohos.workScheduler' + +import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' + +describe("WorkSchedulerJsTest", function () { + beforeAll(function() { + + /* + * @tc.setup: setup invoked before all testcases + */ + console.info('beforeAll caled') + }) + + afterAll(function() { + + /* + * @tc.teardown: teardown invoked after all testcases + */ + console.info('afterAll caled') + }) + + beforeEach(function() { + + /* + * @tc.setup: setup invoked before each testcases + */ + console.info('beforeEach caled') + }) + + afterEach(function() { + + /* + * @tc.teardown: teardown invoked after each testcases + */ + console.info('afterEach caled') + }) + + /* + * @tc.name: WorkSchedulerJsTest001 + * @tc.desc: test work scheduler work id < 0 + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest001", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest001---------------------------'); + let workInfo = { + workId: -1, + bundleName: "ohos.acts.resourceschedule.workscheduler.js.function", + abilityName: "com.mytest.abilityName" + } + var res = workScheduler.startWork(workInfo); + expect(res).assertEqual(false) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest002 + * @tc.desc: test work scheduler work id = 0 + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest002", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest002---------------------------'); + let workInfo = { + workId: 0, + bundleName: "ohos.acts.resourceschedule.workscheduler.js.function", + abilityName: "com.mytest.abilityName", + storageRequest: workScheduler.StorageRequest.STORAGE_LEVEL_OKAY + } + var res = workScheduler.startWork(workInfo); + expect(res).assertEqual(true) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest003 + * @tc.desc: test work scheduler without bundle name. + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest003", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest003---------------------------'); + let workInfo = { + workId: 3, + abilityName: "com.mytest.abilityName", + storageRequest: workScheduler.StorageRequest.STORAGE_LEVEL_OKAY + } + var res = workScheduler.startWork(workInfo); + expect(res).assertEqual(false) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest004 + * @tc.desc: test work scheduler without ability name. + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest004", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest004---------------------------'); + let workInfo = { + workId: 4, + bundleName: "ohos.acts.resourceschedule.workscheduler.js.function", + storageRequest: workScheduler.StorageRequest.STORAGE_LEVEL_OKAY + } + var res = workScheduler.startWork(workInfo); + expect(res).assertEqual(false) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest005 + * @tc.desc: test work scheduler without conditions. + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest005", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest005---------------------------'); + let workInfo = { + workId: 5, + bundleName: "ohos.acts.resourceschedule.workscheduler.js.function", + abilityName: "com.mytest.abilityName" + } + var res = workScheduler.startWork(workInfo); + expect(res).assertEqual(false) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest006 + * @tc.desc: test work scheduler success. + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest006", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest006---------------------------'); + let workInfo = { + workId: 6, + bundleName: "ohos.acts.resourceschedule.workscheduler.js.function", + abilityName: "com.mytest.abilityName", + storageRequest: workScheduler.StorageRequest.STORAGE_LEVEL_OKAY + } + var res = workScheduler.startWork(workInfo); + expect(res).assertEqual(true) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest007 + * @tc.desc: test stopWork. + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest007", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest007---------------------------'); + let workInfo = { + workId: 7, + bundleName: "ohos.acts.resourceschedule.workscheduler.js.function", + abilityName: "com.mytest.abilityName", + storageRequest: workScheduler.StorageRequest.STORAGE_LEVEL_OKAY + } + var res = workScheduler.startWork(workInfo); + if (res == true) { + var stopRes = workScheduler.stopWork(workInfo, false); + expect(stopRes).assertEqual(true) + } else { + expect(false).assertEqual(true) + } + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest008 + * @tc.desc: test stopWork. + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest008", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest008---------------------------'); + let workInfo = { + workId: 8, + bundleName: "ohos.acts.resourceschedule.workscheduler.js.function", + abilityName: "com.mytest.abilityName", + storageRequest: workScheduler.StorageRequest.STORAGE_LEVEL_OKAY + } + var res = workScheduler.startWork(workInfo); + if (res == true) { + var stopRes = workScheduler.stopWork(workInfo, false); + expect(stopRes).assertEqual(true) + } else { + expect(false).assertEqual(true) + } + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest009 + * @tc.desc: test getWorkStatus callback. + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest009", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest009---------------------------'); + let workInfo = { + workId: 9, + bundleName: "ohos.acts.resourceschedule.workscheduler.js.function", + abilityName: "com.mytest.abilityName", + storageRequest: workScheduler.StorageRequest.STORAGE_LEVEL_OKAY + } + var res = workScheduler.startWork(workInfo); + if (res == false) { + expect(false).assertEqual(true) + done(); + } + workScheduler.getWorkStatus(9, (err, res) => { + if (err) { + expect(false).assertEqual(true) + } else { + for (let item in res) { + console.info('WORK_SCHEDULER getWorkStatuscallback success,' + item + ' is:' + res[item]); + } + expect(true).assertEqual(true) + } + }); + setTimeout(()=>{ + done(); + }, 500); + }) + + /* + * @tc.name: WorkSchedulerJsTest010 + * @tc.desc: test getWorkStatus promise. + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest010", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest010---------------------------'); + let workInfo = { + workId: 10, + bundleName: "ohos.acts.resourceschedule.workscheduler.js.function", + abilityName: "com.mytest.abilityName", + storageRequest: workScheduler.StorageRequest.STORAGE_LEVEL_OKAY, + batteryLevel: 15 + } + var res = workScheduler.startWork(workInfo); + if (res == false) { + expect(false).assertEqual(true) + done(); + } + + workScheduler.getWorkStatus(10).then((res) => { + for (let item in res) { + console.info('WORK_SCHEDULER getWorkStatuscallback success,' + item + ' is:' + res[item]); + } + expect(true).assertEqual(true) + }).catch((err) => { + expect(false).assertEqual(true) + }) + + setTimeout(()=>{ + done(); + }, 500); + }) + + /* + * @tc.name: WorkSchedulerJsTest011 + * @tc.desc: test obtainAllWorks callback. + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest011", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest011---------------------------'); + let workInfo = { + workId: 11, + bundleName: "ohos.acts.resourceschedule.workscheduler.js.function", + abilityName: "com.mytest.abilityName", + storageRequest: workScheduler.StorageRequest.STORAGE_LEVEL_OKAY + } + var res = workScheduler.startWork(workInfo); + if (res == false) { + expect(false).assertEqual(true) + done(); + } + + workScheduler.obtainAllWorks((err, res) =>{ + if (err) { + expect(false).assertEqual(true) + } else { + console.info('WORK_SCHEDULER obtainAllWorks callback success, data is:' + JSON.stringify(res)); + expect(true).assertEqual(true) + } + }); + + setTimeout(()=>{ + done(); + }, 500); + }) + + /* + * @tc.name: WorkSchedulerJsTest012 + * @tc.desc: test obtainAllWorks promise. + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest012", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest012---------------------------'); + let workInfo = { + workId: 12, + bundleName: "ohos.acts.resourceschedule.workscheduler.js.function", + abilityName: "com.mytest.abilityName", + storageRequest: workScheduler.StorageRequest.STORAGE_LEVEL_OKAY, + batteryLevel: 15 + } + var res = workScheduler.startWork(workInfo); + if (res == false) { + expect(false).assertEqual(true) + done(); + } + + workScheduler.obtainAllWorks().then((res) => { + console.info('WORK_SCHEDULER obtainAllWorks promise success, data is:' + JSON.stringify(res)); + expect(true).assertEqual(true) + }).catch((err) => { + console.info('workschedulerLog obtainAllWorks promise failed, because:' + err.data); + expect(false).assertEqual(true) + }) + + setTimeout(()=>{ + done(); + }, 500); + }) + + /* + * @tc.name: WorkSchedulerJsTest013 + * @tc.desc: test stopAndClearWorks. + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest013", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest013---------------------------'); + let workInfo = { + workId: 13, + bundleName: "ohos.acts.resourceschedule.workscheduler.js.function", + abilityName: "com.mytest.abilityName", + storageRequest: workScheduler.StorageRequest.STORAGE_LEVEL_OKAY + } + var res = workScheduler.startWork(workInfo); + if (res == true) { + var stopRes = workScheduler.stopAndClearWorks(); + expect(stopRes).assertEqual(true) + } else { + expect(false).assertEqual(true) + } + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest014 + * @tc.desc: test isLastWorkTimeOut callback. + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest014", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest014---------------------------'); + workScheduler.isLastWorkTimeOut(14, (err, res) =>{ + if (err) { + expect(false).assertEqual(true) + } else { + console.info('WORK_SCHEDULER isLastWorkTimeOut callback success, data is:' + res); + expect(true).assertEqual(true) + } + }); + setTimeout(()=>{ + done(); + }, 500); + }) + + /* + * @tc.name: WorkSchedulerJsTest015 + * @tc.desc: test isLastWorkTimeOut promise. + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest015", 0, async function (done) { + console.info('----------------------WorkSchedulerJsTest015---------------------------'); + workScheduler.isLastWorkTimeOut(15) + .then(res => { + console.info('WORK_SCHEDULER isLastWorkTimeOut promise success, data is:' + res); + expect(true).assertEqual(true) + }) + .catch(err => { + expect(false).assertEqual(true) + }); + setTimeout(()=>{ + done(); + }, 500); + }) + + /* + * @tc.name: WorkSchedulerJsTest016 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest016", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest016---------------------------'); + let value1 = workScheduler.NetworkType.NETWORK_TYPE_ANY; + expect(value1).assertEqual(0) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest017 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest017", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest017---------------------------'); + let value1 = workScheduler.NetworkType.NETWORK_TYPE_MOBILE; + expect(value1).assertEqual(1) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest018 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest018", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest018---------------------------'); + let value1 = workScheduler.NetworkType.NETWORK_TYPE_WIFI; + expect(value1).assertEqual(2) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest019 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest019", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest019---------------------------'); + let value1 = workScheduler.NetworkType.NETWORK_TYPE_BLUETOOTH; + expect(value1).assertEqual(3) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest020 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest020", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest020---------------------------'); + let value1 = workScheduler.NetworkType.NETWORK_TYPE_WIFI_P2P; + expect(value1).assertEqual(4) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest021 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest021", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest021---------------------------'); + let value1 = workScheduler.NetworkType.NETWORK_TYPE_ETHERNET; + expect(value1).assertEqual(5) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest022 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest022", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest022---------------------------'); + let value1 = workScheduler.ChargingType.CHARGING_PLUGGED_ANY; + expect(value1).assertEqual(0) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest023 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest023", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest023---------------------------'); + let value1 = workScheduler.ChargingType.CHARGING_PLUGGED_AC; + expect(value1).assertEqual(1) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest024 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest024", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest024---------------------------'); + let value1 = workScheduler.ChargingType.CHARGING_PLUGGED_USB; + expect(value1).assertEqual(2) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest025 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest025", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest025---------------------------'); + let value1 = workScheduler.ChargingType.CHARGING_PLUGGED_WIRELESS; + expect(value1).assertEqual(3) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest026 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest026", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest026---------------------------'); + let value1 = workScheduler.BatteryStatus.BATTERY_STATUS_LOW; + expect(value1).assertEqual(0) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest027 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest027", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest027---------------------------'); + let value1 = workScheduler.BatteryStatus.BATTERY_STATUS_OKAY; + expect(value1).assertEqual(1) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest028 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest028", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest028---------------------------'); + let value1 = workScheduler.BatteryStatus.BATTERY_STATUS_LOW_OR_OKAY; + expect(value1).assertEqual(2) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest029 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest029", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest029---------------------------'); + let value1 = workScheduler.StorageRequest.STORAGE_LEVEL_LOW; + expect(value1).assertEqual(0) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest030 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest030", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest030---------------------------'); + let value1 = workScheduler.StorageRequest.STORAGE_LEVEL_OKAY; + expect(value1).assertEqual(1) + done(); + }) + + /* + * @tc.name: WorkSchedulerJsTest031 + * @tc.desc: test work scheduler constant + * @tc.type: FUNC + * @tc.require: + */ + it("WorkSchedulerJsTest031", 0, function (done) { + console.info('----------------------WorkSchedulerJsTest031---------------------------'); + let value1 = workScheduler.StorageRequest.STORAGE_LEVEL_LOW_OR_OKAY; + expect(value1).assertEqual(2) + done(); + }) + +}) \ No newline at end of file diff --git a/resourceschedule/resourceschedule_standard/workscheduler/src/main/resources/base/element/string.json b/resourceschedule/resourceschedule_standard/workscheduler/src/main/resources/base/element/string.json new file mode 100644 index 0000000000000000000000000000000000000000..9704818460bd1101c3343815f4c53b4750198c65 --- /dev/null +++ b/resourceschedule/resourceschedule_standard/workscheduler/src/main/resources/base/element/string.json @@ -0,0 +1,12 @@ +{ + "string": [ + { + "name": "app_name", + "value": "ResourcescheduleJSApiTest" + }, + { + "name": "mainability_description", + "value": "JS_Phone_Empty Feature Ability" + } + ] +} \ No newline at end of file diff --git a/resourceschedule/resourceschedule_standard/workscheduler/src/main/resources/base/media/icon.png b/resourceschedule/resourceschedule_standard/workscheduler/src/main/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c Binary files /dev/null and b/resourceschedule/resourceschedule_standard/workscheduler/src/main/resources/base/media/icon.png differ