diff --git a/multimedia/audio/audio_js_standard/audioVoip/BUILD.gn b/multimedia/audio/audio_js_standard/audioVoip/BUILD.gn index a0acdb0aedb3aae2d1384a657b3cac8132bf319b..047f8c6ddb9a3df6ce9f6903d7efb086315ac69d 100644 --- a/multimedia/audio/audio_js_standard/audioVoip/BUILD.gn +++ b/multimedia/audio/audio_js_standard/audioVoip/BUILD.gn @@ -25,7 +25,9 @@ ohos_js_hap_suite("audio_voip_js_hap") { part_name = "multimedia_audio_framework" } ohos_js_assets("audio_voip_js_assets") { - source_dir = "./src/main/js/default" + js2abc = true + hap_profile = "./src/main/config.json" + source_dir = "./src/main/js" } ohos_resources("audio_voip_resources") { sources = [ "./src/main/resources" ] diff --git a/multimedia/audio/audio_js_standard/audioVoip/Test.json b/multimedia/audio/audio_js_standard/audioVoip/Test.json index bd8427778fa8ccb340c0098ee495ac4f48a94062..821a1120de6218e99ad8a3ee104d52a1f50de2fa 100644 --- a/multimedia/audio/audio_js_standard/audioVoip/Test.json +++ b/multimedia/audio/audio_js_standard/audioVoip/Test.json @@ -1,10 +1,12 @@ { "description": "Configuration for audio manager Tests", "driver": { - "type": "JSUnitTest", + "type": "OHJSUnitTest", "test-timeout": "550000", - "package": "ohos.acts.multimedia.audio.audiovoip", - "shell-timeout": "60000" + "shell-timeout": "60000", + "testcase-timeout": 60000, + "bundle-name": "ohos.acts.multimedia.audio.audiovoip", + "package-name": "ohos.acts.multimedia.audio.audiovoip" }, "kits": [ { diff --git a/multimedia/audio/audio_js_standard/audioVoip/signature/openharmony_sx.p7b b/multimedia/audio/audio_js_standard/audioVoip/signature/openharmony_sx.p7b index 0e9c4376f4c0ea2f256882a2170cd4e81ac135d7..e90f3c6428bf0d30a826cfde42bfb931f5cf3aa2 100644 Binary files a/multimedia/audio/audio_js_standard/audioVoip/signature/openharmony_sx.p7b and b/multimedia/audio/audio_js_standard/audioVoip/signature/openharmony_sx.p7b differ diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/config.json b/multimedia/audio/audio_js_standard/audioVoip/src/main/config.json index 83859ace83967f36fed893cb4ef518ad67da273d..57089207a486e4bb7221f0bb476ab2e25f8807b4 100644 --- a/multimedia/audio/audio_js_standard/audioVoip/src/main/config.json +++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/config.json @@ -19,29 +19,42 @@ }, "module": { "abilities": [ - { - "iconId": 16777218, - "skills": [ - { - "entities": [ - "entity.system.home" - ], - "actions": [ - "action.system.home" - ] - } - ], - "descriptionId": 16777217, - "visible": true, - "labelId": 16777216, - "icon": "$media:icon", - "name": "ohos.acts.multimedia.audio.audiovoip.MainAbility", - "description": "$string:mainability_description", - "label": "$string:entry_MainAbility", - "type": "page", - "homeAbility": true, - "launchType": "standard" - } + { + "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" + } ], "deviceType": [ "tablet", @@ -51,7 +64,7 @@ "tv", "wearable" ], - "mainAbility": "ohos.acts.multimedia.audio.audiovoip.MainAbility", + "mainAbility": ".MainAbility", "distro": { "moduleType": "entry", "installationFree": false, @@ -59,7 +72,8 @@ "moduleName": "entry" }, "package": "ohos.acts.multimedia.audio.audiovoip", - "name": ".MyApplication", + "name": ".entry", + "srcPath":"", "js": [ { "pages": [ @@ -70,6 +84,16 @@ "designWidth": 720, "autoDesignWidth": true } + }, + { + "pages": [ + "pages/index/index" + ], + "name": ".TestAbility", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } } ], "reqPermissions": [ @@ -85,6 +109,10 @@ "name": "ohos.permission.MANAGE_AUDIO_CONFIG", "reason": "use ohos.permission.MANAGE_AUDIO_CONFIG" } - ] + ], + "testRunner": { + "name": "OpenHarmonyTestRunner", + "srcPath": "TestRunner" + } } } \ No newline at end of file diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/app.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/app.js new file mode 100644 index 0000000000000000000000000000000000000000..c688632f489560e3b226f2bb08cd2b0df73ade75 --- /dev/null +++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/app.js @@ -0,0 +1,30 @@ +/* + * 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 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'); + } +}; diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/i18n/en-US.json b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/i18n/en-US.json similarity index 100% rename from multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/i18n/en-US.json rename to multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/i18n/en-US.json diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/i18n/zh-CN.json b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/i18n/zh-CN.json similarity index 100% rename from multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/i18n/zh-CN.json rename to multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/i18n/zh-CN.json diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/pages/index/index.css b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/pages/index/index.css similarity index 100% rename from multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/pages/index/index.css rename to multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/pages/index/index.css diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/pages/index/index.hml b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/pages/index/index.hml similarity index 100% rename from multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/pages/index/index.hml rename to multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/pages/index/index.hml diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/pages/index/index.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/pages/index/index.js new file mode 100644 index 0000000000000000000000000000000000000000..33c5ba530f722bda3d02ab9766fa5bf847a55b74 --- /dev/null +++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/pages/index/index.js @@ -0,0 +1,30 @@ +/* + * 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 { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + }, + onShow() { + console.info('onShow finish'); + }, + onHide() { + console.info('onHide finish'); + }, +} \ No newline at end of file diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/app.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/app.js similarity index 100% rename from multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/app.js rename to multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/app.js diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.css b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.css new file mode 100644 index 0000000000000000000000000000000000000000..5bd7567028568bd522193b2519d545ca6dcf397d --- /dev/null +++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.css @@ -0,0 +1,46 @@ +.container { + flex-direction: column; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; +} + +.title { + font-size: 40px; + color: #000000; + opacity: 0.9; +} + +@media screen and (device-type: tablet) and (orientation: landscape) { + .title { + font-size: 100px; + } +} + +@media screen and (device-type: wearable) { + .title { + font-size: 28px; + color: #FFFFFF; + } +} + +@media screen and (device-type: tv) { + .container { + background-image: url("/common/images/Wallpaper.png"); + background-size: cover; + background-repeat: no-repeat; + background-position: center; + } + + .title { + font-size: 100px; + color: #FFFFFF; + } +} + +@media screen and (device-type: phone) and (orientation: landscape) { + .title { + font-size: 60px; + } +} diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.hml b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.hml new file mode 100644 index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184 --- /dev/null +++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.hml @@ -0,0 +1,5 @@ +<div class="container"> + <text class="title"> + {{ $t('strings.hello') }} {{ title }} + </text> +</div> diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/pages/index/index.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.js similarity index 61% rename from multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/pages/index/index.js rename to multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.js index a0719cee588ac4b0f56efbf784b19647bc6645de..60e2ec1142024ada39fcd78d26fa03cfdbb60b9c 100644 --- a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/pages/index/index.js +++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.js @@ -21,21 +21,5 @@ export default { }, onInit() { this.title = this.$t('strings.world'); - }, - onShow() { - console.info('onShow finish') - const core = Core.getInstance() - const expectExtend = new ExpectExtend({ - 'id': 'extend' - }) - core.addService('expect', expectExtend) - core.init() - const configService = core.getDefaultService('config') - this.timeout = 60000 - configService.setConfig(this) - require('../../../test/List.test') - core.execute() - }, - onReady() { - }, + } } \ No newline at end of file diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestRunner/OpenHarmonyTestRunner.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestRunner/OpenHarmonyTestRunner.js new file mode 100644 index 0000000000000000000000000000000000000000..527be90a1240e77ba994eb71d2868331533bb464 --- /dev/null +++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestRunner/OpenHarmonyTestRunner.js @@ -0,0 +1,59 @@ +/* + * 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'] + '.MainAbility' + + 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); + }) + } +}; diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/AudioVOIP.test.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/AudioVOIP.test.js index 0dbebbe402eccd469a488c0b4e3630464c9fa4a1..d3ee06f9b1f8236243ef69d751d8bde323a4b72a 100644 --- a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/AudioVOIP.test.js +++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/AudioVOIP.test.js @@ -18,8 +18,10 @@ import fileio from '@ohos.fileio'; import featureAbility from '@ohos.ability.featureAbility' import resourceManager from '@ohos.resourceManager'; import * as audioTestBase from '../../../../../AudioTestBase' -import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; +import { UiDriver, BY} from '@ohos.uitest' +export default function audioVoip() { describe('audioVoip', function () { let mediaDir; let fdRead; @@ -30,13 +32,34 @@ describe('audioVoip', function () { let TagRec = "AudioFrameworkRecLog"; const AUDIOMANAGER = audio.getAudioManager(); console.info(`${TagRender}: Create AudioManger Object JS Framework`); - + async function getPermission() { + let permissions = ['ohos.permission.MICROPHONE', + 'ohos.permission.GRANT_SENSITIVE_PERMISSIONS', + 'ohos.permission.MANAGE_AUDIO_CONFIG']; + featureAbility.getContext().requestPermissionsFromUser(permissions, 0, (data) => { + console.info("request success" + JSON.stringify(data)); + }) + } + async function driveFn() { + console.info(`come in driveFn`) + let driver = await UiDriver.create() + console.info(`driver is ${JSON.stringify(driver)}`) + await sleep(2000) + console.info(`UiDriver start`) + let button = await driver.findComponent(BY.text('å…许')) + while(button){ + console.info(`button is ${JSON.stringify(button)}`) + await button.click() + await sleep(5000) + button = await driver.findComponent(BY.text('å…许')) + } + + } beforeAll(async function () { console.info(`AudioFrameworkTest: beforeAll: Prerequisites at the test suite level`); - let permissionName1 = 'ohos.permission.MICROPHONE'; - let permissionNameList = [permissionName1]; - let appName = 'ohos.acts.multimedia.audio.audiovoip'; - await audioTestBase.applyPermission(appName, permissionNameList); + await getPermission(); + sleep(2000) + await driveFn(); await sleep(100); console.info(`AudioFrameworkTest: beforeAll: END`); }) @@ -504,4 +527,4 @@ describe('audioVoip', function () { }) -}) \ No newline at end of file +});} \ No newline at end of file diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/List.test.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/List.test.js index 4caa2d1a844e004b7fa6d4cc4c9c0090f14b1c8e..0ff319c06cfbb957b100ff108b98948bfc05a7b1 100644 --- a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/List.test.js +++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/List.test.js @@ -12,6 +12,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -require('./AudioVOIP.test.js') +import audioVoip from './AudioVOIP.test.js' +export default function testsuite() { + audioVoip() +} diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/resources/base/element/string.json b/multimedia/audio/audio_js_standard/audioVoip/src/main/resources/base/element/string.json index 0bae6bd40f7360d5d818998221b199d3ec0f69c0..f2719f369f8495e241889a951d6e5da310dbb975 100644 --- a/multimedia/audio/audio_js_standard/audioVoip/src/main/resources/base/element/string.json +++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/resources/base/element/string.json @@ -7,6 +7,22 @@ { "name": "mainability_description", "value": "JS_Empty 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