diff --git a/account/appaccount/BUILD.gn b/account/appaccount/BUILD.gn index 337499c04cd82263bbf3cccdf6f1b05bae796e42..bc5cd5729a2d43f60a996fd96eee8acabb11e26c 100644 --- a/account/appaccount/BUILD.gn +++ b/account/appaccount/BUILD.gn @@ -17,6 +17,7 @@ group("appaccount_hap") { testonly = true if (is_standard_system) { deps = [ + "actsaccountpressure:ActsAccountPressure", "actsaccounttest:ActsAccountTest", "actsgetallaccounts:ActsGetAllAccounts", "actssetchecksyncenable:ActsSetCheckSyncEnable", diff --git a/account/appaccount/actsaccountpressure/BUILD.gn b/account/appaccount/actsaccountpressure/BUILD.gn new file mode 100755 index 0000000000000000000000000000000000000000..a0f36d00ad5e1d0a2e0cb74aa586ef4bb7ccb640 --- /dev/null +++ b/account/appaccount/actsaccountpressure/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("ActsAccountPressure") { + hap_profile = "./entry/src/main/config.json" + deps = [ + ":hjs_demo_js_assets", + ":hjs_demo_resources", + ] + certificate_profile = "./signature/openharmony_sx.p7b" + hap_name = "ActsAccountPressure" +} +ohos_js_assets("hjs_demo_js_assets") { + source_dir = "./entry/src/main/js/default" +} +ohos_resources("hjs_demo_resources") { + sources = [ "./entry/src/main/js/resources" ] + hap_profile = "./entry/src/main/config.json" +} diff --git a/account/appaccount/actsaccountpressure/Test.json b/account/appaccount/actsaccountpressure/Test.json new file mode 100755 index 0000000000000000000000000000000000000000..d01bfc7386c567891a56297636b2b8f5f06115b6 --- /dev/null +++ b/account/appaccount/actsaccountpressure/Test.json @@ -0,0 +1,19 @@ +{ + "description": "Configuration for hjunit demo Tests", + "driver": { + "type": "JSUnitTest", + "test-timeout": "2000000", + "package": "com.example.actsaccountpressure", + "shell-timeout": "60000" + }, + "kits": [ + { + "test-file-name": [ + "ActsAccountPressure.hap", + "ActsAccountSceneAppAccess.hap" + ], + "type": "AppInstallKit", + "cleanup-apps": true + } + ] +} diff --git a/account/appaccount/actsaccountpressure/entry/src/main/config.json b/account/appaccount/actsaccountpressure/entry/src/main/config.json new file mode 100755 index 0000000000000000000000000000000000000000..1424e6c7d006666c36182cadcb8490ec236f3df1 --- /dev/null +++ b/account/appaccount/actsaccountpressure/entry/src/main/config.json @@ -0,0 +1,83 @@ +{ + "app": { + "bundleName": "com.example.actsaccountpressure", + "vendor": "example", + "version": { + "code": 1, + "name": "1.0" + }, + "apiVersion": { + "compatible": 4, + "target": 5, + "releaseType": "Beta1" + } + }, + "deviceConfig": {}, + "module": { + "package": "com.example.actsaccountpressure", + "name": ".MyApplication", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry" + }, + "defPermissions": [ + { + "availableScope": [], + "grantMode": "system_grant", + "name": "ohos.permission.GET_ACCOUNTS_PRIVILEGED" + }, + { + "availableScope": [], + "grantMode": "system_grant", + "name": "ohos.permission.DISTRIBUTED_DATASYNC" + } + ], + "reqPermissions": [ + { + "name": "ohos.permission.GET_ACCOUNTS_PRIVILEGED", + "reason": "ceshi" + }, + { + "name": "ohos.permission.DISTRIBUTED_DATASYNC", + "reason": "ceshi" + } + ], + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "name": "com.example.actsaccountpressure.MainAbility", + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "visible": true, + "launchType": "standard" + } + ], + "js": [ + { + "pages": [ + "pages/index/index" + ], + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ] + } +} \ No newline at end of file diff --git a/account/appaccount/actsaccountpressure/entry/src/main/js/default/app.js b/account/appaccount/actsaccountpressure/entry/src/main/js/default/app.js new file mode 100755 index 0000000000000000000000000000000000000000..2a68c1992145a976957d7dcdd69a7e9c2e8e9877 --- /dev/null +++ b/account/appaccount/actsaccountpressure/entry/src/main/js/default/app.js @@ -0,0 +1,22 @@ +/* + * 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/account/appaccount/actsaccountpressure/entry/src/main/js/default/i18n/en-US.json b/account/appaccount/actsaccountpressure/entry/src/main/js/default/i18n/en-US.json new file mode 100755 index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c --- /dev/null +++ b/account/appaccount/actsaccountpressure/entry/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/account/appaccount/actsaccountpressure/entry/src/main/js/default/i18n/zh-CN.json b/account/appaccount/actsaccountpressure/entry/src/main/js/default/i18n/zh-CN.json new file mode 100755 index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f --- /dev/null +++ b/account/appaccount/actsaccountpressure/entry/src/main/js/default/i18n/zh-CN.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + } +} \ No newline at end of file diff --git a/account/appaccount/actsaccountpressure/entry/src/main/js/default/pages/index/index.css b/account/appaccount/actsaccountpressure/entry/src/main/js/default/pages/index/index.css new file mode 100755 index 0000000000000000000000000000000000000000..6fda792753f2e15f22b529c7b90a82185b2770bf --- /dev/null +++ b/account/appaccount/actsaccountpressure/entry/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/account/appaccount/actsaccountpressure/entry/src/main/js/default/pages/index/index.hml b/account/appaccount/actsaccountpressure/entry/src/main/js/default/pages/index/index.hml new file mode 100755 index 0000000000000000000000000000000000000000..c45422b42d0bf788a1c2c0eb299a981f07ce8613 --- /dev/null +++ b/account/appaccount/actsaccountpressure/entry/src/main/js/default/pages/index/index.hml @@ -0,0 +1,5 @@ +
+ + {{title}} + +
diff --git a/account/appaccount/actsaccountpressure/entry/src/main/js/default/pages/index/index.js b/account/appaccount/actsaccountpressure/entry/src/main/js/default/pages/index/index.js new file mode 100755 index 0000000000000000000000000000000000000000..0155375efd69f301f4cb76b90efdd2121f5862f2 --- /dev/null +++ b/account/appaccount/actsaccountpressure/entry/src/main/js/default/pages/index/index.js @@ -0,0 +1,46 @@ +/* + * 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 file from '@system.file' +import {Core, ExpectExtend} from 'deccjsunit/index' + +const injectRef = Object.getPrototypeOf(global) || global +injectRef.regeneratorRuntime = require('@babel/runtime/regenerator') + +export default { + data: { + title: "account pressure test" + }, + onInit() { + this.title = "account pressure test"; + }, + 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') + this.timeout = 150000; + configService.setConfig(this) + + require('../../../test/List.test') + core.execute() + }, + onReady() { + }, +} \ No newline at end of file diff --git a/account/appaccount/actsaccountpressure/entry/src/main/js/resources/base/element/string.json b/account/appaccount/actsaccountpressure/entry/src/main/js/resources/base/element/string.json new file mode 100755 index 0000000000000000000000000000000000000000..75e175c2d3a866085af645d6c564b4b0f619d8b9 --- /dev/null +++ b/account/appaccount/actsaccountpressure/entry/src/main/js/resources/base/element/string.json @@ -0,0 +1,12 @@ +{ + "string": [ + { + "name": "app_name", + "value": "ActsAccountPressure" + }, + { + "name": "mainability_description", + "value": "JS_Phone_Empty Feature Ability" + } + ] +} \ No newline at end of file diff --git a/account/appaccount/actsaccountpressure/entry/src/main/js/resources/base/media/icon.png b/account/appaccount/actsaccountpressure/entry/src/main/js/resources/base/media/icon.png new file mode 100755 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c Binary files /dev/null and b/account/appaccount/actsaccountpressure/entry/src/main/js/resources/base/media/icon.png differ diff --git a/account/appaccount/actsaccountpressure/entry/src/main/js/test/List.test.js b/account/appaccount/actsaccountpressure/entry/src/main/js/test/List.test.js new file mode 100755 index 0000000000000000000000000000000000000000..eea0224992e5e51b8ce08abe6fdac2e6f000642c --- /dev/null +++ b/account/appaccount/actsaccountpressure/entry/src/main/js/test/List.test.js @@ -0,0 +1,15 @@ +/* + * 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('./Pressure.test.js') \ No newline at end of file diff --git a/account/appaccount/actsaccountpressure/entry/src/main/js/test/Pressure.test.js b/account/appaccount/actsaccountpressure/entry/src/main/js/test/Pressure.test.js new file mode 100755 index 0000000000000000000000000000000000000000..20fe98290a3fbb47bbcca635b52bba05f7b77286 --- /dev/null +++ b/account/appaccount/actsaccountpressure/entry/src/main/js/test/Pressure.test.js @@ -0,0 +1,750 @@ +/* + * 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 account from '@ohos.account.appAccount' +import featureAbility from '@ohos.ability.featureability' +import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' + +const STRESSLEVEL = 100; +const TIMEOUT = 300; +const ACCOUNTLIMIT = 1000; +describe('ActsAccountPressure', function () { + + beforeAll(async function (done) { + console.debug("====>startAbility start===="); + await featureAbility.startAbility( + { + want: + { + deviceId: "", + bundleName: "com.example.actsaccountsceneappaccess", + abilityName: "com.example.actsaccountsceneappaccess.MainAbility", + action: "action1", + parameters: + {}, + }, + }, + ); + sleep(TIMEOUT); + setTimeout(done(), TIMEOUT); + }); + + function sleep(delay) { + var start = (new Date()).getTime(); + while((new Date()).getTime() - start < delay) { + continue; + } + } + + /* + * @tc.number : ActsAccountPressure_0100 + * @tc.name : Stress test add and delete accounts + * @tc.desc : Stress test to add and delete accounts, and to determine the success of the addition and + * deletion by obtaining the specified application information + */ + it('ActsAccountPressure_0100', 0, async function (done) { + console.debug("====>ActsAccountPressure_0100 start===="); + var appAccountManager = account.createAppAccountManager(); + var selfBundle = "com.example.actsaccountpressure"; + let count; + for (count = 0; count < STRESSLEVEL; count++) { + console.debug("====>addAccount time: " + count); + try{ + await appAccountManager.addAccount("account_pressure_promise"); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>addAccount fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + var data = await appAccountManager.getAllAccounts(selfBundle); + sleep(TIMEOUT); + console.debug("====>getAllAccounts time: " + count); + console.debug('====>getAllAccounts data: ' + JSON.stringify(data)); + expect(typeof data).assertEqual('object'); + expect(data[0].name).assertEqual("account_pressure_promise"); + expect(data[0].owner).assertEqual(selfBundle); + expect(data.length).assertEqual(1); + console.debug("====>deleteAccount time: " + count); + try{ + await appAccountManager.deleteAccount("account_pressure_promise"); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>deleteAccount fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + var dataDel = await appAccountManager.getAllAccounts(selfBundle); + console.debug("====>getAllAccounts time: " + count); + console.debug('====>getAllAccounts dataDel: ' + JSON.stringify(dataDel)); + expect(typeof data).assertEqual('object'); + expect(dataDel.length).assertEqual(0); + if(data.length != 1 || dataDel.length != 0){ + break; + } + sleep(TIMEOUT); + } + console.debug("====>the number of times to complete the stress test is: " + count); + console.debug("====>ActsAccountPressure_0100 end===="); + done(); + }); + + /* + * @tc.number : ActsAccountPressure_0200 + * @tc.name : Stress test add and delete accounts + * @tc.desc : Stress test callback form add and delete accounts + */ + it('ActsAccountPressure_0200', 0, async function (done) { + console.debug("====>ActsAccountPressure_0200 start===="); + var appAccountManager = account.createAppAccountManager(); + console.debug("====>creat finish===="); + let flag = true; + let count = 0; + for (let i = 0; i < STRESSLEVEL; i++) { + let accountName = "account_pressure_callback" + i; + appAccountManager.addAccount(accountName, (err)=>{ + console.debug('====>addAccount name: ' + accountName); + expect(err.code).assertEqual(0); + if(err.code != 0){ + console.error("====>addAccount fail err:" + JSON.stringify(err)); + expect().assertFail(); + flag = false; + done(); + } + appAccountManager.deleteAccount(accountName, (err)=>{ + console.debug('====>deleteAccount name: ' + accountName); + expect(err.code).assertEqual(0); + if(err.code != 0){ + console.error("====>deleteAccount fail err:" + JSON.stringify(err)); + console.error('====>call function level is: ' + count); + expect().assertFail(); + flag = false; + done(); + } + if (count == STRESSLEVEL - 1) { + count++; + console.debug("====>the number of times to complete the stress test is: " + count); + console.debug("====>ActsAccountPressure_0200 end===="); + done(); + } + count++; + sleep(TIMEOUT); + }) + }); + sleep(TIMEOUT); + if (!flag) { + done(); + break; + } + } + }); + + /* + * @tc.number : ActsAccountPressure_0300 + * @tc.name : Stress test add and delete accounts + * @tc.desc : Stress testing a large number of adding accounts together and deleting accounts together + */ + it('ActsAccountPressure_0300', 0, async function (done) { + console.debug("====>ActsAccountPressure_0300 start===="); + var appAccountManager = account.createAppAccountManager(); + let count; + let STRESSNUM; + if(STRESSLEVEL > ACCOUNTLIMIT){ + STRESSNUM = ACCOUNTLIMIT; + }else{ + STRESSNUM = STRESSLEVEL; + } + console.debug("====>addAccount start===="); + for (count = 0; count < STRESSNUM; count++) { + let accountName = "account_pressure_limit" + count; + console.debug('====>addAccount name: ' + accountName); + try{ + await appAccountManager.addAccount(accountName); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>addAccount fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + } + if(STRESSNUM == ACCOUNTLIMIT){ + try{ + await appAccountManager.addAccount("account_name_limit"); + console.debug("====>the number of added accounts exceeds the limit===="); + expect().assertFail(); + done(); + } + catch(err){ + console.debug("====>add Account that exceed the limit err:" + JSON.stringify(err)); + expect(err.code != 0).assertEqual(true); + await appAccountManager.deleteAccount("account_name_limit"); + } + } + console.debug("====>deleteAccount start===="); + for (count = 0; count < STRESSNUM; count++) { + let accountName = "account_pressure_limit" + count; + console.debug('====>deleteAccount name: ' + accountName); + try{ + await appAccountManager.deleteAccount(accountName); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>deleteAccount fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + } + console.debug("====>the number of times to complete the stress test is: " + count) + console.debug("====>ActsAccountPressure_0300 end===="); + done(); + }); + + /* + * @tc.number : ActsAccountPressure_0400 + * @tc.name : Stress test enableAppAccess and disableAppAccess + * @tc.desc : Stress test authorize the account to the application and de-authorize the account to the + * application + */ + it('ActsAccountPressure_0400', 0, async function (done) { + console.debug("====>ActsAccountPressure_0400 start===="); + var appAccountManager = account.createAppAccountManager(); + var enableBundle = "com.example.actsaccountsceneappaccess"; + let count; + console.debug("====>addAccount 0400 start===="); + try{ + await appAccountManager.addAccount("account_pressure_enable"); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>addAccount fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + for (count = 0; count < STRESSLEVEL; count++) { + console.debug("====>enableAppAccess time: " + count); + try{ + await appAccountManager.enableAppAccess("account_pressure_enable", enableBundle); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>enableAppAccess 0400 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>disableAppAccess time: " + count); + try{ + await appAccountManager.disableAppAccess("account_pressure_enable", enableBundle); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>disableAppAccess 0400 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + } + console.debug("====>deleteAccount 0400 start===="); + try{ + await appAccountManager.deleteAccount("account_pressure_enable"); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>deleteAccount fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>the number of times to complete the stress test is: " + count) + console.debug("====>ActsAccountPressure_0400 end===="); + done(); + }); + + /* + * @tc.number : ActsAccountPressure_0500 + * @tc.name : Stress test setAssociatedData and getAssociatedData + * @tc.desc : Stress test setting associated data and obtaining associated data + */ + it('ActsAccountPressure_0500', 0, async function (done) { + console.debug("====>ActsAccountPressure_0500 start===="); + var appAccountManager = account.createAppAccountManager(); + console.debug("====>creat finish===="); + let count; + let associateKey = ""; + let associateValue = ""; + console.debug("====>add account 0500 start===="); + try{ + await appAccountManager.addAccount("account_pressure_associate"); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>add Account ActsAccountPressure_0500 err:" + JSON.stringify(err)); + expect().asserFail(); + done(); + } + for (count = 0; count < STRESSLEVEL; count++) { + console.debug("====>setAssociatedData time: " + count); + associateKey = "key_pre" + count; + associateValue = "value_pressure" + count; + try{ + await appAccountManager.setAssociatedData("account_pressure_associate", associateKey, associateValue); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>setAssociatedData ActsAccountPressure_0500 err:" + JSON.stringify(err)); + expect().asserFail(); + done(); + } + console.debug("====>getAssociatedData time: " + count); + try{ + var data = await appAccountManager.getAssociatedData("account_pressure_associate", associateKey); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>getAssociatedData ActsAccountPressure_0500 err:" + JSON.stringify(err)); + expect().asserFail(); + done(); + } + console.debug("====>getAssociatedData data:" + JSON.stringify(data)); + expect(data).assertEqual(associateValue); + } + console.debug("====>deleteAccount 0500 start===="); + try{ + await appAccountManager.deleteAccount("account_pressure_associate"); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>delete account 0500 fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>the number of times to complete the stress test is: " + count) + console.debug("====>ActsAccountPressure_0500 end===="); + done(); + }); + + /* + * @tc.number : ActsAccountPressure_0600 + * @tc.name : Stress test setAccountExtraInfo and getAccountExtraInfo + * @tc.desc : Stress test setting additional information and obtaining additional information + */ + it('ActsAccountPressure_0600', 0, async function (done) { + console.debug("====>ActsAccountPressure_0600 start===="); + var appAccountManager = account.createAppAccountManager(); + console.debug("====>creat finish===="); + let count; + let extraInfo = ""; + console.debug("====>add account 0600 start===="); + try{ + await appAccountManager.addAccount("account_pressure_extrainfo"); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>addAccount 0600 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + for (count = 0; count < STRESSLEVEL; count++) { + console.debug("====>setAccountExtraInfo time: " + count); + extraInfo = "pressure_extra" + count; + try{ + await appAccountManager.setAccountExtraInfo("account_pressure_extrainfo", extraInfo); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>setAccountExtraInfo 0600 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>getAccountExtraInfo time: " + count); + try{ + var data = await appAccountManager.getAccountExtraInfo("account_pressure_extrainfo"); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>getAccountExtraInfo 0600 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>getAccountExtraInfo data:" + JSON.stringify(data)); + expect(data).assertEqual(extraInfo); + } + console.debug("====>delete account 0600 start===="); + try{ + await appAccountManager.deleteAccount("account_pressure_extrainfo"); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>deleteAccount 0600 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>the number of times to complete the stress test is: " + count) + console.debug("====>ActsAccountPressure_0600 end===="); + done(); + }); + + /* + * @tc.number : ActsAccountPressure_0700 + * @tc.name : Stress test setAccountCredential and getAccountCredential + * @tc.desc : Stress test setting credential and obtaining credential + */ + it('ActsAccountPressure_0700', 0, async function (done) { + console.debug("====>ActsAccountPressure_0700 start===="); + var appAccountManager = account.createAppAccountManager(); + console.debug("====>creat finish===="); + let count; + let credentialType = ""; + let credentialvalue = ""; + console.debug("====>addAccount 0700 start===="); + try{ + await appAccountManager.addAccount("account_credential"); + sleep(TIMEOUT); + } + catch(err){ + console.error("addAccount 0700 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + for (count = 0; count < STRESSLEVEL; count++) { + console.debug("====>setAccountCredential time: " + count); + credentialType = "pressure_credentialType" + count; + credentialvalue = "pressure_credential" + count; + try{ + await appAccountManager.setAccountCredential("account_credential", credentialType, credentialvalue); + sleep(TIMEOUT); + } + catch(err){ + console.error("setAccountCredential 0700 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>getAccountCredential time: " + count); + try{ + var data = await appAccountManager.getAccountCredential("account_credential", credentialType); + sleep(TIMEOUT); + } + catch(err){ + console.error("getAccountCredential 0700 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>getAccountCredential 0700 data:" + JSON.stringify(data)); + expect(data).assertEqual(credentialvalue); + } + console.debug("====>delete account 0700 start===="); + try{ + await appAccountManager.deleteAccount("account_credential"); + sleep(TIMEOUT); + } + catch(err){ + console.error("deleteAccount 0700 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>the number of times to complete the stress test is: " + count) + console.debug("====>ActsAccountPressure_0700 end===="); + done(); + }); + + /* + * @tc.number : ActsAccountPressure_0800 + * @tc.name : setOAuthToken getOAuthToken and clearOAuthToken + * @tc.desc : Stress test sets the token, obtains the token and then clears the token + */ + it('ActsAccountPressure_0800', 0, async function (done) { + console.debug("====>ActsAccountPressure_0800 start===="); + var appAccountManager = account.createAppAccountManager(); + console.debug("====>creat finish===="); + let count; + let oauthToken = ""; + console.debug("====>addAccount 0800 start===="); + try{ + await appAccountManager.addAccount("accountToken_pressure_token"); + sleep(TIMEOUT); + } + catch(err){ + console.error("addAccount 0800 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + for (count = 0; count < STRESSLEVEL; count++) { + console.debug("====>setOAuthToken time: " + count); + oauthToken = "pressure_token" + count; + try{ + await appAccountManager.setOAuthToken("accountToken_pressure_token", oauthToken); + sleep(TIMEOUT); + } + catch(err){ + console.error("setOAuthToken 0800 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>getOAuthToken time: " + count); + try{ + var data = await appAccountManager.getOAuthToken("accountToken_pressure_token"); + sleep(TIMEOUT); + } + catch(err){ + console.error("getOAuthToken 0800 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>getOAuthToken data: " + data); + expect(data).assertEqual(oauthToken); + console.debug("====>clearOAuthToken time: " + count); + try{ + await appAccountManager.clearOAuthToken("accountToken_pressure_token"); + sleep(TIMEOUT); + } + catch(err){ + console.error("clearOAuthToken 0800 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + } + console.debug("====>delete account 0800 start===="); + try{ + await appAccountManager.deleteAccount("accountToken_pressure_token"); + sleep(TIMEOUT); + } + catch(err){ + console.error("deleteAccount 0800 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>the number of times to complete the stress test is: " + count); + console.debug("====>ActsAccountPressure_0800 end===="); + done(); + }); + + /* + * @tc.number : ActsAccountPressure_0900 + * @tc.name : Stress test setAppAccountSyncEnable and checkAppAccountSyncEnable + * @tc.desc : Stress test setting synchronization flag and obtaining synchronization flag + */ + it('ActsAccountPressure_0900', 0, async function (done) { + console.debug("====>ActsAccountPressure_0900 start===="); + var appAccountManager = account.createAppAccountManager(); + console.debug("====>creat finish===="); + let count; + console.debug("====>add account 0900 start===="); + try{ + await appAccountManager.addAccount("account_pressure_syncenable"); + } + catch(err){ + console.error("====>add account 0900 fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + for (count = 0; count < STRESSLEVEL; count++) { + console.debug("====>setAppAccountSyncEnable time: " + count); + try{ + await appAccountManager.setAppAccountSyncEnable("account_pressure_syncenable", true); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>setAppAccountSyncEnable 0900 fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>checkAppAccountSyncEnable time: " + count); + try{ + var data = await appAccountManager.checkAppAccountSyncEnable("account_pressure_syncenable"); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>checkAppAccountSyncEnable 0900 fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>checkAppAccountSyncEnable data:" + data); + expect(data).assertEqual(true); + } + console.debug("====>delete account 0900 start===="); + try{ + await appAccountManager.deleteAccount("account_pressure_syncenable"); + } + catch(err){ + console.error("====>delete account 0900 fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>the number of times to complete the stress test is: " + count); + console.debug("====>ActsAccountPressure_0900 end===="); + done(); + }); + + /* + * @tc.number : ActsAccountPressure_1000 + * @tc.name : Stress test getAllAccounts + * @tc.desc : Stress test to obtain specified application information + */ + it('ActsAccountPressure_1000', 0, async function (done) { + console.debug("====>ActsAccountPressure_1000 start===="); + var appAccountManager = account.createAppAccountManager(); + console.debug("====>creat finish===="); + let count; + var specifyBundle = "com.example.actsaccountsceneappaccess"; + for (count = 0; count < STRESSLEVEL; count++) { + console.debug("====>getAllAccounts time: " + count); + try{ + var data = await appAccountManager.getAllAccounts(specifyBundle); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>getAllAccounts 1000 fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>getAllAccounts data: " + JSON.stringify(data)); + expect(data[0].name).assertEqual("account_name_scene_first"); + expect(data[0].owner).assertEqual(specifyBundle); + expect(data[1].name).assertEqual("account_name_scene_second"); + expect(data[1].owner).assertEqual(specifyBundle); + } + console.debug("====>the number of times to complete the stress test is: " + count); + console.debug("====>ActsAccountPressure_1000 end===="); + done(); + }); + + /* + * @tc.number : ActsAccountPressure_1100 + * @tc.name : Stress test getAllAccessibleAccounts + * @tc.desc : Stress test to obtain the application account information and authorized account information + */ + it('ActsAccountPressure_1100', 0, async function (done) { + console.debug("====>ActsAccountPressure_1100 start===="); + var appAccountManager = account.createAppAccountManager(); + console.debug("====>creat finish===="); + let count; + var selfBundle = "com.example.actsaccountpressure"; + var specifyBundle = "com.example.actsaccountsceneappaccess"; + console.debug("====>add account 1100 start===="); + try{ + await appAccountManager.addAccount("account_accessible_first"); + await appAccountManager.addAccount("account_accessible_second"); + } + catch(err){ + console.error("====>add account 1100 fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + for (count = 0; count < STRESSLEVEL; count++) { + console.debug("====>getAllAccounts time: " + count); + try{ + var data = await appAccountManager.getAllAccessibleAccounts(); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>getAllAccounts 1100 fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>getAllAccounts data: " + JSON.stringify(data)); + console.debug("====>getAllAccounts data.length: " + data.length); + expect(data.length).assertEqual(4); + expect(data[0].name).assertEqual("account_name_scene_first"); + expect(data[0].owner).assertEqual(specifyBundle); + expect(data[1].name).assertEqual("account_name_scene_second"); + expect(data[1].owner).assertEqual(specifyBundle); + expect(data[2].name).assertEqual("account_accessible_first"); + expect(data[2].owner).assertEqual(selfBundle); + expect(data[3].name).assertEqual("account_accessible_second"); + expect(data[3].owner).assertEqual(selfBundle); + } + console.debug("====>delete account 1100 start===="); + try{ + await appAccountManager.deleteAccount("account_accessible_first"); + await appAccountManager.deleteAccount("account_accessible_second"); + } + catch(err){ + console.error("====>delete account 1100 fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>the number of times to complete the stress test is: " + count); + console.debug("====>ActsAccountPressure_1100 end===="); + done(); + }); + + /* + * @tc.number : ActsAccountPressure_1200 + * @tc.name : Stress test on and off + * @tc.desc : Stress test receive account information changes + */ + it('ActsAccountPressure_1200', 0, async function (done) { + console.debug("====>ActsAccountPressure_1200 start===="); + var appAccountManager = account.createAppAccountManager(); + console.debug("====>creat appAccountManager finish"); + console.debug("====>add account 1200 start"); + let count; + var countSign = 0; + let changeExtra = ""; + try{ + await appAccountManager.addAccount("account_pressure_onoff"); + } + catch(err){ + console.error("====>add account 1200 fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + function changeOnCallback(data){ + console.debug("====>receive change 1200 data:" + JSON.stringify(data)); + expect(data[0].name).assertEqual("account_pressure_onoff"); + expect(data[0].owner).assertEqual("com.example.actsaccountpressure"); + countSign++; + } + console.debug("====>on ActsAccountPressure_1200 start"); + try{ + appAccountManager.on('change', ["com.example.actsaccountpressure"], changeOnCallback); + } + catch(err){ + console.error("====>on ActsAccountPressure_1200 err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + for (count = 0; count < STRESSLEVEL; count++) { + console.debug("====>change account information time: " + count); + changeExtra = "pressure_extra" + count; + try{ + await appAccountManager.setAccountExtraInfo("account_pressure_onoff", changeExtra); + sleep(TIMEOUT); + } + catch(err){ + console.error("====>setAccountExtraInfo fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + } + console.debug("====>off 1200 start===="); + appAccountManager.off('change', async function (){ + console.debug("====>off enter===="); + console.debug("====>countSign is: " + countSign); + expect(countSign).assertEqual(STRESSLEVEL); + console.debug("====>delete account===="); + try{ + await appAccountManager.deleteAccount("account_pressure_onoff"); + } + catch(err){ + console.error("====>delete account 1200 fail err:" + JSON.stringify(err)); + expect().assertFail(); + done(); + } + console.debug("====>the number of times to complete the stress test is: " + count); + console.debug("====>ActsAccountPressure_1200 end===="); + done(); + }); + }); +}) \ No newline at end of file diff --git a/account/appaccount/actsaccountpressure/signature/openharmony_sx.p7b b/account/appaccount/actsaccountpressure/signature/openharmony_sx.p7b new file mode 100755 index 0000000000000000000000000000000000000000..9be1e98fa4c0c28ca997ed660112fa16b194f0f5 Binary files /dev/null and b/account/appaccount/actsaccountpressure/signature/openharmony_sx.p7b differ diff --git a/account/appaccount/actsaccounttest/entry/src/main/js/test/AppAccess.test.js b/account/appaccount/actsaccounttest/entry/src/main/js/test/AppAccess.test.js index 1efef799ad3a5a702f375f1f26eb9f9291ed7e1d..c2d5b1eb6abaf253326b711cffb47d604e31b196 100755 --- a/account/appaccount/actsaccounttest/entry/src/main/js/test/AppAccess.test.js +++ b/account/appaccount/actsaccounttest/entry/src/main/js/test/AppAccess.test.js @@ -15,7 +15,7 @@ import account from '@ohos.account.appAccount' import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -const TIMEOUT = 1000; +const TIMEOUT = 5000; const STRCOUNT = 1025; describe('ActsAccountAppAccess', function () { function sleep(delay) { diff --git a/account/appaccount/actsaccounttest/entry/src/main/js/test/AssociatedData.test.js b/account/appaccount/actsaccounttest/entry/src/main/js/test/AssociatedData.test.js index 32e906f35f8b452af1eb9805e04ad22b23793746..4c155e89e8aa60ffe3e30aa145d6cd5b169e9b08 100755 --- a/account/appaccount/actsaccounttest/entry/src/main/js/test/AssociatedData.test.js +++ b/account/appaccount/actsaccounttest/entry/src/main/js/test/AssociatedData.test.js @@ -15,7 +15,7 @@ import account from '@ohos.account.appAccount' import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -const TIMEOUT = 1000; +const TIMEOUT = 5000; describe('ActsAccountAssociatedData', function () { function sleep(delay) { var start = (new Date()).getTime(); diff --git a/account/appaccount/actsaccounttest/entry/src/main/js/test/CreatManager.test.js b/account/appaccount/actsaccounttest/entry/src/main/js/test/CreatManager.test.js index 7013de12ff7cd51db2bf0ba3aee6425e5d63ac68..9dd6182c6631a8eaa5780530bc33793384721e46 100755 --- a/account/appaccount/actsaccounttest/entry/src/main/js/test/CreatManager.test.js +++ b/account/appaccount/actsaccounttest/entry/src/main/js/test/CreatManager.test.js @@ -15,7 +15,7 @@ import account from '@ohos.account.appAccount' import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -const TIMEOUT = 1000; +const TIMEOUT = 5000; describe('ActsCreatAppAccountManager', function () { function sleep(delay) { var start = (new Date()).getTime(); diff --git a/account/appaccount/actsaccounttest/entry/src/main/js/test/Credential.test.js b/account/appaccount/actsaccounttest/entry/src/main/js/test/Credential.test.js index d6cfb932e8ec15e9c45acd5cec47e2a6a56ebe08..4d76f07dc0b462fb16b2441ca5e7158689f8938f 100755 --- a/account/appaccount/actsaccounttest/entry/src/main/js/test/Credential.test.js +++ b/account/appaccount/actsaccounttest/entry/src/main/js/test/Credential.test.js @@ -15,7 +15,7 @@ import account from '@ohos.account.appAccount' import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -const TIMEOUT = 1000; +const TIMEOUT = 5000; describe('ActsAccountCredential', function () { function sleep(delay) { var start = (new Date()).getTime(); diff --git a/account/appaccount/actsaccounttest/entry/src/main/js/test/DeleteAccount.test.js b/account/appaccount/actsaccounttest/entry/src/main/js/test/DeleteAccount.test.js index 4eb7e9fb7d19f8eb837cbbcca1b7f4430b3dd155..f463d95ba46e3bce0fddf12037de6312a10792fa 100755 --- a/account/appaccount/actsaccounttest/entry/src/main/js/test/DeleteAccount.test.js +++ b/account/appaccount/actsaccounttest/entry/src/main/js/test/DeleteAccount.test.js @@ -16,7 +16,7 @@ import account from '@ohos.account.appAccount' import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' const NAMELIMIT = 512; -const TIMEOUT = 1000; +const TIMEOUT = 5000; describe('ActsAccountDeleteAccount', function () { function sleep(delay) { var start = (new Date()).getTime(); diff --git a/account/appaccount/actsaccounttest/entry/src/main/js/test/ExtraInfo.test.js b/account/appaccount/actsaccounttest/entry/src/main/js/test/ExtraInfo.test.js index 3987b7aab3c78ec5000205fe76aae702bf6eb249..8e636ecad92b987e9cb25651261ff4ea0f389184 100755 --- a/account/appaccount/actsaccounttest/entry/src/main/js/test/ExtraInfo.test.js +++ b/account/appaccount/actsaccounttest/entry/src/main/js/test/ExtraInfo.test.js @@ -15,7 +15,7 @@ import account from '@ohos.account.appAccount' import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -const TIMEOUT = 1000; +const TIMEOUT = 5000; describe('ActsAccountSetGetExtraInfo', function () { function sleep(delay) { var start = (new Date()).getTime(); diff --git a/account/appaccount/actsaccounttest/entry/src/main/js/test/NoPermission.test.js b/account/appaccount/actsaccounttest/entry/src/main/js/test/NoPermission.test.js index a0a76d8b826b87c18d7c9f642a05348a28757539..1cdcfe266c4b56e08dcb650482072925214c467b 100755 --- a/account/appaccount/actsaccounttest/entry/src/main/js/test/NoPermission.test.js +++ b/account/appaccount/actsaccounttest/entry/src/main/js/test/NoPermission.test.js @@ -15,7 +15,7 @@ import account from '@ohos.account.appAccount' import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -const TIMEOUT = 1000; +const TIMEOUT = 5000; const ERR_APPACCOUNT_SERVICE_PERMISSION_DENIED = 4521992; describe('ActsAccountNoPermission', function () { function sleep(delay) { diff --git a/account/appaccount/actsaccounttest/entry/src/main/js/test/OAuthToken.test.js b/account/appaccount/actsaccounttest/entry/src/main/js/test/OAuthToken.test.js index e0fbdff931b631e80db2884db12abecc959db654..4b39db2c7fea5da65f4edb6057d6d510a50e75fd 100755 --- a/account/appaccount/actsaccounttest/entry/src/main/js/test/OAuthToken.test.js +++ b/account/appaccount/actsaccounttest/entry/src/main/js/test/OAuthToken.test.js @@ -15,7 +15,7 @@ import account from '@ohos.account.appAccount' import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -const TIMEOUT = 1000; +const TIMEOUT = 5000; const LENGTHLIMIT = 1024; describe('ActsAccountOAuthToken', function () { function sleep(delay) { diff --git a/account/appaccount/getallaccessibleaccounts/actsgetallaccessiblemultiple/entry/src/main/js/default/pages/index/index.js b/account/appaccount/getallaccessibleaccounts/actsgetallaccessiblemultiple/entry/src/main/js/default/pages/index/index.js index f8ce30a59d5c8db20c972608f04d5bb55a82b6fd..6f2a2a4b5e226fb7712a48c76ef261d0357d7034 100755 --- a/account/appaccount/getallaccessibleaccounts/actsgetallaccessiblemultiple/entry/src/main/js/default/pages/index/index.js +++ b/account/appaccount/getallaccessibleaccounts/actsgetallaccessiblemultiple/entry/src/main/js/default/pages/index/index.js @@ -35,6 +35,7 @@ export default { core.init() const configService = core.getDefaultService('config') + this.timeout = 20000; configService.setConfig(this) require('../../../test/List.test') diff --git a/account/appaccount/sceneProject/actsaccountsceneappaccess/entry/src/main/js/default/pages/index/index.js b/account/appaccount/sceneProject/actsaccountsceneappaccess/entry/src/main/js/default/pages/index/index.js index adb0bc06b531778a2ae225b4861707c95ab87e0d..efc3bc1fe434707e457c83850ae515237e285f71 100755 --- a/account/appaccount/sceneProject/actsaccountsceneappaccess/entry/src/main/js/default/pages/index/index.js +++ b/account/appaccount/sceneProject/actsaccountsceneappaccess/entry/src/main/js/default/pages/index/index.js @@ -12,6 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import account from '@ohos.account.appAccount' import file from '@system.file' import {Core, ExpectExtend} from 'deccjsunit/index' @@ -25,17 +26,27 @@ export default { this.title = "scene AppAccess"; }, onShow() { - console.info('onShow finish') - const core = Core.getInstance() - const expectExtend = new ExpectExtend({ - 'id': 'extend' + console.debug('====>scene application start===='); + var appAccountManager = account.createAppAccountManager(); + console.debug("====>creat scene manager finish===="); + var enableBundle = "com.example.actsaccountpressure"; + console.debug("====>add first account start===="); + appAccountManager.addAccount("account_name_scene_first", (err)=>{ + console.debug("====>add first account err:" + JSON.stringify(err)); + appAccountManager.enableAppAccess("account_name_scene_first", enableBundle, (err)=>{ + console.debug("====>enableAppAccess first account err:" + JSON.stringify(err)); + appAccountManager.addAccount("account_name_scene_second", (err)=>{ + console.debug("====>add second account err:" + JSON.stringify(err)); + appAccountManager.enableAppAccess("account_name_scene_second", enableBundle, (err)=>{ + console.debug("====>enableAppAccess second account err:" + JSON.stringify(err)); + featureAbility.terminateSelf( + (err, data)=>{ + console.debug('====>Terminate Ability Success====') + }); + }) + }) + }) }) - core.addService('expect', expectExtend) - core.init() - - const configService = core.getDefaultService('config') - configService.setConfig(this) - core.execute() }, onReady() { },