未验证 提交 a7fcde6b 编写于 作者: O openharmony_ci 提交者: Gitee

!4528 【OpenHar-3.2-Beta2】【账号】新增接口用例覆盖

Merge pull request !4528 from 何海涛/32B2Complete
{
"description": "Configuration for hjunit demo Tests",
"driver": {
"type": "JSUnitTest",
"test-timeout": "1500000",
"package": "com.example.actsaccountpressure",
"shell-timeout": "60000"
},
"kits": [
{
"test-file-name": [
"ActsAccountPressure.hap",
"ActsAccountSceneAppAccess.hap"
],
"type": "AppInstallKit",
"cleanup-apps": true
}
]
}
.container {
flex-direction: column;
justify-content: center;
align-items: center;
}
.title {
font-size: 100px;
}
{
"string": [
{
"name": "app_name",
"value": "ActsAccountPressure"
},
{
"name": "mainability_description",
"value": "JS_Phone_Empty Feature Ability"
}
]
}
\ No newline at end of file
/*
* 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 abilityAccessCtrl from '@ohos.abilityAccessCtrl'
import account from '@ohos.account.appAccount'
import bundle from '@ohos.bundle'
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;
const PERMISSION_USER_SET = 1;
const PERMISSION_USER_NAME = "ohos.permission.DISTRIBUTED_DATASYNC";
var tokenID = undefined;
describe('ActsAccountPressure', function () {
beforeAll(async function (done) {
console.debug("====>beforeAll start====");
var appInfo = await bundle.getApplicationInfo('com.example.actsaccountpressure', 0, 100);
tokenID = appInfo.accessTokenId;
console.debug("accessTokenId" + appInfo.accessTokenId + " bundleName:" + appInfo.bundleName);
var atManager = abilityAccessCtrl.createAtManager();
var result = await atManager.grantUserGrantedPermission(tokenID, PERMISSION_USER_NAME, PERMISSION_USER_SET);
console.debug("tokenId" + tokenID + " result:" + result);
sleep(2000);
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;
let STRESSNUM;
if(STRESSLEVEL > ACCOUNTLIMIT){
STRESSNUM = ACCOUNTLIMIT;
}else{
STRESSNUM = STRESSLEVEL;
}
for (let i = 0; i < STRESSNUM; i++) {
let accountName = "account_pressure_callback" + i;
sleep(TIMEOUT);
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();
}
sleep(TIMEOUT);
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++;
})
});
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);
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();
}
}else{
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().assertFail();
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().assertFail();
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().assertFail();
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
......@@ -12,7 +12,8 @@
"ActsAccountTest.hap",
"ActsAccountSceneAppAccess.hap",
"ActsAccountSceneOnOff.hap",
"ActsAccountOauthtoken.hap"
"ActsAccountOauthtoken.hap",
"ActsAccountAuthenticator.hap"
],
"type": "AppInstallKit",
"cleanup-apps": true
......
/*
* 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
const NAMELIMIT = 512;
const LENGTHLIMIT = 1024;
const name = 'zhangsan'
const owner = 'com.example.accountauthenticator'
export default function ActsAccountAppAccess() {
describe('ActsAccountAuthenticator', function () {
/*
* @tc.number : ActsAccountCheckAccountLabels_0100
* @tc.name : Check Account Labels callback form
* @tc.desc :
*/
it('ActsAccountCheckAccountLabels_0100', 0, async function (done) {
console.debug("====>ActsAccountCheckAccountLabels_0100 start====");
var appAccountManager = account.createAppAccountManager();
console.debug("====>start finish====");
appAccountManager.addAccount(name, 'test_extraInfo', (err)=>{
console.debug("====>ActsAccountCheckAccountLabels_0100 add_account_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
appAccountManager.checkAccountLabels(name, owner, ['level4'], (err, data)=>{
console.debug("====>ActsAccountCheckAccountLabels_0100 err:" + JSON.stringify(err));
expect(err).assertEqual(undefined);
console.debug("====>ActsAccountCheckAccountLabels_0100 data:" + JSON.stringify(data));
appAccountManager.deleteAccount(name, (err) =>{
console.debug("====>ActsAccountCheckAccountLabels_0100 deleteAccount_err:" + JSON.stringify(err))
expect(err.code).assertEqual(0);
console.debug("====>ActsAccountCheckAccountLabels_0100 end====");
done();
})
});
});
});
/*
* @tc.number : ActsAccountCheckAccountLabels_0200
* @tc.name : Check Account Labels callback form
* @tc.desc :
*/
it('ActsAccountCheckAccountLabels_0200', 0, async function (done) {
console.debug("====>ActsAccountCheckAccountLabels_0200 start====");
var appAccountManager = account.createAppAccountManager();
console.debug("====>start finish====");
appAccountManager.addAccount(name, (err)=>{
console.debug("====>ActsAccountCheckAccountLabels_0200 add_account_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
appAccountManager.checkAccountLabels(name, owner, ['20-30'], (err, data)=>{
console.debug("====>ActsAccountCheckAccountLabels_0200 err:" + JSON.stringify(err));
expect(err).assertEqual(undefined);
console.debug("====>ActsAccountCheckAccountLabels_0200 data:" + JSON.stringify(data));
appAccountManager.deleteAccount(name, (err) =>{
console.debug("====>ActsAccountCheckAccountLabels_0200 deleteAccount_err:" + JSON.stringify(err))
expect(err.code).assertEqual(0);
console.debug("====>ActsAccountCheckAccountLabels_0200 end====");
done();
})
});
});
});
/*
* @tc.number : ActsAccountCheckAccountLabels_0300
* @tc.name : Check Account Labels callback form
* @tc.desc :
*/
it('ActsAccountCheckAccountLabels_0300', 0, async function (done) {
console.debug("====>ActsAccountCheckAccountLabels_0300 start====");
var appAccountManager = account.createAppAccountManager();
console.debug("====>start finish====");
appAccountManager.addAccount('CheckAccountLabels_0300', (err)=>{
console.debug("====>ActsAccountCheckAccountLabels_0300 add_account_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
appAccountManager.checkAccountLabels('CheckAccountLabels_0300', owner, ['male'], (err, data)=>{
console.debug("====>ActsAccountCheckAccountLabels_0300 err:" + JSON.stringify(err));
expect(err).assertEqual(undefined);
console.debug("====>ActsAccountCheckAccountLabels_0300 data:" + JSON.stringify(data));
expect(data).assertEqual(false)
appAccountManager.deleteAccount("CheckAccountLabels_0300", (err) =>{
console.debug("====>ActsAccountCheckAccountLabels_0300 deleteAccount_err:" + JSON.stringify(err))
expect(err.code).assertEqual(0);
console.debug("====>ActsAccountCheckAccountLabels_0300 end====");
done();
})
});
});
});
/*
* @tc.number : ActsAccountCheckAccountLabels_0400
* @tc.name : Check Account Labels promise form
* @tc.desc :
*/
it('ActsAccountCheckAccountLabels_0400', 0, async function (done) {
console.debug("====>ActsAccountCheckAccountLabels_0400 start====");
var appAccountManager = account.createAppAccountManager();
await appAccountManager.addAccount(name, 'test_extraInfo').then((data) =>{
console.debug("====>ActsAccountCheckAccountLabels_0400 add_account_success");
appAccountManager.checkAccountLabels(name, owner, ['level4']).then((data) =>{
console.debug("====>ActsAccountCheckAccountLabels_0400 data:" + JSON.stringify(data));
appAccountManager.deleteAccount(name).then((data) =>{
console.debug("====>ActsAccountCheckAccountLabels_0400 delete_account_success");
}).catch((err) =>{
console.debug("====>ActsAccountCheckAccountLabels_0400 delete_account_err");
});
done();
}).catch((err) =>{
console.debug("====>ActsAccountCheckAccountLabels_0400 err:" + JSON.stringify(err))
expect(typeof(err) != undefined).assertTrue();
done();
})
}).catch((err) => {
console.debug("====>ActsAccountCheckAccountLabels_0400 add_account_err:" + JSON.stringify(err))
expect(err.code!=0).assertTrue();
done();
})
});
/*
* @tc.number : ActsAccountCheckAccountLabels_0500
* @tc.name : Check Account Labels promise form
* @tc.desc :
*/
it('ActsAccountCheckAccountLabels_0500', 0, async function (done) {
console.debug("====>ActsAccountCheckAccountLabels_0500 start====");
var appAccountManager = account.createAppAccountManager();
await appAccountManager.addAccount(name, 'test_extraInfo').then((data) =>{
console.debug("====>ActsAccountCheckAccountLabels_0500 add_account_success");
appAccountManager.checkAccountLabels(name, owner, ['20-30']).then((data) =>{
console.debug("====>ActsAccountCheckAccountLabels_0500 data:" + JSON.stringify(data));
expect(account.Constants.KEY_REQUIRED_LABELS).assertEqual('requiredLabels')
expect(account.Constants.KEY_BOOLEAN_RESULT).assertEqual('booleanResult')
appAccountManager.deleteAccount(name).then((data) =>{
console.debug("====>ActsAccountCheckAccountLabels_0500 delete_account_success");
}).catch((err) =>{
console.debug("====>ActsAccountCheckAccountLabels_0500 delete_account_err");
});
done()
}).catch((err) =>{
console.debug("====>ActsAccountCheckAccountLabels_0500 err:" + JSON.stringify(err))
expect(typeof(err) != undefined).assertTrue();
done();
})
}).catch((err) => {
console.debug("====>ActsAccountCheckAccountLabels_0500 add_account_err:" + JSON.stringify(err))
expect().assertFail();
done();
})
});
/*
* @tc.number : ActsAccountCheckAccountLabels_0600
* @tc.name : Check Account Labels promise form
* @tc.desc :
*/
it('ActsAccountCheckAccountLabels_0600', 0, async function (done) {
console.debug("====>ActsAccountCheckAccountLabels_0600 start====");
var appAccountManager = account.createAppAccountManager();
await appAccountManager.addAccount('CheckAccountLabels_0600', 'test_extraInfo').then((data) =>{
console.debug("====>ActsAccountCheckAccountLabels_0600 add_account_success:" + JSON.stringify(data));
appAccountManager.checkAccountLabels('CheckAccountLabels_0600', owner, ['male']).then((data) =>{
console.debug("====>ActsAccountCheckAccountLabels_0600 data:" + JSON.stringify(data));
appAccountManager.deleteAccount('CheckAccountLabels_0600').then((data) =>{
console.debug("====>ActsAccountCheckAccountLabels_0600 delete_account_success");
}).catch((err) =>{
console.debug("====>ActsAccountCheckAccountLabels_0600 delete_account_err");
});
done()
}).catch((err) =>{
console.debug("====>ActsAccountCheckAccountLabels_0600 err:" + JSON.stringify(err))
expect().assertFail();
done();
})
}).catch((err) => {
console.debug("====>ActsAccountCheckAccountLabels_0600 add_account_err:" + JSON.stringify(err))
expect().assertFail();
done();
})
});
/*
* @tc.number : ActsAccountCheckAppAccess_0100
* @tc.name : Check App Access callback form
* @tc.desc :
*/
it('ActsAccountCheckAppAccess_0100', 0, async function (done) {
console.debug("====>ActsAccountCheckAppAccess_0100 start====");
var appAccountManager = account.createAppAccountManager();
appAccountManager.addAccount(name, (err)=>{
console.debug("====>ActsAccountCheckAppAccess_0100 add_account_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
appAccountManager.checkAppAccess(name, owner, (err, data)=>{
console.debug("====>ActsAccountCheckAppAccess_0100 first_err:" + JSON.stringify(err));
expect(err).assertEqual(undefined);
console.debug("====>ActsAccountCheckAppAccess_0100 first_data:" + JSON.stringify(data));
expect(data).assertEqual(false)
appAccountManager.enableAppAccess(name, owner, (err, data) =>{
console.debug("====>ActsAccountCheckAppAccess_0100 enableAppAccess_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
appAccountManager.checkAppAccess(name, owner, (err, data) =>{
console.debug("====>ActsAccountCheckAppAccess_0100 second_err:" + JSON.stringify(err));
expect(err).assertEqual(undefined);
expect(data).assertEqual(true)
appAccountManager.disableAppAccess(name, owner, (err, data) =>{
console.debug("====>ActsAccountCheckAppAccess_0100 disableAppAccount_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
appAccountManager.checkAppAccess(name, owner,(err, data)=>{
console.debug("====>ActsAccountCheckAppAccess_0100 third_err:" + JSON.stringify(err))
expect(err).assertEqual(undefined)
expect(data).assertEqual(false)
try {
appAccountManager.deleteAccount(name)
console.debug('====>ActsAccountCheckAppAccess_0100 deleteAccount_success')
done();
}
catch{
console.debug('====>ActsAccountCheckAppAccess_0100 deleteAccount_err')
expect().assertFail()
}
})
})
})
})
});
});
});
/*
* @tc.number : ActsAccountCheckAppAccess_0200
* @tc.name : Check App Access promise form
* @tc.desc :
*/
it('ActsAccountCheckAppAccess_0200', 0, async function (done) {
console.debug("====>ActsAccountCheckAppAccess_0200 start====");
var appAccountManager = account.createAppAccountManager();
appAccountManager.addAccount(name, 'test_extraInfo').then((data) =>{
console.debug("====>ActsAccountCheckAppAccess_0200 add_account_success:");
appAccountManager.checkAppAccess(name, owner).then((data) =>{
console.debug("====>ActsAccountCheckAppAccess_0200 first_data:" + JSON.stringify(data));
expect(data).assertEqual(false);
appAccountManager.enableAppAccess(name, owner).then((data) =>{
console.debug("====>ActsAccountCheckAppAccess_0200 enableAppAccess_success");
appAccountManager.checkAppAccess(name, owner).then((data) =>{
console.debug("====>ActsAccountCheckAppAccess_0200 second_data:" + JSON.stringify(data));
expect(data).assertEqual(true);
appAccountManager.disableAppAccess(name, owner).then((data)=>{
console.debug("====>ActsAccountCheckAppAccess_0200 disabAppAccess_data:" + JSON.stringify(data));
appAccountManager.checkAppAccess(name, owner).then((data) =>{
console.debug("====>ActsAccountCheckAppAccess_0200 third_data:" + JSON.stringify(data));
expect(data).assertEqual(false);
try{
appAccountManager.deleteAccount(name)
console.debug('====>ActsAccountCheckAppAccess_0200 deleteAccount_success')
done();
}
catch{
console.debug('====>ActsAccountCheckAppAccess_0100 deleteAccount_err')
expect().assertFail()
}
}).catch((err)=>{
console.debug("====>ActsAccountCheckAppAccess_0200 third_err:" + JSON.stringify(err));
expect().assertFail();
done();
})
}).catch((err) =>{
console.debug("====>ActsAccountCheckAppAccess_0200 disableAppAccess_err:" + JSON.stringify(err));
expect().assertFail();
done();
})
}).catch((err) =>{
console.debug("====>ActsAccountCheckAppAccess_0200 second_err:" + JSON.stringify(err));
expect().assertFail();
done();
})
}).catch((err)=>{
console.debug("====>ActsAccountCheckAppAccess_0200 enableAppAccess_err:" + JSON.stringify(err));
expect().assertFail();
done();
})
}).catch((err) =>{
console.debug("====>ActsAccountCheckAppAccess_0200 first_err:" + JSON.stringify(err));
expect().assertFail();
done();
})
}).catch((err) => {
console.debug("====>ActsAccountCheckAppAccess_0200 addAccount_err:" + JSON.stringify(err));
expect().assertFail();
done();
})
});
/*
* @tc.number : ActsAccountDeleteAccountCredential_0100
* @tc.name : Delete Account Credential callback form
* @tc.desc :
*/
it('ActsAccountDeleteAccountCredential_0100', 0, async function (done) {
console.debug("====>ActsAccountDeleteAccountCredential_0100 start====");
var appAccountManager = account.createAppAccountManager();
console.debug("====>start finish====");
appAccountManager.addAccount(name, (err)=>{
console.debug("====>ActsAccountDeleteAccountCredential_0100 add_account_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
appAccountManager.setAccountCredential(name, "PIN", (err, data)=>{
console.debug("====>ActsAccountDeleteAccountCredential_0100 setAccountCredential_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
console.debug("====>ActsAccountDeleteAccountCredential_0100 setAccountCredential_data:" + JSON.stringify(data));
appAccountManager.getAccountCredential(name, "PIN", (err) =>{
console.debug("====>ActsAccountDeleteAccountCredential_0100 getAccountCredential_err:" + JSON.stringify(err))
expect(err.code).assertEqual(0);
console.debug("====>ActsAccountDeleteAccountCredential_0100 getAccountCredential_success:" + JSON.stringify(data));
appAccountManager.deleteAccountCredential(name, "PIN", (err, data)=>{
console.debug("====>ActsAccountDeleteAccountCredential_0100 deleteAccountCredential_err:" + JSON.stringify(err));
expect(err).assertEqual(undefined);
expect(data).assertEqual(undefined);
console.debug("====>ActsAccountDeleteAccountCredential_0100 deleteAccountCredential_data:" + JSON.stringify(data));
try{
appAccountManager.deleteAccount(name)
console.debug('====>ActsAccountDeleteAccountCredential_0100 deleteAccount_success')
done();
}
catch{
console.debug('====>ActsAccountDeleteAccountCredential_0100 deleteAccount_err')
expect().assertFail()
done();
}
})
})
});
});
});
/*
* @tc.number : ActsAccountDeleteAccountCredential_0200
* @tc.name : Delete Account Credential promise form
* @tc.desc :
*/
it('ActsAccountDeleteAccountCredential_0200', 0, async function (done) {
console.debug("====>ActsAccountDeleteAccountCredential_0200 start====");
var appAccountManager = account.createAppAccountManager();
appAccountManager.addAccount(name, 'test_extraInfo').then((data) =>{
console.debug("====>ActsAccountDeleteAccountCredential_0200 add_account_success");
appAccountManager.setAccountCredential(name, "PIN").then((data) =>{
console.debug("====>ActsAccountDeleteAccountCredential_0200 setAccountCredential_success");
expect(data).assertEqual(undefined);
appAccountManager.getAccountCredential(name, "PIN").then((data) =>{
console.debug("====>ActsAccountDeleteAccountCredential_0200 getAccountCredential_data:" + JSON.stringify(data));
appAccountManager.deleteAccountCredential(name, "PIN").then((data) =>{
console.debug("====>ActsAccountDeleteAccountCredential_0200 data:" + JSON.stringify(data));
expect(data).assertEqual(undefined); //expect undefined assertEqual true
try{
appAccountManager.deleteAccount(name)
console.debug('====>ActsAccountDeleteAccountCredential_0200 deleteAccount_success')
done();
}
catch{
console.debug('====>ActsAccountDeleteAccountCredential_0200 deleteAccount_err')
expect().assertFail()
}
}).catch((err) =>{
console.debug("====>ActsAccountDeleteAccountCredential_0200 err:" + JSON.stringify(err));
expect().assertFail();
done();
})
}).catch((err)=>{
console.debug("====>ActsAccountDeleteAccountCredential_0200 getAccountCredential_err:" + JSON.stringify(err));
expect().assertFail();
done();
})
}).catch((err) =>{
console.debug("====>ActsAccountDeleteAccountCredential_0200 setAccountCredential_err:" + JSON.stringify(err));
expect().assertFail();
done();
})
}).catch((err) => {
console.debug("====>ActsAccountDeleteAccountCredential_0200 addAccount_err:" + JSON.stringify(err));
expect().assertFail();
done();
})
});
/*
* @tc.number : ActsAccountVerifyCredential_0100
* @tc.name : Verify Credential callback form, options
* @tc.desc :
*/
it('ActsAccountVerifyCredential_0100', 0, async function (done) {
console.debug("====>ActsAccountVerifyCredential_0100 start====");
var appAccountManager = account.createAppAccountManager();
var options = {credentialType: "PIN", credential: "123456"}
console.debug("====>start finish====");
appAccountManager.addAccount(name, (err)=>{
console.debug("====>ActsAccountVerifyCredential_0100 add_account_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
appAccountManager.verifyCredential(name, owner, options, {
onResult:(resultCode, resultData)=>{
console.debug("====>ActsAccountVerifyCredential_0100 verifyCredential_resultcode:" + JSON.stringify(resultCode));
expect(resultCode).assertEqual(0)
console.debug("====>ActsAccountVerifyCredential_0100 verifyCredential_resultData:" + JSON.stringify(resultData));
expect(resultData.booleanResult).assertEqual(true)
try{
appAccountManager.deleteAccount(name)
console.debug('====>ActsAccountVerifyCredential_0100 deleteAccount_success')
done();
}
catch{
console.debug('====>ActsAccountVerifyCredential_0100 deleteAccount_err')
expect().assertFail()
}
done();
},
onRequestRedirected:null,
onRequestContinued: function(){
console.debug("====>ActsAccountVerifyCredential_0100 verifyCredential_onRequestContinued")
}
});
});
});
/*
* @tc.number : ActsAccountVerifyCredential_0200
* @tc.name : Verify Credential callback form
* @tc.desc :
*/
it('ActsAccountVerifyCredential_0200', 0, async function (done) {
console.debug("====>ActsAccountVerifyCredential_0200 start====");
var appAccountManager = account.createAppAccountManager();
console.debug("====>start finish====");
appAccountManager.addAccount(name, (err)=>{
console.debug("====>ActsAccountVerifyCredential_0200 add_account_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
console.debug("====>ActsAccountVerifyCredential_0200 add_account_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
appAccountManager.verifyCredential(name, owner, {
onResult:(resultCode, resultData)=>{
console.debug("====>ActsAccountVerifyCredential_0200 verifyCredential_resultcode:" + JSON.stringify(resultCode));
expect(resultCode).assertEqual(0)
console.debug("====>ActsAccountVerifyCredential_0200 verifyCredential_resultData:" + JSON.stringify(resultData));
expect(resultData.booleanResult).assertEqual(false)
try{
appAccountManager.deleteAccount(name)
console.debug('====>ActsAccountVerifyCredential_0200 deleteAccount_success')
done();
}
catch{
console.debug('====>ActsAccountVerifyCredential_0200 deleteAccount_err')
expect().assertFail()
}
done();
},
onRequestRedirected:null,
onRequestContinued: function(){
console.debug("====>ActsAccountVerifyCredential_0200 verifyCredential_onRequestContinued")
}
});
});
});
/*
* @tc.number : ActsAccountSetAuthenticatorProperties_0100
* @tc.name : Verify Credential callback form, options
* @tc.desc :
*/
it('ActsAccountSetAuthenticatorProperties_0100', 0, async function (done) {
console.debug("====>ActsAccountSetAuthenticatorProperties_0100 start====");
var appAccountManager = account.createAppAccountManager();
var options = {credentialType: "PIN", credential: "123456"}
console.debug("====>start finish====");
appAccountManager.addAccount(name, (err)=>{
console.debug("====>ActsAccountSetAuthenticatorProperties_0100 add_account_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
appAccountManager.setAuthenticatorProperties(owner, options, {
onResult:(resultCode, resultData)=>{
console.debug("====>ActsAccountSetAuthenticatorProperties_0100 setAuthenticatorProperties_resultcode:" + JSON.stringify(resultCode));
expect(resultCode).assertEqual(10016)
console.debug("====>ActsAccountSetAuthenticatorProperties_0100 setAuthenticatorProperties_resultData:" + JSON.stringify(resultData));
try{
appAccountManager.deleteAccount(name)
console.debug('====>ActsAccountSetAuthenticatorProperties_0100 deleteAccount_success')
done();
}
catch{
console.debug('====>ActsAccountSetAuthenticatorProperties_0100 deleteAccount_err')
expect().assertFail()
}
done();
},
onRequestRedirected:null,
onRequestContinued: function(){
console.debug("====>ActsAccountSetAuthenticatorProperties_0100 verifyCredential_onRequestContinued")
}
});
});
});
/*
* @tc.number : ActsAccountSetAuthenticatorProperties_0200
* @tc.name : Verify Credential callback form
* @tc.desc :
*/
it('ActsAccountSetAuthenticatorProperties_0200', 0, async function (done) {
console.debug("====>ActsAccountSetAuthenticatorProperties_0200 start====");
var appAccountManager = account.createAppAccountManager();
console.debug("====>start finish====");
appAccountManager.addAccount(name, (err)=>{
console.debug("====>ActsAccountSetAuthenticatorProperties_0200 add_account_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
appAccountManager.setAuthenticatorProperties(owner, {
onResult:(resultCode, resultData)=>{
console.debug("====>ActsAccountSetAuthenticatorProperties_0200 setAuthenticatorProperties_resultcode:" + JSON.stringify(resultCode));
expect(resultCode).assertEqual(10016)
console.debug("====>ActsAccountSetAuthenticatorProperties_0200 setAuthenticatorProperties_resultData:" + JSON.stringify(resultData));
try{
appAccountManager.deleteAccount(name)
console.debug('====>ActsAccountSetAuthenticatorProperties_0200 deleteAccount_success')
done();
}
catch{
console.debug('====>ActsAccountSetAuthenticatorProperties_0200 deleteAccount_err')
expect().assertFail()
}
done();
},
onRequestRedirected:null,
onRequestContinued: function(){
console.debug("====>ActsAccountSetAuthenticatorProperties_0200 verifyCredential_onRequestContinued")
}
});
});
});
/*
* @tc.number : ActsAccountSelectAccountByOptions_0100
* @tc.name : Verify Credential callback form
* @tc.desc :
*/
it('ActsAccountSelectAccountByOptions_0100', 0, async function (done) {
console.debug("====>ActsAccountSelectAccountByOptions_0100 start====");
var appAccountManager = account.createAppAccountManager();
var select_options = {"allowedAccounts":[{"name":name,"owner":owner}]}
console.debug("====>start finish====");
appAccountManager.addAccount(name, (err)=>{
console.debug("====>ActsAccountSelectAccountByOptions_0100 add_account_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
appAccountManager.selectAccountsByOptions(select_options, ((err, data)=>{
console.debug("====>ActsAccountSelectAccountByOptions_0100 err:" + JSON.stringify(err));
expect(err).assertEqual(undefined)
console.debug("====>ActsAccountSelectAccountByOptions_0100 data:" + JSON.stringify(data.length));
expect(data.length).assertEqual(0)
done();
}))
try{
appAccountManager.deleteAccount(name)
console.debug('====>ActsAccountSelectAccountByOptions_0100 deleteAccount_success')
done();
}
catch{
console.debug('====>ActsAccountSelectAccountByOptions_0100 deleteAccount_err')
expect().assertFail()
}
});
});
/*
* @tc.number : ActsAccountSelectAccountByOptions_0100
* @tc.name : Verify Credential callback form
* @tc.desc :
*/
it('ActsAccountSelectAccountByOptions_0200', 0, async function (done) {
console.debug("====>ActsAccountSelectAccountByOptions_0200 start====");
var appAccountManager = account.createAppAccountManager();
var select_options = {"allowedOwners": [owner]}
console.debug("====>start finish====");
appAccountManager.addAccount(name, (err)=>{
console.debug("====>ActsAccountSelectAccountByOptions_0200 add_account_err:" + JSON.stringify(err));
expect(err.code).assertEqual(0);
appAccountManager.selectAccountsByOptions(select_options).then((data)=>{
console.debug("====>ActsAccountSelectAccountByOptions_0200 data:" + JSON.stringify(data.length));
expect(data.length).assertEqual(0)
done();
}).catch(()=>{
onsole.debug("====>ActsAccountSelectAccountByOptions_0200 err:" + JSON.stringify(err));
expect(err).assertEqual(undefined)
done()
})
try{
appAccountManager.deleteAccount(name)
console.debug('====>ActsAccountSelectAccountByOptions_0200 deleteAccount_success')
done();
}
catch{
console.debug('====>ActsAccountSelectAccountByOptions_0200 deleteAccount_err')
expect().assertFail()
}
});
});
})
}
\ No newline at end of file
......@@ -22,3 +22,4 @@ require('./OAuthToken.test.js')
require('./CreatManager.test.js')
require('./NoPermission.test.js')
require('./OnOff.js')
require('./Authenticator.test.js')
\ No newline at end of file
......@@ -24,6 +24,7 @@ group("appaccount_scene") {
"actsaccountsceneappaccess:ActsAccountSceneAppAccess",
"actsaccountsceneonoff:ActsAccountSceneOnOff",
"actsscenegetallaccounts:ActsSceneGetAllAccounts",
"actsaccountauthenticator:ActsAccountAuthenticator",
]
}
}
......@@ -10,22 +10,29 @@
# 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") {
ohos_hap("ActsAccountAuthenticator") {
hap_profile = "./entry/src/main/config.json"
hap_name = "ActsAccountAuthenticator"
subsystem_name = XTS_SUITENAME
final_hap_path =
"${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/testcases/${hap_name}.hap"
testonly = true
deps = [
":hjs_demo_js_assets",
":hjs_demo_js_service_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"
source_dir = "./entry/src/main/js/MainAbility"
}
ohos_js_assets("hjs_demo_js_service_assets") {
source_dir = "./entry/src/main/js/ServiceAbility"
}
ohos_resources("hjs_demo_resources") {
sources = [ "./entry/src/main/js/resources" ]
sources = [ "./entry/src/main/resources" ]
hap_profile = "./entry/src/main/config.json"
}
{
"app": {
"bundleName": "com.example.actsaccountpressure",
"vendor": "example",
"bundleName": "com.example.accountauthenticator",
"version": {
"code": 1,
"name": "1.0"
"code": 1000000,
"name": "1.0.0"
},
"apiVersion": {
"compatible": 4,
"target": 5,
"releaseType": "Beta1"
"compatible": 7,
"target": 7
}
},
"deviceConfig": {},
"module": {
"package": "com.example.actsaccountpressure",
"name": ".MyApplication",
"mainAbility": ".MainAbility",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "entry",
"moduleType": "entry"
},
"defPermissions": [
{
"availableScope": [],
"grantMode": "system_grant",
"name": "ohos.permission.GET_ALL_APP_ACCOUNTS"
},
{
"availableScope": [],
"grantMode": "user_grant",
"name": "ohos.permission.DISTRIBUTED_DATASYNC"
}
],
"reqPermissions": [
{
"name": "ohos.permission.GRANT_SENSITIVE_PERMISSIONS",
"reason": "ceshi"
},
{
"name": "ohos.permission.GET_ALL_APP_ACCOUNTS",
"reason": "ceshi"
},
{
"name": "ohos.permission.DISTRIBUTED_DATASYNC",
"reason": "ceshi"
},
{
"name":"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
"reason":"need use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
},
{
"name":"ohos.permission.GET_BUNDLE_INFO",
"reason":"need use ohos.permission.GET_BUNDLE_INFO"
},
{
"name":"ohos.permission.CHANGE_ABILITY_ENABLED_STATE",
"reason":"need use ohos.permission.CHANGE_ABILITY_ENABLED_STATE"
},
{
"name":"ohos.permission.REMOVE_CACHE_FILES",
"reason":"need use ohos.permission.REMOVE_CACHE_FILES"
},
{
"name":"ohos.permission.LISTEN_BUNDLE_CHANGE",
"reason":"need use ohos.permission.LISTEN_BUNDLE_CHANGE"
}
"default",
"tablet"
],
"abilities": [
{
......@@ -82,21 +30,46 @@
]
}
],
"name": "com.example.actsaccountpressure.MainAbility",
"orientation": "unspecified",
"visible": true,
"srcPath": "MainAbility",
"name": ".MainAbility",
"srcLanguage": "js",
"icon": "$media:icon",
"description": "$string:mainability_description",
"label": "$string:app_name",
"description": "$string:MainAbility_desc",
"formsEnabled": false,
"label": "$string:MainAbility_label",
"type": "page",
"visible": true,
"launchType": "standard"
},
{
"srcPath": "ServiceAbility",
"name": ".ServiceAbility",
"srcLanguage": "js",
"icon": "$media:icon",
"description": "$string:ServiceAbility_desc",
"type": "service",
"visible": true,
"skills": [{"actions": [
"ohos.account.appAccount.action.oauth"
]}]
}
],
"distro": {
"moduleType": "entry",
"installationFree": true,
"deliveryWithInstall": true,
"moduleName": "entry"
},
"package": "com.example.entry",
"srcPath": "",
"name": ".entry",
"js": [
{
"pages": [
"pages/index/index"
],
"name": "default",
"name": ".MainAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
......
/*
* 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_appAccount from '@ohos.account.appAccount';
import rpc from '@ohos.rpc';
var TAG = "[AccountTest]"
class MyParameter {
constructor(params, size) {
this.params = params
this.size = size
}
marshalling(parcel) {
parcel.writeInt(this.size)
console.log(TAG + "size: " + this.size)
for (var key in this.params) {
parcel.writeString(key)
console.log(TAG + "writeBoolean key: " + key)
var value = this.params[key]
switch (typeof value) {
case 'string':
console.log(TAG + "writeString value: " + value)
parcel.writeInt(9)
parcel.writeString(value)
break
case 'boolean':
console.log(TAG + "writeBoolean value: " + value)
parcel.writeInt(1)
parcel.writeBoolean(value)
break
}
}
return true
}
unmarshalling(parcel) {
this.size = parcel.readInt()
console.log(TAG + "size: " + this.size)
for (var i = 0; i < this.size; ++i) {
var key = parcel.readString()
console.log(TAG + "key: " + key)
var type = parcel.readInt()
console.log(TAG + "type: " + type)
var value = null
switch (type) {
case 9:
value = parcel.readString()
break
case 1:
value = parcel.readBool()
break
}
console.log(TAG + "value: " + value)
this[key] = value
}
}
}
class MyWant {
constructor(bundleName, abilityName, parameters) {
this.bundleName = bundleName
this.abilityName = abilityName
this.paramSize = 0
for (var key in parameters) {
this.paramSize ++
}
this.parameters = new MyParameter(parameters, this.paramSize)
}
marshalling(parcel) {
// action
parcel.writeString("")
// uri
parcel.writeInt(-1)
// entities
parcel.writeInt(-1)
// flag
parcel.writeInt(0)
if (this.bundleName == "" && this.abilityName == "") {
// element
parcel.writeInt(-1)
} else {
parcel.writeInt(1)
}
// parameters
if (this.paramSize > 0) {
parcel.writeInt(1)
parcel.writeSequenceable(this.parameters)
} else {
parcel.writeInt(-1)
}
// bundleName
parcel.writeString(this.bundleName)
// picker
parcel.writeInt(-1)
return true
}
unmarshalling(parcel) {
// action
console.log(TAG + "action: " + parcel.readString());
// uri
console.log(TAG + "uri: " + parcel.readInt());
// entities
console.log(TAG + "entities: " + parcel.readInt());
// flag
console.log(TAG + "flag: " + parcel.readInt())
// element
console.log(TAG + "element: " + parcel.readInt())
// parameters
var hasParam = parcel.readInt()
console.log(TAG + "hasParam: " + hasParam)
if (hasParam == 1) {
parcel.readSequenceable(this.parameters)
}
// bundleName
parcel.readString()
// picker
parcel.readInt()
return true;
}
}
class VerifyCredentialOptions {
constructor(credentialType, credential, parameters) {
this.credential = credential
this.credentialType = credentialType
this.parameters = new MyParameter(parameters, 0)
}
unmarshalling(parcel) {
this.credentialType = readString8(parcel)
this.credential = readString8(parcel)
parcel.readSequenceable(this.parameters)
return true
}
}
class SetPropertiesOptions {
constructor(properties, parameters) {
this.properties = new MyParameter(properties, 0)
this.parameters = new MyParameter(parameters, 0)
}
unmarshalling(parcel) {
parcel.readSequenceable(this.properties)
parcel.readSequenceable(this.parameters)
return true
}
}
function readString8(data) {
var size = data.readInt()
var padSize = (((size + 4) & (~3)) - size - 1)
console.log(TAG + "padSize: " + padSize)
var str = ""
var count = 0
for (var i = 0; i < (size + 1 + padSize) / 4; ++i) {
var result = data.readInt()
if (count != size) {
str += String.fromCharCode((result & 0x000000FF))
count++
}
if (count != size) {
str += String.fromCharCode((result & 0x0000FF00) >>> 8)
count++
}
if (count != size) {
str += String.fromCharCode((result & 0x00FF0000) >>> 16)
count++
}
if (count != size) {
str += String.fromCharCode((result & 0xFF000000) >>> 24)
count++
}
}
return str
}
function readStringArray(data) {
var size = data.readInt()
console.log(TAG + "label size: " + size)
var result = []
for (var i = 0; i < size; ++i) {
result.push(readString8(data))
}
return result
}
class MyAuthenticatorCallback {
constructor(callback) {
this.callback = callback
this.newData = new rpc.MessageParcel()
this.newReply = new rpc.MessageParcel()
this.newOptions = new rpc.MessageOption()
this.newData.writeInterfaceToken("ohos.accountfwk.IAppAccountAuthenticatorCallback")
}
onResult(resultCode, result) {
this.newData.writeInt(resultCode)
var want = new MyWant("", "", result)
this.newData.writeSequenceable(want)
this.callback.sendRequest(0, this.newData, this.newReply, this.newOptions)
}
onRequestRedirected(request) {
this.newData.writeSequenceable(request)
this.callback.sendRequest(1, this.newData, this.newReply, this.newOptions)
}
onRequestContinued() {
this.callback.sendRequest(2, this.newData, this.newReply, this.newOptions)
}
}
class MyAuthenticator extends rpc.RemoteObject {
authenticatorImpl = new MyAuthenticatorImpl()
constructor() {
super("authenticator")
}
onRemoteRequest(code, data, reply, options) {
console.log(TAG + "code: " + code)
data.readInterfaceToken()
var name = null
var callback = null
switch (code) {
case 2 :
name = readString8(data)
var verifyOptions = new VerifyCredentialOptions("", "", {})
data.readSequenceable(verifyOptions)
callback = new MyAuthenticatorCallback(data.readRemoteObject())
this.authenticatorImpl.verifyCredential(name, verifyOptions, callback)
break
case 3 :
name = readString8(data)
var labels = readStringArray(data)
callback = new MyAuthenticatorCallback(data.readRemoteObject())
console.log(TAG + "callback: " + callback)
this.authenticatorImpl.checkAccountLabels(name, labels, callback)
break
case 4 :
var setOptions = new SetPropertiesOptions({}, {})
data.readSequenceable(setOptions)
callback = new MyAuthenticatorCallback(data.readRemoteObject())
this.authenticatorImpl.setProperties(setOptions, callback)
break
case 5 :
name = readString8(data)
callback = new MyAuthenticatorCallback(data.readRemoteObject())
this.authenticatorImpl.isAccountRemovable(name, callback)
break
}
return true
}
getRemoteObject() {
return this
}
}
class MyAuthenticatorImpl {
accountLables = {
"zhangsan": ["male", "30-40", "level4"],
"lisi": ["female"]
}
accountCredentials = {
"zhangsan": {
"PIN": "123456",
"NUMBER": "12356789"
},
"lisi": {
"FACE": "X00001"
}
}
accountRemovability = {
"zhangsan": false,
"lisi": true
}
properties = {}
verifyCredential(name, options, callback) {
console.log(TAG + "name: " + name + ", options: " + JSON.stringify(options))
if (name == "xiaoming") {
callback.onRequestContinued()
return
}
var credentialInfo = this.accountCredentials[name]
if (credentialInfo == undefined) {
callback.onResult(0, {"booleanResult": false})
return
}
if (options.credentialType == undefined || options.credential == undefined) {
var want = new MyWant("com.ohos.accountauthenticator", "VerifyAbility",
{"credentialType": options.credentialType, "credential": options.credential})
callback.onRequestRedirected(want)
return
}
var credential = credentialInfo[options.credentialType.toUpperCase()]
if (credential == undefined || credential != options.credential) {
callback.onResult(0, {"booleanResult": false})
return
}
callback.onResult(0, {"booleanResult": true})
}
checkAccountLabels(name, labels, callback) {
console.log(TAG + "name: " + name + ", labels: " + JSON.stringify(labels))
if (labels.length == 0) {
callback.onResult(0, {"booleanResult": true})
return
}
var allLabels = this.accountLables[name]
if (allLabels == undefined || allLabels.length == 0) {
callback.onResult(0, {"booleanResult": false})
return
}
for (var i = 0; i < labels.length; ++i) {
if (allLabels.indexOf(labels[i]) == -1) {
callback.onResult(0, {"booleanResult": false})
return
}
}
callback.onResult(0, {"booleanResult": true})
}
setProperties(options, callback) {
console.log(TAG + "options: " + JSON.stringify(options))
callback.onResult(10016, {})
}
isAccountRemovable(name, callback) {
console.log(TAG + "name: " + name)
var isRemovable = this.accountRemovability[name]
if (isRemovable == undefined || isRemovable == false) {
callback.onResult(0, {"booleanResult": false})
return
}
callback.onResult(0, {"booleanResult": true})
}
}
export {MyAuthenticator}
\ No newline at end of file
......@@ -12,11 +12,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export default {
onCreate() {
console.info('AceApplication onCreate');
console.info("Application onCreate");
},
onDestroy() {
console.info('AceApplication onDestroy');
}
console.info("Application onDestroy");
},
};
.container {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
}
.title {
font-size: 60px;
text-align: center;
width: 100%;
height: 40%;
margin: 10px;
}
@media screen and (device-type: default) and (orientation: landscape) {
.title {
font-size: 60px;
}
}
@media screen and (device-type: tablet) and (orientation: landscape) {
.title {
font-size: 100px;
}
}
\ No newline at end of file
......@@ -12,4 +12,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
require('./Pressure.test.js')
\ No newline at end of file
export default {
data: {
title: "Hello World"
},
onInit() {
this.title = this.$t('strings.world');
},
}
......@@ -12,35 +12,43 @@
* 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')
import account_appAccount from '@ohos.account.appAccount';
import {MyAuthenticator} from '../Common/utils'
var TAG = "[AccountTest]"
var authenticator = null
export default {
data: {
title: "account pressure test"
async onStart(want) {
console.info('ServiceAbility onStart');
var accountMgr = account_appAccount.createAppAccountManager();
try {
await accountMgr.addAccount("zhangsan", "");
await accountMgr.enableAppAccess("zhangsan", "com.example.accounttest");
await accountMgr.addAccount("lisi", "");
await accountMgr.enableAppAccess("lisi", "com.example.accounttest");
await accountMgr.addAccount("wangwu", "");
await accountMgr.enableAppAccess("wangwu", "com.example.accounttest");
} catch(err) {
console.error(TAG + "addAccount or enableAppAccess failed, error: " + JSON.stringify(err))
}
console.info('ServiceAbility onStart end');
},
onInit() {
this.title = "account pressure test";
async onStop() {
console.info('ServiceAbility onStop');
},
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 = 180000;
configService.setConfig(this)
require('../../../test/List.test')
core.execute()
onConnect(want) {
console.info('ServiceAbility onConnect');
authenticator = new MyAuthenticator();
return authenticator.getRemoteObject();
},
onReconnect(want) {
console.info('ServiceAbility onReconnect');
},
onReady() {
onDisconnect() {
console.info('ServiceAbility onDisconnect');
},
}
\ No newline at end of file
onCommand(want, restart, startId) {
console.info('ServiceAbility onCommand');
}
};
\ No newline at end of file
{
"string": [
{
"name": "entry_desc",
"value": "description"
},
{
"name": "MainAbility_desc",
"value": "description"
},
{
"name": "MainAbility_label",
"value": "label"
},
{
"name": "ServiceAbility_desc",
"value": "hap sample empty service"
}
]
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册