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

!4505 【账号】新接口用例覆盖,账号js层参数解析失败无返回结果问题处理

Merge pull request !4505 from 何海涛/SR000GVGNH
{
"description": "Configuration for hjunit demo Tests",
"driver": {
"type": "OHJSUnitTest",
"test-timeout": "1500000",
"bundle-name": "com.example.actsaccountpressure",
"package-name": "com.example.actsaccountpressure",
"shell-timeout": "1500000"
},
"kits": [
{
"test-file-name": [
"ActsAccountPressure.hap",
"ActsAccountSceneAppAccess.hap"
],
"type": "AppInstallKit",
"cleanup-apps": true
}
]
}
{
"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": ".entry",
"mainAbility": ".MainAbility",
"srcPath":"",
"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"
}
],
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"orientation": "unspecified",
"formsEnabled": false,
"name": ".MainAbility",
"srcLanguage": "js",
"srcPath": "MainAbility",
"icon": "$media:icon",
"description": "$string:MainAbility_desc",
"label": "$string:MainAbility_label",
"type": "page",
"visible": true,
"launchType": "standard"
},
{
"orientation": "unspecified",
"formsEnabled": false,
"name": ".TestAbility",
"srcLanguage": "js",
"srcPath": "TestAbility",
"icon": "$media:icon",
"description": "$string:TestAbility_desc",
"label": "$string:TestAbility_label",
"type": "page",
"visible": true,
"launchType": "standard"
}
],
"js": [
{
"pages": [
"pages/index/index"
],
"name": "default",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
},
{
"pages": [
"pages/index/index"
],
"name": ".TestAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
],
"testRunner": {
"name": "OpenHarmonyTestRunner",
"srcPath": "TestRunner"
}
}
}
\ No newline at end of file
{
"strings": {
"hello": "Hello",
"world": "World"
}
}
\ No newline at end of file
{
"strings": {
"hello": "您好",
"world": "世界"
}
}
\ 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.
*/
.container {
flex-direction: column;
justify-content: center;
align-items: center;
}
.title {
font-size: 100px;
}
<!--
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.
-->
<div class="container" onswipe="touchMove">
<text class="title">
{{title}}
</text>
</div>
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
import { Hypium } from '@ohos/hypium'
import testsuite from '../test/List.test'
export default {
onCreate() {
console.info('TestApplication onCreate')
var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
console.info('start run testcase!!!')
Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite)
},
onDestroy() {
console.info("TestApplication onDestroy");
}
};
<!--
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.
-->
<div class="container" onswipe="touchMove">
<text class="title">
{{ $t('strings.hello') }} {{title}}
</text>
<input class="btn" type="button" value="{{ $t('strings.next') }}" onclick="onclick"></input>
</div>
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
function translateParamsToString(parameters) {
const keySet = new Set([
'-s class', '-s notClass', '-s suite', '-s itName',
'-s level', '-s testType', '-s size', '-s timeout',
'-s package', '-s dryRun'
])
let targetParams = '';
for (const key in parameters) {
if (keySet.has(key)) {
targetParams += ' ' + key + ' ' + parameters[key]
}
}
return targetParams.trim()
}
export default {
onPrepare() {
console.info('OpenHarmonyTestRunner OnPrepare')
},
onRun() {
console.log('OpenHarmonyTestRunner onRun run')
var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
var testAbilityName = abilityDelegatorArguments.parameters['-p'] + '.TestAbility'
var cmd = 'aa start -d 0 -a ' + testAbilityName + ' -b ' + abilityDelegatorArguments.bundleName
cmd += ' ' + translateParamsToString(abilityDelegatorArguments.parameters)
var debug = abilityDelegatorArguments.parameters["-D"]
console.info('debug value : '+debug)
if (debug == 'true')
{
cmd += ' -D'
}
console.info('cmd : '+cmd)
abilityDelegator.executeShellCommand(cmd, (err, data) => {
console.info('executeShellCommand : err : ' + JSON.stringify(err));
console.info('executeShellCommand : data : ' + data.stdResult);
console.info('executeShellCommand : data : ' + data.exitCode);
})
}
};
/*
* 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 ActsAccountPressure from './Pressure.test.js'
export default function testsuite() {
ActsAccountPressure()
}
\ No newline at end of file
{
"string": [
{
"name": "app_name",
"value": "ActsAccountPressure"
},
{
"name": "mainability_description",
"value": "JS_Phone_Empty Feature Ability"
},
{
"name": "MainAbility_desc",
"value": "description"
},
{
"name": "MainAbility_label",
"value": "label"
},
{
"name": "TestAbility_desc",
"value": "description"
},
{
"name": "TestAbility_label",
"value": "label"
}
]
}
\ No newline at end of file
...@@ -13,7 +13,8 @@ ...@@ -13,7 +13,8 @@
"ActsAccountTest.hap", "ActsAccountTest.hap",
"ActsAccountSceneAppAccess.hap", "ActsAccountSceneAppAccess.hap",
"ActsAccountSceneOnOff.hap", "ActsAccountSceneOnOff.hap",
"ActsAccountOauthtoken.hap" "ActsAccountOauthtoken.hap",
"ActsAccountAuthenticator.hap"
], ],
"type": "AppInstallKit", "type": "AppInstallKit",
"cleanup-apps": true "cleanup-apps": true
......
...@@ -22,6 +22,7 @@ import ActsAccountOAuthToken from './OAuthToken.test.js' ...@@ -22,6 +22,7 @@ import ActsAccountOAuthToken from './OAuthToken.test.js'
import ActsCreatAppAccountManager from './CreatManager.test.js' import ActsCreatAppAccountManager from './CreatManager.test.js'
import ActsAccountNoPermission from './NoPermission.test.js' import ActsAccountNoPermission from './NoPermission.test.js'
import ActsAccountChangeOnOff from './OnOff.js' import ActsAccountChangeOnOff from './OnOff.js'
import ActsAccountAuthenticator from './Authenticator.test.js'
export default function testsuite() { export default function testsuite() {
ActsAccountAddAccount() ActsAccountAddAccount()
ActsAccountAppAccess() ActsAccountAppAccess()
...@@ -33,4 +34,5 @@ export default function testsuite() { ...@@ -33,4 +34,5 @@ export default function testsuite() {
ActsAccountNoPermission() ActsAccountNoPermission()
ActsAccountOAuthToken() ActsAccountOAuthToken()
ActsAccountChangeOnOff() ActsAccountChangeOnOff()
ActsAccountAuthenticator()
} }
\ No newline at end of file
...@@ -19,6 +19,7 @@ group("appaccount_scene") { ...@@ -19,6 +19,7 @@ group("appaccount_scene") {
deps = [ deps = [
"actsaccountaccessibleFirst:ActsAccountAccessibleFirst", "actsaccountaccessibleFirst:ActsAccountAccessibleFirst",
"actsaccountaccessibleSecond:ActsAccountAccessibleSecond", "actsaccountaccessibleSecond:ActsAccountAccessibleSecond",
"actsaccountauthenticator:ActsAccountAuthenticator",
"actsaccountoauthtoken:ActsAccountOauthtoken", "actsaccountoauthtoken:ActsAccountOauthtoken",
"actsaccountsceneaccessible:ActsAccountSceneAccessible", "actsaccountsceneaccessible:ActsAccountSceneAccessible",
"actsaccountsceneappaccess:ActsAccountSceneAppAccess", "actsaccountsceneappaccess:ActsAccountSceneAppAccess",
......
...@@ -10,25 +10,29 @@ ...@@ -10,25 +10,29 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
import("//test/xts/tools/build/suite.gni") import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("ActsAccountPressure") { ohos_hap("ActsAccountAuthenticator") {
hap_profile = "./src/main/config.json" 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 = [ deps = [
":hjs_demo_js_assets", ":hjs_demo_js_assets",
":hjs_demo_js_service_assets",
":hjs_demo_resources", ":hjs_demo_resources",
] ]
certificate_profile = "./signature/openharmony_sx.p7b" certificate_profile = "./signature/openharmony_sx.p7b"
hap_name = "ActsAccountPressure"
} }
ohos_js_assets("hjs_demo_js_assets") { ohos_js_assets("hjs_demo_js_assets") {
js2abc = true source_dir = "./entry/src/main/js/MainAbility"
hap_profile = "./src/main/config.json" }
source_dir = "./src/main/js" ohos_js_assets("hjs_demo_js_service_assets") {
source_dir = "./entry/src/main/js/ServiceAbility"
} }
ohos_resources("hjs_demo_resources") { ohos_resources("hjs_demo_resources") {
sources = [ "./src/main/resources" ] sources = [ "./entry/src/main/resources" ]
hap_profile = "./src/main/config.json" hap_profile = "./entry/src/main/config.json"
} }
{
"app": {
"vendor": "example",
"bundleName": "com.example.accountauthenticator",
"version": {
"code": 1000000,
"name": "1.0.0"
},
"apiVersion": {
"compatible": 7,
"target": 7
}
},
"deviceConfig": {},
"module": {
"mainAbility": ".MainAbility",
"deviceType": [
"default",
"tablet"
],
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"orientation": "unspecified",
"visible": true,
"srcPath": "MainAbility",
"name": ".MainAbility",
"srcLanguage": "js",
"icon": "$media:icon",
"description": "$string:MainAbility_desc",
"formsEnabled": false,
"label": "$string:MainAbility_label",
"type": "page",
"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": ".MainAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
]
}
}
\ 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 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
/* /*
* Copyright (c) 2021 Huawei Device Co., Ltd. * Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
export default {
onCreate() { export default {
console.info('AceApplication onCreate'); onCreate() {
}, console.info("Application onCreate");
onDestroy() { },
console.info('AceApplication onDestroy'); onDestroy() {
} console.info("Application onDestroy");
}; },
};
/*
* 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.
*/
.container { .container {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
...@@ -31,13 +16,8 @@ ...@@ -31,13 +16,8 @@
height: 40%; height: 40%;
margin: 10px; margin: 10px;
} }
.btn {
width: 50%;
height: 100px;
font-size: 40px;
}
@media screen and (device-type: phone) and (orientation: landscape) { @media screen and (device-type: default) and (orientation: landscape) {
.title { .title {
font-size: 60px; font-size: 60px;
} }
......
/* /*
* Copyright (c) 2022 Huawei Device Co., Ltd. * Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
...@@ -13,14 +13,12 @@ ...@@ -13,14 +13,12 @@
* limitations under the License. * limitations under the License.
*/ */
export default { export default {
data: { data: {
title: "" title: "Hello World"
}, },
onInit() { onInit() {
this.title = this.$t('strings.world'); this.title = this.$t('strings.world');
} },
} }
/* /*
* Copyright (c) 2021 Huawei Device Co., Ltd. * Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import file from '@system.file'
import account_appAccount from '@ohos.account.appAccount';
const injectRef = Object.getPrototypeOf(global) || global import {MyAuthenticator} from '../Common/utils'
injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
var TAG = "[AccountTest]"
export default { var authenticator = null
data: { export default {
title: "account pressure test" async onStart(want) {
}, console.info('ServiceAbility onStart');
onInit() { var accountMgr = account_appAccount.createAppAccountManager();
this.title = "account pressure test"; try {
}, await accountMgr.addAccount("zhangsan", "");
onShow() { await accountMgr.enableAppAccess("zhangsan", "com.example.accounttest");
console.info('onShow finish') await accountMgr.addAccount("lisi", "");
}, await accountMgr.enableAppAccess("lisi", "com.example.accounttest");
onReady() { await accountMgr.addAccount("wangwu", "");
}, await accountMgr.enableAppAccess("wangwu", "com.example.accounttest");
} } catch(err) {
\ No newline at end of file console.error(TAG + "addAccount or enableAppAccess failed, error: " + JSON.stringify(err))
}
console.info('ServiceAbility onStart end');
},
async onStop() {
console.info('ServiceAbility onStop');
},
onConnect(want) {
console.info('ServiceAbility onConnect');
authenticator = new MyAuthenticator();
return authenticator.getRemoteObject();
},
onReconnect(want) {
console.info('ServiceAbility onReconnect');
},
onDisconnect() {
console.info('ServiceAbility onDisconnect');
},
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
...@@ -169,18 +169,12 @@ export default function ActsOsAccountThirdPartyTest_third_1() { ...@@ -169,18 +169,12 @@ export default function ActsOsAccountThirdPartyTest_third_1() {
var AccountManager = osAccount.getAccountManager(); var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish===="); console.debug("====>get os AccountManager finish====");
var localIdStr = "100"; var localIdStr = "100";
function funcIsActived(err, data){ AccountManager.isOsAccountActived(localIdStr, (err, data)=>{
console.debug("====>error received callback====");
console.debug("====>receive isOsAccountActived err: " + JSON.stringify(err)); console.debug("====>receive isOsAccountActived err: " + JSON.stringify(err));
expect(err.code !=0 ).assertEqual(true)
console.debug("====>receive isOsAccountActived data: " + JSON.stringify(data)); console.debug("====>receive isOsAccountActived data: " + JSON.stringify(data));
expect().assertFail();
done(); done();
} });
AccountManager.isOsAccountActived(localIdStr, funcIsActived);
setTimeout(()=>{
console.debug("====>ActsOsAccountIsActived_0500 end====");
done();
}, TIMEOUT);
}) })
/* /*
...@@ -193,11 +187,14 @@ export default function ActsOsAccountThirdPartyTest_third_1() { ...@@ -193,11 +187,14 @@ export default function ActsOsAccountThirdPartyTest_third_1() {
var AccountManager = osAccount.getAccountManager(); var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish===="); console.debug("====>get os AccountManager finish====");
var localIdStr = "100"; var localIdStr = "100";
var isActived = await AccountManager.isOsAccountActived(localIdStr); AccountManager.isOsAccountActived(localIdStr).then((data)=>{
console.debug("====>get active status is: " + isActived); console.debug("====>get active status is: " + JSON.stringify(data));
expect(isActived).assertEqual(null); done();
console.debug("====>ActsOsAccountIsActived_0600 end===="); }).catch((err)=>{
done(); expect(err.code !=0 ).assertEqual(true)
console.debug("====>ActsOsAccountIsActived_0600 err:" + JSON.stringify(err));
done();
})
}) })
/* /*
...@@ -209,18 +206,12 @@ export default function ActsOsAccountThirdPartyTest_third_1() { ...@@ -209,18 +206,12 @@ export default function ActsOsAccountThirdPartyTest_third_1() {
console.debug("====>ActsOsAccountIsActived_0700 start"); console.debug("====>ActsOsAccountIsActived_0700 start");
var AccountManager = osAccount.getAccountManager(); var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish===="); console.debug("====>get os AccountManager finish====");
function funcIsActived(err, data){ AccountManager.isOsAccountActived(undefined, (err, data)=>{
console.debug("====>error received callback===="); console.debug("====>ActsOsAccountIsActived_0700 err:" + JSON.stringify(err));
console.debug("====>receive isOsAccountActived err: " + JSON.stringify(err)); expect(err != 0).assertEqual(true)
console.debug("====>receive isOsAccountActived data: " + JSON.stringify(data)); console.debug("====>receive isOsAccountActived data: " + JSON.stringify(data));
expect().assertFail();
done();
}
AccountManager.isOsAccountActived(undefined, funcIsActived);
setTimeout(()=>{
console.debug("====>ActsOsAccountIsActived_0700 end====");
done(); done();
}, TIMEOUT); })
}) })
/* /*
...@@ -231,12 +222,16 @@ export default function ActsOsAccountThirdPartyTest_third_1() { ...@@ -231,12 +222,16 @@ export default function ActsOsAccountThirdPartyTest_third_1() {
it('ActsOsAccountIsActived_0800', 0, async function(done){ it('ActsOsAccountIsActived_0800', 0, async function(done){
console.debug("====>ActsOsAccountIsActived_0800 start===="); console.debug("====>ActsOsAccountIsActived_0800 start====");
var AccountManager = osAccount.getAccountManager(); var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish===="); console.debug("====>ActsOsAccountIsActived_0800 get os AccountManager finish====");
var isActived = await AccountManager.isOsAccountActived(undefined); AccountManager.isOsAccountActived(undefined).then((data)=>{
console.debug("====>get active status is: " + isActived); console.debug("====>ActsOsAccountIsActived_0800 get active status is: " + JSON.stringify(data));
expect(isActived).assertEqual(null); done()
console.debug("====>ActsOsAccountIsActived_0800 end===="); }).catch((err)=>{
done(); console.debug("====>ActsOsAccountIsActived_0800 err:" + JSON.stringify(err))
expect(err != 0).assertEqual(true);
console.debug("====>ActsOsAccountIsActived_0800 end====");
done();
})
}) })
/* /*
...@@ -359,18 +354,14 @@ export default function ActsOsAccountThirdPartyTest_third_1() { ...@@ -359,18 +354,14 @@ export default function ActsOsAccountThirdPartyTest_third_1() {
var AccountManager = osAccount.getAccountManager(); var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish===="); console.debug("====>get os AccountManager finish====");
var localIdStr = "100"; var localIdStr = "100";
function funcIsVerified(err, data){ AccountManager.isOsAccountVerified(localIdStr, (err, data)=>{
console.debug("====>error received callback===="); console.debug("====>error received callback====");
console.debug("====>receive isOsAccountVerified err: " + JSON.stringify(err)); console.debug("====>receive isOsAccountVerified err: " + JSON.stringify(err));
expect(err.code).assertEqual(0);
expect(data).assertEqual(false);
console.debug("====>receive isOsAccountVerified data: " + JSON.stringify(data)); console.debug("====>receive isOsAccountVerified data: " + JSON.stringify(data));
expect().assertFail();
done(); done();
} })
AccountManager.isOsAccountVerified(localIdStr, funcIsVerified);
setTimeout(()=>{
console.debug("====>ActsOsAccountIsVerified_0500 end====");
done();
}, TIMEOUT);
}) })
/* /*
...@@ -383,11 +374,15 @@ export default function ActsOsAccountThirdPartyTest_third_1() { ...@@ -383,11 +374,15 @@ export default function ActsOsAccountThirdPartyTest_third_1() {
var AccountManager = osAccount.getAccountManager(); var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish===="); console.debug("====>get os AccountManager finish====");
var localIdStr = "100"; var localIdStr = "100";
var isVerified = await AccountManager.isOsAccountVerified(localIdStr); AccountManager.isOsAccountVerified(localIdStr).then((data)=>{
console.debug("====>get verified status is: " + isVerified); expect(data).assertEqual(false); //
expect(isVerified).assertEqual(null); console.debug("====>ActsOsAccountIsVerified_0600 end====");
console.debug("====>ActsOsAccountIsVerified_0600 end===="); done();
done(); }).catch((err)=>{
console.debug("====>get verified err: " + JSON.stringify(err));
expect().assertFail()
done();
})
}) })
/* /*
...@@ -400,18 +395,14 @@ export default function ActsOsAccountThirdPartyTest_third_1() { ...@@ -400,18 +395,14 @@ export default function ActsOsAccountThirdPartyTest_third_1() {
var AccountManager = osAccount.getAccountManager(); var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish===="); console.debug("====>get os AccountManager finish====");
var localIdUndefined = undefined; var localIdUndefined = undefined;
function funcIsVerified(err, data){ AccountManager.isOsAccountVerified(localIdUndefined, (err, data) =>{
console.debug("====>error received callback===="); console.debug("====>ActsOsAccountIsVerified_0700 isOsAccountVerified_err:" + JSON.stringify(err))
console.debug("====>receive isOsAccountVerified err: " + JSON.stringify(err)); expect(err.code).assertEqual(0)
console.debug("====>receive isOsAccountVerified data: " + JSON.stringify(data)); console.debug("====>ActsOsAccountIsVerified_0700 isOsAccountVerified_data:" + JSON.stringify(data))
expect().assertFail(); expect(data).assertEqual(false)
done();
}
AccountManager.isOsAccountVerified(localIdUndefined, funcIsVerified);
setTimeout(()=>{
console.debug("====>ActsOsAccountIsVerified_0700 end===="); console.debug("====>ActsOsAccountIsVerified_0700 end====");
done(); done();
}, TIMEOUT); });
}) })
/* /*
...@@ -424,11 +415,16 @@ export default function ActsOsAccountThirdPartyTest_third_1() { ...@@ -424,11 +415,16 @@ export default function ActsOsAccountThirdPartyTest_third_1() {
var AccountManager = osAccount.getAccountManager(); var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish===="); console.debug("====>get os AccountManager finish====");
var localIdUndefined = undefined; var localIdUndefined = undefined;
var isVerified = await AccountManager.isOsAccountVerified(localIdUndefined); AccountManager.isOsAccountVerified(localIdUndefined).then((data)=>{
console.debug("====>get verified status is: " + isVerified); console.debug("====>ActsOsAccountIsVerified_0800 isOsAccountVerified_data:" + JSON.stringify(data))
expect(isVerified).assertEqual(null); expect(data).assertEqual(false)
console.debug("====>ActsOsAccountIsVerified_0800 end===="); console.debug("====>ActsOsAccountIsVerified_0700 end====");
done(); done();
}).catch((err)=>{
console.debug("====>ActsOsAccountIsVerified_0700 isOsAccountVerified_err:" + JSON.stringify(err))
expect(err.code !=0 ).assertEqual(true)
done();
})
}) })
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册