提交 21fc9964 编写于 作者: C chengxingzhen

XTS测试套整改

Signed-off-by: Nchengxingzhen <chengxingzhen@huawei.com>
上级 ef25cd96
......@@ -21,6 +21,7 @@ group("aafwk_standard") {
"actsabilitydelegatorcase:ActsAbilityDelegatorCaseTest",
"actsabilitylifecyclestatenew:ActsAbilityLifecycleStateNewTest",
"actsabilitymanageretstest:ActsAbilityManagerEtsTest",
"actsfwkdataaccessortest:dataability",
"actsstserviceabilityclientcase:ActsStServiceAbilityClientCaseTest",
"amsdatauriutils:ActsAmsDataUriUtilsTest",
"amsgetabilityprocessinfo:amsgetabilityprocessinfo",
......
......@@ -17,7 +17,6 @@ group("dataability") {
testonly = true
if (is_standard_system) {
deps = [
"actsdataabilityrelyhap:ActsDataAbilityRelyHap",
"actsfwkdataaccessortest:ActsFWKDataAccessorTest",
]
}
......
# 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("//test/xts/tools/build/suite.gni")
ohos_hap("ActsDataAbilityRelyHap") {
hap_name = "ActsDataAbilityRelyHap"
hap_profile = "entry/src/main/config.json"
subsystem_name = XTS_SUITENAME
final_hap_path =
"${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/testcases/${hap_name}.hap"
testonly = true
deps = [
":dataability_resources",
":dataability_ts_assets",
]
certificate_profile = "signature/openharmony_sx.p7b"
}
ohos_js_assets("dataability_ts_assets") {
source_dir = "entry/src/main/ets"
hap_profile = "entry/src/main/config.json"
ets2abc = true
}
ohos_resources("dataability_resources") {
sources = [ "entry/src/main/resources" ]
hap_profile = "entry/src/main/config.json"
}
{
"app": {
"bundleName": "com.amsst.stdataability",
"vendor": "test",
"version": {
"code": 1000110,
"name": "1.1.1"
},
"apiVersion": {
"compatible": 9,
"target": 9
}
},
"deviceConfig": {},
"module": {
"package": "com.amsst.stdataability",
"name": ".MyApplication",
"mainAbility": ".MainAbility",
"srcPath": "",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "entry",
"moduleType": "entry",
"installationFree": false
},
"abilities": [
{
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"orientation": "unspecified",
"visible": true,
"srcPath": "MainAbility",
"name": ".MainAbility",
"srcLanguage": "ets",
"icon": "$media:icon",
"description": "$string:description_mainability",
"formsEnabled": false,
"label": "$string:entry_MainAbility",
"type": "page",
"launchType": "standard"
},
{
"srcPath": "TestDataAbility",
"name": ".TestDataAbility",
"icon": "$media:icon",
"srcLanguage": "ets",
"description": "$string:description_testdataability",
"type": "data",
"visible": true,
"uri": "dataability://com.example.myapplication.DataAbility"
},
{
"srcPath": "TestDataAbility2",
"name": ".TestDataAbility2",
"icon": "$media:icon",
"srcLanguage": "ets",
"description": "$string:description_testdataability",
"type": "data",
"visible": true,
"uri": "dataability://com.example.myapplication.DataAbility2"
}
],
"js": [
{
"mode": {
"syntax": "ets",
"type": "pageAbility"
},
"pages": [
"pages/index",
"pages/second"
],
"name": ".MainAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
}
],
"defPermissions": [
{
"name": "com.ohos.screenlock.DataAbilityShellProvider.PROVIDER"
}
]
}
}
/*
* 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 AbilityStage from "@ohos.application.AbilitySatage"
export default class MyAbilityStage extends AbilityStage {
onCreate() {
console.log("MyAbilityStage onCreate");
}
}
\ No newline at end of file
/*
* 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 Ability from '@ohos.application.Ability'
export default class MainAbility extends Ability {
onCreate(want, launchParam) {
console.log("jws onCreate");
}
onDestroy() {
console.log("jws onDestroy");
}
onWindowStageCreate(windowStage) {
console.log("jws onWindowStageCreate");
}
onWindowStageDestroy() {
console.log("jws onWindowStageDestroy");
}
onForeground() {
console.log("jws onForeground");
}
onBackground() {
console.log("jws onBackground");
}
call(){
}
}
\ No newline at end of file
/*
* 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.
*/
export default {
onCreate() {
console.info('Application onCreate')
},
onDestroy() {
console.info('Application onDestroy')
},
}
\ No newline at end of file
/*
* 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 {Core} from 'deccjsunit/index'
@Entry
@Component
struct Index {
aboutToAppear() {
console.info('onShow finish')
const core = Core.getInstance()
core.init()
const configService = core.getDefaultService('config')
configService.setConfig(this)
core.execute()
}
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text('Hello World')
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
.height('100%')
}
}
\ No newline at end of file
/*
* 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 router from '@system.router';
@Entry
@Component
struct Second {
private content: string = "Second Page"
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text(`${this.content}`)
.fontSize(50)
.fontWeight(FontWeight.Bold)
Button() {
Text('back to index')
.fontSize(20)
.fontWeight(FontWeight.Bold)
}.type(ButtonType.Capsule)
.margin({
top: 20
})
.backgroundColor('#0D9FFB')
.onClick(() => {
router.back()
})
}
.width('100%')
.height('100%')
}
}
\ No newline at end of file
/*
* 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 dataAbility from '@ohos.data.dataability'
import featureAbility from '@ohos.ability.featureAbility'
import fileio from '@ohos.fileio'
import dataRdb from '@ohos.data.rdb'
const TABLE_NAME = 'book'
const STORE_CONFIG = { name: 'book.db', encryptKey: new Uint8Array([]) }
const SQL_CREATE_TABLE = 'CREATE TABLE IF NOT EXISTS book' +
'(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER, introduction TEXT NOT NULL)'
let rdbStore: any = undefined
const TAG = 'ACTS_ DataAbility.data'
let defaultReturn = 1;
let returnError = 0;
let returnError1 = -1;
let returnError2 = -2;
let returnError3 = -3;
let dataAbilityUri = ("dataability:///com.example.myapplication.DataAbility");
export default {
onInitialized(abilityInfo) {
console.debug('ACTS_ DataAbility onInitialized,abilityInfo=' + abilityInfo.bundleName)
dataRdb.getRdbStore(STORE_CONFIG, 1, (err, store) => {
console.debug('ACTS_ [data]getRdbStoreThen')
store.executeSql(SQL_CREATE_TABLE, [])
rdbStore = store
});
},
insert(uri, valueBucket, callback) {
console.debug(TAG + ' insert start 1121')
console.debug(TAG + ' valueBucket json=>' + JSON.stringify(valueBucket))
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
console.debug(TAG + ' valueBucket.age =>' + valueBucket.age)
console.debug(TAG + ' valueBucket.name =>' + valueBucket.name)
console.debug(TAG + ' valueBucket.salary =>' + valueBucket.salary)
if (valueBucket.age != 24) {
err = "Error age"
callback(err, returnError2);
}
if (valueBucket.name != "ActsDataAbilityHelperTest") {
err = "Error name"
callback(err, returnError2);
}
if (valueBucket.salary != 2024.20) {
err = "Error salary"
callback(err, returnError2);
}
err = "Error insert"
console.debug(TAG + ' rdbStore.insert ')
rdbStore.insert(TABLE_NAME, valueBucket, function (err, resultSet) {
console.log(TAG + "insert callback resultSet:" + resultSet
+ " ,json=" + JSON.stringify(resultSet) + ' ,err' + err)
callback(err, defaultReturn);
})
},
query(uri, columns, predicates, callback) {
console.debug(TAG + ' query start')
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
let rdbPredicates = dataAbility.createRdbPredicates(TABLE_NAME, predicates)
rdbStore.query(rdbPredicates, columns, callback)
},
update(uri, valueBucket, predicates, callback) {
console.debug(TAG + 'update start')
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
console.debug(TAG + ' valueBucket.age =>' + valueBucket.age)
console.debug(TAG + ' valueBucket.name =>' + valueBucket.name)
console.debug(TAG + ' valueBucket.salary =>' + valueBucket.salary)
if (valueBucket.age != 24) {
err = "Error age"
callback(err, returnError2);
}
if (valueBucket.name != "ActsDataAbilityHelperTest") {
err = "Error name"
callback(err, returnError2);
}
if (valueBucket.salary != 2024.20) {
err = "Error salary"
callback(err, returnError2);
}
err = "Error update"
let rdbPredicates = dataAbility.createRdbPredicates(TABLE_NAME, predicates)
rdbStore.update(valueBucket, rdbPredicates, function (err, resultSet) {
console.log(TAG + "insert callback resultSet:" + resultSet
+ " ,json=" + JSON.stringify(resultSet) + ' ,err' + err)
callback(err, defaultReturn);
})
},
delete(uri, predicates, callback) {
console.debug(TAG + 'delete start')
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
let rdbPredicates = dataAbility.createRdbPredicates(TABLE_NAME, predicates)
rdbStore.delete(rdbPredicates, function (err, resultSet) {
console.log(TAG + "insert callback resultSet:" + resultSet
+ " ,json=" + JSON.stringify(resultSet) + ' ,err' + err)
callback(err, defaultReturn);
})
},
call(uri, method, arg, extras, callback) {
console.debug(TAG + 'call start')
console.debug(TAG + 'uri---->' + uri)
console.debug(TAG + 'method---->' + uri)
},
batchInsert(uri, values, callback) {
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
for (var j = 0; j < values.length; j++) {
rdbStore.insert("EMPLOYEE", values[j], function (err, ret) {
console.log(TAG + "batchInsert callback ret:" + JSON.stringify(ret))
})
}
console.log(TAG + "batchInsert values.length:" + values.length + ' ,json=' + JSON.stringify(values.length))
callback(err, values.length);
},
getType(uri, callback) {
console.info(TAG + '==================== DataAbility test interface by getType ================');
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
callback("success", uri);
},
getFileTypes(uri, mimeTypeFilter, callback) {
console.info(TAG + '==================== DataAbility test interface by GetFileTypes ================');
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
let type1 = " ";
let type2 = " ";
let type3 = " ";
let types;
if (mimeTypeFilter == "*/*") {
type1 = ("hap");
type2 = ("jpg");
type3 = ("image/png");
types = [type1, type2, type3];
} else if (mimeTypeFilter == "image/*") {
type1 = ("image/png");
types = [type1];
} else if (mimeTypeFilter == "*/jpg") {
type1 = ("jpg");
types = [type1];
}
console.log(TAG + "GetFileTypes callback ret:" + JSON.stringify(types))
callback("success", types);
},
openFile(uri, mode, callback) {
console.info(TAG + '==================== DataAbility test interface by openFile ================');
let defaultReturn = 1;
let returnError1 = -1;
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
if (!(mode == ("r") || mode == ("w") || mode == ("wt") || mode == ("wa") ||
mode == ("rw") || mode == ("rwt"))) {
if (mode == ("A1@k#4%$,.<>)(oioiu*((*&(&*giIGT^%&^Ug;sdfk;losd*7873iug8%&^$&%]ERFUy&^%&&R7")) {
defaultReturn = returnError2;
} else
defaultReturn = returnError3;
}
console.info(TAG + " path = /data/test ");
let path = "/data/test"
fileio.stat(path).then(function (stat) {
console.info(TAG + "openFile getFileInfo successfully callback ret:" + JSON.stringify(stat));
}).catch(function (err) {
console.info(TAG + "openFile getFileInfo failed with error callback ret:" + err);
defaultReturn = returnError1;
});
console.info(TAG + " path ==>" + path);
callback("success", defaultReturn);
},
normalizeUri(uri, callback) {
console.info(TAG + '==================== DataAbility test interface by normalizeUri ================');
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, "");
}
callback("success", uri);
},
denormalizeUri(uri, callback) {
console.info(TAG + '==================== DataAbility test interface by denormalizeUri ================');
console.info(TAG + "denormalizeUri uri:" + JSON.stringify(uri));
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, "");
}
callback("success", uri);
}
};
\ No newline at end of file
/*
* 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 dataAbility from '@ohos.data.dataability'
import featureAbility from '@ohos.ability.featureAbility'
import fileio from '@ohos.fileio'
import dataRdb from '@ohos.data.rdb'
const TABLE_NAME = 'book'
const STORE_CONFIG = { name: 'book.db', encryptKey: new Uint8Array([]) }
const SQL_CREATE_TABLE = 'CREATE TABLE IF NOT EXISTS book' +
'(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER, introduction TEXT NOT NULL)'
let rdbStore: any = undefined
const TAG = 'ACTS_ DataAbility.data'
let defaultReturn = 1;
let returnError = 0;
let returnError1 = -1;
let returnError2 = -2;
let returnError3 = -3;
let dataAbilityUri = ("dataability:///com.example.myapplication.DataAbility2");
export default {
onInitialized(abilityInfo) {
console.debug('ACTS_ DataAbility onInitialized,abilityInfo=' + abilityInfo.bundleName)
dataRdb.getRdbStore(STORE_CONFIG, 1, (err, store) => {
console.debug('ACTS_ [data]getRdbStoreThen')
store.executeSql(SQL_CREATE_TABLE, [])
rdbStore = store
});
},
insert(uri, valueBucket, callback) {
console.debug(TAG + ' insert start 1121')
console.debug(TAG + ' valueBucket json=>' + JSON.stringify(valueBucket))
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
console.debug(TAG + ' valueBucket.age =>' + valueBucket.age)
console.debug(TAG + ' valueBucket.name =>' + valueBucket.name)
console.debug(TAG + ' valueBucket.salary =>' + valueBucket.salary)
if (valueBucket.age != 24) {
err = "Error age"
callback(err, returnError2);
}
if (valueBucket.name != "ActsDataAbilityHelperTest") {
err = "Error name"
callback(err, returnError2);
}
if (valueBucket.salary != 2024.20) {
err = "Error salary"
callback(err, returnError2);
}
err = "Error insert"
console.debug(TAG + ' rdbStore.insert ')
rdbStore.insert(TABLE_NAME, valueBucket, function (err, resultSet) {
console.log(TAG + "insert callback resultSet:" + resultSet
+ " ,json=" + JSON.stringify(resultSet) + ' ,err' + err)
callback(err, defaultReturn);
})
},
query(uri, columns, predicates, callback) {
console.debug(TAG + ' query start')
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
let rdbPredicates = dataAbility.createRdbPredicates(TABLE_NAME, predicates)
rdbStore.query(rdbPredicates, columns, callback)
},
update(uri, valueBucket, predicates, callback) {
console.debug(TAG + 'update start')
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
console.debug(TAG + ' valueBucket.age =>' + valueBucket.age)
console.debug(TAG + ' valueBucket.name =>' + valueBucket.name)
console.debug(TAG + ' valueBucket.salary =>' + valueBucket.salary)
if (valueBucket.age != 24) {
err = "Error age"
callback(err, returnError2);
}
if (valueBucket.name != "ActsDataAbilityHelperTest") {
err = "Error name"
callback(err, returnError2);
}
if (valueBucket.salary != 2024.20) {
err = "Error salary"
callback(err, returnError2);
}
err = "Error update"
let rdbPredicates = dataAbility.createRdbPredicates(TABLE_NAME, predicates)
rdbStore.update(valueBucket, rdbPredicates, function (err, resultSet) {
console.log(TAG + "insert callback resultSet:" + resultSet
+ " ,json=" + JSON.stringify(resultSet) + ' ,err' + err)
callback(err, defaultReturn);
})
},
delete(uri, predicates, callback) {
console.debug(TAG + 'delete start')
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
let rdbPredicates = dataAbility.createRdbPredicates(TABLE_NAME, predicates)
rdbStore.delete(rdbPredicates, function (err, resultSet) {
console.log(TAG + "insert callback resultSet:" + resultSet
+ " ,json=" + JSON.stringify(resultSet) + ' ,err' + err)
callback(err, defaultReturn);
})
},
call(uri, method, arg, extras, callback) {
console.debug(TAG + 'call start')
console.debug(TAG + 'uri---->' + uri)
console.debug(TAG + 'method---->' + uri)
},
batchInsert(uri, values, callback) {
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
for (var j = 0; j < values.length; j++) {
rdbStore.insert("EMPLOYEE", values[j], function (err, ret) {
console.log(TAG + "batchInsert callback ret:" + JSON.stringify(ret))
})
}
console.log(TAG + "batchInsert values.length:" + values.length + ' ,json=' + JSON.stringify(values.length))
callback(err, values.length);
},
getType(uri, callback) {
console.info(TAG + '==================== DataAbility test interface by getType ================');
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
callback("success", uri);
},
getFileTypes(uri, mimeTypeFilter, callback) {
console.info(TAG + '==================== DataAbility test interface by GetFileTypes ================');
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
let type1 = " ";
let type2 = " ";
let type3 = " ";
let types;
if (mimeTypeFilter == "*/*") {
type1 = ("hap");
type2 = ("jpg");
type3 = ("image/png");
types = [type1, type2, type3];
} else if (mimeTypeFilter == "image/*") {
type1 = ("image/png");
types = [type1];
} else if (mimeTypeFilter == "*/jpg") {
type1 = ("jpg");
types = [type1];
}
console.log(TAG + "GetFileTypes callback ret:" + JSON.stringify(types))
callback("success", types);
},
openFile(uri, mode, callback) {
console.info(TAG + '==================== DataAbility test interface by openFile ================');
let defaultReturn = 1;
let returnError1 = -1;
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, returnError1);
}
if (!(mode == ("r") || mode == ("w") || mode == ("wt") || mode == ("wa") ||
mode == ("rw") || mode == ("rwt"))) {
if (mode == ("A1@k#4%$,.<>)(oioiu*((*&(&*giIGT^%&^Ug;sdfk;losd*7873iug8%&^$&%]ERFUy&^%&&R7")) {
defaultReturn = returnError2;
} else
defaultReturn = returnError3;
}
console.info(TAG + " path = /data/test ");
let path = "/data/test"
fileio.stat(path).then(function (stat) {
console.info(TAG + "openFile getFileInfo successfully callback ret:" + JSON.stringify(stat));
}).catch(function (err) {
console.info(TAG + "openFile getFileInfo failed with error callback ret:" + err);
defaultReturn = returnError1;
});
console.info(TAG + " path ==>" + path);
callback("success", defaultReturn);
},
normalizeUri(uri, callback) {
console.info(TAG + '==================== DataAbility test interface by normalizeUri ================');
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, "");
}
callback("success", uri);
},
denormalizeUri(uri, callback) {
console.info(TAG + '==================== DataAbility test interface by denormalizeUri ================');
console.info(TAG + "denormalizeUri uri:" + JSON.stringify(uri));
let err = "Error Uri"
if (uri != dataAbilityUri) {
console.debug(TAG + ' uri != dataAbilityUri')
callback(err, "");
}
callback("success", uri);
}
};
\ No newline at end of file
{
"string": [
{
"name": "entry_MainAbility",
"value": "ServiceExtAbility"
},
{
"name": "description_mainability",
"value": "eTS_Empty Ability"
},
{
"name": "description_serviceextability",
"value": "hap sample empty service"
},
{
"name": "description_dataability",
"value": "hap sample empty provider"
},
{
"name": "description_mainability2",
"value": "eTS_Empty Ability"
},
{
"name": "entry_MainAbility2",
"value": "entry_MainAbility2"
},
{
"name": "description_testdataability",
"value": "hap sample empty provider"
},
{
"name": "permreason_dataability",
"value": "request dataability premission"
}
]
}
\ No newline at end of file
......@@ -9,8 +9,7 @@
"kits": [
{
"test-file-name": [
"ActsFWKDataAccessorTest.hap",
"ActsDataAbilityRelyHap.hap"
"ActsFWKDataAccessorTest.hap"
],
"type": "AppInstallKit",
"cleanup-apps": true
......
......@@ -19,6 +19,7 @@ group("fa") {
deps = [
"faconfigurationconstant:ActsConfigurationconstantTest",
"facoverapi:ActsCoverapiTest",
]
}
}
# Copyright (c) 2021 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("ActsApplicationinfoTest") {
hap_profile = "./entry/src/main/config.json"
deps = [
":hjs_demo_js_assets",
":hjs_demo_resources",
]
certificate_profile = "./signature/openharmony_sx.p7b"
hap_name = "ActsApplicationinfoTest"
}
ohos_js_assets("hjs_demo_js_assets") {
source_dir = "./entry/src/main/js"
hap_profile = "entry/src/main/config.json"
}
ohos_resources("hjs_demo_resources") {
sources = [ "./entry/src/main/js/resources" ]
hap_profile = "./entry/src/main/config.json"
}
{
"description": "Configuration for hjunit demo Tests",
"driver": {
"type": "JSUnitTest",
"test-timeout": "300000",
"package": "com.example.applicationinfo",
"shell-timeout": "600000"
},
"kits": [
{
"test-file-name": [
"ActsApplicationinfoTest.hap"
],
"type": "AppInstallKit",
"cleanup-apps": true
}
]
}
{
"app": {
"bundleName": "com.example.applicationinfo",
"vendor": "example",
"version": {
"code": 1,
"name": "1.0"
},
"apiVersion": {
"compatible": 4,
"target": 5,
"releaseType": "Beta1"
}
},
"deviceConfig": {},
"module": {
"package": "com.example.applicationinfo",
"name": ".MyApplication",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "entry",
"moduleType": "entry",
"installationFree": true
},
"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:description_mainability",
"formsEnabled": false,
"label": "$string:entry_MainAbility",
"type": "page",
"launchType": "standard"
},
{
"orientation": "unspecified",
"srcPath": "MainAbility2",
"name": ".MainAbility2",
"srcLanguage": "js",
"icon": "$media:icon",
"description": "$string:description_mainability2",
"formsEnabled": false,
"label": "$string:entry_MainAbility2",
"type": "page",
"launchType": "standard"
}
],
"js": [
{
"pages": [
"pages/index/index"
],
"name": ".MainAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
},
{
"pages": [
"pages/index/index"
],
"name": ".MainAbility2",
"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.
*/
export default {
onCreate() {
console.info("Application onCreate");
},
onDestroy() {
console.info("Application onDestroy");
}
};
{
"strings": {
"hello": "Hello",
"world": "World",
"page": "Second Page",
"next": "Next Page",
"back": "Back"
},
"Files": {
}
}
\ No newline at end of file
{
"strings": {
"hello": "您好",
"world": "世界",
"page": "第二页",
"next": "下一页",
"back": "返回"
},
"Files": {
}
}
\ 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 {
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;
}
.btn {
width: 50%;
height: 100px;
font-size: 40px;
}
<!--
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}}
</text>
<input class="btn" type="button" value="{{ $t('strings.next') }}" onclick="onclick"></input>
</div>
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {Core} from 'deccjsunit/index'
export default {
data: {
title: "",
text: ""
},
onInit() {
this.title = this.$t('strings.world');
this.text = "MainAbility 1111"
},
onShow() {
console.info('onShow finish')
const core = Core.getInstance()
core.init()
const configService = core.getDefaultService('config')
configService.setConfig(this)
require('../../../test/List.test.js')
core.execute();
}
}
\ 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("ApplicationMainAbility2 onCreate");
},
onDestroy() {
console.info("Application onDestroy");
}
};
{
"strings": {
"hello": "Hello",
"world": "World",
"page": "Second Page",
"next": "Next Page",
"back": "Back"
},
"Files": {
}
}
\ No newline at end of file
{
"strings": {
"hello": "您好",
"world": "世界",
"page": "第二页",
"next": "下一页",
"back": "返回"
},
"Files": {
}
}
\ 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 {
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;
}
.btn {
width: 50%;
height: 100px;
font-size: 40px;
}
<!--
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) 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 commonEvent from '@ohos.commonEvent'
import featureAbility from '@ohos.ability.featureAbility'
let event = ''
let commonEventPublishData = ''
function PublishCallBackOne() {
console.info("====>Publish CallBack SUB_AA_OpenHarmony_Want_0200_CommonEvent====>");
}
function PublishCallBackTwo() {
console.info("====>Publish CallBack SUB_AA_OpenHarmony_Want_0300_CommonEvent====>");
}
export default {
data: {
title: ''
},
onInit() {
this.title = this.$t('strings.world ApplicationMainAbility2');
},
onShow() {
console.info('======Start MainAbility2 onShow======');
featureAbility.getWant(
(err, data) => {
if (data.uri == '{true,true,false}'){
console.info("SUB_AA_OpenHarmony_Want_0200_StartAbility" + JSON
.stringify(data) + JSON.stringify(err));
event = data.uri
commonEventPublishData = {
data: event,
}
commonEvent.publish('SUB_AA_OpenHarmony_Want_0200_CommonEvent',
commonEventPublishData, PublishCallBackOne);
}
if (data.type == 'MIMETYPE'){
console.info("SUB_AA_OpenHarmony_Want_0300_StartAbility" + JSON
.stringify(data) + JSON.stringify(err));
event = data.type
commonEventPublishData = {
data: event,
}
commonEvent.publish('SUB_AA_OpenHarmony_Want_0300_CommonEvent',
commonEventPublishData, PublishCallBackTwo);
}
}
)
},
onReady() {
console.info('ApplicationInfo MainAbility2 onReady');
},
}
\ No newline at end of file
{
"string": [
{
"name": "entry_MainAbility",
"value": "entry_MainAbility"
},
{
"name": "description_mainability",
"value": "JS_Empty Ability"
},
{
"name": "description_mainability2",
"value": "JS_Empty Ability"
},
{
"name": "entry_MainAbility2",
"value": "entry_MainAbility2"
}
]
}
\ No newline at end of file
/*
* 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 commonEvent from '@ohos.commonEvent'
import featureAbility from '@ohos.ability.featureAbility'
import formBindingData from '@ohos.application.formBindingData'
import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
var getCallingBundleUri = {
events: ['SUB_AA_OpenHarmony_Want_0200_CommonEvent']
}
var getCallingBundleType = {
events: ['SUB_AA_OpenHarmony_Want_0300_CommonEvent']
}
describe('ApplicationInfoTest', function () {
var TAG = '';-
/*
* @tc.number SUB_AA_OpenHarmony_FormBase_1000
* @tc.name Validate formbindingdata creation data
* @tc.desc Function test
* @tc.level 0
*/
it('SUB_AA_OpenHarmony_FormBase_1000', 0, async function (done) {
console.info('------------start SUB_AA_OpenHarmony_FormBase_1000-------------');
TAG = 'SUB_AA_OpenHarmony_FormBase_1000';
var dataObj = {
temperature:"11c",
"time":"11:00",
"test":11,
"test3":true
}
var result = formBindingData.createFormBindingData(dataObj)
console.log(TAG + " result is : " + JSON.stringify(result))
expect(JSON.stringify(result)).
assertEqual(JSON.stringify({"data":"{\"temperature\":\"11c\",\"time\":\"11:00\",\"test\":11,\"test3\":true}"}));
done();
console.info('------------end SUB_AA_OpenHarmony_FormBase_1000-------------');
});
/*
* @tc.number SUB_AA_OpenHarmony_Want_0200
* @tc.name Switching the mission in the launcherlist to the foreground is not supported
* @tc.desc Function test
* @tc.level 0
*/
it('SUB_AA_OpenHarmony_Want_0200', 0, async function (done) {
console.info('------------start SUB_AA_OpenHarmony_Want_0200-------------');
TAG = 'SUB_AA_OpenHarmony_Want_0200';
var Subscriber = '';
function SubscribeCallBackUri(err, data) {
console.info(TAG + ' Subscribe CallBack data:' + JSON.stringify(data) + JSON.stringify(err));
expect(data.data == '{true,true,false}').assertTrue();
commonEvent.unsubscribe(Subscriber, UnSubscribeCallback);
done();
}
function UnSubscribeCallback() {
console.debug(TAG + "====>UnSubscribe CallBack====>");
done();
}
commonEvent.createSubscriber(getCallingBundleUri).then(async (data) => {
console.info(TAG + '====>Create Subscriber====');
Subscriber = data;
console.info(TAG + '====>Create Subscriber====' + JSON.stringify(data) );
await commonEvent.subscribe(Subscriber, SubscribeCallBackUri);
});
featureAbility.startAbility({
want: {
abilityName: 'com.example.applicationinfo.MainAbility2',
bundleName: 'com.example.applicationinfo',
uri: '{true,true,false}'
}
}, (err, data) => {
console.info(TAG + ':startAbility success , err:' + JSON.stringify(err) + ',data:' + JSON.stringify(data));
});
console.info('------------end SUB_AA_OpenHarmony_Want_0200-------------');
});
/*
* @tc.number SUB_AA_OpenHarmony_Want_0300
* @tc.name Switching the mission in the launcherlist to the foreground is not supported
* @tc.desc Function test
* @tc.level 0
*/
it('SUB_AA_OpenHarmony_Want_0300', 0, async function (done) {
console.info('------------start SUB_AA_OpenHarmony_Want_0300-------------');
TAG = 'SUB_AA_OpenHarmony_Want_0300';
var Subscriber = '';
function SubscribeCallBackType(err, data) {
console.info(TAG + ' Subscribe CallBack data:' + JSON.stringify(data) + JSON.stringify(err));
expect(data.data == 'MIMETYPE').assertTrue();
commonEvent.unsubscribe(Subscriber, UnSubscribeCallback);
done();
}
function UnSubscribeCallback() {
console.debug(TAG + "====>UnSubscribe CallBack====>");
done();
}
commonEvent.createSubscriber(getCallingBundleType).then(async (data) => {
console.info(TAG + '====>Create Subscriber====>');
Subscriber = data;
await commonEvent.subscribe(Subscriber, SubscribeCallBackType);
});
featureAbility.startAbility({
want: {
abilityName: 'com.example.applicationinfo.MainAbility2',
bundleName: 'com.example.applicationinfo',
type: 'MIMETYPE',
}
}, (err, data) => {
console.info(TAG + ':startAbility success , err:' + JSON.stringify(err) + ',data:' + JSON.stringify(data));
});
console.info('------------end SUB_AA_OpenHarmony_Want_0300-------------');
})
})
\ 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.
*/
require('./ApplicationInfoJsunit.test.js')
\ No newline at end of file
......@@ -14,9 +14,11 @@
*/
import appManager from '@ohos.application.appManager';
import formBindingData from '@ohos.application.formBindingData';
import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from "deccjsunit/index";
describe('CoverApiTest', function () {
let TAG = '';
/*
* @tc.number SUB_AA_OpenHarmony_CoverApi_0500
......@@ -37,4 +39,27 @@ describe('CoverApiTest', function () {
done();
})
});
/*
* @tc.number SUB_AA_OpenHarmony_FormBase_1000
* @tc.name Validate formbindingdata creation data
* @tc.desc Function test
* @tc.level 0
*/
it('SUB_AA_OpenHarmony_FormBase_1000', 0, async function (done) {
console.info('------------start SUB_AA_OpenHarmony_FormBase_1000-------------');
TAG = 'SUB_AA_OpenHarmony_FormBase_1000';
var dataObj = {
temperature:"11c",
"time":"11:00",
"test":11,
"test3":true
}
var result = formBindingData.createFormBindingData(dataObj)
console.log(TAG + " result is : " + JSON.stringify(result))
expect(JSON.stringify(result)).
assertEqual(JSON.stringify({"data":"{\"temperature\":\"11c\",\"time\":\"11:00\",\"test\":11,\"test3\":true}"}));
done();
console.info('------------end SUB_AA_OpenHarmony_FormBase_1000-------------');
});
})
\ 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("//test/xts/tools/build/suite.gni")
ohos_js_hap_suite("ActsEqueryabilitybywantTest") {
hap_profile = "./entry/src/main/config.json"
deps = [
":hjs_demo_js_assets",
":hjs_demo_resources",
]
certificate_profile = "./signature/openharmony_sx.p7b"
hap_name = "ActsEqueryabilitybywantTest"
}
ohos_js_assets("hjs_demo_js_assets") {
source_dir = "./entry/src/main/js"
hap_profile = "entry/src/main/config.json"
}
ohos_resources("hjs_demo_resources") {
sources = [ "./entry/src/main/js/resources" ]
hap_profile = "./entry/src/main/config.json"
}
{
"description": "Configuration for hjunit demo Tests",
"driver": {
"type": "JSUnitTest",
"test-timeout": "300000",
"package": "com.example.abilitydisable",
"shell-timeout": "600000"
},
"kits": [
{
"test-file-name": [
"ActsEqueryabilitybywantTest.hap"
],
"type": "AppInstallKit",
"cleanup-apps": true
}
]
}
{
"app": {
"bundleName": "com.example.abilitydisable",
"vendor": "example",
"version": {
"code": 1,
"name": "1.0"
},
"apiVersion": {
"compatible": 4,
"target": 5,
"releaseType": "Beta1"
}
},
"deviceConfig": {},
"module": {
"package": "com.example.abilitydisable",
"name": ".MyApplication",
"deviceType": [
"phone"
],
"distro": {
"deliveryWithInstall": true,
"moduleName": "entry",
"moduleType": "entry",
"installationFree": true
},
"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:description_mainability",
"formsEnabled": false,
"label": "$string:entry_MainAbility",
"type": "page",
"launchType": "standard"
},
{
"orientation": "unspecified",
"srcPath": "MainAbility2",
"name": ".MainAbility2",
"srcLanguage": "js",
"icon": "$media:icon",
"description": "$string:description_mainability2",
"formsEnabled": false,
"label": "$string:entry_MainAbility",
"type": "page",
"launchType": "standard"
},
{
"orientation": "unspecified",
"srcPath": "MainAbility3",
"name": ".MainAbility3",
"srcLanguage": "js",
"icon": "$media:icon",
"description": "$string:description_mainability3",
"formsEnabled": false,
"label": "$string:entry_MainAbility",
"type": "page",
"launchType": "standard"
},
{
"orientation": "unspecified",
"srcPath": "MainAbility4",
"name": ".MainAbility4",
"srcLanguage": "js",
"icon": "$media:icon",
"description": "$string:description_mainability4",
"formsEnabled": false,
"label": "$string:entry_MainAbility",
"type": "page",
"launchType": "standard"
},
{
"srcPath": "ServiceAbility",
"name": ".ServiceAbility",
"icon": "$media:icon",
"srcLanguage": "js",
"description": "$string:description_serviceability",
"type": "service"
}
],
"js": [
{
"pages": [
"pages/index/index",
"pages/second/second"
],
"name": ".MainAbility",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
},
{
"pages": [
"pages/index/index",
"pages/second/second"
],
"name": ".MainAbility2",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
},
{
"pages": [
"pages/index/index",
"pages/second/second"
],
"name": ".MainAbility3",
"window": {
"designWidth": 720,
"autoDesignWidth": false
}
},
{
"pages": [
"pages/index/index",
"pages/second/second"
],
"name": ".MainAbility4",
"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.
*/
export default {
onCreate() {
console.info("Application onCreate");
},
onDestroy() {
console.info("Application onDestroy");
},
onForgeGround(){
console.info("Application onForgeGround");
}
};
{
"strings": {
"hello": "Hello",
"world": "World",
"page": "Second Page",
"next": "Next Page",
"back": "Back"
},
"Files": {
}
}
\ No newline at end of file
{
"strings": {
"hello": "您好",
"world": "世界",
"page": "第二页",
"next": "下一页",
"back": "返回"
},
"Files": {
}
}
\ 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 {
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;
}
.btn {
width: 50%;
height: 100px;
font-size: 40px;
}
<!--
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) 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 router from '@system.router'
import {Core} from 'deccjsunit/index'
export default {
data: {
title: ""
},
onInit() {
this.title = 'yingyong1';
},
onclick: function () {
router.replace({
uri: "pages/second/second"
})
},
onShow() {
console.info('onShow start')
const core = Core.getInstance()
console.info('onShow start1')
core.init()
console.info('onShow start2')
const configService = core.getDefaultService('config')
console.info('onShow start3')
configService.setConfig(this)
console.info('onShow start4')
require('../../../test/List.test')
console.info('onShow start5')
core.execute()
}
}
/*
* 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;
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;
}
.btn {
width: 50%;
height: 100px;
font-size: 40px;
}
<!--
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">
<text class="title">
{{ $t('strings.page') }}
</text>
<input class="btn" type="button" value="{{ $t('strings.back') }}" onclick="onclick"></input>
</div>
/*
* 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 router from '@system.router'
export default {
data: {
title: 'World'
},
onclick: function () {
router.replace({
uri: "pages/index/index"
})
}
}
/*
* 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");
setTimeout(()=>{
this.content.terminateSelf().then((data)=>{
console.log("Application terminateSelf data:" + JSON.stringify(data) )
}).catch((error)=>{
console.log("Application terminateSelf data:" + JSON.stringify(error) )
})
},4000)
},
onDestroy() {
console.info("Application onDestroy");
}
};
{
"strings": {
"hello": "Hello",
"world": "World",
"page": "Second Page",
"next": "Next Page",
"back": "Back"
},
"Files": {
}
}
\ No newline at end of file
{
"strings": {
"hello": "您好",
"world": "世界",
"page": "第二页",
"next": "下一页",
"back": "返回"
},
"Files": {
}
}
\ 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 {
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;
}
.btn {
width: 50%;
height: 100px;
font-size: 40px;
}
<!--
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) 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 router from '@system.router'
import {Core} from 'deccjsunit/index'
export default {
data: {
title: ""
},
onInit() {
this.title = 'yingyong2';
},
onclick: function () {
router.replace({
uri: "pages/second/second"
})
},
onShow() {
console.info('onShow start')
const core = Core.getInstance()
core.init()
const configService = core.getDefaultService('config')
configService.setConfig(this)
require('../../../test/List.test')
core.execute()
}
}
/*
* 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;
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;
}
.btn {
width: 50%;
height: 100px;
font-size: 40px;
}
<!--
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">
<text class="title">
{{ $t('strings.page') }}
</text>
<input class="btn" type="button" value="{{ $t('strings.back') }}" onclick="onclick"></input>
</div>
/*
* 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 router from '@system.router'
export default {
data: {
title: 'World'
},
onclick: function () {
router.replace({
uri: "pages/index/index"
})
}
}
/*
* 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 abilityFeatureAbility from '@ohos.ability.featureAbility';
export default {
onCreate() {
console.info("Application onCreate MainAbility3");
setTimeout(()=>{
abilityFeatureAbility.terminateSelf().then((data)=>{
console.log("Application terminateSelf data:" + JSON.stringify(data) )
}).catch((error)=>{
console.log("Application terminateSelf data:" + JSON.stringify(error) )
})
},4000)
},
onDestroy() {
console.info("Application onDestroy");
}
};
{
"strings": {
"hello": "Hello",
"world": "World",
"page": "Second Page",
"next": "Next Page",
"back": "Back"
},
"Files": {
}
}
\ No newline at end of file
{
"strings": {
"hello": "您好",
"world": "世界",
"page": "第二页",
"next": "下一页",
"back": "返回"
},
"Files": {
}
}
\ 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 {
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;
}
.btn {
width: 50%;
height: 100px;
font-size: 40px;
}
<!--
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) 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 router from '@system.router'
import {Core} from 'deccjsunit/index'
export default {
data: {
title: ""
},
onInit() {
this.title = 'yingyong3';
},
onclick: function () {
router.replace({
uri: "pages/second/second"
})
},
onShow() {
console.info('onShow start')
const core = Core.getInstance()
core.init()
const configService = core.getDefaultService('config')
configService.setConfig(this)
require('../../../test/List.test')
core.execute()
}
}
/*
* 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;
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;
}
.btn {
width: 50%;
height: 100px;
font-size: 40px;
}
<!--
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">
<text class="title">
{{ $t('strings.page') }}
</text>
<input class="btn" type="button" value="{{ $t('strings.back') }}" onclick="onclick"></input>
</div>
/*
* 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 router from '@system.router'
export default {
data: {
title: 'World'
},
onclick: function () {
router.replace({
uri: "pages/index/index"
})
}
}
/*
* 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");
setTimeout(()=>{
this.content.terminateSelf().then((data)=>{
console.log("Application terminateSelf data:" + JSON.stringify(data) )
}).catch((error)=>{
console.log("Application terminateSelf data:" + JSON.stringify(error) )
})
},4000)
},
onDestroy() {
console.info("Application onDestroy");
}
};
{
"strings": {
"hello": "Hello",
"world": "World",
"page": "Second Page",
"next": "Next Page",
"back": "Back"
},
"Files": {
}
}
\ No newline at end of file
{
"strings": {
"hello": "您好",
"world": "世界",
"page": "第二页",
"next": "下一页",
"back": "返回"
},
"Files": {
}
}
\ 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 {
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;
}
.btn {
width: 50%;
height: 100px;
font-size: 40px;
}
<!--
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) 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 router from '@system.router'
import {Core} from 'deccjsunit/index'
export default {
data: {
title: ""
},
onInit() {
this.title = 'yingyong4';
},
onclick: function () {
router.replace({
uri: "pages/second/second"
})
},
onShow() {
console.info('onShow start')
const core = Core.getInstance()
core.init()
const configService = core.getDefaultService('config')
configService.setConfig(this)
require('../../../test/List.test')
core.execute()
}
}
/*
* 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;
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;
}
.btn {
width: 50%;
height: 100px;
font-size: 40px;
}
<!--
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">
<text class="title">
{{ $t('strings.page') }}
</text>
<input class="btn" type="button" value="{{ $t('strings.back') }}" onclick="onclick"></input>
</div>
/*
* 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 router from '@system.router'
export default {
data: {
title: 'World'
},
onclick: function () {
router.replace({
uri: "pages/index/index"
})
}
}
/*
* 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 {
onStart(want) {
console.info('ServiceAbility onStart');
},
onStop() {
console.info('ServiceAbility onStop');
},
onConnect(want) {
console.info('ServiceAbility onConnect');
return {};
},
onReconnect(want) {
console.info('ServiceAbility onReconnect');
},
onDisconnect() {
console.info('ServiceAbility onDisconnect');
},
onCommand(want, restart, startId) {
console.info('ServiceAbility onCommand');
},
onForeground(){
console.info('ServiceAbility onForeground');
},
};
\ No newline at end of file
{
"string": [
{
"name": "entry_MainAbility",
"value": "entry_MainAbility"
},
{
"name": "description_mainability",
"value": "JS_Empty Ability"
},
{
"name": "description_mainability2",
"value": "JS_Empty Ability"
},
{
"name": "entry_MainAbility2",
"value": "entry_MainAbility2"
},
{
"name": "description_mainability3",
"value": "JS_Empty Ability"
},
{
"name": "entry_MainAbility3",
"value": "entry_MainAbility3"
},
{
"name": "description_mainability4",
"value": "JS_Empty Ability"
},
{
"name": "entry_MainAbility4",
"value": "entry_MainAbility4"
},
{
"name": "description_serviceability",
"value": "hap sample empty service"
}
]
}
\ No newline at end of file
/*
* 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 bundleManager from '@ohos.bundle';
import account from "@ohos.account.osAccount"
import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
let userId;
describe('AbilityDisable', function () {
/*
* @tc.number SUB_AA_OpenHarmony_EqueryAbilityByWant_0100
* @tc.name Call queryAbilityByWant to get moduleName
* @tc.desc Function test
* @tc.level 0
*/
it("SUB_AA_OpenHarmony_EqueryAbilityByWant_0100", 0, async function (done) {
console.info("------------------logMessage SUB_AA_OpenHarmony_EqueryAbilityByWant_0100-------------------");
let accountManager = account.getAccountManager();
let bundleFlags=bundleManager.BundleFlag.GET_ABILITY_INFO_WITH_PERMISSION;
await accountManager.getOsAccountLocalIdFromProcess().then((data)=>{
console.log("success get userId:" + JSON.stringify(data));
userId = data;
}).catch((err)=>{
console.log("+++++++++++++" + JSON.stringify(err));
})
let want={
bundleName:"com.example.abilitydisable",
abilityName:"com.example.abilitydisable.MainAbility"
};
bundleManager.queryAbilityByWant(want,bundleFlags,userId,(err, data) => {
console.log('SUB_AA_OpenHarmony_Clear_0100 queryAbilityByWant errCode : '
+ JSON.stringify(err) + " data: " + JSON.stringify(data));
for(var i=0;i<data.length;i++){
console.log("data[i]['moduleName']"+data[i]['moduleName']);
expect(data[i]['moduleName'] == "entry").assertTrue();
}
})
done();
});
/*
* @tc.number SUB_AA_OpenHarmony_EqueryAbilityByWant_0200
* @tc.name Call queryAbilityByWant to get the URI
* @tc.desc Function test
* @tc.level 0
*/
it("SUB_AA_OpenHarmony_EqueryAbilityByWant_0200", 0, async function (done) {
console.info("------------------logMessage SUB_AA_OpenHarmony_EqueryAbilityByWant_0200-------------------");
let bundleFlags=bundleManager.BundleFlag.GET_ABILITY_INFO_WITH_PERMISSION;
let accountManager = account.getAccountManager();
await accountManager.getOsAccountLocalIdFromProcess().then((data)=>{
console.log("success get userId:" + JSON.stringify(data));
userId = data;
}).catch((err)=>{
console.log("+++++++++++++" + JSON.stringify(err));
})
let want={
bundleName:"com.example.abilitydisable",
abilityName:"com.example.abilitydisable.MainAbility"
};
bundleManager.queryAbilityByWant(want,bundleFlags,userId,(err, data) => {
console.log('SUB_AA_OpenHarmony_EqueryAbilityByWant_0200 queryAbilityByWant errCode : '
+ JSON.stringify(err) + " data: " + JSON.stringify(data));
for(var i=0;i<data.length;i++){
console.log("data[i]['uri']"+data[i]['uri']);
expect(data[i]['uri'] == "").assertTrue();
}
})
done();
});
/*
* @tc.number SUB_AA_OpenHarmony_EqueryAbilityByWant_0300
* @tc.name Call getapplicationInfo to get the name
* @tc.desc Function test
* @tc.level 0
*/
it("SUB_AA_OpenHarmony_EqueryAbilityByWant_0300", 0, async function (done) {
console.info("------------------logMessage SUB_AA_OpenHarmony_EqueryAbilityByWant_0300-------------------");
let bundleName="com.example.abilitydisable";
let accountManager = account.getAccountManager();
let bundleFlags=bundleManager.BundleFlag.GET_ABILITY_INFO_WITH_PERMISSION;
await accountManager.getOsAccountLocalIdFromProcess().then((data)=>{
console.log("success get userId:" + JSON.stringify(data));
userId = data;
}).catch((err)=>{
console.log("+++++++++++++" + JSON.stringify(err));
})
bundleManager.getApplicationInfo(bundleName, bundleFlags,userId,(err, data) => {
console.log('SUB_AA_OpenHarmony_EqueryAbilityByWant_0300 getapplicationInfo errCode : '
+ JSON.stringify(err) + " data: " + JSON.stringify(data));
expect(data['name']).assertEqual("com.example.abilitydisable");
})
done();
});
})
\ 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.
*/
require('./JsAbilityDisable.test.js')
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册