未验证 提交 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 @@
"ActsAccountTest.hap",
"ActsAccountSceneAppAccess.hap",
"ActsAccountSceneOnOff.hap",
"ActsAccountOauthtoken.hap"
"ActsAccountOauthtoken.hap",
"ActsAccountAuthenticator.hap"
],
"type": "AppInstallKit",
"cleanup-apps": true
......
......@@ -22,6 +22,7 @@ import ActsAccountOAuthToken from './OAuthToken.test.js'
import ActsCreatAppAccountManager from './CreatManager.test.js'
import ActsAccountNoPermission from './NoPermission.test.js'
import ActsAccountChangeOnOff from './OnOff.js'
import ActsAccountAuthenticator from './Authenticator.test.js'
export default function testsuite() {
ActsAccountAddAccount()
ActsAccountAppAccess()
......@@ -33,4 +34,5 @@ export default function testsuite() {
ActsAccountNoPermission()
ActsAccountOAuthToken()
ActsAccountChangeOnOff()
ActsAccountAuthenticator()
}
\ No newline at end of file
......@@ -19,6 +19,7 @@ group("appaccount_scene") {
deps = [
"actsaccountaccessibleFirst:ActsAccountAccessibleFirst",
"actsaccountaccessibleSecond:ActsAccountAccessibleSecond",
"actsaccountauthenticator:ActsAccountAuthenticator",
"actsaccountoauthtoken:ActsAccountOauthtoken",
"actsaccountsceneaccessible:ActsAccountSceneAccessible",
"actsaccountsceneappaccess:ActsAccountSceneAppAccess",
......
......@@ -10,25 +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") {
hap_profile = "./src/main/config.json"
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") {
js2abc = true
hap_profile = "./src/main/config.json"
source_dir = "./src/main/js"
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 = [ "./src/main/resources" ]
hap_profile = "./src/main/config.json"
sources = [ "./entry/src/main/resources" ]
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.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export default {
onCreate() {
console.info('AceApplication onCreate');
},
onDestroy() {
console.info('AceApplication onDestroy');
}
};
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export default {
onCreate() {
console.info("Application onCreate");
},
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 {
display: flex;
flex-direction: column;
......@@ -31,13 +16,8 @@
height: 40%;
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 {
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");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
......@@ -13,14 +13,12 @@
* limitations under the License.
*/
export default {
data: {
title: ""
title: "Hello World"
},
onInit() {
this.title = this.$t('strings.world');
}
},
}
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import file from '@system.file'
const injectRef = Object.getPrototypeOf(global) || global
injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
export default {
data: {
title: "account pressure test"
},
onInit() {
this.title = "account pressure test";
},
onShow() {
console.info('onShow finish')
},
onReady() {
},
}
\ 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 {MyAuthenticator} from '../Common/utils'
var TAG = "[AccountTest]"
var authenticator = null
export default {
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');
},
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() {
var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish====");
var localIdStr = "100";
function funcIsActived(err, data){
console.debug("====>error received callback====");
AccountManager.isOsAccountActived(localIdStr, (err, data)=>{
console.debug("====>receive isOsAccountActived err: " + JSON.stringify(err));
expect(err.code !=0 ).assertEqual(true)
console.debug("====>receive isOsAccountActived data: " + JSON.stringify(data));
expect().assertFail();
done();
}
AccountManager.isOsAccountActived(localIdStr, funcIsActived);
setTimeout(()=>{
console.debug("====>ActsOsAccountIsActived_0500 end====");
done();
}, TIMEOUT);
});
})
/*
......@@ -193,11 +187,14 @@ export default function ActsOsAccountThirdPartyTest_third_1() {
var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish====");
var localIdStr = "100";
var isActived = await AccountManager.isOsAccountActived(localIdStr);
console.debug("====>get active status is: " + isActived);
expect(isActived).assertEqual(null);
console.debug("====>ActsOsAccountIsActived_0600 end====");
done();
AccountManager.isOsAccountActived(localIdStr).then((data)=>{
console.debug("====>get active status is: " + JSON.stringify(data));
done();
}).catch((err)=>{
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() {
console.debug("====>ActsOsAccountIsActived_0700 start");
var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish====");
function funcIsActived(err, data){
console.debug("====>error received callback====");
console.debug("====>receive isOsAccountActived err: " + JSON.stringify(err));
AccountManager.isOsAccountActived(undefined, (err, data)=>{
console.debug("====>ActsOsAccountIsActived_0700 err:" + JSON.stringify(err));
expect(err != 0).assertEqual(true)
console.debug("====>receive isOsAccountActived data: " + JSON.stringify(data));
expect().assertFail();
done();
}
AccountManager.isOsAccountActived(undefined, funcIsActived);
setTimeout(()=>{
console.debug("====>ActsOsAccountIsActived_0700 end====");
done();
}, TIMEOUT);
})
})
/*
......@@ -231,12 +222,16 @@ export default function ActsOsAccountThirdPartyTest_third_1() {
it('ActsOsAccountIsActived_0800', 0, async function(done){
console.debug("====>ActsOsAccountIsActived_0800 start====");
var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish====");
var isActived = await AccountManager.isOsAccountActived(undefined);
console.debug("====>get active status is: " + isActived);
expect(isActived).assertEqual(null);
console.debug("====>ActsOsAccountIsActived_0800 end====");
done();
console.debug("====>ActsOsAccountIsActived_0800 get os AccountManager finish====");
AccountManager.isOsAccountActived(undefined).then((data)=>{
console.debug("====>ActsOsAccountIsActived_0800 get active status is: " + JSON.stringify(data));
done()
}).catch((err)=>{
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() {
var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish====");
var localIdStr = "100";
function funcIsVerified(err, data){
AccountManager.isOsAccountVerified(localIdStr, (err, data)=>{
console.debug("====>error received callback====");
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));
expect().assertFail();
done();
}
AccountManager.isOsAccountVerified(localIdStr, funcIsVerified);
setTimeout(()=>{
console.debug("====>ActsOsAccountIsVerified_0500 end====");
done();
}, TIMEOUT);
})
})
/*
......@@ -383,11 +374,15 @@ export default function ActsOsAccountThirdPartyTest_third_1() {
var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish====");
var localIdStr = "100";
var isVerified = await AccountManager.isOsAccountVerified(localIdStr);
console.debug("====>get verified status is: " + isVerified);
expect(isVerified).assertEqual(null);
console.debug("====>ActsOsAccountIsVerified_0600 end====");
done();
AccountManager.isOsAccountVerified(localIdStr).then((data)=>{
expect(data).assertEqual(false); //
console.debug("====>ActsOsAccountIsVerified_0600 end====");
done();
}).catch((err)=>{
console.debug("====>get verified err: " + JSON.stringify(err));
expect().assertFail()
done();
})
})
/*
......@@ -400,18 +395,14 @@ export default function ActsOsAccountThirdPartyTest_third_1() {
var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish====");
var localIdUndefined = undefined;
function funcIsVerified(err, data){
console.debug("====>error received callback====");
console.debug("====>receive isOsAccountVerified err: " + JSON.stringify(err));
console.debug("====>receive isOsAccountVerified data: " + JSON.stringify(data));
expect().assertFail();
done();
}
AccountManager.isOsAccountVerified(localIdUndefined, funcIsVerified);
setTimeout(()=>{
AccountManager.isOsAccountVerified(localIdUndefined, (err, data) =>{
console.debug("====>ActsOsAccountIsVerified_0700 isOsAccountVerified_err:" + JSON.stringify(err))
expect(err.code).assertEqual(0)
console.debug("====>ActsOsAccountIsVerified_0700 isOsAccountVerified_data:" + JSON.stringify(data))
expect(data).assertEqual(false)
console.debug("====>ActsOsAccountIsVerified_0700 end====");
done();
}, TIMEOUT);
});
})
/*
......@@ -424,11 +415,16 @@ export default function ActsOsAccountThirdPartyTest_third_1() {
var AccountManager = osAccount.getAccountManager();
console.debug("====>get os AccountManager finish====");
var localIdUndefined = undefined;
var isVerified = await AccountManager.isOsAccountVerified(localIdUndefined);
console.debug("====>get verified status is: " + isVerified);
expect(isVerified).assertEqual(null);
console.debug("====>ActsOsAccountIsVerified_0800 end====");
done();
AccountManager.isOsAccountVerified(localIdUndefined).then((data)=>{
console.debug("====>ActsOsAccountIsVerified_0800 isOsAccountVerified_data:" + JSON.stringify(data))
expect(data).assertEqual(false)
console.debug("====>ActsOsAccountIsVerified_0700 end====");
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.
先完成此消息的编辑!
想要评论请 注册