From 346d2fe885717027297e7c25422e203d997dfbca Mon Sep 17 00:00:00 2001 From: tianfenxia Date: Fri, 20 Aug 2021 14:42:17 +0800 Subject: [PATCH] tianfenxia1@huawei.com Signed-off-by: tianfenxia --- multimedia/BUILD.gn | 3 +- .../audio_js_standard/audioManager/BUILD.gn | 4 +- .../audioManager/hap/AudioManager.hap | Bin 0 -> 826520 bytes .../hap/entry-debug-rich-signed.hap | Bin 152146 -> 0 bytes .../src/main/js/test/AudioFramework.test.js | 4746 +++++++++++++++++ .../src/main/js/test/AudioManager.test.js | 450 -- .../src/main/js/test/AudioPlayer.test.js | 719 --- .../entry/src/main/js/test/List.test.js | 2 +- .../audioPlayer/hap/AudioPlayer_JS.hap | Bin 265969 -> 240674 bytes .../hap/entry-debug-rich-signed.hap | Bin 152146 -> 0 bytes .../js/test/PlayerLocalTestAudioFUNC.test.js | 689 +-- .../hap/AudioPlayer_Api_JS.hap | Bin 291198 -> 240679 bytes .../js/test/PlayerLocalTestAudioAPI.test.js | 608 +-- .../media_cpp_test_standard/BUILD.gn | 70 - .../media_cpp_test_standard/Test.json | 21 - .../include/mediatest_log.h | 51 - .../player/Testplayer.cpp | 384 -- .../player/include/ActsPlayerAPITest.h | 48 - .../player/include/ActsPlayerFuncTest.h | 49 - .../player/include/Testplayer.h | 134 - .../player/include/common.h | 20 - .../player/src/api/01.SetSource.cpp | 333 -- .../player/src/api/02.Prepare.cpp | 351 -- .../player/src/api/03.Play.cpp | 375 -- .../player/src/api/04.Pause.cpp | 319 -- .../player/src/api/05.Stop.cpp | 300 -- .../player/src/api/06.Reset.cpp | 248 - .../player/src/api/07.Seek.cpp | 568 -- .../player/src/api/08.SetVolume.cpp | 87 - .../player/src/api/09.SetLooping.cpp | 447 -- .../player/src/api/10.SetPlaybackSpeed.cpp | 380 -- .../player/src/api/11.PrepareAsync.cpp | 352 -- .../player/src/api/12.GetCurrentTime.cpp | 101 - .../src/function/ActsPlayerFuncAsyncTest.cpp | 1203 ----- .../src/function/ActsPlayerFuncTest.cpp | 1231 ----- .../src/function/ActsPlayerStateAsyncTest.cpp | 1158 ---- .../src/function/ActsPlayerStateTest.cpp | 1166 ---- .../recorder/include/ActsAudioRecoederTest.h | 52 - .../recorder/include/ActsVideoRecorderTest.h | 60 - .../src/fuction/ActsAudioRecoederTest.cpp | 152 - .../src/fuction/ActsVideoRecorderTest.cpp | 239 - .../src/main/js/test/List.test.js | 2 - .../PlayerLocalTestAudioFUNC.test.js | 887 --- .../PlayerLocalTestAudioAPI.test.js | 1124 ---- 44 files changed, 4994 insertions(+), 14139 deletions(-) create mode 100644 multimedia/audio/audio_js_standard/audioManager/hap/AudioManager.hap delete mode 100755 multimedia/audio/audio_js_standard/audioManager/hap/entry-debug-rich-signed.hap create mode 100644 multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/AudioFramework.test.js delete mode 100755 multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/AudioManager.test.js delete mode 100755 multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/AudioPlayer.test.js delete mode 100755 multimedia/audio/audio_js_standard/audioPlayer/hap/entry-debug-rich-signed.hap delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/BUILD.gn delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/Test.json delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/include/mediatest_log.h delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/Testplayer.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/ActsPlayerAPITest.h delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/ActsPlayerFuncTest.h delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/Testplayer.h delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/common.h delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/01.SetSource.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/02.Prepare.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/03.Play.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/04.Pause.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/05.Stop.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/06.Reset.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/07.Seek.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/08.SetVolume.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/09.SetLooping.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/10.SetPlaybackSpeed.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/11.PrepareAsync.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/12.GetCurrentTime.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerFuncAsyncTest.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerFuncTest.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerStateAsyncTest.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerStateTest.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/include/ActsAudioRecoederTest.h delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/include/ActsVideoRecorderTest.h delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/src/fuction/ActsAudioRecoederTest.cpp delete mode 100644 multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/src/fuction/ActsVideoRecorderTest.cpp delete mode 100644 multimedia/media/media_js_test_standard/src/main/js/test/List.test.js delete mode 100644 multimedia/media/media_js_test_standard/src/main/js/test/fuction/media_player/PlayerLocalTestAudioFUNC.test.js delete mode 100644 multimedia/media/media_js_test_standard/src/main/js/test/reliability/media_player/PlayerLocalTestAudioAPI.test.js diff --git a/multimedia/BUILD.gn b/multimedia/BUILD.gn index 669f594f6..18e245481 100644 --- a/multimedia/BUILD.gn +++ b/multimedia/BUILD.gn @@ -19,7 +19,8 @@ group("multimedia") { deps = [ "audio/audio_js_standard/audioPlayer:audio_player_js_hap" , "audio/audio_js_standard/audioPlayer_API:audio_player_api_js_hap", - "media/media_cpp_test_standard:ActsMediaCppStandardTest", + "audio/audio_js_standard/audioManager:audio_manager_js_hap", + "media/media_cpp_test_standard:ActsMediaCppStandardTest" ] } else { deps = [ diff --git a/multimedia/audio/audio_js_standard/audioManager/BUILD.gn b/multimedia/audio/audio_js_standard/audioManager/BUILD.gn index 63dce971b..436023587 100755 --- a/multimedia/audio/audio_js_standard/audioManager/BUILD.gn +++ b/multimedia/audio/audio_js_standard/audioManager/BUILD.gn @@ -12,7 +12,7 @@ # limitations under the License. import("//test/xts/tools/build/suite.gni") -ohos_js_hap_suite("audio_manager_js_test") { +ohos_js_hap_suite("audio_manager_js_hap") { test_hap_name = "AudioManagerJsTest" - hap_source_path = "hap/entry-debug-rich-signed.hap" + hap_source_path = "hap/AudioManager.hap" } diff --git a/multimedia/audio/audio_js_standard/audioManager/hap/AudioManager.hap b/multimedia/audio/audio_js_standard/audioManager/hap/AudioManager.hap new file mode 100644 index 0000000000000000000000000000000000000000..54ce271949b3b900f4689a602e95278b0c590a24 GIT binary patch literal 826520 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

VGHJ?C58WcNiaWh*~u4jtM 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 literal 0 HcmV?d00001 diff --git a/multimedia/audio/audio_js_standard/audioManager/hap/entry-debug-rich-signed.hap b/multimedia/audio/audio_js_standard/audioManager/hap/entry-debug-rich-signed.hap deleted file mode 100755 index 9f875f974f29fc7ad6da92d74e451a1dd7c33eb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152146 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 B0B!&P diff --git a/multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/AudioFramework.test.js b/multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/AudioFramework.test.js new file mode 100644 index 000000000..a179536b7 --- /dev/null +++ b/multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/AudioFramework.test.js @@ -0,0 +1,4746 @@ +/* + * 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 audio from '@ohos.multimedia.audio'; + +import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'; + +describe('AudioFramework.test.js', async function () { + console.info('AudioFrameworkTest: Create AudioManger Object JS Framework'); + + const audioManager = audio.getAudioManager(); + var deviceRoleValue = null; + var deviceTypeValue = null; + var volErrorMesg = 'Error, Operation not supported or Failed'; + var audioMedia = 3; + var audioRingtone = 2; + var minVol = 0; + var maxVol = 15; + var lowVol = 5; + var highVol = 14; + var outOfRangeVol = 28; + + beforeAll(function () { + console.info('AudioFrameworkTest: beforeAll: Prerequisites at the test suite level, which are executed before the test suite is executed.'); + + }) + + beforeEach(function () { + console.info('AudioFrameworkTest: beforeEach:Prerequisites at the test case level, which are executed before each test case is executed.'); + + }) + afterEach(function () { + console.info('AudioFrameworkTest: afterEach: Test case-level clearance conditions, which are executed after each test case is executed.'); + + }) + afterAll(function () { + console.info('AudioFrameworkTest: afterAll: Test suite-level cleanup condition, which is executed after the test suite is executed'); + + }) + + + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_001 + * @tc.name : setVolume - Media - Promise + * @tc.desc : Setvol to 1 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_001', 0, async function (done) { + const promise = audioManager.setVolume(audioMedia,lowVol); + promise.then(async function (data) { + console.info('AudioFrameworkTest: Media setVolume promise: successful'); + audioManager.getVolume(audioMedia).then(async function (data) { + if(data == lowVol){ + console.info('AudioFrameworkTest: Media getVolume Promise: PASS :' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Media getVolume Promise: FAIL :' + data); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_002 + * @tc.name : setVolume - Media - Promise - MAX Volume + * @tc.desc : Setvol to 15 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_002', 0, async function (done) { + + const promise = audioManager.setVolume(audioMedia,maxVol); + promise.then(async function (data) { + console.info('AudioFrameworkTest: Media setVolume promise: successful'); + + audioManager.getVolume(audioMedia).then(async function (data) { + if(data == maxVol){ + console.info('AudioFrameworkTest: Media getVolume Promise: PASS :' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Media getVolume Promise: FAIL :' + data); + expect(false).assertTrue(); + } + + }); + }); + await promise; + done(); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_003 + * @tc.name : setVolume - Media - Promise - Mute Volume + * @tc.desc : Setvol to 0 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_003', 0, async function (done) { + + const promise = audioManager.setVolume(audioMedia,minVol); + promise.then(async function (data) { + console.info('AudioFrameworkTest: Media setVolume promise: successful'); + + audioManager.getVolume(audioMedia).then(async function (data) { + if(data == minVol){ + console.info('AudioFrameworkTest: Media getVolume Promise: PASS :' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Media getVolume Promise: FAIL :' + data); + expect(false).assertTrue(); + } + + }); + }); + await promise; + done(); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_004 + * @tc.name : setVolume - Media - Promise - Out of range Volume + * @tc.desc : Setvol to 28 (More than 15) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_004', 0, async function (done) { + console.info('AudioFrameworkTest: Media setVolume Promise:Out of range: Setvol 100'); + await audioManager.setVolume(audioMedia,outOfRangeVol).then((data) => { + console.info('AudioFrameworkTest: Media setVolume Promise:Out of range: FAIL :' + data); + expect(false).assertTrue(); + }).catch((err) => { + console.info('AudioFrameworkTest: Media setVolume Promise:Out of range: PASS :' + err.message); + expect(volErrorMesg).assertEqual(err.message); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_005 + * @tc.name : setVolume - Media - Callback + * @tc.desc : Setvol to 14 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_005', 0, async function (done) { + + audioManager.setVolume(audioMedia,highVol, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: failed to set volume: Callback: ${err.message}`); + expect(false).assertTrue(); + } + console.info(`AudioFrameworkTest: callback : Media setVolume successful `); + audioManager.getVolume(audioMedia, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Media: failed to get volume ${err.message}`); + expect(false).assertTrue(); + } + else if(value == highVol){ + console.info('AudioFrameworkTest: callback : Media getVolume: PASS :' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Media getVolume: FAIL :' + value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_006 + * @tc.name : setVolume - Media - Callback - MAX Volume + * @tc.desc : Setvol to 15 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_006', 0, async function (done) { + + audioManager.setVolume(audioMedia,maxVol, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: failed to set volume: Callback: ${err.message}`); + expect(false).assertTrue(); + } + console.info(`AudioFrameworkTest: callback : Media setVolume successful `); + audioManager.getVolume(audioMedia, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Media: failed to get volume ${err.message}`); + expect(false).assertTrue(); + } + else if(value == maxVol){ + console.info('AudioFrameworkTest: callback : Media getVolume: PASS :' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Media getVolume: FAIL :' + value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_007 + * @tc.name : setVolume - Media - Callback - Mute Volume + * @tc.desc : Setvol to 0 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_007', 0, async function (done) { + + audioManager.setVolume(audioMedia,minVol, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: failed to set volume: Callback: ${err.message}`); + expect(false).assertTrue(); + } + console.info(`AudioFrameworkTest: callback : Media setVolume successful `); + audioManager.getVolume(audioMedia, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Media: failed to get volume ${err.message}`); + expect(false).assertTrue(); + } + else if(value == minVol){ + console.info('AudioFrameworkTest: callback : Media getVolume: PASS :' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Media getVolume: FAIL :' + value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_008 + * @tc.name : setVolume - Media - Callback - Out of range Volume + * @tc.desc : Setvol to 20 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_008', 0, async function (done) { + + audioManager.setVolume(audioMedia,outOfRangeVol, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: setVolume: Out of range: Callback: PASS: ${err.message}`); + expect(volErrorMesg).assertEqual(err.message); + } + else{ + console.info('AudioFrameworkTest: setVolume: callback : Media Out of range: FAIL :' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_009 + * @tc.name : setVolume - Ringtone - Promise + * @tc.desc : Setvol to 5 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_009', 0, async function (done) { + const promise = audioManager.setVolume(audioRingtone,lowVol); + promise.then(async function (data) { + console.info('AudioFrameworkTest: Ringtone setVolume promise: successful'); + audioManager.getVolume(audioRingtone).then(async function (data) { + if(data == lowVol){ + console.info('AudioFrameworkTest: Ringtone getVolume Promise: PASS :' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Ringtone getVolume Promise: FAIL :' + data); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_010 + * @tc.name : setVolume - Ringtone - Promise - MAX Volume + * @tc.desc : Setvol to 15 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_010', 0, async function (done) { + + const promise = audioManager.setVolume(audioRingtone,maxVol); + promise.then(async function (data) { + console.info('AudioFrameworkTest: Ringtone setVolume promise: successful'); + audioManager.getVolume(audioRingtone).then(async function (data) { + if(data == maxVol){ + console.info('AudioFrameworkTest: Ringtone getVolume Promise: PASS :' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Ringtone getVolume Promise: FAIL :' + data); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_011 + * @tc.name : setVolume - Ringtone - Promise - Mute Volume + * @tc.desc : Setvol to 0 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_011', 0, async function (done) { + + const promise = audioManager.setVolume(audioRingtone,minVol); + promise.then(async function (data) { + console.info('AudioFrameworkTest: Ringtone setVolume promise: successful'); + audioManager.getVolume(audioRingtone).then(async function (data) { + if(data == minVol){ + console.info('AudioFrameworkTest: Ringtone getVolume Promise: PASS :' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Ringtone getVolume Promise: FAIL :' + data); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_012 + * @tc.name : setVolume - Ringtone - Promise - Out of range Volume + * @tc.desc : Setvol to 30 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_012', 0, async function (done) { + console.info('AudioFrameworkTest: Ringtone setVolume Promise: Out of range: Setvol 30'); + await audioManager.setVolume(audioRingtone,outOfRangeVol).then((data) => { + console.info('AudioFrameworkTest: Ringtone setVolume Promise:Out of range: FAIL :' + data); + expect(false).assertTrue(); + }).catch((err) => { + console.info('AudioFrameworkTest: Ringtone setVolume Promise:Out of range: PASS :' + (err.message)); + expect(volErrorMesg).assertEqual(err.message); + }); + done(); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_013 + * @tc.name : setVolume - Ringtone - Callback + * @tc.desc : Setvol to 7 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_013', 0, async function (done) { + + audioManager.setVolume(audioRingtone,highVol, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: failed to set volume: Callback: ${err.message}`); + expect(false).assertTrue(); + } + console.info(`AudioFrameworkTest: callback : Ringtone setVolume successful `); + audioManager.getVolume(audioRingtone, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Ringtone: failed to get volume ${err.message}`); + expect(false).assertTrue(); + } + else if(value == highVol){ + console.info('AudioFrameworkTest: callback : Ringtone getVolume: PASS :' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Ringtone getVolume: FAIL :' + value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_014 + * @tc.name : setVolume - Ringtone - Callback - MAX Volume + * @tc.desc : Setvol to 15 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_014', 0, async function (done) { + + audioManager.setVolume(audioRingtone,maxVol, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: failed to set volume: Callback: ${err.message}`); + expect(false).assertTrue(); + } + console.info(`AudioFrameworkTest: callback : Ringtone setVolume successful `); + audioManager.getVolume(audioRingtone, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Ringtone: failed to get volume ${err.message}`); + expect(false).assertTrue(); + } + else if(value == maxVol){ + console.info('AudioFrameworkTest: callback : Ringtone getVolume: PASS :' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Ringtone getVolume: FAIL :' + value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_015 + * @tc.name : setVolume - Ringtone - Callback - Mute Volume + * @tc.desc : Setvol to 0 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_015', 0, async function (done) { + + audioManager.setVolume(audioRingtone,minVol, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: failed to set volume: Callback: ${err.message}`); + expect(false).assertTrue(); + } + console.info(`AudioFrameworkTest: callback : Ringtone setVolume successful `); + audioManager.getVolume(audioRingtone, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Ringtone: failed to get volume ${err.message}`); + expect(false).assertTrue(); + } + else if(value == minVol){ + console.info('AudioFrameworkTest: callback : Ringtone getVolume: PASS :' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Ringtone getVolume: FAIL :' + value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_016 + * @tc.name : setVolume - Ringtone - Callback - Out of range Volume + * @tc.desc : Setvol to 28 (more than max volume 15) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_016', 0, async function (done) { + + audioManager.setVolume(audioRingtone,outOfRangeVol, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Out of range Volume: Callback: ${err.message}`); + expect(volErrorMesg).assertEqual(err.message); + } + else{ + console.info('AudioFrameworkTest: Out of range Volume: callback : Ringtone set volume: FAIL :' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_017 + * @tc.name : setVolume - Media - Promise - Negative Value + * @tc.desc : Setvol to -1 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_017', 0, async function (done) { + console.info('AudioFrameworkTest: Media setVolume promise: Negative Value -1'); + await audioManager.setVolume(audioMedia,-1).then((data) => { //Setting negative audio volume for error senario + console.info('AudioFrameworkTest: Media setVolume Promise:Negetive: FAIL :' + data); + expect(false).assertTrue(); + }).catch((err) => { + console.info('AudioFrameworkTest: Media setVolume Promise:Negetive: PASS :' + (err.message)); + expect(true).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_018 + * @tc.name : setVolume - Media - Callback - Negative Value + * @tc.desc : Setvol to -1 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_018', 0, async function (done) { + + audioManager.setVolume(audioMedia,-1, (err, value) => { //Setting negative audio volume for error senario + if (err) { + console.error(`AudioFrameworkTest: setVolume Callback: Negative: PASS: ${err.message}`); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: setVolume callback : Media Negative: FAIL :' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_019 + * @tc.name : setVolume - Ringtone - Promise - Negative Value + * @tc.desc : Setvol to -1 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_019', 0, async function (done) { + console.info('AudioFrameworkTest: Ringtone setVolume promise: Negative'); + await audioManager.setVolume(audioRingtone,-1).then((data) => { //Setting negative audio volume for error senario + console.info('AudioFrameworkTest: Ringtone setVolume Promise:Negative: FAIL :' + data); + expect(false).assertTrue(); + }).catch((err) => { + console.info('AudioFrameworkTest: Ringtone setVolume Promise:Negative: PASS :' + (err.message)); + expect(volErrorMesg).assertEqual(err.message); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_020 + * @tc.name : setVolume - Ringtone - Callback - Negative Value + * @tc.desc : Setvol to -1 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_020', 0, async function (done) { + + audioManager.setVolume(audioRingtone,-1, (err, value) => { //Setting negative audio volume for error senario + if (err) { + console.error(`AudioFrameworkTest: setVolume: Negative: Callback: ${err.message}`); + expect(volErrorMesg).assertEqual(err.message); + } + else{ + console.info('AudioFrameworkTest: setVolume: Negative: callback : Ringtone set volume: FAIL :' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_021 + * @tc.name : setVolume - Media - Promise - ENAME + * @tc.desc : Setvol to 5 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_021', 0, async function (done) { + + const promise = audioManager.setVolume(audio.AudioVolumeType.MEDIA,lowVol); + promise.then(async function (data) { + audioManager.getVolume(audio.AudioVolumeType.MEDIA).then(async function (data) { + if(data == lowVol){ + console.info('AudioFrameworkTest: Media getVolume Promise: ENAME : PASS :' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Media getVolume Promise: ENAME : FAIL :' + data); + expect(false).assertTrue(); + } + + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_022 + * @tc.name : setVolume - Media - Callback - ENAME + * @tc.desc : Setvol to 14 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_022', 0, async function (done) { + + audioManager.setVolume(audio.AudioVolumeType.MEDIA,highVol, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: failed to set volume: Callback: ENAME : ${err.message}`); + expect(false).assertTrue(); + } + console.info(`AudioFrameworkTest: callback : ENAME : Media setVolume successful `); + audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Media: ENAME : failed to get volume ${err.message}`); + expect(false).assertTrue(); + } + else if(value == highVol){ + console.info('AudioFrameworkTest: callback : Media getVolume: ENAME : PASS :' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Media getVolume: ENAME : FAIL :' + value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_023 + * @tc.name : setVolume - Ringtone - Promise - ENAME + * @tc.desc : Setvol to 14 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_023', 0, async function (done) { + + const promise = audioManager.setVolume(audio.AudioVolumeType.RINGTONE,highVol); + promise.then(async function (data) { + console.info('AudioFrameworkTest: Ringtone setVolume promise: ENAME: successful'); + + audioManager.getVolume(audio.AudioVolumeType.RINGTONE).then(async function (data) { + if(data == highVol){ + console.info('AudioFrameworkTest: Ringtone getVolume Promise: ENAME: PASS :' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Ringtone getVolume Promise: ENAME: FAIL :' + data); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_024 + * @tc.name : setVolume - Ringtone - Callback - ENAME + * @tc.desc : Setvol to 5 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_024', 0, async function (done) { + audioManager.setVolume(audio.AudioVolumeType.RINGTONE,lowVol, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: failed to set volume: Callback: ENAME: ${err.message}`); + expect(false).assertTrue(); + } + console.info(`AudioFrameworkTest: callback : ENAME: Ringtone setVolume successful `); + audioManager.getVolume(audio.AudioVolumeType.RINGTONE, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Ringtone: ENAME: failed to get volume ${err.message}`); + expect(false).assertTrue(); + } + else if(value == lowVol){ + console.info('AudioFrameworkTest: callback : Ringtone getVolume: ENAME: PASS :' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Ringtone getVolume: ENAME: FAIL :' + value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_025 + * @tc.name : setVolume - Media - Promise - Change Ringtone vol + * @tc.desc : Setvol to 5 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_025', 0, async function (done) { + + const promise = audioManager.setVolume(audio.AudioVolumeType.MEDIA,lowVol); + promise.then(async function (data) { + audioManager.setVolume(audio.AudioVolumeType.RINGTONE,maxVol); + audioManager.getVolume(audio.AudioVolumeType.MEDIA).then(async function (data) { + if(data == lowVol){ + console.info('AudioFrameworkTest: Media getVolume Promise: ENAME : PASS :' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Media getVolume Promise: ENAME : FAIL :' + data); + expect(false).assertTrue(); + } + + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_026 + * @tc.name : setVolume - Media - Callback - Change Ringtone vol + * @tc.desc : Setvol to 14 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_026', 0, async function (done) { + + audioManager.setVolume(audio.AudioVolumeType.MEDIA,highVol, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: failed to set volume: Callback: ENAME : ${err.message}`); + expect(false).assertTrue(); + } + console.info(`AudioFrameworkTest: callback : ENAME : Media setVolume successful `); + audioManager.setVolume(audio.AudioVolumeType.RINGTONE,lowVol); + audioManager.getVolume(audio.AudioVolumeType.MEDIA, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Media: ENAME : failed to get volume ${err.message}`); + expect(false).assertTrue(); + } + else if(value == highVol){ + console.info('AudioFrameworkTest: callback : Media getVolume: ENAME : PASS :' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Media getVolume: ENAME : FAIL :' + value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_027 + * @tc.name : setVolume - Ringtone - Promise - Change Media vol + * @tc.desc : Setvol to 14 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_027', 0, async function (done) { + + const promise = audioManager.setVolume(audio.AudioVolumeType.RINGTONE,highVol); + promise.then(async function (data) { + console.info('AudioFrameworkTest: Ringtone setVolume promise: ENAME: successful'); + audioManager.setVolume(audio.AudioVolumeType.MEDIA,lowVol); + audioManager.getVolume(audio.AudioVolumeType.RINGTONE).then(async function (data) { + if(data == 5){ + console.info('AudioFrameworkTest: Ringtone getVolume Promise: ENAME: PASS :' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Ringtone getVolume Promise: ENAME: FAIL :' + data); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_SetVolume_028 + * @tc.name : setVolume - Ringtone - Callback - Change Media vol + * @tc.desc : Setvol to 5 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_SetVolume_028', 0, async function (done) { + audioManager.setVolume(audio.AudioVolumeType.RINGTONE,lowVol, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: failed to set volume: Callback: ENAME: ${err.message}`); + expect(false).assertTrue(); + } + console.info(`AudioFrameworkTest: callback : ENAME: Ringtone setVolume successful `); + audioManager.setVolume(audio.AudioVolumeType.MEDIA,highVol); + audioManager.getVolume(audio.AudioVolumeType.RINGTONE, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Ringtone: ENAME: failed to get volume ${err.message}`); + expect(false).assertTrue(); + } + else if(value == lowVol){ + console.info('AudioFrameworkTest: callback : Ringtone getVolume: ENAME: PASS :' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Ringtone getVolume: ENAME: FAIL :' + value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMaxVolume_001 + * @tc.name : getMaxVolume - Media - Promise + * @tc.desc : getMaxVolume for Media + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMaxVolume_001', 0, async function (done) { + + const promise = audioManager.getMaxVolume(audioMedia); + promise.then(async function (data) { + if (data==maxVol){ + console.info('AudioFrameworkTest: Media getMaxVolume promise : PASS:' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Media getMaxVolume promise : FAIL: ' + data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMaxVolume_002 + * @tc.name : getMaxVolume - Media - Callback + * @tc.desc : getMaxVolume for Media + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMaxVolume_002', 0, async function (done) { + + audioManager.getMaxVolume(audioMedia, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Media : failed to getMaxVolume ${err.message}`); + return; + } + else if (value=maxVol){ + console.info('AudioFrameworkTest: callback : Media: getMaxVolume : PASS:' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Media: getMaxVolume : FAIL: ' + value); + expect(false).assertTrue(); + } + done(); + }); + + }) + + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMaxVolume_003 + * @tc.name : getMaxVolume - Ringtone - Promise + * @tc.desc : getMaxVolume for Ringtone + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMaxVolume_003', 0, async function (done) { + const promise = audioManager.getMaxVolume(audioRingtone); + promise.then(async function (data) { + if (data==maxVol){ + console.info('AudioFrameworkTest: Ringtone getMaxVolume promise : PASS:' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Ringtone getMaxVolume promise : FAIL: ' + data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMaxVolume_004 + * @tc.name : getMaxVolume - Ringtone - Callback + * @tc.desc : getMaxVolume for Ringtone + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMaxVolume_004', 0, async function (done) { + audioManager.getMaxVolume(audioRingtone, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Ringtone : failed to getMaxVolume ${err.message}`); + return; + } + else if (value==maxVol){ + console.info('AudioFrameworkTest: callback : Ringtone: getMaxVolume : PASS:' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Ringtone: getMaxVolume : FAIL: ' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMaxVolume_005 + * @tc.name : getMaxVolume - Media - Promise - Change Ringtone Volume and check + * @tc.desc : getMaxVolume for Media + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMaxVolume_005', 0, async function (done) { + audioManager.setVolume(audioRingtone,lowVol); + const promise = audioManager.getMaxVolume(audioMedia); + promise.then(async function (data) { + if (data==maxVol){ + console.info('AudioFrameworkTest: Media getMaxVolume promise : PASS:' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Media getMaxVolume promise : FAIL: ' + data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMaxVolume_006 + * @tc.name : getMaxVolume - Ringtone - Promise - Change Media Volume and check + * @tc.desc : getMaxVolume for Media + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMaxVolume_006', 0, async function (done) { + audioManager.setVolume(audioMedia,lowVol); + const promise = audioManager.getMaxVolume(audioRingtone); + promise.then(async function (data) { + if (data==maxVol){ + console.info('AudioFrameworkTest: Ringtone getMaxVolume promise : PASS:' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Ringtone getMaxVolume promise : FAIL: ' + data); + expect(false).assertTrue(); + } + + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMaxVolume_007 + * @tc.name : getMaxVolume - Media - Callback- Change Ringtone Volume and check + * @tc.desc : getMaxVolume for Media + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMaxVolume_007', 0, async function (done) { + audioManager.setVolume(audioRingtone,lowVol); + audioManager.getMaxVolume(audioMedia, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Media : failed to getMaxVolume ${err.message}`); + return; + } + else if (value=maxVol){ + console.info('AudioFrameworkTest: callback : Media: getMaxVolume : PASS:' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Media: getMaxVolume : FAIL: ' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMaxVolume_008 + * @tc.name : getMaxVolume - Ringtone - Callback - Callback- Change media Volume and check + * @tc.desc : getMaxVolume for Ringtone + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMaxVolume_008', 0, async function (done) { + audioManager.setVolume(audioMedia,lowVol); + audioManager.getMaxVolume(audioRingtone, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Ringtone : failed to getMaxVolume ${err.message}`); + return; + } + else if (value==maxVol){ + console.info('AudioFrameworkTest: callback : Ringtone: getMaxVolume : PASS:' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Ringtone: getMaxVolume : FAIL: ' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMaxVolume_009 + * @tc.name : getMaxVolume - Media - Promise - Change media Volume and check + * @tc.desc : getMaxVolume for Media + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMaxVolume_009', 0, async function (done) { + audioManager.setVolume(audioMedia,5); + const promise = audioManager.getMaxVolume(audioMedia); + promise.then(async function (data) { + if (data==maxVol){ + console.info('AudioFrameworkTest: Media getMaxVolume promise : PASS:' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Media getMaxVolume promise : FAIL: ' + data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMaxVolume_010 + * @tc.name : getMaxVolume - Ringtone - Promise - Change Ringtone Volume and check + * @tc.desc : getMaxVolume for Media + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMaxVolume_010', 0, async function (done) { + audioManager.setVolume(audioRingtone,lowVol); + const promise = audioManager.getMaxVolume(audioRingtone); + promise.then(async function (data) { + if (data==maxVol){ + console.info('AudioFrameworkTest: Ringtone getMaxVolume promise : PASS:' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Ringtone getMaxVolume promise : FAIL: ' + data); + expect(false).assertTrue(); + } + + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMaxVolume_011 + * @tc.name : getMaxVolume - Media - Callback- Change media Volume and check + * @tc.desc : getMaxVolume for Media + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMaxVolume_011', 0, async function (done) { + audioManager.setVolume(audioMedia,highVol); + audioManager.getMaxVolume(audioMedia, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Media : failed to getMaxVolume ${err.message}`); + return; + } + else if (value=maxVol){ + console.info('AudioFrameworkTest: callback : Media: getMaxVolume : PASS:' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Media: getMaxVolume : FAIL: ' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMaxVolume_012 + * @tc.name : getMaxVolume - Ringtone - Callback - Callback- Change ringtone Volume and check + * @tc.desc : getMaxVolume for Ringtone + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMaxVolume_012', 0, async function (done) { + audioManager.setVolume(audioRingtone,highVol); + audioManager.getMaxVolume(audioRingtone, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Ringtone : failed to getMaxVolume ${err.message}`); + return; + } + else if (value==maxVol){ + console.info('AudioFrameworkTest: callback : Ringtone: getMaxVolume : PASS:' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Ringtone: getMaxVolume : FAIL: ' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMinVolume_001 + * @tc.name : getMinVolume - Media - Promise + * @tc.desc : getMinVolume for Media + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMinVolume_001', 0, async function (done) { + + const promise = audioManager.getMinVolume(audioMedia); + promise.then(async function (data) { + if (data==minVol){ + console.info('AudioFrameworkTest: Media getMinVolume promise : PASS:' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Media getMinVolume promise : FAIL: ' + data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMinVolume_002 + * @tc.name : getMinVolume - Media - Callback + * @tc.desc : getMinVolume for Media + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMinVolume_002', 0, async function (done) { + + audioManager.getMinVolume(audioMedia, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Media : failed to getMinVolume ${err.message}`); + return; + } + else if (value==minVol){ + console.info('AudioFrameworkTest: callback : Media: getMinVolume : PASS:' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Media: getMinVolume : FAIL: ' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMinVolume_003 + * @tc.name : getMinVolume - Ringtone - Promise + * @tc.desc : getMinVolume for Ringtone + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMinVolume_003', 0, async function (done) { + + const promise = audioManager.getMinVolume(audioRingtone); + promise.then(async function (data) { + if (data==minVol){ + console.info('AudioFrameworkTest: Ringtone getMinVolume promise : PASS:' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Ringtone getMinVolume promise : FAIL: ' + data); + expect(false).assertTrue(); + } + + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMinVolume_004 + * @tc.name : getMinVolume - Ringtone - Callback + * @tc.desc : getMinVolume for Ringtone + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMinVolume_004', 0, async function (done) { + + audioManager.getMinVolume(audioRingtone, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Ringtone : failed to getMinVolume ${err.message}`); + return; + } + else if (value==minVol){ + console.info('AudioFrameworkTest: callback : Ringtone: getMinVolume : PASS:' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Ringtone: getMinVolume : FAIL: ' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMinVolume_005 + * @tc.name : getMinVolume - Media - Promise - Change Ringtone Volume and check + * @tc.desc : getMinVolume for Media + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMinVolume_005', 0, async function (done) { + audioManager.setVolume(audioRingtone,lowVol); + const promise = audioManager.getMinVolume(audioMedia); + promise.then(async function (data) { + if (data==minVol){ + console.info('AudioFrameworkTest: Media getMinVolume promise : PASS:' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Media getMinVolume promise : FAIL: ' + data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMinVolume_006 + * @tc.name : getMinVolume - Media - Callback - Change Ringtone Volume and check + * @tc.desc : getMinVolume for Media + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMinVolume_006', 0, async function (done) { + audioManager.setVolume(audioRingtone,lowVol); + audioManager.getMinVolume(audioMedia, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Media : failed to getMinVolume ${err.message}`); + return; + } + else if (value==minVol){ + console.info('AudioFrameworkTest: callback : Media: getMinVolume : PASS:' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Media: getMinVolume : FAIL: ' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMinVolume_007 + * @tc.name : getMinVolume - Ringtone - Promise - Change Media Volume and check + * @tc.desc : getMinVolume for Ringtone + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMinVolume_007', 0, async function (done) { + audioManager.setVolume(audioMedia,highVol); + const promise = audioManager.getMinVolume(audioRingtone); + promise.then(async function (data) { + if (data==minVol){ + console.info('AudioFrameworkTest: Ringtone getMinVolume promise : PASS:' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Ringtone getMinVolume promise : FAIL: ' + data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMinVolume_008 + * @tc.name : getMinVolume - Ringtone - Callback - Change Media Volume and check + * @tc.desc : getMinVolume for Ringtone + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMinVolume_008', 0, async function (done) { + audioManager.setVolume(audioMedia,lowVol); + audioManager.getMinVolume(audioRingtone, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Ringtone : failed to getMinVolume ${err.message}`); + return; + } + else if (value==minVol){ + console.info('AudioFrameworkTest: callback : Ringtone: getMinVolume : PASS:' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Ringtone: getMinVolume : FAIL: ' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMinVolume_009 + * @tc.name : getMinVolume - Media - Promise - Change Media Volume and check + * @tc.desc : getMinVolume for Media + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMinVolume_009', 0, async function (done) { + audioManager.setVolume(audioMedia,lowVol); + const promise = audioManager.getMinVolume(audioMedia); + promise.then(async function (data) { + if (data==minVol){ + console.info('AudioFrameworkTest: Media getMinVolume promise : PASS:' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Media getMinVolume promise : FAIL: ' + data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMinVolume_010 + * @tc.name : getMinVolume - Media - Callback - Change Media Volume and check + * @tc.desc : getMinVolume for Media + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMinVolume_010', 0, async function (done) { + audioManager.setVolume(audioMedia,highVol); + audioManager.getMinVolume(audioMedia, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Media : failed to getMinVolume ${err.message}`); + return; + } + else if (value==minVol){ + console.info('AudioFrameworkTest: callback : Media: getMinVolume : PASS:' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Media: getMinVolume : FAIL: ' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMinVolume_011 + * @tc.name : getMinVolume - Ringtone - Promise - Change Ringtone Volume and check + * @tc.desc : getMinVolume for Ringtone + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMinVolume_011', 0, async function (done) { + audioManager.setVolume(audioRingtone,lowVol); + const promise = audioManager.getMinVolume(audioRingtone) + promise.then(async function (data) { + if (data==minVol){ + console.info('AudioFrameworkTest: Ringtone getMinVolume promise : PASS:' + data); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Ringtone getMinVolume promise : FAIL: ' + data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getMinVolume_012 + * @tc.name : getMinVolume - Ringtone - Callback - Change Ringtone Volume and check + * @tc.desc : getMinVolume for Ringtone + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getMinVolume_012', 0, async function (done) { + audioManager.setVolume(audioRingtone,lowVol); + audioManager.getMinVolume(audioRingtone, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: callback : Ringtone : failed to getMinVolume ${err.message}`); + return; + } + else if (value==minVol){ + console.info('AudioFrameworkTest: callback : Ringtone: getMinVolume : PASS:' + value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: callback : Ringtone: getMinVolume : FAIL: ' + value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getDevices_001 + * @tc.name : getDevices - Output device - Promise + * @tc.desc : getDevices - Output device + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getDevices_001', 0, async function (done) { + + deviceRoleValue = null; + deviceTypeValue = null; + const promise = audioManager.getDevices(1); //Getting all Output devices Enumb 1 = OUTPUT_DEVICES_FLAG + promise.then(async function (value) { + + console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG'); + value.forEach(displayDeviceProp); + if (deviceTypeValue != null && deviceRoleValue != null){ + console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : PASS'); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : FAIL'); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getDevices_002 + * @tc.name : getDevices - Input device - Promise + * @tc.desc : getDevices - Input device + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getDevices_002', 0, async function (done) { + + deviceRoleValue = null; + deviceTypeValue = null; + const promise = audioManager.getDevices(2); //Getting all Input Devices ENUM 2 = INPUT_DEVICES_FLAG + promise.then(async function (value) { + + console.info('AudioFrameworkTest: Promise: getDevices INPUT_DEVICES_FLAG'); + + console.info('AudioFrameworkTest: Promise: getDevices INPUT_DEVICES_FLAG'); + value.forEach(displayDeviceProp); + + if (deviceTypeValue != null && deviceRoleValue != null){ + console.info('AudioFrameworkTest: Promise: getDevices : INPUT_DEVICES_FLAG : PASS'); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getDevices : INPUT_DEVICES_FLAG : FAIL'); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getDevices_003 + * @tc.name : getDevices - ALL device - Promise + * @tc.desc : getDevices - ALL device + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getDevices_003', 0, async function (done) { + + deviceRoleValue = null; + deviceTypeValue = null; + const promise = audioManager.getDevices(3); //Getting all devies connected 3 = ALL_DEVICES_FLAG + promise.then(async function (value) { + + console.info('AudioFrameworkTest: Promise: getDevices ALL_DEVICES_FLAG'); + + console.info('AudioFrameworkTest: Promise: getDevices ALL_DEVICES_FLAG'); + value.forEach(displayDeviceProp); + + if (deviceTypeValue != null && deviceRoleValue != null){ + console.info('AudioFrameworkTest: Promise: getDevices : ALL_DEVICES_FLAG : PASS'); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getDevices : ALL_DEVICES_FLAG : FAIL'); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getDevices_004 + * @tc.name : getDevices - Output device - Callback + * @tc.desc : getDevices - Output device + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getDevices_004', 0, async function (done) { + + deviceRoleValue = null; + deviceTypeValue = null; + audioManager.getDevices(1, (err, value) => { //Getting all Output devices Enumb 1 = OUTPUT_DEVICES_FLAG + + console.info('AudioFrameworkTest: Callback: getDevices OUTPUT_DEVICES_FLAG'); + + if (err) { + console.error(`AudioFrameworkTest: Callback: OUTPUT_DEVICES_FLAG: failed to get devices ${err.message}`); + return; + } + + console.info('AudioFrameworkTest: Callback: getDevices OUTPUT_DEVICES_FLAG'); + value.forEach(displayDeviceProp); + + if (deviceTypeValue != null && deviceRoleValue != null){ + console.info('AudioFrameworkTest: Callback: getDevices : OUTPUT_DEVICES_FLAG : PASS'); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getDevices : OUTPUT_DEVICES_FLAG : FAIL'); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getDevices_005 + * @tc.name : getDevices - Input device - Callback + * @tc.desc : getDevices - Input device + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getDevices_005', 0, async function (done) { + + deviceRoleValue = null; + deviceTypeValue = null; + audioManager.getDevices(2, (err, value) => { //Getting all Input Devices ENUM 2 = INPUT_DEVICES_FLAG + + console.info('AudioFrameworkTest: Callback: getDevices INPUT_DEVICES_FLAG'); + + if (err) { + console.error(`AudioFrameworkTest: Callback: INPUT_DEVICES_FLAG: failed to get devices ${err.message}`); + return; + } + + console.info('AudioFrameworkTest: Callback: getDevices INPUT_DEVICES_FLAG'); + value.forEach(displayDeviceProp); + + if (deviceTypeValue != null && deviceRoleValue != null){ + console.info('AudioFrameworkTest: Callback: getDevices : INPUT_DEVICES_FLAG: PASS'); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getDevices : INPUT_DEVICES_FLAG: FAIL'); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getDevices_006 + * @tc.name : getDevices - ALL device - Callback + * @tc.desc : getDevices - ALL device + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getDevices_006', 0, async function (done) { + + deviceRoleValue = null; + deviceTypeValue = null; + audioManager.getDevices(3, (err, value) => { //Getting all devies connected 3 = ALL_DEVICES_FLAG + + console.info('AudioFrameworkTest: Callback: getDevices ALL_DEVICES_FLAG'); + + if (err) { + console.error(`AudioFrameworkTest: Callback: ALL_DEVICES_FLAG: failed to get devices ${err.message}`); + return; + } + + console.info('AudioFrameworkTest: Callback: getDevices ALL_DEVICES_FLAG'); + value.forEach(displayDeviceProp); + + if (deviceTypeValue != null && deviceRoleValue != null){ + console.info('AudioFrameworkTest: Callback: getDevices : ALL_DEVICES_FLAG: PASS'); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getDevices : ALL_DEVICES_FLAG: FAIL'); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getDevices_007 + * @tc.name : getDevices - Output device - Promise - ENAME + * @tc.desc : getDevices - Output device + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getDevices_007', 0, async function (done) { + + deviceRoleValue = null; + deviceTypeValue = null; + const promise = audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG) + promise.then(async function (value) { + + console.info('AudioFrameworkTest: Promise: getDevices OUTPUT_DEVICES_FLAG'); + value.forEach(displayDeviceProp); + if (deviceTypeValue != null && deviceRoleValue != null){ + console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : PASS'); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getDevices : OUTPUT_DEVICES_FLAG : FAIL'); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getDevices_008 + * @tc.name : getDevices - Input device - Promise - ENAME + * @tc.desc : getDevices - Input device + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getDevices_008', 0, async function (done) { + + deviceRoleValue = null; + deviceTypeValue = null; + const promise = audioManager.getDevices(audio.DeviceFlag.INPUT_DEVICES_FLAG); + promise.then(async function (value) { + + console.info('AudioFrameworkTest: Promise: getDevices INPUT_DEVICES_FLAG'); + + console.info('AudioFrameworkTest: Promise: getDevices INPUT_DEVICES_FLAG'); + value.forEach(displayDeviceProp); + + if (deviceTypeValue != null && deviceRoleValue != null){ + console.info('AudioFrameworkTest: Promise: getDevices : INPUT_DEVICES_FLAG : PASS'); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getDevices : INPUT_DEVICES_FLAG : FAIL'); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getDevices_009 + * @tc.name : getDevices - ALL device - Promise - ENAME + * @tc.desc : getDevices - ALL device + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getDevices_009', 0, async function (done) { + + deviceRoleValue = null; + deviceTypeValue = null; + const promise = audioManager.getDevices(audio.DeviceFlag.ALL_DEVICES_FLAG); + promise.then(async function (value) { + + console.info('AudioFrameworkTest: Promise: getDevices ALL_DEVICES_FLAG'); + + console.info('AudioFrameworkTest: Promise: getDevices ALL_DEVICES_FLAG'); + value.forEach(displayDeviceProp); + + if (deviceTypeValue != null && deviceRoleValue != null){ + console.info('AudioFrameworkTest: Promise: getDevices : ALL_DEVICES_FLAG : PASS'); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getDevices : ALL_DEVICES_FLAG : FAIL'); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getDevices_010 + * @tc.name : getDevices - Output device - Callback - ENAME + * @tc.desc : getDevices - Output device + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getDevices_010', 0, async function (done) { + + deviceRoleValue = null; + deviceTypeValue = null; + audioManager.getDevices(audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (err, value) => { + + console.info('AudioFrameworkTest: Callback: getDevices OUTPUT_DEVICES_FLAG'); + + if (err) { + console.error(`AudioFrameworkTest: Callback: OUTPUT_DEVICES_FLAG: failed to get devices ${err.message}`); + return; + } + + console.info('AudioFrameworkTest: Callback: getDevices OUTPUT_DEVICES_FLAG'); + value.forEach(displayDeviceProp); + + if (deviceTypeValue != null && deviceRoleValue != null){ + console.info('AudioFrameworkTest: Callback: getDevices : OUTPUT_DEVICES_FLAG : PASS'); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getDevices : OUTPUT_DEVICES_FLAG : FAIL'); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getDevices_011 + * @tc.name : getDevices - Input device - Callback - ENAME + * @tc.desc : getDevices - Input device + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getDevices_011', 0, async function (done) { + + deviceRoleValue = null; + deviceTypeValue = null; + audioManager.getDevices(audio.DeviceFlag.INPUT_DEVICES_FLAG, (err, value) => { + + console.info('AudioFrameworkTest: Callback: getDevices INPUT_DEVICES_FLAG'); + + if (err) { + console.error(`AudioFrameworkTest: Callback: INPUT_DEVICES_FLAG: failed to get devices ${err.message}`); + return; + } + + console.info('AudioFrameworkTest: Callback: getDevices INPUT_DEVICES_FLAG'); + value.forEach(displayDeviceProp); + + if (deviceTypeValue != null && deviceRoleValue != null){ + console.info('AudioFrameworkTest: Callback: getDevices : INPUT_DEVICES_FLAG: PASS'); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getDevices : INPUT_DEVICES_FLAG: FAIL'); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getDevices_012 + * @tc.name : getDevices - ALL device - Callback - ENAME + * @tc.desc : getDevices - ALL device + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getDevices_012', 0, async function (done) { + + deviceRoleValue = null; + deviceTypeValue = null; + audioManager.getDevices(audio.DeviceFlag.ALL_DEVICES_FLAG, (err, value) => { + + console.info('AudioFrameworkTest: Callback: getDevices ALL_DEVICES_FLAG'); + + if (err) { + console.error(`AudioFrameworkTest: Callback: ALL_DEVICES_FLAG: failed to get devices ${err.message}`); + return; + } + + console.info('AudioFrameworkTest: Callback: getDevices ALL_DEVICES_FLAG'); + value.forEach(displayDeviceProp); + + if (deviceTypeValue != null && deviceRoleValue != null){ + console.info('AudioFrameworkTest: Callback: getDevices : ALL_DEVICES_FLAG: PASS'); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getDevices : ALL_DEVICES_FLAG: FAIL'); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setRingerMode_001 + * @tc.name : setRingerMode - Normal Mode - Promise + * @tc.desc : setRingerMode - Set Ring more to Normal Mode + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setRingerMode_001', 0, async function (done) { + + const promise = audioManager.setRingerMode(2); //Setting Ringtone Mode to Normal ENUM 2 = RINGER_MODE_NORMAL + promise.then(async function (value) { + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_NORMAL'); + audioManager.getRingerMode().then(async function (value){ + if(value==2){ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_NORMAL: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_NORMAL: FAIL :' +value); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setRingerMode_002 + * @tc.name : setRingerMode - Silent Mode - Promise + * @tc.desc : setRingerMode - Set Ring more to Silent Mode + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setRingerMode_002', 0, async function (done) { + + const promise = audioManager.setRingerMode(0); //Setting Ringtone Mode to Silent ENUM 0 = RINGER_MODE_SILENT + promise.then(async function (value){ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_SILENT'); + audioManager.getRingerMode().then(async function (value){ + if(value==0){ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_SILENT: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_SILENT: FAIL :' +value); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setRingerMode_003 + * @tc.name : setRingerMode - Vibration Mode - Promise + * @tc.desc : setRingerMode - Set Ring more to Vibration Mode + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setRingerMode_003', 0, async function (done) { + + const promise = audioManager.setRingerMode(1); //Setting Ringtone Mode to Vibration ENUM 1 = RINGER_MODE_VIBRATE + promise.then(async function (value){ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_VIBRATE'); + audioManager.getRingerMode().then(async function (value){ + if(value==1){ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_VIBRATE: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_VIBRATE: FAIL :' +value); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setRingerMode_004 + * @tc.name : setRingerMode - Normal Mode - Callback + * @tc.desc : setRingerMode - Set Ring more to Normal Mode + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setRingerMode_004', 0, async function (done) { + + audioManager.setRingerMode(2, (err, value) => { //Setting Ringtone Mode to Normal ENUM 2 = RINGER_MODE_NORMAL + + console.info('AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_NORMAL'); + + if (err) { + console.error(`AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_NORMAL: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + + audioManager.getRingerMode((err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_NORMAL: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + + else if(value==2){ + console.info('AudioFrameworkTest: Callback: setRingerMode​ RINGER_MODE_NORMAL: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: setRingerMode​ RINGER_MODE_NORMAL: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setRingerMode_005 + * @tc.name : setRingerMode - Silent Mode - Callback + * @tc.desc : setRingerMode - Set Ring more to Silent Mode + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setRingerMode_005', 0, async function (done) { + + audioManager.setRingerMode(0, (err, value) => { //Setting Ringtone Mode to Silent ENUM 0 = RINGER_MODE_SILENT + + console.info('AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_SILENT'); + + if (err) { + console.error(`AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_SILENT: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + + audioManager.getRingerMode((err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_SILENT: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + + if(value==0){ + console.info('AudioFrameworkTest: Callback: setRingerMode​ RINGER_MODE_SILENT: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: setRingerMode​ RINGER_MODE_SILENT: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setRingerMode_006 + * @tc.name : setRingerMode - Vibration Mode - Callback + * @tc.desc : setRingerMode - Set Ring more to Vibration Mode + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setRingerMode_006', 0, async function (done) { + + audioManager.setRingerMode(1, (err, value) => { //Setting Ringtone Mode to Vibration ENUM 1 = RINGER_MODE_VIBRATE + + console.info('AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_VIBRATE'); + + if (err) { + console.error(`AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_VIBRATE: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + + audioManager.getRingerMode((err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_VIBRATE: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + + if(value==1){ + console.info('AudioFrameworkTest: Callback: setRingerMode​ RINGER_MODE_VIBRATE: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: setRingerMode​ RINGER_MODE_VIBRATE: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setRingerMode_007 + * @tc.name : setRingerMode - Normal Mode - Promise - ENAME + * @tc.desc : setRingerMode - Set Ring more to Normal Mode + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setRingerMode_007', 0, async function (done) { + + const promise = audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL); + promise.then(async function (value) { + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_NORMAL'); + audioManager.getRingerMode().then(async function (value){ + if(value==audio.AudioRingMode.RINGER_MODE_NORMAL){ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_NORMAL: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_NORMAL: FAIL :' +value); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setRingerMode_008 + * @tc.name : setRingerMode - Silent Mode - Promise - ENAME + * @tc.desc : setRingerMode - Set Ring more to Silent Mode + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setRingerMode_008', 0, async function (done) { + + const promise = audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_SILENT); + promise.then(async function (value){ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_SILENT'); + audioManager.getRingerMode().then(async function (value){ + if(value==audio.AudioRingMode.RINGER_MODE_SILENT){ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_SILENT: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_SILENT: FAIL :' +value); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setRingerMode_009 + * @tc.name : setRingerMode - Vibration Mode - Promise - NAME + * @tc.desc : setRingerMode - Set Ring more to Vibration Mode + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setRingerMode_009', 0, async function (done) { + + const promise = audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_VIBRATE); + promise.then(async function (value){ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_VIBRATE'); + audioManager.getRingerMode().then(async function (value){ + if(value==audio.AudioRingMode.RINGER_MODE_VIBRATE){ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_VIBRATE: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: setRingerMode​ RINGER_MODE_VIBRATE: FAIL :' +value); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setRingerMode_010 + * @tc.name : setRingerMode - Normal Mode - Callback - ENAME + * @tc.desc : setRingerMode - Set Ring more to Normal Mode + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setRingerMode_010', 0, async function (done) { + + audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_NORMAL, (err, value) => { + + console.info('AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_NORMAL'); + + if (err) { + console.error(`AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_NORMAL: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + + audioManager.getRingerMode((err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_NORMAL: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(value==audio.AudioRingMode.RINGER_MODE_NORMAL){ + console.info('AudioFrameworkTest: Callback: setRingerMode​ RINGER_MODE_NORMAL: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: setRingerMode​ RINGER_MODE_NORMAL: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setRingerMode_0011 + * @tc.name : setRingerMode - Silent Mode - Callback - ENAME + * @tc.desc : setRingerMode - Set Ring more to Silent Mode + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setRingerMode_011', 0, async function (done) { + + audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_SILENT, (err, value) => { + + console.info('AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_SILENT'); + + if (err) { + console.error(`AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_SILENT: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + + audioManager.getRingerMode((err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_SILENT: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + + if(value==audio.AudioRingMode.RINGER_MODE_SILENT){ + console.info('AudioFrameworkTest: Callback: setRingerMode​ RINGER_MODE_SILENT: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: setRingerMode​ RINGER_MODE_SILENT: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setRingerMode_012 + * @tc.name : setRingerMode - Vibration Mode - Callback + * @tc.desc : setRingerMode - Set Ring more to Vibration Mode + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setRingerMode_012', 0, async function (done) { + + audioManager.setRingerMode(audio.AudioRingMode.RINGER_MODE_VIBRATE, (err, value) => { + + console.info('AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_VIBRATE'); + + if (err) { + console.error(`AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_VIBRATE: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + + audioManager.getRingerMode((err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : setRingerMode​ RINGER_MODE_VIBRATE: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + + if(value==audio.AudioRingMode.RINGER_MODE_VIBRATE){ + console.info('AudioFrameworkTest: Callback: setRingerMode​ RINGER_MODE_VIBRATE: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: setRingerMode​ RINGER_MODE_VIBRATE: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_001 + * @tc.name : mute - Media - Promise + * @tc.desc : mute - Media - Promise - Enable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_001', 0, async function (done) { + await audioManager.mute(audioMedia,true).then(async function (data) { + console.log('AudioFrameworkTest: Set Stream Mute: Media: Promise: TRUE'); + audioManager.isMute(audioMedia).then(async function (data) { + if(data==true){ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Media: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Media: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Promise: Is Stream Mute Media: TRUE: ERROR:' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_006 + * @tc.name : mute - Media - callback + * @tc.desc : mute - Media - callback - Disable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_006', 0, async function (done) { + audioManager.mute(audioMedia,false, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Set Stream Mute: Media: Callback: Error : ${err.message}`); + expect(false).assertTrue(); + } + else { + console.log('AudioFrameworkTest: Set Stream Mute: Media: Callback : FALSE'); + audioManager.isMute(audioMedia, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : FALSE: Media : failed to get Mute Status ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(data==false){ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Media: FALSE: PASS: '+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Media: FALSE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_002 + * @tc.name : mute - Media - callback + * @tc.desc : mute - Media - callback - Enable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_002', 0, async function (done) { + audioManager.mute(audioMedia,true, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Set Stream Mute: Media: Callback: Error : ${err.message}`); + expect(false).assertTrue(); + } + else { + console.log('AudioFrameworkTest: Set Stream Mute: Media: Callback : TRUE'); + audioManager.isMute(audioMedia, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : TRUE: Media : failed to get Mute Status ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(data==true){ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Media: TRUE: PASS: '+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Media: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_005 + * @tc.name : mute - Media - Promise + * @tc.desc : mute - Media - Promise - Disable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_005', 0, async function (done) { + await audioManager.mute(audioMedia,false).then(async function (data) { + console.log('AudioFrameworkTest: Set Stream Mute: Media: Promise: FALSE'); + audioManager.isMute(audioMedia).then(async function (data) { + if(data==false){ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Media: FALSE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Media: FALSE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Promise: Is Stream Mute Media: FALSE: ERROR:' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_003 + * @tc.name : mute - Ringtone - Promise + * @tc.desc : mute - Ringtone - Promise - Enable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_003', 0, async function (done) { + await audioManager.mute(audioRingtone,true).then(async function (data) { + console.log('AudioFrameworkTest: Set Stream Mute: Ringtone: Promise: TRUE'); + audioManager.isMute(audioRingtone).then(async function (data) { + if(data==true){ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Ringtone: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Ringtone: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Promise: Is Stream Mute Ringtone: TRUE: ERROR:' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_008 + * @tc.name : mute - Ringtone - callback + * @tc.desc : mute - Ringtone - callback - Disable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_008', 0, async function (done) { + + audioManager.mute(audioRingtone,false, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Set Stream Mute: Media: Callback: Error : ${err.message}`); + expect(false).assertTrue(); + } + else { + console.log('AudioFrameworkTest: Set Stream Mute: Ringtone: Callback : FALSE'); + audioManager.isMute(audioRingtone, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : FALSE: Ringtone : failed to get Mute Status ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(data==false){ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Ringtone: FALSE: PASS: '+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Ringtone: FALSE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_004 + * @tc.name : mute - Ringtone - callback + * @tc.desc : mute - Ringtone - callback - Enable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_004', 0, async function (done) { + + audioManager.mute(audioRingtone,true, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Set Stream Mute: Media: Callback: Error : ${err.message}`); + expect(false).assertTrue(); + } + else { + console.log('AudioFrameworkTest: Set Stream Mute: Ringtone: Callback : TRUE'); + audioManager.isMute(audioRingtone, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : TRUE: Ringtone : failed to get Mute Status ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(data==true){ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Ringtone: TRUE: PASS: '+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Ringtone: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_007 + * @tc.name : mute - Ringtone - Promise + * @tc.desc : mute - Ringtone - Promise - disable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_007', 0, async function (done) { + + await audioManager.mute(audioRingtone,false).then(async function (data) { + console.log('AudioFrameworkTest: Set Stream Mute: Ringtone: Promise: FALSE'); + audioManager.isMute(audioRingtone).then(async function (data) { + if(data==false){ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Ringtone: FALSE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Ringtone: FALSE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Promise: Is Stream Mute Rington: FALSE: ERROR:' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_009 + * @tc.name : mute - Media - Promise - ENAME + * @tc.desc : mute - Media - Promise - Enable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_009', 0, async function (done) { + await audioManager.mute(audio.AudioVolumeType.MEDIA,true).then(async function (data) { + console.log('AudioFrameworkTest: Set Stream Mute: Media: Promise: TRUE'); + audioManager.isMute(audio.AudioVolumeType.MEDIA).then(async function (data) { + if(data==true){ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Media: ENAME: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Media: ENAME: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Promise: Is Stream Mute Media: ENAME: TRUE: ERROR:' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_015 + * @tc.name : mute - Media - callback - ENAME + * @tc.desc : mute - Media - callback - Disable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_015', 0, async function (done) { + audioManager.mute(audio.AudioVolumeType.MEDIA,false, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Set Stream Mute: Media: Callback: Error : ${err.message}`); + expect(false).assertTrue(); + } + else { + console.log('AudioFrameworkTest: Set Stream Mute: Media: ENAME: Callback : FALSE'); + audioManager.isMute(audio.AudioVolumeType.MEDIA, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : FALSE: Media : ENAME: failed to get Mute Status ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(data==false){ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Media: ENAME: FALSE: PASS: '+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Media: ENAME: FALSE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_010 + * @tc.name : mute - Media - callback - ENAME: + * @tc.desc : mute - Media - callback - Enable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_010', 0, async function (done) { + audioManager.mute(audio.AudioVolumeType.MEDIA,true, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Set Stream Mute: Media: Callback: Error : ${err.message}`); + expect(false).assertTrue(); + } + else { + console.log('AudioFrameworkTest: Set Stream Mute: Media: ENAME: Callback : TRUE'); + audioManager.isMute(audio.AudioVolumeType.MEDIA, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : TRUE: Media : ENAME: failed to get Mute Status ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(data==true){ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Media: ENAME: TRUE: PASS: '+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Media: ENAME: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_011 + * @tc.name : mute - Media - Promise - ENAME + * @tc.desc : mute - Media - Promise - Disable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_011', 0, async function (done) { + await audioManager.mute(audio.AudioVolumeType.MEDIA,false).then(async function (data) { + console.log('AudioFrameworkTest: Set Stream Mute: Media: ENAME: Promise: FALSE'); + audioManager.isMute(audio.AudioVolumeType.MEDIA).then(async function (data) { + if(data==false){ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Media: ENAME: FALSE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Media: ENAME: FALSE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Promise: Is Stream Mute Media: ENAME: FALSE: ERROR:' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_012 + * @tc.name : mute - Ringtone - Promise - ENAME + * @tc.desc : mute - Ringtone - Promise - Enable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_012', 0, async function (done) { + await audioManager.mute(audio.AudioVolumeType.RINGTONE,true).then(async function (data) { + console.log('AudioFrameworkTest: Set Stream Mute: Ringtone: ENAME: Promise: TRUE'); + audioManager.isMute(audio.AudioVolumeType.RINGTONE).then(async function (data) { + if(data==true){ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Ringtone: ENAME: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Ringtone: ENAME: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Promise: Is Stream Mute Ringtone: ENAME: TRUE: ERROR:' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_016 + * @tc.name : mute - Ringtone - callback - ENAME + * @tc.desc : mute - Ringtone - callback - Disable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_016', 0, async function (done) { + + audioManager.mute(audio.AudioVolumeType.RINGTONE,false, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Set Stream Mute: Media: Callback: Error : ${err.message}`); + expect(false).assertTrue(); + } + else { + console.log('AudioFrameworkTest: Set Stream Mute: Ringtone: ENAME: Callback : FALSE'); + audioManager.isMute(audio.AudioVolumeType.RINGTONE, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : FALSE: Ringtone : ENAME: failed to get Mute Status ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(data==false){ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Ringtone: ENAME: FALSE: PASS: '+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Ringtone: ENAME: FALSE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_013 + * @tc.name : mute - Ringtone - callback - ENAME + * @tc.desc : mute - Ringtone - callback - Enable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_013', 0, async function (done) { + + audioManager.mute(audio.AudioVolumeType.RINGTONE,true, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Set Stream Mute: Media: Callback: Error : ${err.message}`); + expect(false).assertTrue(); + } + else { + console.log('AudioFrameworkTest: Set Stream Mute: Ringtone: ENAME: Callback : TRUE'); + audioManager.isMute(audio.AudioVolumeType.RINGTONE, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : TRUE: Ringtone : ENAME: failed to get Mute Status ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(data==true){ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Ringtone: ENAME: TRUE: PASS: '+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Ringtone: ENAME: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_014 + * @tc.name : mute - Media - Promise - ENAME: + * @tc.desc : mute - Media - Promise - Disable mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_014', 0, async function (done) { + await audioManager.mute(audio.AudioVolumeType.MEDIA,false).then(async function (data) { + console.log('AudioFrameworkTest: Set Stream Mute: Media: ENAME: Promise: FALSE'); + audioManager.isMute(audio.AudioVolumeType.MEDIA).then(async function (data) { + if(data==false){ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Media: ENAME: FALSE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Media: ENAME: FALSE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Promise: Is Stream Mute Media: ENAME: FALSE: ERROR:' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_017 + * @tc.name : mute - Media - Promise - SetVolume + * @tc.desc : mute - Media - Promise - Enable mute -SetVolume + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_017', 0, async function (done) { + await audioManager.mute(audioMedia,true).then(async function (data) { + console.log('AudioFrameworkTest: Set Stream Mute: Media: Promise: TRUE'); + audioManager.setVolume(audioMedia,lowVol); + audioManager.isMute(audioMedia).then(async function (data) { + if(data==false){ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Media: SetVolume: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Media: SetVolume: FAIL: '+data); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Promise: Is Stream Mute Media: SetVolume: ERROR:' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_018 + * @tc.name : mute - Media - callback - SetVolume + * @tc.desc : mute - Media - callback - Enable mute - SetVolume + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_018', 0, async function (done) { + audioManager.mute(audioMedia,true, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : SetVolume: Media : failed to set Mute Status ${err.message}`); + expect(false).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Set Stream Mute: Media: Callback : TRUE'); + audioManager.setVolume(audioMedia,highVol); + audioManager.isMute(audioMedia, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : SetVolume: Media : failed to get Mute Status ${err.message}`); + expect(false).assertTrue(); + } + else if(data==false){ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Media: SetVolume: PASS: '+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Media: SetVolume: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_019 + * @tc.name : mute - Ringtone - Promise - SetVolume + * @tc.desc : mute - Ringtone - Promise - Enable mute - SetVolume + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_019', 0, async function (done) { + await audioManager.mute(audioRingtone,true).then(async function (data) { + console.log('AudioFrameworkTest: Set Stream Mute: Ringtone: Promise: SetVolume'); + audioManager.setVolume(audioRingtone,highVol); + audioManager.isMute(audioRingtone).then(async function (data) { + if(data==false){ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Ringtone: SetVolume: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: Is Stream Mute Ringtone: SetVolume: FAIL: '+data); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Promise: Is Stream Mute Ringtone: SetVolume: ERROR:' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_mute_020 + * @tc.name : mute - Ringtone - callback - SetVolume + * @tc.desc : mute - Ringtone - callback - Enable mute - SetVolume + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_mute_020', 0, async function (done) { + + audioManager.mute(audioRingtone,true, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : SetVolume: Ringtone : failed to set Mute Status ${err.message}`); + expect(false).assertTrue(); + } + else { + console.log('AudioFrameworkTest: Set Stream Mute: Ringtone: Callback : SetVolume'); + audioManager.setVolume(audioRingtone,lowVol); + audioManager.isMute(audioRingtone, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : SetVolume: Ringtone : failed to get Mute Status ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(data==false){ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Ringtone: SetVolume: PASS: '+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback : Is Stream Mute Ringtone: SetVolume: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_001 + * @tc.name : isActive - Media - Promise + * @tc.desc : isActive - Media - Promise - When stream is playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_001', 0, async function (done) { + console.log('AudioFrameworkTest: Promise : isActive Media: NOTE audio plaback as MEDIA needs to be played for the test case to PASS'); + const promise = audioManager.isActive(audioMedia); + promise.then(async function (data) { + if(data==true){ + console.log('AudioFrameworkTest: Promise: isActive: Media: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: isActive: Media: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_002 + * @tc.name : isActive - Media - Callback + * @tc.desc : isActive - Media - Callback - When stream is playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_002', 0, async function (done) { + console.log('AudioFrameworkTest: Callback : isActive Media: NOTE audio plaback as MEDIA needs to be played for the test case to PASS'); + audioManager.isActive(audioMedia, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : Media : isActive: failed ${err.message}`); + return; + } + else if(data==true){ + console.log('AudioFrameworkTest: Callback: isActive: Media: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback: isActive: Media: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_003 + * @tc.name : isActive - Ringtone - Promise + * @tc.desc : isActive - Ringtone - Promise - When stream is playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_003', 0, async function (done) { + console.log('AudioFrameworkTest: Promise : isActive Ringtone: NOTE audio plaback as Ringtone needs to be played for the test case to PASS'); + const promise = audioManager.isActive(audioRingtone); + promise.then(async function (data) { + if(data==true){ + console.log('AudioFrameworkTest: Promise: isActive: Ringtone: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: isActive: Ringtone: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_004 + * @tc.name : isActive - Ringtone - Callback + * @tc.desc : isActive - Ringtone - Callback - When stream is playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_004', 0, async function (done) { + console.log('AudioFrameworkTest: Callback : isActive Ringtone: NOTE audio plaback as Ringtone needs to be played for the test case to PASS'); + audioManager.isActive(audioRingtone, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : Ringtone : isActive: failed ${err.message}`); + return; + } + else if(data==true){ + console.log('AudioFrameworkTest: Callback: isActive: Ringtone: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback: isActive: Ringtone: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_005 + * @tc.name : isActive - Media - Promise + * @tc.desc : isActive - Media - Promise - When stream is NOT playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_005', 0, async function (done) { + console.log('AudioFrameworkTest: Promise : isActive Media: NOTE: audio NOT PLAYING as MEDIA for the test case to PASS'); + const promise = audioManager.isActive(audioMedia); + promise.then(async function (data) { + if(data==false){ + console.log('AudioFrameworkTest: Promise: isActive: Media: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: isActive: Media: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_006 + * @tc.name : isActive - Media - Callback + * @tc.desc : isActive - Media - Callback - When stream is NOT playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_006', 0, async function (done) { + console.log('AudioFrameworkTest: Callback : isActive Media: NOTE: audio NOT PLAYING as MEDIA for the test case to PASS'); + audioManager.isActive(audioMedia, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : Media : isActive: failed ${err.message}`); + return; + } + else if(data==false){ + console.log('AudioFrameworkTest: Callback: isActive: Media: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback: isActive: Media: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_007 + * @tc.name : isActive - Ringtone - Promise + * @tc.desc : isActive - Ringtone - Promise - When stream is NOT playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_007', 0, async function (done) { + console.log('AudioFrameworkTest: Promise : isActive Ringtone: NOTE: audio NOT PLAYING as MEDIA for the test case to PASS'); + const promise = audioManager.isActive(audioRingtone); + promise.then(async function (data) { + if(data==false){ + console.log('AudioFrameworkTest: Promise: isActive: Ringtone: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: isActive: Ringtone: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_008 + * @tc.name : isActive - Ringtone - Callback + * @tc.desc : isActive - Ringtone - Callback - When stream is NOT playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_008', 0, async function (done) { + console.log('AudioFrameworkTest: Callback : isActive Ringtone: NOTE: audio NOT PLAYING as MEDIA for the test case to PASS'); + audioManager.isActive(audioRingtone, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : Ringtone : isActive: failed ${err.message}`); + return; + } + else if(data==false){ + console.log('AudioFrameworkTest: Callback: isActive: Ringtone: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback: isActive: Ringtone: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_009 + * @tc.name : isActive - Media - Promise - ENAME + * @tc.desc : isActive - Media - Promise - When stream is playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_009', 0, async function (done) { + console.log('AudioFrameworkTest: Promise : isActive Media: ENAME: NOTE audio plaback as MEDIA needs to be played for the test case to PASS'); + const promise = audioManager.isActive(audio.AudioVolumeType.MEDIA).then(async function (data) { + if(data==true){ + console.log('AudioFrameworkTest: Promise: isActive: Media: ENAME: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: isActive: Media: ENAME: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_010 + * @tc.name : isActive - Media - Callback - ENAME + * @tc.desc : isActive - Media - Callback - When stream is playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_010', 0, async function (done) { + console.log('AudioFrameworkTest: Callback : isActive Media: ENAME: NOTE audio plaback as MEDIA needs to be played for the test case to PASS'); + audioManager.isActive(audio.AudioVolumeType.MEDIA, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : Media : isActive: ENAME: failed ${err.message}`); + return; + } + else if(data==true){ + console.log('AudioFrameworkTest: Callback: isActive: Media: ENAME: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback: isActive: Media: ENAME: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_011 + * @tc.name : isActive - Ringtone - Promise - ENAME + * @tc.desc : isActive - Ringtone - Promise - When stream is playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_011', 0, async function (done) { + console.log('AudioFrameworkTest: Promise : isActive Ringtone: ENAME: NOTE audio plaback as Ringtone needs to be played for the test case to PASS'); + const promise = audioManager.isActive(audio.AudioVolumeType.RINGTONE); + promise.then(async function (data) { + if(data==true){ + console.log('AudioFrameworkTest: Promise: isActive: Ringtone: ENAME: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: isActive: Ringtone: ENAME: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_012 + * @tc.name : isActive - Ringtone - Callback - ENAME + * @tc.desc : isActive - Ringtone - Callback - When stream is playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_012', 0, async function (done) { + console.log('AudioFrameworkTest: Callback : isActive Ringtone: ENAME: NOTE audio plaback as Ringtone needs to be played for the test case to PASS'); + audioManager.isActive(audio.AudioVolumeType.RINGTONE, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : Ringtone : isActive: ENAME: failed ${err.message}`); + return; + } + else if(data==true){ + console.log('AudioFrameworkTest: Callback: isActive: Ringtone: ENAME: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback: isActive: Ringtone: ENAME: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_013 + * @tc.name : isActive - Media - Promise - ENAME: + * @tc.desc : isActive - Media - Promise - When stream is NOT playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_013', 0, async function (done) { + console.log('AudioFrameworkTest: Promise : isActive Media: ENAME: NOTE: audio NOT PLAYING as MEDIA for the test case to PASS'); + const promise = audioManager.isActive(audio.AudioVolumeType.MEDIA); + promise.then(async function (data) { + if(data==false){ + console.log('AudioFrameworkTest: Promise: isActive: Media: ENAME: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: isActive: Media: ENAME: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_014 + * @tc.name : isActive - Media - Callback - ENAME + * @tc.desc : isActive - Media - Callback - When stream is NOT playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_014', 0, async function (done) { + console.log('AudioFrameworkTest: Callback : isActive Media: ENAME: NOTE: audio NOT PLAYING as MEDIA for the test case to PASS'); + audioManager.isActive(audio.AudioVolumeType.MEDIA, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : Media : ENAME: isActive: failed ${err.message}`); + return; + } + else if(data==false){ + console.log('AudioFrameworkTest: Callback: isActive: Media: ENAME: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback: isActive: Media: ENAME: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_015 + * @tc.name : isActive - Ringtone - Promise - ENAME + * @tc.desc : isActive - Ringtone - Promise - When stream is NOT playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_015', 0, async function (done) { + console.log('AudioFrameworkTest: Promise : isActive Ringtone: ENAME: NOTE: audio NOT PLAYING as MEDIA for the test case to PASS'); + const promise = audioManager.isActive(audio.AudioVolumeType.RINGTONE); + promise.then(async function (data) { + if(data==false){ + console.log('AudioFrameworkTest: Promise: isActive: Ringtone: ENAME: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: isActive: Ringtone: ENAME: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_isActive_016 + * @tc.name : isActive - Ringtone - Callback - ENAME + * @tc.desc : isActive - Ringtone - Callback - When stream is NOT playing + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_isActive_016', 0, async function (done) { + console.log('AudioFrameworkTest: Callback : isActive Ringtone: ENAME: NOTE: audio NOT PLAYING as MEDIA for the test case to PASS'); + audioManager.isActive(audio.AudioVolumeType.RINGTONE, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : Ringtone : ENAME: isActive: failed ${err.message}`); + return; + } + else if(data==false){ + console.log('AudioFrameworkTest: Callback: isActive: Ringtone: ENAME: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback: isActive: Ringtone: ENAME: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setMicrophoneMute_001 + * @tc.name : setMicrophoneMute - true - Promise + * @tc.desc : Enable mic mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setMicrophoneMute_001', 0, async function (done) { + await audioManager.setMicrophoneMute(true).then(async function (data) { + console.log('AudioFrameworkTest: setMicrophoneMute: Promise: TRUE'); + audioManager.isMicrophoneMute().then(async function (data) { + if(data==true){ + console.log('AudioFrameworkTest: Promise: isMicrophoneMute: TRUE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: isMicrophoneMute: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Promise: setMicrophoneMute: TRUE: FAIL: Error :' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setMicrophoneMute_002 + * @tc.name : setMicrophoneMute - false - Promise + * @tc.desc : Disable mic mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setMicrophoneMute_002', 0, async function (done) { + await audioManager.setMicrophoneMute(false).then(async function (data) { + console.log('AudioFrameworkTest: setMicrophoneMute: Promise: FALSE'); + audioManager.isMicrophoneMute().then(async function (data) { + if(data==false){ + console.log('AudioFrameworkTest: Promise: isMicrophoneMute: FALSE: PASS:'+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Promise: isMicrophoneMute: FALSE: FAIL: '+data); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Promise: setMicrophoneMute: FALSE: FAIL: Error :' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setMicrophoneMute_003 + * @tc.name : setMicrophoneMute - true - Callback + * @tc.desc : Enable mic mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setMicrophoneMute_003', 0, async function (done) { + audioManager.setMicrophoneMute(true, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: setMicrophoneMute: Callback : TRUE: Error : ${err.message}`); + expect(false).assertTrue(); + } + else { + console.log('AudioFrameworkTest: setMicrophoneMute: Callback : TRUE'); + audioManager.isMicrophoneMute((err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : TRUE: isMicrophoneMute : Error ${err.message}`); + expect(false).assertTrue(); + } + else if(data==true){ + console.log('AudioFrameworkTest: Callback : isMicrophoneMute: TRUE: PASS: '+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback : isMicrophoneMute: TRUE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setMicrophoneMute_004 + * @tc.name : setMicrophoneMute - false - Callback + * @tc.desc : Disable mic mute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setMicrophoneMute_004', 0, async function (done) { + audioManager.setMicrophoneMute(false, (err, data) => { + if (err) { + console.error(`AudioFrameworkTest: setMicrophoneMute: Callback : FALSE: Error : ${err.message}`); + expect(false).assertTrue(); + } + else { + console.log('AudioFrameworkTest: setMicrophoneMute: Callback : FALSE'); + audioManager.isMicrophoneMute((err, data) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : FALSE: isMicrophoneMute : Error ${err.message}`); + expect(false).assertTrue(); + } + else if(data==false){ + console.log('AudioFrameworkTest: Callback : isMicrophoneMute: FALSE: PASS: '+data); + expect(true).assertTrue(); + } + else{ + console.log('AudioFrameworkTest: Callback : isMicrophoneMute: FALSE: FAIL: '+data); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_001 + * @tc.name : setDeviceActive - SPEAKER - deactivate - Promise + * @tc.desc : Deactivate speaker - Promise + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_001', 0, async function (done) { + await audioManager.setDeviceActive(1,false).then( //Setting device active ENUM 1 = SPEAKER + async function (value){ + console.info('AudioFrameworkTest: Device Test: Promise : setDeviceActive : SPEAKER: Deactivate'); + audioManager.isDeviceActive(audio.DeviceType.SPEAKER).then(async function (value){ + if(value==false){ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : SPEAKER: Deactivate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : SPEAKER: Deactivate : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : SPEAKER: Deactivate : FAIL : Error :' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_002 + * @tc.name : setDeviceActive - SPEAKER - Activate - Promise + * @tc.desc : Activate speaker - Promise + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_002', 0, async function (done) { + await audioManager.setDeviceActive(audio.DeviceType.SPEAKER,true).then( + async function (value){ + console.info('AudioFrameworkTest: Device Test: Promise : setDeviceActive : SPEAKER: Activate'); + audioManager.isDeviceActive(1).then(async function (value){ + if(value==true){ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : SPEAKER: Activate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : SPEAKER: Activate : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : SPEAKER: Activate : FAIL :Error :' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_003 + * @tc.name : setDeviceActive - WIRED_HEADSET - deactivate - Promise + * @tc.desc : Deactivate WIRED_HEADSET - Promise + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_003', 0, async function (done) { + await audioManager.setDeviceActive(2,false).then( //Setting device active ENUM 2 = WIRED_HEADSET + async function (value){ + console.info('AudioFrameworkTest: Device Test: Promise : setDeviceActive : WIRED_HEADSET: Deactivate'); + audioManager.isDeviceActive(audio.DeviceType.WIRED_HEADSET).then(async function (value){ + if(value==false){ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : WIRED_HEADSET: Deactivate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : WIRED_HEADSET: Deactivate : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : WIRED_HEADSET: Deactivate : FAIL : Error :' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_004 + * @tc.name : setDeviceActive - WIRED_HEADSET - Activate - Promise + * @tc.desc : Activate WIRED_HEADSET - Promise + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_004', 0, async function (done) { + await audioManager.setDeviceActive(audio.DeviceType.WIRED_HEADSET,true).then( + async function (value){ + console.info('AudioFrameworkTest: Device Test: Promise : setDeviceActive : WIRED_HEADSET: Activate'); + audioManager.isDeviceActive(2).then(async function (value){ + if(value==true){ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : WIRED_HEADSET: Activate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : WIRED_HEADSET: Activate : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : WIRED_HEADSET: Activate : FAIL : Error :' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_005 + * @tc.name : setDeviceActive - BLUETOOTH_SCO - deactivate - Promise + * @tc.desc : Deactivate BLUETOOTH_SCO - Promise + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_005', 0, async function (done) { + await audioManager.setDeviceActive(3,false).then( //Setting device active ENUM 3 = BLUETOOTH_SCO + async function (value){ + console.info('AudioFrameworkTest: Device Test: Promise : setDeviceActive : BLUETOOTH_SCO: Deactivate'); + audioManager.isDeviceActive(audio.DeviceType.BLUETOOTH_SCO).then(async function (value){ + if(value==false){ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : BLUETOOTH_SCO: Deactivate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : BLUETOOTH_SCO: Deactivate : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : BLUETOOTH_SCO: Deactivate : FAIL : Error :' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_006 + * @tc.name : setDeviceActive - BLUETOOTH_SCO - Activate - Promise + * @tc.desc : Activate BLUETOOTH_SCO - Promise + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_006', 0, async function (done) { + await audioManager.setDeviceActive(audio.DeviceType.BLUETOOTH_SCO,true).then( + async function (value){ + console.info('AudioFrameworkTest: Device Test: Promise : setDeviceActive : BLUETOOTH_SCO: Activate'); + audioManager.isDeviceActive(3).then(async function (value){ + if(value==true){ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : BLUETOOTH_SCO: Activate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : BLUETOOTH_SCO: Activate : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : BLUETOOTH_SCO: Activate : FAIL : Error :' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_007 + * @tc.name : setDeviceActive - BLUETOOTH_A2DP - deactivate - Promise + * @tc.desc : Deactivate BLUETOOTH_A2DP - Promise + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_007', 0, async function (done) { + await audioManager.setDeviceActive(4,false).then( //Setting device active ENUM 4 = BLUETOOTH_A2DP + async function (value){ + console.info('AudioFrameworkTest: Device Test: Promise : setDeviceActive : BLUETOOTH_A2DP: Deactivate'); + audioManager.isDeviceActive(audio.DeviceType.BLUETOOTH_A2DP).then(async function (value){ + if(value==false){ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : BLUETOOTH_A2DP: Deactivate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : BLUETOOTH_A2DP: Deactivate : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : BLUETOOTH_A2DP: Deactivate : FAIL : Error :' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_008 + * @tc.name : setDeviceActive - BLUETOOTH_A2DP - Activate - Promise + * @tc.desc : Activate BLUETOOTH_A2DP - Promise + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_008', 0, async function (done) { + await audioManager.setDeviceActive(audio.DeviceType.BLUETOOTH_A2DP,true).then( + async function (value){ + console.info('AudioFrameworkTest: Device Test: Promise : setDeviceActive : BLUETOOTH_A2DP: Activate'); + audioManager.isDeviceActive(4).then(async function (value){ + if(value==true){ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : BLUETOOTH_A2DP: Activate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : BLUETOOTH_A2DP: Activate : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : BLUETOOTH_A2DP: Activate : FAIL : Error :' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_009 + * @tc.name : setDeviceActive - MIC - deactivate - Promise + * @tc.desc : Deactivate MIC - Promise + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_009', 0, async function (done) { + await audioManager.setDeviceActive(5,false).then( //Setting device active ENUM 5 = MIC + async function (value){ + console.info('AudioFrameworkTest: Device Test: Promise : setDeviceActive : MIC: Deactivate'); + audioManager.isDeviceActive(audio.DeviceType.MIC).then(async function (value){ + if(value==false){ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : MIC: Deactivate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : MIC: Deactivate : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : MIC: Deactivate : FAIL : Error :' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_010 + * @tc.name : setDeviceActive - MIC - Activate - Promise + * @tc.desc : Activate MIC - Promise + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_010', 0, async function (done) { + await audioManager.setDeviceActive(audio.DeviceType.MIC,true).then( + async function (value){ + console.info('AudioFrameworkTest: Device Test: Promise : setDeviceActive : MIC: Activate'); + audioManager.isDeviceActive(5).then(async function (value){ + if(value==true){ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : MIC: Activate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : MIC: Activate : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }).catch((err) => { + console.info('AudioFrameworkTest: Device Test: Promise : isDeviceActive : MIC: Activate : FAIL : Error :' + err.message); + expect(false).assertTrue(); + }); + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_011 + * @tc.name : setDeviceActive - SPEAKER - deactivate - Callback + * @tc.desc : Deactivate speaker - Callback + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_011', 0, async function (done) { + audioManager.setDeviceActive(audio.DeviceType.SPEAKER,false, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : setDeviceActive : SPEAKER: Deactivate: Error: ${err.message}`); + expect(false).assertTrue(); + } + else { + console.info('AudioFrameworkTest: Device Test: Callback : setDeviceActive : SPEAKER: Active'); + audioManager.isDeviceActive(1,(err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : isDeviceActive : SPEAKER: Deactivate: Error: ${err.message}`); + expect(false).assertTrue(); + } + else if(value==false){ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : SPEAKER: Deactivate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : SPEAKER: Deactivate : FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_012 + * @tc.name : setDeviceActive - SPEAKER - deactivate - Callback + * @tc.desc : Activate speaker - Callback + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_012', 0, async function (done) { + audioManager.setDeviceActive(audio.DeviceType.SPEAKER,true, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : setDeviceActive : SPEAKER: Active: Error: ${err.message}`); + expect(false).assertTrue(); + } + else { + console.info('AudioFrameworkTest: Device Test: Callback : setDeviceActive : SPEAKER: Active'); + audioManager.isDeviceActive(1,(err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : isDeviceActive : SPEAKER: Active: Error: ${err.message}`); + expect(false).assertTrue(); + } + else if(value==true){ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : SPEAKER: Active : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : SPEAKER: Active : FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_013 + * @tc.name : setDeviceActive - WIRED_HEADSET - deactivate - Callback + * @tc.desc : Deactivate WIRED_HEADSET - Callback + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_013', 0, async function (done) { + audioManager.setDeviceActive(audio.DeviceType.WIRED_HEADSET,false, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : setDeviceActive : WIRED_HEADSET: Deactivate: Error: ${err.message}`); + expect(false).assertTrue(); + } + else { + console.info('AudioFrameworkTest: Device Test: Callback : setDeviceActive : WIRED_HEADSET: Active'); + audioManager.isDeviceActive(2,(err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : isDeviceActive : WIRED_HEADSET: Deactivate: Error: ${err.message}`); + expect(false).assertTrue(); + } + else if(value==false){ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : WIRED_HEADSET: Deactivate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : WIRED_HEADSET: Deactivate : FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_014 + * @tc.name : setDeviceActive - WIRED_HEADSET - deactivate - Callback + * @tc.desc : Activate WIRED_HEADSET - Callback + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_014', 0, async function (done) { + audioManager.setDeviceActive(audio.DeviceType.WIRED_HEADSET,true, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : setDeviceActive : WIRED_HEADSET: Active: Error: ${err.message}`); + expect(false).assertTrue(); + } + else { + console.info('AudioFrameworkTest: Device Test: Callback : setDeviceActive : WIRED_HEADSET: Active'); + audioManager.isDeviceActive(2,(err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : isDeviceActive : WIRED_HEADSET: Active: Error: ${err.message}`); + expect(false).assertTrue(); + } + else if(value==true){ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : WIRED_HEADSET: Active : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : WIRED_HEADSET: Active : FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_015 + * @tc.name : setDeviceActive - BLUETOOTH_SCO - deactivate - Callback + * @tc.desc : Deactivate BLUETOOTH_SCO - Callback + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_015', 0, async function (done) { + audioManager.setDeviceActive(audio.DeviceType.BLUETOOTH_SCO,false, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : setDeviceActive : BLUETOOTH_SCO: Deactivate: Error: ${err.message}`); + expect(false).assertTrue(); + } + else { + console.info('AudioFrameworkTest: Device Test: Callback : setDeviceActive : BLUETOOTH_SCO: Active'); + audioManager.isDeviceActive(3,(err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : isDeviceActive : BLUETOOTH_SCO: Deactivate: Error: ${err.message}`); + expect(false).assertTrue(); + } + else if(value==false){ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : BLUETOOTH_SCO: Deactivate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : BLUETOOTH_SCO: Deactivate : FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_016 + * @tc.name : setDeviceActive - BLUETOOTH_SCO - deactivate - Callback + * @tc.desc : Activate BLUETOOTH_SCO - Callback + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_016', 0, async function (done) { + audioManager.setDeviceActive(audio.DeviceType.BLUETOOTH_SCO,true, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : setDeviceActive : BLUETOOTH_SCO: Active: Error: ${err.message}`); + expect(false).assertTrue(); + } + else { + console.info('AudioFrameworkTest: Device Test: Callback : setDeviceActive : BLUETOOTH_SCO: Active'); + audioManager.isDeviceActive(3,(err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : isDeviceActive : BLUETOOTH_SCO: Active: Error: ${err.message}`); + expect(false).assertTrue(); + } + else if(value==true){ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : BLUETOOTH_SCO: Active : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : BLUETOOTH_SCO: Active : FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_017 + * @tc.name : setDeviceActive - BLUETOOTH_A2DP - deactivate - Callback + * @tc.desc : Deactivate BLUETOOTH_A2DP - Callback + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_017', 0, async function (done) { + audioManager.setDeviceActive(audio.DeviceType.BLUETOOTH_A2DP,false, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : setDeviceActive : BLUETOOTH_A2DP: Deactivate: Error: ${err.message}`); + expect(false).assertTrue(); + } + else { + console.info('AudioFrameworkTest: Device Test: Callback : setDeviceActive : BLUETOOTH_A2DP: Active'); + audioManager.isDeviceActive(4,(err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : isDeviceActive : BLUETOOTH_A2DP: Deactivate: Error: ${err.message}`); + expect(false).assertTrue(); + } + else if(value==false){ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : BLUETOOTH_A2DP: Deactivate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : BLUETOOTH_A2DP: Deactivate : FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + //await sleep(20); + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_018 + * @tc.name : setDeviceActive - BLUETOOTH_A2DP - deactivate - Callback + * @tc.desc : Activate BLUETOOTH_A2DP - Callback + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_018', 0, async function (done) { + audioManager.setDeviceActive(audio.DeviceType.BLUETOOTH_A2DP,true, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : setDeviceActive : BLUETOOTH_A2DP: Active: Error: ${err.message}`); + expect(false).assertTrue(); + } + else { + console.info('AudioFrameworkTest: Device Test: Callback : setDeviceActive : BLUETOOTH_A2DP: Active'); + audioManager.isDeviceActive(4,(err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : isDeviceActive : BLUETOOTH_A2DP: Active: Error: ${err.message}`); + expect(false).assertTrue(); + } + else if(value==true){ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : BLUETOOTH_A2DP: Active : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : BLUETOOTH_A2DP: Active : FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_019 + * @tc.name : setDeviceActive - MIC - deactivate - Callback + * @tc.desc : Deactivate MIC - Callback + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_019', 0, async function (done) { + audioManager.setDeviceActive(audio.DeviceType.MIC,false, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : setDeviceActive : MIC: Deactivate: Error: ${err.message}`); + expect(false).assertTrue(); + } + else { + console.info('AudioFrameworkTest: Device Test: Callback : setDeviceActive : MIC: Active'); + audioManager.isDeviceActive(5,(err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : isDeviceActive : MIC: Deactivate: Error: ${err.message}`); + expect(false).assertTrue(); + } + else if(value==false){ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : MIC: Deactivate : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : MIC: Deactivate : FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setDeviceActive_020 + * @tc.name : setDeviceActive - MIC - deactivate - Callback + * @tc.desc : Activate MIC - Callback + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setDeviceActive_020', 0, async function (done) { + audioManager.setDeviceActive(audio.DeviceType.MIC,true, (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : setDeviceActive : MIC: Active: Error: ${err.message}`); + expect(false).assertTrue(); + } + else { + console.info('AudioFrameworkTest: Device Test: Callback : setDeviceActive : MIC: Active'); + audioManager.isDeviceActive(5,(err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Device Test: Callback : isDeviceActive : MIC: Active: Error: ${err.message}`); + expect(false).assertTrue(); + } + else if(value==true){ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : MIC: Active : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Device Test: Callback : isDeviceActive : MIC: Active : FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setAudioParameter_001 + * @tc.name : setAudioParameter - Promise - Character & Number + * @tc.desc : setAudioParameter - Promise - Character & Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setAudioParameter_001', 0, async function (done) { + const promise = audioManager.setAudioParameter('PBits per sample', '8 bit'); + promise.then(async function (value) { + console.info('AudioFrameworkTest: Audio Parameter Test: Promise : setAudioParameter'); + audioManager.getAudioParameter('PBits per sample').then(async function (value){ + if(value=='8 bit'){ + console.info('AudioFrameworkTest: Promise: getAudioParameter: Bits per sample : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getAudioParameter : Bits per sample : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setAudioParameter_002 + * @tc.name : setAudioParameter - Promise - Number + * @tc.desc : setAudioParameter - Promise - Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setAudioParameter_002', 0, async function (done) { + const promise = audioManager.setAudioParameter('PNumber', '4800'); + promise.then(async function (value) { + console.info('AudioFrameworkTest: Audio Parameter Test: Promise : setAudioParameter'); + audioManager.getAudioParameter('PNumber').then(async function (value){ + if(value=='4800'){ + console.info('AudioFrameworkTest: Promise: getAudioParameter: PNumber : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getAudioParameter : PNumber : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setAudioParameter_003 + * @tc.name : setAudioParameter - Promise - Long Number + * @tc.desc : setAudioParameter - Promise - Long Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setAudioParameter_003', 0, async function (done) { + const promise = audioManager.setAudioParameter('PLNumber','28374837458743875804735081439085918459801437584738967509184509813904850914375904790589104859018439058901437587459173948590813490859018349051943076918459013489058901437509479068901458098143095890143767140938590471357140937541609749103750981094385094173950713490570914389075159079014769751875901459048095813'); + promise.then(async function (value) { + console.info('AudioFrameworkTest: Audio Parameter Test: Promise : setAudioParameter'); + audioManager.getAudioParameter('PLNumber').then(async function (value){ + if(value=='28374837458743875804735081439085918459801437584738967509184509813904850914375904790589104859018439058901437587459173948590813490859018349051943076918459013489058901437509479068901458098143095890143767140938590471357140937541609749103750981094385094173950713490570914389075159079014769751875901459048095813'){ + console.info('AudioFrameworkTest: Promise: getAudioParameter: PLNumber : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getAudioParameter : PLNumber : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setAudioParameter_004 + * @tc.name : setAudioParameter - Promise - Decimal + * @tc.desc : setAudioParameter - Promise - Decimal + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setAudioParameter_004', 0, async function (done) { + const promise = audioManager.setAudioParameter('PDecimal', '10.000000234324324324'); + promise.then(async function (value) { + console.info('AudioFrameworkTest: Audio Parameter Test: Promise : setAudioParameter'); + audioManager.getAudioParameter('PDecimal').then(async function (value){ + if(value=='10.000000234324324324'){ + console.info('AudioFrameworkTest: Promise: getAudioParameter: PDecimal : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getAudioParameter : PDecimal : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setAudioParameter_005 + * @tc.name : setAudioParameter - Promise - Parameter name Number + * @tc.desc : setAudioParameter - Promise - Parameter name Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setAudioParameter_005', 0, async function (done) { + const promise = audioManager.setAudioParameter('1212', 'PPNumber'); + promise.then(async function (value) { + console.info('AudioFrameworkTest: Audio Parameter Test: Promise : setAudioParameter'); + audioManager.getAudioParameter('1212').then(async function (value){ + if(value=='PPNumber'){ + console.info('AudioFrameworkTest: Promise: getAudioParameter: 1212 : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getAudioParameter : 1212 : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setAudioParameter_006 + * @tc.name : setAudioParameter - Promise - Special Characters + * @tc.desc : setAudioParameter - Promise - Special Characters + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setAudioParameter_006', 0, async function (done) { + const promise = audioManager.setAudioParameter('PSpecial', '[]\:";<>?,./~!@#$%^*()_+-={}|'); + promise.then(async function (value) { + console.info('AudioFrameworkTest: Audio Parameter Test: Promise : setAudioParameter'); + audioManager.getAudioParameter('PSpecial').then(async function (value){ + if(value=='[]\:";<>?,./~!@#$%^*()_+-={}|'){ + console.info('AudioFrameworkTest: Promise: getAudioParameter: PSpecial : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getAudioParameter : PSpecial : FAIL :' +value); + expect(false).assertTrue(); + } + }); + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setAudioParameter_007 + * @tc.name : setAudioParameter - Callback - Character & Number + * @tc.desc : setAudioParameter - Callback - Character & Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setAudioParameter_007', 0, async function (done) { + audioManager.setAudioParameter('CBSample Rate', '16 bit', (err, value) => { + console.info('AudioFrameworkTest: Audio Parameter Test: Callback : setAudioParameter'); + if (err) { + console.error(`AudioFrameworkTest: Callback : setAudioParameter: CBSample Rate : Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + audioManager.getAudioParameter('CBSample Rate', (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : getAudioParameter: CBSample Rate: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(value=='16 bit'){ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBSample Rate: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBSample Rate: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setAudioParameter_008 + * @tc.name : setAudioParameter - Callback - Special Character + * @tc.desc : setAudioParameter - Callback - Special Character + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setAudioParameter_008', 0, async function (done) { + audioManager.setAudioParameter('Special', '~!@#$%^*()_+-={}|[]\:";<>?,./', (err, value) => { + console.info('AudioFrameworkTest: Audio Parameter Test: Callback : setAudioParameter'); + if (err) { + console.error(`AudioFrameworkTest: Callback : setAudioParameter: Special : Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + audioManager.getAudioParameter('Special', (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : getAudioParameter: Special: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(value=='~!@#$%^*()_+-={}|[]\:";<>?,./'){ + console.info('AudioFrameworkTest: Callback: getAudioParameter: Special: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getAudioParameter: Special: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setAudioParameter_009 + * @tc.name : setAudioParameter - Callback - Decimal + * @tc.desc : setAudioParameter - Callback - Decimal + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setAudioParameter_009', 0, async function (done) { + audioManager.setAudioParameter('CBDecimal', '10000.21321432432432', (err, value) => { + console.info('AudioFrameworkTest: Audio Parameter Test: Callback : setAudioParameter'); + if (err) { + console.error(`AudioFrameworkTest: Callback : setAudioParameter: CBDecimal : Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + audioManager.getAudioParameter('CBDecimal', (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : getAudioParameter: CBDecimal: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(value=='10000.21321432432432'){ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBDecimal: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBDecimal: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setAudioParameter_010 + * @tc.name : setAudioParameter - Callback - Number + * @tc.desc : setAudioParameter - Callback - Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setAudioParameter_010', 0, async function (done) { + audioManager.setAudioParameter('CBNumber', '5454', (err, value) => { + console.info('AudioFrameworkTest: Audio Parameter Test: Callback :CBNumber : setAudioParameter'); + if (err) { + console.error(`AudioFrameworkTest: Callback : setAudioParameter: CBNumber : Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + audioManager.getAudioParameter('CBNumber', (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : getAudioParameter: CBNumber: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(value=='5454'){ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBNumber: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBNumber: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setAudioParameter_011 + * @tc.name : setAudioParameter - Callback - Long Number + * @tc.desc : setAudioParameter - Callback - Long Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setAudioParameter_011', 0, async function (done) { + audioManager.setAudioParameter('CBLNumber', '54549873894789327498327984328954897598235748278979823758947895238975847389578932784328974983274823897584728957234873289759832578947598392874798327598498275894728975892478953728947823748732894783927589748975837248973289748923758972489379832748927349879237589324789327589472789743892748932749832749832749879832749837298', (err, value) => { + console.info('AudioFrameworkTest: Audio Parameter Test: Callback :CBLNumber : setAudioParameter'); + if (err) { + console.error(`AudioFrameworkTest: Callback : setAudioParameter: CBLNumber : Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + audioManager.getAudioParameter('CBLNumber', (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : getAudioParameter: CBLNumber: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(value=='54549873894789327498327984328954897598235748278979823758947895238975847389578932784328974983274823897584728957234873289759832578947598392874798327598498275894728975892478953728947823748732894783927589748975837248973289748923758972489379832748927349879237589324789327589472789743892748932749832749832749879832749837298'){ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBLNumber: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBLNumber: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_setAudioParameter_012 + * @tc.name : setAudioParameter - Callback - Parameter name Number + * @tc.desc : setAudioParameter - Callback - Parameter name Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_setAudioParameter_012', 0, async function (done) { + audioManager.setAudioParameter('345667', 'xyza', (err, value) => { + console.info('AudioFrameworkTest: Audio Parameter Test: Callback :345667 : setAudioParameter'); + if (err) { + console.error(`AudioFrameworkTest: Callback : setAudioParameter: 345667 : Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + audioManager.getAudioParameter('345667', (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : getAudioParameter: 345667: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(value=='xyza'){ + console.info('AudioFrameworkTest: Callback: getAudioParameter: 345667: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getAudioParameter: 345667: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getAudioParameter_001 + * @tc.name : getAudioParameter - Promise - Character & Number + * @tc.desc : getAudioParameter - Promise - Character & Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getAudioParameter_001', 0, async function (done) { + const promise = audioManager.getAudioParameter('PBits per sample'); + promise.then(async function (value){ + if(value=='8 bit'){ + console.info('AudioFrameworkTest: Promise: getAudioParameter: Bits per sample : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getAudioParameter : Bits per sample : FAIL :' +value); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getAudioParameter_002 + * @tc.name : getAudioParameter - Promise - Number + * @tc.desc : getAudioParameter - Promise - Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getAudioParameter_002', 0, async function (done) { + const promise = audioManager.getAudioParameter('PNumber'); + promise.then(async function (value){ + if(value=='4800'){ + console.info('AudioFrameworkTest: Promise: getAudioParameter: PNumber : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getAudioParameter : PNumber : FAIL :' +value); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getAudioParameter_003 + * @tc.name : getAudioParameter - Promise - Long Number + * @tc.desc : getAudioParameter - Promise - Long Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getAudioParameter_003', 0, async function (done) { + const promise = audioManager.getAudioParameter('PLNumber'); + promise.then(async function (value){ + if(value=='28374837458743875804735081439085918459801437584738967509184509813904850914375904790589104859018439058901437587459173948590813490859018349051943076918459013489058901437509479068901458098143095890143767140938590471357140937541609749103750981094385094173950713490570914389075159079014769751875901459048095813'){ + console.info('AudioFrameworkTest: Promise: getAudioParameter: PLNumber : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getAudioParameter : PLNumber : FAIL :' +value); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getAudioParameter_004 + * @tc.name : getAudioParameter - Promise - Decimal + * @tc.desc : getAudioParameter - Promise - Decimal + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getAudioParameter_004', 0, async function (done) { + const promise = audioManager.getAudioParameter('PDecimal'); + promise.then(async function (value){ + if(value=='10.000000234324324324'){ + console.info('AudioFrameworkTest: Promise: getAudioParameter: PDecimal : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getAudioParameter : PDecimal : FAIL :' +value); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getAudioParameter_005 + * @tc.name : getAudioParameter - Promise - Parameter name Number + * @tc.desc : getAudioParameter - Promise - Parameter name Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getAudioParameter_005', 0, async function (done) { + const promise = audioManager.getAudioParameter('1212'); + promise.then(async function (value){ + if(value=='PPNumber'){ + console.info('AudioFrameworkTest: Promise: getAudioParameter: 1212 : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getAudioParameter : 1212 : FAIL :' +value); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getAudioParameter_006 + * @tc.name : getAudioParameter - Promise - Special Characters + * @tc.desc : getAudioParameter - Promise - Special Characters + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getAudioParameter_006', 0, async function (done) { + const promise = audioManager.getAudioParameter('PSpecial'); + promise.then(async function (value){ + if(value=='[]\:";<>?,./~!@#$%^*()_+-={}|'){ + console.info('AudioFrameworkTest: Promise: getAudioParameter: PSpecial : PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Promise: getAudioParameter : PSpecial : FAIL :' +value); + expect(false).assertTrue(); + } + }); + await promise; + done(); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getAudioParameter_007 + * @tc.name : getAudioParameter - Callback - Character & Number + * @tc.desc : getAudioParameter - Callback - Character & Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getAudioParameter_007', 0, async function (done) { + audioManager.getAudioParameter('CBSample Rate', (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : getAudioParameter: CBSample Rate: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(value=='16 bit'){ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBSample Rate: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBSample Rate: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getAudioParameter_008 + * @tc.name : getAudioParameter - Callback - Special Character + * @tc.desc : getAudioParameter - Callback - Special Character + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getAudioParameter_008', 0, async function (done) { + audioManager.getAudioParameter('Special', (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : getAudioParameter: Special: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(value=='~!@#$%^*()_+-={}|[]\:";<>?,./'){ + console.info('AudioFrameworkTest: Callback: getAudioParameter: Special: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getAudioParameter: Special: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getAudioParameter_009 + * @tc.name : getAudioParameter - Callback - Decimal + * @tc.desc : getAudioParameter - Callback - Decimal + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getAudioParameter_009', 0, async function (done) { + audioManager.getAudioParameter('CBDecimal', (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : getAudioParameter: CBDecimal: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(value=='10000.21321432432432'){ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBDecimal: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBDecimal: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getAudioParameter_010 + * @tc.name : getAudioParameter - Callback - Number + * @tc.desc : getAudioParameter - Callback - Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getAudioParameter_010', 0, async function (done) { + audioManager.getAudioParameter('CBNumber', (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : getAudioParameter: CBNumber: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(value=='5454'){ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBNumber: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBNumber: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getAudioParameter_011 + * @tc.name : getAudioParameter - Callback - Long Number + * @tc.desc : getAudioParameter - Callback - Long Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getAudioParameter_011', 0, async function (done) { + audioManager.getAudioParameter('CBLNumber', (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : getAudioParameter: CBLNumber: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(value=='54549873894789327498327984328954897598235748278979823758947895238975847389578932784328974983274823897584728957234873289759832578947598392874798327598498275894728975892478953728947823748732894783927589748975837248973289748923758972489379832748927349879237589324789327589472789743892748932749832749832749879832749837298'){ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBLNumber: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getAudioParameter: CBLNumber: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + }) + /* * + * @tc.number : SUB_AUDIO_MANAGER_getAudioParameter_012 + * @tc.name : getAudioParameter - Callback - Parameter name Number + * @tc.desc : getAudioParameter - Callback - Parameter name Number + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_AUDIO_MANAGER_getAudioParameter_012', 0, async function (done) { + audioManager.getAudioParameter('345667', (err, value) => { + if (err) { + console.error(`AudioFrameworkTest: Callback : getAudioParameter: 345667: Error: ${err.message}`); + expect(false).assertTrue(); + return; + } + else if(value=='xyza'){ + console.info('AudioFrameworkTest: Callback: getAudioParameter: 345667: PASS :' +value); + expect(true).assertTrue(); + } + else{ + console.info('AudioFrameworkTest: Callback: getAudioParameter: 345667: FAIL :' +value); + expect(false).assertTrue(); + } + done(); + }); + }) + + function sleep (ms) { + return new Promise(resolve => setTimeout(resolve, ms)); + } + + function displayDeviceProp(value, index, array) { + var devRoleName; + var devTypeName; + if (value.deviceRole==1) { + devRoleName = 'INPUT_DEVICE'; + } + else if (value.deviceRole==2) { + devRoleName = 'OUTPUT_DEVICE'; + } + else { + devRoleName = 'ERROR : UNKNOWN'; + } + + if (value.deviceType == 1) { + devTypeName = 'SPEAKER'; + } + else if (value.deviceType == 2){ + devTypeName = 'WIRED_HEADSET'; + } + else if (value.deviceType == 3){ + devTypeName = 'BLUETOOTH_SCO'; + } + else if (value.deviceType == 4){ + devTypeName = 'BLUETOOTH_A2DP'; + } + else if (value.deviceType == 5){ + devTypeName = 'MIC'; + } + else { + devTypeName = 'ERROR : UNKNOWN'; + } + + console.info(`AudioFrameworkTest: device role: ${devRoleName}`); + deviceRoleValue = value.deviceRole; + console.info(`AudioFrameworkTest: device type: ${devTypeName}`); + deviceTypeValue = value.deviceType; + + } + +}) \ No newline at end of file diff --git a/multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/AudioManager.test.js b/multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/AudioManager.test.js deleted file mode 100755 index 27e0fbbd7..000000000 --- a/multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/AudioManager.test.js +++ /dev/null @@ -1,450 +0,0 @@ -/* - * 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 audio from '@ohos.multimedia.audio'; -import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -describe('AudioManager.test.js', function () { - const audioManager = audio.getAudioManager(); - var maxVolume = 1; - var minVolume = 0; - var deviceTypeValue = null; - var deviceRoleValue = null; - - beforeAll(function () { - console.info('beforeAll: Prerequisites at the test suite level, which are executed before the test suite is executed.'); - - }) - - beforeEach(function () { - console.info('beforeEach: Prerequisites at the test case level, which are executed before each test case is executed.'); - - }) - afterEach(function () { - console.info('afterEach: Test case-level clearance conditions, which are executed after each test case is executed.'); - - }) - afterAll(function () { - console.info('afterAll: Test suite-level cleanup condition, which is executed after the test suite is executed'); - - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_SetVolume_001 - * @tc.name : Set Audiomanager with volume type media 01 - * @tc.desc : Audiomanager SetVolume media-success - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_SetVolume_001', 0, function () { - audioManager.setVolume(1, 12).then(function (data) { - console.info('Media setVolume successful promise'); - audioManager.getVolume(1).then(function (data) { - console.info('Media getVolume promise ' + data); - expect(data).assertEqual(12); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_SetVolume_001 : PASS'); - }); - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_SetVolume_002 - * @tc.name : Set Audiomanager with volume type ringtone 02 - * @tc.desc : Audiomanager SetVolume media-success - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_SetVolume_002', 0, function () { - audioManager.setVolume(2, 11).then(function (data) { - console.info('Media setVolume successful promise '); - audioManager.getVolume(2).then(function (data) { - console.info('Media getVolume promise ' + data); - expect(data).assertEqual(11); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_SetVolume_002 : PASS'); - }); - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_SetVolume_003 - * @tc.name : Set Audiomanager with volume type media and callback - * @tc.desc : Audiomanager SetVolume media-success - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_SetVolume_003', 0, function () { - audioManager.setVolume(1, 10, (err, value) => { - if (err) { - console.error(`failed to set volume ${err.message}`); - return; - } - console.log(`Media setVolume successful callback`); - audioManager.getVolume(1, (err, value) => { - if (err) { - console.error(`failed to get volume ${err.message}`); - return; - } - console.log(`Media getVolume ${value}`); - expect(value).assertEqual(10); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_SetVolume_003 : PASS'); - }); - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_SetVolume_004 - * @tc.name : Set Audiomanager with volume type ringtone and callback - * @tc.desc : Audiomanager should set the volume as per the API and return it from Get API - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_SetVolume_004', 0, function () { - audioManager.setVolume(2, 13, (err, value) => { - if (err) { - console.error(`failed to set volume ${err.message}`); - return; - } - console.log(`Media setVolume successful callback`); - audioManager.getVolume(1, (err, value) => { - if (err) { - console.error(`failed to get volume ${err.message}`); - return; - } - console.log(`Media getVolume ${value}`); - expect(value).assertEqual(13); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_SetVolume_004 : PASS'); - }); - }); - }) - - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_SetVolume_005 - * @tc.name : Set Audiomanager with volume level beyond maxvolume - * @tc.desc : Audiomanager should return an error for setting the volume - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_SetVolume_005', 0, function () { - audioManager.setVolume(2, 16, (err, value) => { - if (err) { - console.error(`failed to set volume ${err.message}`); - return; - } - audioManager.getVolume(2, (err, value) => { - if (err) { - console.error(`failed to get volume ${err.message}`); - return; - } - console.log(`Media getVolume ${value}`); - if (value != 16) { - expect(true).assertTrue(); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_SetVolume_005 : PASS'); - } - }); - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_GetMaxVolume_001 - * @tc.name : Check Audiomanager get max volume for media - * @tc.desc : Audiomanager get max volume - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_GetMaxVolume_001', 0, function () { - audioManager.getMaxVolume(1).then(function (data) { - console.info('Media getMaxVolume promise ' + data); - expect(data).assertEqual(maxVolume); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_GetMaxVolume_001 : PASS'); - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_GetMaxVolume_002 - * @tc.name : Check Audiomanager get max volume for ringtone - * @tc.desc : Audiomanager get max volume-ringtone - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_GetMaxVolume_002', 0, function () { - - audioManager.getMaxVolume(2).then(function (data) { - console.info('Media getMaxVolume promise ' + data); - expect(data).assertEqual(maxVolume); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_GetMaxVolume_002 : PASS'); - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_GetMaxVolume_003 - * @tc.name : Check Audiomanager get max volume for media with callback - * @tc.desc : Audiomanager get max volume - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_GetMaxVolume_003', 0, function () { - audioManager.getMaxVolume(1, (err, value) => { - if (err) { - console.error(`failed to get volume ${err.message}`); - return; - } - console.log(`Media getMaxVolume ${value}`); - expect(value).assertEqual(maxVolume); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_GetMaxVolume_003 : PASS'); - }); - }); - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_GetMaxVolume_004 - * @tc.name : Check Audiomanager get max volume for ringtone with callback - * @tc.desc : Audiomanager get max volume - rigtone - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_GetMaxVolume_004', 0, function () { - audioManager.getMaxVolume(2, (err, value) => { - if (err) { - console.error(`failed to get volume ${err.message}`); - return; - } - console.log(`Media getMaxVolume ${value}`); - expect(value).assertEqual(maxVolume); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_GetMaxVolume_004 : PASS'); - }); - }); - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_GetMinVolume_001 - * @tc.name : Check Audiomanager get min volume for media - * @tc.desc : Audiomanager get min volume- media - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_GetMinVolume_001', 0, function () { - audioManager.getMinVolume(1).then(function (data) { - console.info('Media getMinVolume promise ' + data); - expect(data).assertEqual(minVolume); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_GetMinVolume_001 : PASS'); - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_GetMinVolume_002 - * @tc.name : Check Audiomanager get min volume for ringtone - * @tc.desc : Audiomanager get min volume-ringtone - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_GetMinVolume_002', 0, function () { - audioManager.getMinVolume(2).then(function (data) { - console.info('Media getMinVolume promise ' + data); - expect(data).assertEqual(minVolume); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_GetMinVolume_002 : PASS'); - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_GetMinVolume_003 - * @tc.name : Check Audiomanager get min volume for media with callback - * @tc.desc : Audiomanager get min volume- media - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_GetMinVolume_003', 0, function () { - audioManager.getMinVolume(1, (err, value) => { - if (err) { - console.error(`failed to get volume ${err.message}`); - return; - } - console.log(`Media getMinVolume ${value}`); - expect(value).assertEqual(minVolume); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_GetMinVolume_003 : PASS'); - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_GetMinVolume_004 - * @tc.name : Check Audiomanager get min volume for ringtone - * @tc.desc : Audiomanager get min volume-ringtone - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_GetMinVolume_004', 0, function () { - audioManager.getMinVolume(2, (err, value) => { - if (err) { - console.error(`failed to get volume ${err.message}`); - return; - } - console.log(`Media getMinVolume ${value}`); - expect(value).assertEqual(minVolume); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_GetMinVolume_004 : PASS'); - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_Get_Devices_001 - * @tc.name : Check Audiomanager get devices with DEVICES_FLAG 01 - * @tc.desc : Audiomanager get device-positive return value - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_Get_Devices_001', 0, function () { - deviceRoleValue = null; - deviceTypeValue = null; - audioManager.getDevices(1, (err, value) => { - if (err) { - console.error(`failed to get devices ${err.message}`); - return; - } - console.log('getDevices output devices'); - value.forEach(displayDeviceProp); - if (deviceTypeValue != null && deviceRoleValue != null) { - expect(true).assertTrue(); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_Get Devices_001 : PASS'); - } - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_Get_Devices_002 - * @tc.name : Check Audiomanager get devices with DEVICES_FLAG 02 - * @tc.desc : Audiomanager get device-positive return value - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_Get_Devices_002', 0, function () { - deviceRoleValue = null; - deviceTypeValue = null; - audioManager.getDevices(2, (err, value) => { - if (err) { - console.error(`failed to get devices ${err.message}`); - return; - } - console.log('getDevices output devices'); - value.forEach(displayDeviceProp); - if (deviceTypeValue != null && deviceRoleValue != null) { - expect(true).assertTrue(); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_Get Devices_002 : PASS'); - } - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_Get_Devices_003 - * @tc.name : Check Audiomanager get devices with DEVICES_FLAG 03 - * @tc.desc : Audiomanager get device-positive return value - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_Get_Devices_003', 0, function () { - deviceRoleValue = null; - deviceTypeValue = null; - audioManager.getDevices(3, (err, value) => { - if (err) { - console.error(`failed to get devices ${err.message}`); - return; - } - console.log('getDevices All devices'); - value.forEach(displayDeviceProp); - if (deviceTypeValue != null && deviceRoleValue != null) { - expect(true).assertTrue(); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_Get Devices_003 : PASS'); - } - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_GetDevice_004 - * @tc.name : Check Audiomanager get devices with deviceflag value as 1 - * @tc.desc : Audiomanager get getdevices without callback - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_Get_Devices_004', 0, function () { - deviceRoleValue = null; - deviceTypeValue = null; - audioManager.getDevices(1).then(function (value) { - value.forEach(displayDeviceProp); - if (deviceTypeValue != null && deviceRoleValue != null) { - expect(true).assertTrue(); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_Get Devices_004 : PASS'); - } - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_GetDevice_005 - * @tc.name : Check Audiomanager get devices with deviceflag values as 2 - * @tc.desc : Audiomanager get getdevices without callback - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_Get_Devices_005', 0, function () { - deviceRoleValue = null; - deviceTypeValue = null; - audioManager.getDevices(2).then(function (value) { - value.forEach(displayDeviceProp); - if (deviceTypeValue != null && deviceRoleValue != null) { - expect(true).assertTrue(); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_Get Devices_005 : PASS'); - } - }); - }) - - /* * - * @tc.number : SUB_MEDIA_AUDIO_MANAGER_GetDevice_006 - * @tc.name : Check Audiomanager get devices with deviceflag values as 3 - * @tc.desc : Audiomanager get getdevices without callback - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_AUDIO_MANAGER_Get_Devices_006', 0, function () { - deviceRoleValue = null; - deviceTypeValue = null; - audioManager.getDevices(3).then(function (value) { - value.forEach(displayDeviceProp); - if (deviceTypeValue != null && deviceRoleValue != null) { - expect(true).assertTrue(); - console.info('testCase_SUB_MEDIA_AUDIO_MANAGER_Get Devices_006 : PASS'); - } - }); - }) - - function displayDeviceProp(value, index, array) { - console.log(`device role: ${value.deviceRole}`); - deviceRoleValue = value.deviceRole; - console.log(`device type: ${value.deviceType}`); - deviceTypeValue = value.deviceType; - } -}) \ No newline at end of file diff --git a/multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/AudioPlayer.test.js b/multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/AudioPlayer.test.js deleted file mode 100755 index 23c02d63a..000000000 --- a/multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/AudioPlayer.test.js +++ /dev/null @@ -1,719 +0,0 @@ -/* - * 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 media from '@ohos.multimedia.media'; -import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -describe('AudioPlayer.test.js', function () { - var audiosourcemp3 = 'file///build/testAudio/ff-16b-2c-44100hz.mp3'; - var audiosourcewav = 'file///build/testAudio/ff-16b-2c-44100hz.wav'; - var audiosourceaac = 'file///build/testAudio/ff-16b-2c-44100hz.aac'; - var audiosourceac3 = 'file///build/testAudio/ff-16b-2c-44100hz.ac3'; - var audiosourceaiff = 'file///build/testAudio/ff-16b-2c-44100hz.aiff'; - var audiosourceflac = 'file///build/testAudio/ff-16b-2c-44100hz.flac'; - var audiosourcem4a = 'file///build/testAudio/ff-16b-2c-44100hz.m4a'; - var audiosourcemp4 = 'file///build/testAudio/ff-16b-2c-44100hz.mp4'; - var audiosourceogg = 'file///build/testAudio/ff-16b-2c-44100hz.ogg'; - var audiosourceopus = 'file///build/testAudio/ff-16b-2c-44100hz.opus'; - var audiosourcets = 'file///build/testAudio/ff-16b-2c-44100hz.ts'; - var audiosourcewma = 'file///build/testAudio/ff-16b-2c-44100hz.wma'; - var docsource = 'file///build/testAudio/asc.doc'; - var wrongsource = 'file///abd'; - var audioPlayer = media.createAudioPlayer(); - var audioState; - var waitTimer; - - beforeAll(function () { - console.info('beforeAll: Prerequisites at the test suite level, which are executed before the test suite is executed.'); - }) - - beforeEach(function () { - console.info('beforeEach: Prerequisites at the test case level, which are executed before each test case is executed.'); - }) - - afterEach(function () { - console.info('afterEach: Test case-level clearance conditions, which are executed after each test case is executed.'); - audioPlayer.release(); - }) - - afterAll(function () { - console.info('afterAll: Test suite-level cleanup condition, which is executed after the test suite is executed'); - }) - - console.info('Setting Callback'); - player.on('play', (err, action) => { - if (err) { - console.log(`err returned in play() callback`); - return; - } - console.log(`Play() callback is called`); - console.info('Current Player Status: ' + player.state); - console.info('Current Song duration: ' + player.duration); - console.log(`In play callback current time: ${player.currentTime}`); - console.info('Pause aac'); - player.pause(); - }); - - player.on('pause', (err, action) => { - if (err) { - console.log(`err returned in pause() callback`); - return; - } - console.log(`Pause() callback is called`); - }); - - player.on('stop', (err, action) => { - if (err) { - console.log(`err returned in stop() callback`); - return; - } - console.log(`Stop() callback is called`); - }); - - player.on('dataLoad', (err, action) => { - if (err) { - console.log(`err returned in dataLoad() callback`); - return; - } - console.log(`dataLoad callback is called, cuurent time: ${player.currentTime}`); - console.log(`Duration of the source: ${player.duration}`); - }); - - player.on('finish', (err, action) => { - if (err) { - console.log(`err returned in finish() callback`); - return; - } - console.log(`Player finish callback is called`); - }); - - player.on('timeUpdate', (err, action) => { - if (err) { - console.log(`err returned in timeUpdate() callback`); - return; - } - console.log(`In timeupdate callback current time: ${player.currentTime}`); - }); - - player.on('durationchange', (err, action) => { - if (err) { - console.log(`err returned in durationchange callback`); - return; - } - console.log(`Durationchange callback is called`); - }); - - player.on('error', (err, action) => { - console.error(`player error: ${err.code}`); - }); - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Play_001 - * @tc.name : Set Audio Play 01 - * @tc.desc : Audio Play-Positive return value - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Play_001', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - console.info('testCase_SUB_MEDIA_PLAYER_001 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Play_002 - * @tc.name : Audio play 02 - * @tc.desc : Audio play-Error return value - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Play_002', 0, function () { - audioPlayer.src = docsource; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertNotEqual('playing'); - console.info('testCase_SUB_MEDIA_PLAYER_Play_002 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Play_003 - * @tc.name : Audio play 03 - * @tc.desc : Audio Play-Positive return value - wav - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Play_003', 0, function () { - audioPlayer.src = audiosourcewav; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - console.info('SUB_MEDIA_PLAYER_Play_003 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Play_004 - * @tc.name : Audio play 04 - * @tc.desc : Audio Play-Positive return value - acc - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Play_004', 0, function () { - audioPlayer.src = audiosourceaac; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - console.info('testCase_SUB_MEDIA_PLAYER_Play_004 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Play_005 - * @tc.name : Audio play 05 - * @tc.desc : Audio Play-Positive return value - ac3 - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Play_005', 0, function () { - audioPlayer.src = audiosourceac3; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - console.info('testCase_SUB_MEDIA_PLAYER_Play_005 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Play_006 - * @tc.name : Audio play 06 - * @tc.desc : Audio Play-Positive return value - aiff - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Play_006', 0, function () { - audioPlayer.src = audiosourceaiff; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - console.info('testCase_SUB_MEDIA_PLAYER_Play_006 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Play_007 - * @tc.name : Audio play 07 - * @tc.desc : Audio Play-Positive return value - m4a - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Play_007', 0, function () { - audioPlayer.src = audiosourcem4a; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - console.info('testCase_SUB_MEDIA_PLAYER_Play_007 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Play_008 - * @tc.name : Audio play 08 - * @tc.desc : Audio Play-Positive return value - mp4 - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Play_008', 0, function () { - audioPlayer.src = audiosourcemp4; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - console.info('testCase_SUB_MEDIA_PLAYER_Play_008 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Play_009 - * @tc.name : Audio play 09 - * @tc.desc : Audio Play-Positive return value - ogg - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Play_009', 0, function () { - audioPlayer.src = audiosourceogg; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - console.info('testCase_SUB_MEDIA_PLAYER_Play_009 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Play_010 - * @tc.name : Audio play 10 - * @tc.desc : Audio Play-Positive return value - opus - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Play_010', 0, function () { - audioPlayer.src = audiosourceopus; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - console.info('testCase_SUB_MEDIA_PLAYER_Play_010 : PASS'); - - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Play_011 - * @tc.name : Audio play 11 - * @tc.desc : Audio Play-Positive return value - ts - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Play_011', 0, function () { - audioPlayer.src = audiosourcets; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - console.info('testCase_SUB_MEDIA_PLAYER_Play_011 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Play_012 - * @tc.name : Audio play 12 - * @tc.desc : Audio Play-Positive return value - wma - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Play_012', 0, function () { - audioPlayer.src = audiosourcewma; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - console.info('testCase_SUB_MEDIA_PLAYER_Play_012 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Play_013 - * @tc.name : Audio play 13 - * @tc.desc : Audio Play-Positive return value - flac - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Play_013', 0, function () { - audioPlayer.src = audiosourceflac; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - console.info('testCase_SUB_MEDIA_PLAYER_Play_013 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Pause_001 - * @tc.name : Audio Pause 01 - * @tc.desc : Audio Pause-Positive return value - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Pause_001', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - audioPlayer.pause(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('paused'); - console.info('testCase_SUB_MEDIA_PLAYER_Pause_001 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Pause_002 - * @tc.name : Audio Pause 02 - * @tc.desc : Audio Pause-Error return value - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Pause_002', 0, function () { - audioPlayer.stop(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('stopped'); - audioPlayer.pause(); - audioState = audioPlayer.state; - expect(audioState).assertNotEqual('paused'); - console.info('testCase_SUB_MEDIA_PLAYER_Pause_002 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Stop_001 - * @tc.name : Audio Stop 01 - * @tc.desc : Audio Stop-Positive return value - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Stop_001', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - audioPlayer.stop(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('stopped'); - console.info('testCase_SUB_MEDIA_PLAYER_Stop_001 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Stop_002 - * @tc.name : Audio Stop 02 - * @tc.desc : Audio Stop-Error return value - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Stop_002', 0, function () { - audioPlayer.stop(); - audioState = audioPlayer.state; - expect(audioState).assertNotEqual('stopped'); - console.info('testCase_SUB_MEDIA_PLAYER_Stop_002 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Seek_001 - * @tc.name : Audio Seek 01 - * @tc.desc : Audio Seek-Positive return value - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Seek_001', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - var timeUs = 10; - audioPlayer.seek(timeUs); - var getCurrentTime = audioPlayer.currenTime; - if (getCurrentTime >= seekTime) { - console.info("current position after seek : " + getCurrentTime); - console.info('testCase_SUB_MEDIA_PLAYER_Seek_001 : PASS'); - } - else - console.info('Error'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Seek_002 - * @tc.name : Audio Seek 02 - * @tc.desc : Audio Seek-error return value - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Seek_002', 0, function () { - audioPlayer.stop(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('stopped'); - audioPlayer.seek(10); - var getCurrentTime = audioPlayer.currenTime; - expect(getCurrentTime).assertNotEqual(10); - console.info('testCase_SUB_MEDIA_PLAYER_Seek_002 : PASS'); - - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Seek_003 - * @tc.name : Audio Seek 03 - * @tc.desc : Audio Seek-Negative return value - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Seek_003', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - setTimeout(waitTimer, 2); - expect(audioState).assertEqual('playing'); - audioPlayer.seek(-10); - var getCurrentTime = audioPlayer.currenTime; - expect(getCurrentTime).assertNotEqual(-10); - console.info('testCase_SUB_MEDIA_PLAYER_Seek_003 : PASS'); - - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Seek_004 - * @tc.name : Audio Seek 04 - * @tc.desc : Audio Seek-out of range for the media its playing - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Seek_004', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - audioPlayer.seek(16000); - var getCurrentTime = audioPlayer.currenTime; - expect(getCurrentTime).assertNotEqual(16000); - console.info('testCase_SUB_MEDIA_PLAYER_Seek_004 : PASS'); - - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_Playback_status_001 - * @tc.name : Audio Playback status 01 - * @tc.desc : Audio Playback status-positive return value - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_Playback_status_001', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - setTimeout(waitTimer, 2); - expect(audioState).assertEqual('playing'); - console.info('testCase_SUB_MEDIA_PLAYER_Playback_status_001 : PASS'); - - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_EnableLooping_001 - * @tc.name : Audio EnableLooping 01 - * @tc.desc : Audio Enable Looping after play - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_EnableLooping_001', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - audioPlayer.loop = true; - expect(audioPlayer.loop).assertEqual(true); - console.info('testCase_SUB_MEDIA_PLAYER_EnableLooping_001 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_EnableLooping_002 - * @tc.name : Audio EnableLooping 02 - * @tc.desc : Audio EnableLooping- Enable Loop before play - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_EnableLooping_002', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.loop = true; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - expect(audioPlayer.loop).assertEqual(true); - console.info('testCase_SUB_MEDIA_PLAYER_EnableLooping_002 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_EnableLooping_003 - * @tc.name : Audio EnableLooping 03 - * @tc.desc : Audio EnableLooping-Disable Loop - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_EnableLooping_003', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.loop = true; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - audioPlayer.loop = false; - expect(audioPlayer.loop).assertEqual(false); - console.info('testCase_SUB_MEDIA_PLAYER_EnableLooping_003 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_SetVolume_001 - * @tc.name : Audio SetVolume 01 - * @tc.desc : Audio SetVolume-Positive return value - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_SetVolume_001', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - audioPlayer.volume = 0.5; - expect(audioPlayer.volume).assertEqual(0.5); - console.info('testCase_SUB_MEDIA_PLAYER_SetVolume_001 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_SetVolume_002 - * @tc.name : Audio SetVolume 02 - * @tc.desc : Audio SetVolume-Mute - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_SetVolume_002', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - audioPlayer.volume = 0; - expect(setVolume).assertEqual(audioPlayer.volume); - console.info('testCase_SUB_MEDIA_PLAYER_SetVolume_002 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_SetVolume_003 - * @tc.name : Audio SetVolume 03 - * @tc.desc : Audio SetVolume-Max - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_SetVolume_003', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - setTimeout(waitTimer, 2); - expect(audioState).assertEqual('playing'); - audioPlayer.volume = 1; - expect(audioPlayer.volume).assertEqual(1); - console.info('testCase_SUB_MEDIA_PLAYER_SetVolume_003 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_SetVolume_004 - * @tc.name : Audio SetVolume 04 - * @tc.desc : Audio SetVolume-Out of range - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_SetVolume_004', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('playing'); - audioPlayer.volume = 2; - expect(audioPlayer.volume).assertNotEqual(2); - console.info('testCase_SUB_MEDIA_PLAYER_SetVolume_004 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_SetVolume_005 - * @tc.name : Audio SetVolume 05 - * @tc.desc : Audio SetVolume-negative range - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_SetVolume_005', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - audioPlayer.volume = -1; - expect(audioPlayer.volume).assertNotEqual(-1); - console.info('testCase_SUB_MEDIA_PLAYER_SetVolume_005 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_GetCurrentTime_001 - * @tc.name : Audio GetCurrentTime 01 - * @tc.desc : Audio GetCurrentTime-Play and get current time - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_GetCurrentTime_001', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - setTimeout(waitTimer, 20); - expect(audioState).assertEqual('playing'); - var getCurrentTime = audioPlayer.currentTime; - expect(getCurrentTime).assertEqual(20); - console.info('testCase_SUB_MEDIA_PLAYER_GetCurrentTime_001 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_GetCurrentTime_002 - * @tc.name : Audio GetCurrentTime 02 - * @tc.desc : Audio GetCurrentTime- Error, get current time when nothing is playing. - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_GetCurrentTime_002', 0, function () { - audioPlayer.stop(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('stopped'); - var getCurrentTime = audioPlayer.currentTime; - expect(getCurrentTime).assertNotEqual(0); - console.info('testCase_SUB_MEDIA_PLAYER_GetCurrentTime_002 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_GetDuration_001 - * @tc.name : Audio GetDuration 01 - * @tc.desc : Audio GetDuration-Play and get duration. - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_GetDuration_001', 0, function () { - audioPlayer.src = audiosourcemp3; - audioPlayer.play(); - audioState = audioPlayer.state; - setTimeout(waitTimer, 2); - expect(audioState).assertEqual('playing'); - var getDuration = audioPlayer.duration; - expect(getDuration).assertEqual(200); - console.info('testCase_SUB_MEDIA_PLAYER_GetDuration_001 : PASS'); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_GetDuration_002 - * @tc.name : Audio GetDuration 02 - * @tc.desc : Audio GetDuration- Error, get duration time when nothing is playing. - * @tc.size : MEDIUM - * @tc.type : Function - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_GetDuration_002', 0, function () { - audioPlayer.stop(); - audioState = audioPlayer.state; - expect(audioState).assertEqual('stopped'); - var getDuration = audioPlayer.duration; - expect(getDuration).assertNotEqual(0); - console.info('testCase_SUB_MEDIA_PLAYER_GetDuration_002 : PASS'); - }) -}) \ No newline at end of file diff --git a/multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/List.test.js b/multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/List.test.js index 08238ae10..3231cc2f4 100644 --- a/multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/List.test.js +++ b/multimedia/audio/audio_js_standard/audioManager/project/entry/src/main/js/test/List.test.js @@ -13,4 +13,4 @@ * limitations under the License. */ -require('./AudioManager.test.js') \ No newline at end of file +require('./AudioFramework.test.js') \ No newline at end of file diff --git a/multimedia/audio/audio_js_standard/audioPlayer/hap/AudioPlayer_JS.hap b/multimedia/audio/audio_js_standard/audioPlayer/hap/AudioPlayer_JS.hap index 4d204d275043026c0b56c6394db8ce3ec3274f85..52a7090d320b575685ed80e3fce135032d5edac3 100644 GIT binary patch delta 13364 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%0AB2W5_Qot!~Xu z&&Z(|^n<#&|CPA*e_l4;9KmO~fpM3Yy zy`}SKUNrwl`_L)fz{js{?0Wgtc%!j|4VXR?SbuA&9LeOltWg&4cPik=_s?4JLfN~q z-~IZLwFt`Nt!(|2F0$T<7l+0XhHUElD;vTtUD9hb2| zJKz4g^)d11_`e_0|W zAH534M*bfk4FAq#2EL?_r^swYxII{&g85*%N~YREzEsKPY{hQ|%j2f^K8s-N{{xcy Br>Fn` delta 23101 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 B7?A(~ diff --git a/multimedia/audio/audio_js_standard/audioPlayer/hap/entry-debug-rich-signed.hap b/multimedia/audio/audio_js_standard/audioPlayer/hap/entry-debug-rich-signed.hap deleted file mode 100755 index 9f875f974f29fc7ad6da92d74e451a1dd7c33eb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152146 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 B0B!&P diff --git a/multimedia/audio/audio_js_standard/audioPlayer/project/entry/src/main/js/test/PlayerLocalTestAudioFUNC.test.js b/multimedia/audio/audio_js_standard/audioPlayer/project/entry/src/main/js/test/PlayerLocalTestAudioFUNC.test.js index e9249f0fc..5a37ba311 100644 --- a/multimedia/audio/audio_js_standard/audioPlayer/project/entry/src/main/js/test/PlayerLocalTestAudioFUNC.test.js +++ b/multimedia/audio/audio_js_standard/audioPlayer/project/entry/src/main/js/test/PlayerLocalTestAudioFUNC.test.js @@ -16,13 +16,10 @@ import media from '@ohos.multimedia.media' import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -describe('PlayerLocalTestAudioFUNC', function () { +describe('PlayerLocalTestAudioAPI', function () { var audioPlayer = media.createAudioPlayer(); var audioSource = "data/media/audio/Homey.mp3"; var PLAY_TIME = 3000; - var DURATION_TIME = 89239; - var SEEK_TIME = 5000; - var DELTA_TIME = 1000; var ENDSTATE = 0; var SRCSTATE = 1; var PLAYSTATE = 2; @@ -35,11 +32,12 @@ describe('PlayerLocalTestAudioFUNC', function () { var ERRORSTATE = 9; var FINISHSTATE = 10; var LOOPSTATE = 11; - var NOERROR = 0; - var STEPERRCODE = 38; - var SEEKERROR = 'seekError'; + var DURATION_TIME = 89239; + var SEEK_TIME = 5000; + var DELTA_TIME = 1000; var PAUSEERROR = 'pauseError'; - var errCode = NOERROR; + var PLAYERROR = 'playError'; + var loopValue = false; beforeAll(function () { console.log("beforeAll case"); }) @@ -50,6 +48,7 @@ describe('PlayerLocalTestAudioFUNC', function () { afterEach(function () { console.log("afterEach case"); + audioPlayer.release(); }) afterAll(function () { @@ -57,7 +56,7 @@ describe('PlayerLocalTestAudioFUNC', function () { }) var sleep = function(time) { - for(var t = Date.now(); Date.now() - t <= time;); + for(var t = Date.now();Date.now() - t <= time;); }; var initAudioPlayer = function() { @@ -66,6 +65,9 @@ describe('PlayerLocalTestAudioFUNC', function () { var nextStep = function(mySteps, done) { if (mySteps[0] == ENDSTATE) { + if (mySteps[1] == false || mySteps[1] == true) { + expect(audioPlayer.loop).assertEqual(mySteps[1]); + } done(); return; } @@ -102,11 +104,13 @@ describe('PlayerLocalTestAudioFUNC', function () { console.log(`case to release`); mySteps.shift(); audioPlayer.release(); + nextStep(mySteps, done); break; case LOOPSTATE: - audioPlayer.loop = mySteps[1]; + loopValue = mySteps[1]; mySteps.shift(); mySteps.shift(); + audioPlayer.loop = loopValue; nextStep(mySteps, done); break; default: @@ -134,7 +138,6 @@ describe('PlayerLocalTestAudioFUNC', function () { return; } expect(audioPlayer.state).assertEqual('playing'); - sleep(PLAY_TIME); nextStep(mySteps, done); }); @@ -205,455 +208,247 @@ describe('PlayerLocalTestAudioFUNC', function () { console.log(`case error called,errName is ${err.name}`); console.log(`case error called,errCode is ${err.code}`); console.log(`case error called,errMessage is ${err.message}`); - expect(err.code).assertEqual(errCode); if ((mySteps[0] == SEEKSTATE) || (mySteps[0] == VOLUMESTATE)) { expect(mySteps[2]).assertEqual(ERRORSTATE); - expect(err.message).assertEqual(mySteps[3]); mySteps.shift(); mySteps.shift(); mySteps.shift(); mySteps.shift(); + nextStep(mySteps, done); + } else if (mySteps[0] == ERRORSTATE) { + mySteps.shift(); + mySteps.shift(); + } else if (mySteps[0] == ENDSTATE) { + console.log('case release player error'); } else { expect(mySteps[1]).assertEqual(ERRORSTATE); - expect(err.message).assertEqual(mySteps[2]); mySteps.shift(); mySteps.shift(); mySteps.shift(); + nextStep(mySteps, done); } - nextStep(mySteps, done); }); }; /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0100 - * @tc.name : 001.本地音频初始状态:进行播放 - * @tc.desc : 1.播放成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0100', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0200 - * @tc.name : 002.本地音频播放状态:进行暂停 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0300 - * @tc.name : 003.本地音频暂停状态:进行恢复播放 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Play成功 - 4.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0300', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0500 - * @tc.name : 005.本地音频播放状态:进行结束播放 - * @tc.desc : 1.播放成功 - 2.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0500', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0600 - * @tc.name : 006.本地音频播放状态:暂停后恢复播放,再次暂停 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Play成功 - 4.Pause成功 - 5.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0600', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, PAUSESTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0700 - * @tc.name : 007.本地音频暂停状态:暂停后结束播放 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Stop成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0700', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, STOPSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0800 - * @tc.name : 008.本地音频播放状态:暂停后恢复播放,再结束播放 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.播放成功 - 4.Stop成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0800', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, STOPSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0900 - * @tc.name : 009.本地音频播放状态:停止播放后重新开始播放,暂停后恢复播放,再结束播放 - * @tc.desc : 1.播放成功 - 2.Stop成功 -                3.播放成功 -                4.Pause成功 -                5.Play成功 -                6.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0900', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, RESETSTATE, SRCSTATE, PLAYSTATE, - PAUSESTATE, PLAYSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1000 - * @tc.name : 010.本地音频暂停状态:停止播放后重新开始播放,暂停后结束播放 - * @tc.desc : 1.播放成功 -                2.Pause成功 -                3.Stop成功 -                4.播放成功 -                5.Pause成功 -                6.Reset成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0200 + * @tc.name : 02.play操作在pause之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 2 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1000', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, STOPSTATE, RESETSTATE, SRCSTATE, PLAYSTATE, - PAUSESTATE, RESETSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0200', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1100 - * @tc.name : 011.本地音频播放状态:停止播放后重新开始播放,再次结束播放 - * @tc.desc : 1.播放成功 -               2.Stop成功 -               3.播放成功 -               4.Reset成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0300 + * @tc.name : 03.play操作在stop之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 2 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1100', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, RESETSTATE, SRCSTATE, PLAYSTATE, RESETSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0300', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, PLAYSTATE, ERRORSTATE, PLAYERROR, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1200 - * @tc.name : 012.本地音频暂停状态:暂停后再次play - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.播放成功 - 4.Reset成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0400 + * @tc.name : 04.play操作在seek之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 2 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, RESETSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0400', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, SEEK_TIME, PLAYSTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1300 - * @tc.name : 013.本地音频停止状态:停止播放后暂停 - * @tc.desc : 1.播放成功 - 2.Stop成功 - 3.Pause失败 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0800 + * @tc.name : 08.play操作在reset之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1300', 0, async function (done) { - errCode = STEPERRCODE; - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, PAUSESTATE, ERRORSTATE, PAUSEERROR, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0800', 0, async function (done) { + var mySteps = new Array(SRCSTATE, RESETSTATE, PLAYSTATE, ERRORSTATE, PLAYERROR, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1400 - * @tc.name : 014.本地音频初始状态:开始播放,进行Seek,再暂停 - * @tc.desc : 1.播放成功 - 2.Seek成功 - 3.Pause成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0900 + * @tc.name : 09.play操作在release之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, 0, PAUSESTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0900', 0, async function (done) { + var mySteps = new Array(SRCSTATE, RELEASESTATE, PLAYSTATE, ERRORSTATE, PLAYERROR, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1500 - * @tc.name : 015.本地音频初始状态:开始播放,暂停后进行Seek,再恢复播放 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Seek成功 - 4.Play成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0100 + * @tc.name : 01.pause操作在createAudioPlayer之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1500', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, 0, SEEKSTATE, DURATION_TIME / 2, - SEEKSTATE, audioPlayer.duration, PLAYSTATE, FINISHSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0100', 0, async function (done) { + var mySteps = new Array(PAUSESTATE, ERRORSTATE, PAUSEERROR, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); - audioPlayer.src = audioSource; + audioPlayer.pause(); }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1600 - * @tc.name : 016.本地音频初始状态:开始播放,暂停后恢复播放,进行Seek,再暂停 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Play成功 - 4.Seek成功 - 5.pause成功 - 6.Reset成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0200 + * @tc.name : 02.pause操作在play之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1600', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, SEEKSTATE, 0, PAUSESTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0200', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1700 - * @tc.name : 017.本地音频初始状态:开始播放,进行Seek - * @tc.desc : 1.播放成功 - 2.Seek成功 - 3.Reset成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0300 + * @tc.name : 02.pause操作在stop之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1700', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME / 2, RESETSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0300', 0, async function (done) { + var mySteps = new Array(PLAYSTATE, STOPSTATE, PAUSESTATE, ERRORSTATE, PAUSEERROR, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1800 - * @tc.name : 018.本地音频初始状态:开始播放,进行Seek,停止播放 - * @tc.desc : 1.播放成功 - 2.Seek成功 - 3.Stop成功 - 4.Reset成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0400 + * @tc.name : 04.pause操作在seek之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1800', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME / 2, - STOPSTATE, RESETSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0400', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, PAUSESTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1900 - * @tc.name : 019.本地音频初始状态:开始播放,停止播放,进行Seek - * @tc.desc : 1.播放成功 - 2.Stop成功 - 3.Seek失败 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1900', 0, async function (done) { - errCode = STEPERRCODE; - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, SEEKSTATE, 0, ERRORSTATE, SEEKERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2000 - * @tc.name : 020.本地音频初始状态:开始播放,暂停后进行Seek - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Seek成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0200 + * @tc.name : 02.stop操作在play之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2000', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, 0, RESETSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0200', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2100 - * @tc.name : 021.本地音频初始状态:开始播放,暂停后进行Seek,停止播放 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Seek成功 - 4.Stop成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0300 + * @tc.name : 03.stop操作在pause之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2100', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, DURATION_TIME / 2, - STOPSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0300', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, STOPSTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2200 - * @tc.name : 022.本地音频初始状态:开始播放,暂停后恢复播放,进行Seek - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Play成功 - 4.Seek成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0400 + * @tc.name : 04.stop操作在seek之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, SEEKSTATE, 0, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0400', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, STOPSTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2300 - * @tc.name : 023.本地音频初始状态:开始播放,暂停后恢复播放,进行Seek,停止播放 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Play成功 - 4.Stop成功 - 5.Seek成功 - 6.Stop成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0200 + * @tc.name : 02.seek操作在play之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2300', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, SEEKSTATE, 0, STOPSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0200', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2400 - * @tc.name : 024.本地音频初始状态:开始播放,停止播放,进行Seek,重新播放 - * @tc.desc : 1.播放成功 - 2.Stop成功 - 3.Seek失败 - 4.重新播放成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0300 + * @tc.name : 03.seek操作在pause之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2400', 0, async function (done) { - errCode = STEPERRCODE; - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, SEEKSTATE, 0, ERRORSTATE, SEEKERROR, - RESETSTATE, SRCSTATE, PLAYSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0300', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, SEEK_TIME, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2500 - * @tc.name : 025.本地音频播放状态:进行Seek,Seek到文件开始的位置 - * @tc.desc : 1.播放成功 - 2.Seek成功 - 3.Reset成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0900 + * @tc.name : 9.seek到起始位置(0) + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2500', 0, async function (done) { + it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0900', 0, async function (done) { var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, 0, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); @@ -661,227 +456,145 @@ describe('PlayerLocalTestAudioFUNC', function () { }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2600 - * @tc.name : 026.本地音频初始状态:开始播放,停止播放,进行Seek,再暂停 - * @tc.desc : 1.播放成功 - 2.Stop成功 - 3.Seek失败 - 4.Pause失败 - 5.Reset成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0200 + * @tc.name : 02.reset操作在play之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 3 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2600', 0, async function (done) { - errCode = STEPERRCODE; - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, SEEKSTATE, SEEK_TIME, ERRORSTATE, - SEEKERROR, PAUSESTATE, ERRORSTATE, PAUSEERROR, RESETSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0200', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2700 - * @tc.name : 027.本地音频初始状态:开始播放,停止播放,进行Seek,再进行恢复播放操作 - * @tc.desc : 1.播放成功; - 2.Stop成功; - 3.Seek失败 - 4.恢复播放成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0300 + * @tc.name : 03.reset操作在pause之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 3 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2700', 0, async function (done) { - errCode = STEPERRCODE; - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, SEEKSTATE, SEEK_TIME, ERRORSTATE, - SEEKERROR, RESETSTATE, SRCSTATE, PLAYSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0300', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, RESETSTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2800 - * @tc.name : 028.本地音频播放状态:进行Seek,Seek到文件结尾的位置 - * @tc.desc : 1.播放成功 - 2.Seek成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0200 + * @tc.name : 02.release操作在play之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2800', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME, FINISHSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0200', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, RELEASESTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2900 - * @tc.name : 029.本地音频播放状态:进行Seek,Seek到超过文件结尾的位置 - * @tc.desc : 1.播放成功 - 2.Seek到结尾 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0300 + * @tc.name : 03.release操作在pause之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 3 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2900', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME + DELTA_TIME, - FINISHSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0300', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, RELEASESTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3000 - * @tc.name : 030.本地音频播放状态:进行Seek,Seek到文件随机的位置 - * @tc.desc : 1.Seek成功,查看currenTime与seek到的位置一致 - 2.当前位置为seek设置的随机位置 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0400 + * @tc.name : 04.release操作在stop之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3000', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME / 5, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0400', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, RELEASESTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3200 - * @tc.name : 032.本地音频播放状态:暂停时Seek到文件开始,恢复播放 - * @tc.desc : 1.播放成功 - 2.暂停成功 - 3.Seek成功 - 4.Play成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0500 + * @tc.name : 05.release操作在seek之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, 0, PLAYSTATE, RESETSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0500', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, RELEASESTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3300 - * @tc.name : 033.本地音频播放状态:暂停时Seek到文件结尾,恢复播放 - * @tc.desc : 1.播放成功 - 2.暂停成功 - 3.Seek成功 - 4.Play成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0700 + * @tc.name : 07.release操作在reset之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3300', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, DURATION_TIME, PLAYSTATE, - FINISHSTATE, RESETSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0700', 0, async function (done) { + var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, RELEASESTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); audioPlayer.src = audioSource; }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3400 - * @tc.name : 034.本地音频播放状态:暂停时Seek到超过文件结尾的位置,恢复播放 - * @tc.desc : 1.播放成功 - 2.暂停成功 - 3.Seek成功 - 4.Play成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Time_API_0100 + * @tc.name : 01.获取参数操作在createAudioPlayer之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 3 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, DURATION_TIME + DELTA_TIME, PLAYSTATE, - FINISHSTATE, RESETSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Time_API_0100', 0, async function (done) { initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; + expect(audioPlayer.src).assertEqual(undefined); + expect(audioPlayer.duration).assertEqual(undefined); + expect(audioPlayer.currentTime).assertEqual(undefined); + expect(audioPlayer.state).assertEqual('idle'); + expect(audioPlayer.loop).assertEqual(false); + done(); }) /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3500 - * @tc.name : 035.本地音频播放状态:播放时Seek到超过文件结尾的位置,再重新开始播放 - * @tc.desc : 1.播放成功 - 2.Seek成功 - 3.finish回调函数触发,并重新开始播放 - 3.Play成功 + * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Time_API_0200 + * @tc.name : 02.获取参数操作在setsrc之后 + * @tc.desc : * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 3 + * @tc.type : API Test + * @tc.level : Level 2 */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3500', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME + DELTA_TIME, - FINISHSTATE, PLAYSTATE, RESETSTATE, ENDSTATE); + it('SUB_MEDIA_PLAYER_AudioPlayer_Time_API_0200', 0, async function (done) { initAudioPlayer(); - setCallback(mySteps, done); audioPlayer.src = audioSource; + sleep(PLAY_TIME); + expect(audioPlayer.src).assertEqual(audioSource); + expect(audioPlayer.currentTime).assertEqual(0); + expect(audioPlayer.duration).assertEqual(DURATION_TIME); + expect(audioPlayer.state).assertEqual('paused'); + expect(audioPlayer.loop).assertEqual(false); + done(); }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3600 - * @tc.name : 036.支持设置循环播放 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3600', 0, async function (done) { - var playCount = 0; - var seekCount = 0; - var testAudioPlayer = media.createAudioPlayer(); - testAudioPlayer.on('dataLoad', () => { - console.log(`case dataLoad called`); - expect(testAudioPlayer.currentTime).assertEqual(0); - expect(testAudioPlayer.duration).assertEqual(DURATION_TIME); - expect(testAudioPlayer.state).assertEqual('paused'); - testAudioPlayer.loop = true; - testAudioPlayer.play(); - }); - testAudioPlayer.on('play', () => { - console.log(`case play called`); - console.log(`case play currentTime is ${testAudioPlayer.currentTime}`); - expect(testAudioPlayer.duration).assertEqual(DURATION_TIME); - expect(testAudioPlayer.state).assertEqual('playing'); - sleep(PLAY_TIME); - if (playCount == 1) { - return; - } - playCount++ - testAudioPlayer.seek(DURATION_TIME); - }); - testAudioPlayer.on('timeUpdate', (seekDoneTime) => { - if (typeof (seekDoneTime) == "undefined") { - console.log(`case seek filed,errcode is ${seekDoneTime}`); - return; - } - if (seekCount == 1) { - testAudioPlayer.reset(); - return; - } - seekCount++ - console.log(`case seekDoneTime is ${seekDoneTime}`); - console.log(`case seek called`); - expect(testAudioPlayer.currentTime + 1).assertClose(seekDoneTime + 1, DELTA_TIME); - }); - testAudioPlayer.on('finish', () => { - expect(testAudioPlayer.state).assertEqual('playing'); - console.log(`case finish called`); - }); - testAudioPlayer.on('reset', () => { - expect(testAudioPlayer.state).assertEqual('idle'); - console.log(`case reset called`); - testAudioPlayer.release(); - done(); - }); - testAudioPlayer.src = audioSource; - }) - -}) \ No newline at end of file +}) diff --git a/multimedia/audio/audio_js_standard/audioPlayer_API/hap/AudioPlayer_Api_JS.hap b/multimedia/audio/audio_js_standard/audioPlayer_API/hap/AudioPlayer_Api_JS.hap index 370140caddca20a5e480daa6b1e030f7b2ed44c1..d5c09ef9a547c4c31a4ed9317719c9f722582175 100644 GIT binary patch delta 7911 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 AWB>pF diff --git a/multimedia/audio/audio_js_standard/audioPlayer_API/project/entry/src/main/js/test/PlayerLocalTestAudioAPI.test.js b/multimedia/audio/audio_js_standard/audioPlayer_API/project/entry/src/main/js/test/PlayerLocalTestAudioAPI.test.js index 477555dae..5a37ba311 100644 --- a/multimedia/audio/audio_js_standard/audioPlayer_API/project/entry/src/main/js/test/PlayerLocalTestAudioAPI.test.js +++ b/multimedia/audio/audio_js_standard/audioPlayer_API/project/entry/src/main/js/test/PlayerLocalTestAudioAPI.test.js @@ -32,34 +32,27 @@ describe('PlayerLocalTestAudioAPI', function () { var ERRORSTATE = 9; var FINISHSTATE = 10; var LOOPSTATE = 11; - var NOERROR = 0; var DURATION_TIME = 89239; var SEEK_TIME = 5000; - var VOLUMEVALUE = 0.1; var DELTA_TIME = 1000; - var SRCERROR = 'sourceError'; - var SEEKERROR = 'seekError'; var PAUSEERROR = 'pauseError'; var PLAYERROR = 'playError'; - var STOPERROR = 'stopError'; - var errCode = NOERROR; - var ERRSTEP = 38; - var ERRSRC = 22; + var loopValue = false; beforeAll(function () { - console.info("beforeAll case"); + console.log("beforeAll case"); }) beforeEach(function () { - console.info("beforeEach case"); + console.log("beforeEach case"); }) afterEach(function () { - console.info("afterEach case"); - errCode = NOERROR; + console.log("afterEach case"); + audioPlayer.release(); }) afterAll(function () { - console.info("afterAll case"); + console.log("afterAll case"); }) var sleep = function(time) { @@ -67,7 +60,6 @@ describe('PlayerLocalTestAudioAPI', function () { }; var initAudioPlayer = function() { - audioPlayer.release(); audioPlayer = media.createAudioPlayer(); } @@ -81,43 +73,44 @@ describe('PlayerLocalTestAudioAPI', function () { } switch (mySteps[0]) { case SRCSTATE: - console.info(`case to prepare`); + console.log(`case to prepare`); audioPlayer.src = audioSource; break; case PLAYSTATE: - console.info(`case to play`); + console.log(`case to play`); audioPlayer.play(); break; case PAUSESTATE: - console.info(`case to pause`); + console.log(`case to pause`); audioPlayer.pause(); break; case STOPSTATE: - console.info(`case to stop`); + console.log(`case to stop`); audioPlayer.stop(); break; case RESETSTATE: - console.info(`case to reset`); + console.log(`case to reset`); audioPlayer.reset(); break; case SEEKSTATE: - console.info(`case seek to time is ${mySteps[1]}`); + console.log(`case seek to time is ${mySteps[1]}`); audioPlayer.seek(mySteps[1]); break; case VOLUMESTATE: - console.info(`case to setVolume`); + console.log(`case to setVolume`); audioPlayer.setVolume(mySteps[1]); break; case RELEASESTATE: - console.info(`case to release`); + console.log(`case to release`); mySteps.shift(); audioPlayer.release(); nextStep(mySteps, done); break; case LOOPSTATE: - audioPlayer.loop = mySteps[1]; + loopValue = mySteps[1]; mySteps.shift(); mySteps.shift(); + audioPlayer.loop = loopValue; nextStep(mySteps, done); break; default: @@ -125,10 +118,10 @@ describe('PlayerLocalTestAudioAPI', function () { } } var setCallback = function(mySteps, done) { - console.info(`case setCallback`); + console.log(`case setCallback`); audioPlayer.on('dataLoad', () => { mySteps.shift(); - console.info(`case dataLoad called`); + console.log(`case dataLoad called`); expect(audioPlayer.currentTime).assertEqual(0); expect(audioPlayer.duration).assertEqual(DURATION_TIME); expect(audioPlayer.state).assertEqual('paused'); @@ -137,11 +130,11 @@ describe('PlayerLocalTestAudioAPI', function () { audioPlayer.on('play', () => { mySteps.shift(); - console.info(`case play called`); - console.info(`case play currentTime is ${audioPlayer.currentTime}`); + console.log(`case play called`); + console.log(`case play currentTime is ${audioPlayer.currentTime}`); expect(audioPlayer.duration).assertEqual(DURATION_TIME); if (mySteps[0] == FINISHSTATE) { - console.info(`case wait for finish`); + console.log(`case wait for finish`); return; } expect(audioPlayer.state).assertEqual('playing'); @@ -150,8 +143,8 @@ describe('PlayerLocalTestAudioAPI', function () { audioPlayer.on('pause', () => { mySteps.shift(); - console.info(`case pause called`); - console.info(`case pause currentTime is ${audioPlayer.currentTime}`); + console.log(`case pause called`); + console.log(`case pause currentTime is ${audioPlayer.currentTime}`); expect(audioPlayer.duration).assertEqual(DURATION_TIME); expect(audioPlayer.state).assertEqual('paused'); nextStep(mySteps, done); @@ -159,14 +152,14 @@ describe('PlayerLocalTestAudioAPI', function () { audioPlayer.on('reset', () => { mySteps.shift(); - console.info(`case reset called`); + console.log(`case reset called`); expect(audioPlayer.state).assertEqual('idle'); nextStep(mySteps, done); }); audioPlayer.on('stop', () => { mySteps.shift(); - console.info(`case stop called`); + console.log(`case stop called`); expect(audioPlayer.currentTime).assertEqual(0); expect(audioPlayer.duration).assertEqual(DURATION_TIME); expect(audioPlayer.state).assertEqual('stopped'); @@ -175,17 +168,17 @@ describe('PlayerLocalTestAudioAPI', function () { audioPlayer.on('timeUpdate', (seekDoneTime) => { if (typeof (seekDoneTime) == "undefined") { - console.info(`case seek filed,errcode is ${seekDoneTime}`); + console.log(`case seek filed,errcode is ${seekDoneTime}`); return; } mySteps.shift(); mySteps.shift(); - console.info(`case seekDoneTime is ${seekDoneTime}`); - console.info(`case seek called`); + console.log(`case seekDoneTime is ${seekDoneTime}`); + console.log(`case seek called`); expect(audioPlayer.currentTime + DELTA_TIME).assertClose(seekDoneTime + DELTA_TIME, DELTA_TIME); - console.info(`case loop is ${audioPlayer.loop}`); + console.log(`case loop is ${audioPlayer.loop}`); if ((audioPlayer.loop == true) && (seekDoneTime == DURATION_TIME)) { - console.info('case loop is true'); + console.log('case loop is true'); sleep(PLAYSTATE); } if (seekDoneTime < audioPlayer.duration || audioPlayer.state == "paused") { @@ -194,7 +187,7 @@ describe('PlayerLocalTestAudioAPI', function () { }); audioPlayer.on('volumeChange', () => { - console.info(`case setvolume called`); + console.log(`case setvolume called`); mySteps.shift(); mySteps.shift(); if (audioPlayer.state == "playing") { @@ -207,63 +200,36 @@ describe('PlayerLocalTestAudioAPI', function () { mySteps.shift(); expect(audioPlayer.state).assertEqual('stopped'); expect(audioPlayer.currentTime).assertClose(audioPlayer.duration, DELTA_TIME); - console.info(`case finish called`); + console.log(`case finish called`); nextStep(mySteps, done); }); audioPlayer.on('error', (err) => { - console.info(`case error called,errName is ${err.name}`); - console.info(`case error called,errCode is ${err.code}`); - console.info(`case error called,errMessage is ${err.message}`); - expect(err.code).assertEqual(errCode); + console.log(`case error called,errName is ${err.name}`); + console.log(`case error called,errCode is ${err.code}`); + console.log(`case error called,errMessage is ${err.message}`); if ((mySteps[0] == SEEKSTATE) || (mySteps[0] == VOLUMESTATE)) { expect(mySteps[2]).assertEqual(ERRORSTATE); - expect(err.message).assertEqual(mySteps[3]); mySteps.shift(); mySteps.shift(); mySteps.shift(); mySteps.shift(); + nextStep(mySteps, done); + } else if (mySteps[0] == ERRORSTATE) { + mySteps.shift(); + mySteps.shift(); + } else if (mySteps[0] == ENDSTATE) { + console.log('case release player error'); } else { expect(mySteps[1]).assertEqual(ERRORSTATE); - expect(err.message).assertEqual(mySteps[2]); mySteps.shift(); mySteps.shift(); mySteps.shift(); + nextStep(mySteps, done); } - nextStep(mySteps, done); }); }; - /* * - * @tc.number : SUB_MEDIA_PLAYER_createAudioPlayer_API_0100 - * @tc.name : 01.创建一个音频播放器createAudioPlayer() - * @tc.desc : testcreateAudioPlayer - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_createAudioPlayer_API_0100', 0, async function (done) { - var audioPlayerTest = media.createAudioPlayer(); - expect(audioPlayerTest != null).assertTrue(); - done(); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0100 - * @tc.name : 01.play操作在createAudioPlayer之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0100', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(PLAYSTATE, ERRORSTATE, PLAYERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.play(); - }) - /* * * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0200 * @tc.name : 02.play操作在pause之后 @@ -273,7 +239,6 @@ describe('PlayerLocalTestAudioAPI', function () { * @tc.level : Level 2 */ it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0200', 0, async function (done) { - errCode = ERRSTEP; var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); @@ -289,7 +254,6 @@ describe('PlayerLocalTestAudioAPI', function () { * @tc.level : Level 2 */ it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0300', 0, async function (done) { - errCode = ERRSTEP; var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, PLAYSTATE, ERRORSTATE, PLAYERROR, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); @@ -320,7 +284,6 @@ describe('PlayerLocalTestAudioAPI', function () { * @tc.level : Level 2 */ it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0800', 0, async function (done) { - errCode = ERRSTEP; var mySteps = new Array(SRCSTATE, RESETSTATE, PLAYSTATE, ERRORSTATE, PLAYERROR, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); @@ -336,7 +299,6 @@ describe('PlayerLocalTestAudioAPI', function () { * @tc.level : Level 2 */ it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0900', 0, async function (done) { - errCode = ERRSTEP; var mySteps = new Array(SRCSTATE, RELEASESTATE, PLAYSTATE, ERRORSTATE, PLAYERROR, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); @@ -352,7 +314,6 @@ describe('PlayerLocalTestAudioAPI', function () { * @tc.level : Level 2 */ it('SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0100', 0, async function (done) { - errCode = ERRSTEP; var mySteps = new Array(PAUSESTATE, ERRORSTATE, PAUSEERROR, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); @@ -383,7 +344,6 @@ describe('PlayerLocalTestAudioAPI', function () { * @tc.level : Level 2 */ it('SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0300', 0, async function (done) { - errCode = ERRSTEP; var mySteps = new Array(PLAYSTATE, STOPSTATE, PAUSESTATE, ERRORSTATE, PAUSEERROR, ENDSTATE); initAudioPlayer(); setCallback(mySteps, done); @@ -405,53 +365,6 @@ describe('PlayerLocalTestAudioAPI', function () { audioPlayer.src = audioSource; }) - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0800 - * @tc.name : 08.pause操作在reset之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0800', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, RESETSTATE, PAUSESTATE, ERRORSTATE, PAUSEERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0900 - * @tc.name : 09.pause操作在release之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0900', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, RELEASESTATE, PAUSESTATE, ERRORSTATE, PAUSEERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0100 - * @tc.name : 01.stop操作在createAudioPlayer之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0100', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(STOPSTATE, ERRORSTATE, STOPERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.stop(); - }) /* * * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0200 @@ -498,55 +411,6 @@ describe('PlayerLocalTestAudioAPI', function () { audioPlayer.src = audioSource; }) - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0800 - * @tc.name : 08.stop操作在reset之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0800', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, STOPSTATE, ERRORSTATE, STOPERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0900 - * @tc.name : 09.stop操作在release之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0900', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, PLAYSTATE, RELEASESTATE, STOPSTATE, ERRORSTATE, STOPERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0100 - * @tc.name : 01.seek操作在createAudioPlayer之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0100', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SEEKSTATE, SEEK_TIME, ERRORSTATE, SEEKERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - var seekTime = SEEK_TIME; - audioPlayer.seek(seekTime); - }) - /* * * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0200 * @tc.name : 02.seek操作在play之后 @@ -576,53 +440,6 @@ describe('PlayerLocalTestAudioAPI', function () { setCallback(mySteps, done); audioPlayer.src = audioSource; }) - - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0500 - * @tc.name : 05.seek操作在stop之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0500', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, SEEKSTATE, SEEK_TIME, ERRORSTATE, SEEKERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0700 - * @tc.name : 07.seek操作调用3次 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0700', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, SEEKSTATE, 6000, SEEKSTATE, 7000, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0800 - * @tc.name : 08.seek到码流任意某一点(0~码流时长) - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0800', 0, async function (done) { - var randomTime = parseInt(Math.random()*(audioPlayer.duration + 1),10); - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, randomTime, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) /* * * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0900 * @tc.name : 9.seek到起始位置(0) @@ -637,69 +454,6 @@ describe('PlayerLocalTestAudioAPI', function () { setCallback(mySteps, done); audioPlayer.src = audioSource; }) - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1000 - * @tc.name : 10.seek到结束位置(码流时长) - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1000', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME, FINISHSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1100 - * @tc.name : 11.seek操作在reset之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1100', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, SEEKSTATE, SEEK_TIME, - ERRORSTATE, SEEKERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1200 - * @tc.name : 12.seek操作在release之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1200', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, PLAYSTATE, RELEASESTATE, SEEKSTATE, SEEK_TIME, - ERRORSTATE, SEEKERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1400 - * @tc.name : 14.seek到超出码流时长 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME + DURATION_TIME, FINISHSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) /* * * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0200 @@ -731,52 +485,6 @@ describe('PlayerLocalTestAudioAPI', function () { audioPlayer.src = audioSource; }) - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0400 - * @tc.name : 04.reset操作在stop之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0500 - * @tc.name : 05.reset操作在seek之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0500', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0100 - * @tc.name : 01.release操作在createAudioPlayer之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0100', 0, async function (done) { - var mySteps = new Array(RELEASESTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.release(); - done(); - }) - /* * * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0200 * @tc.name : 02.release操作在play之后 @@ -852,237 +560,6 @@ describe('PlayerLocalTestAudioAPI', function () { audioPlayer.src = audioSource; }) - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_URI_API_0300 - * @tc.name : 003.播放文件名超长(255)的本地音频素材 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_URI_API_0300', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = "data/media/audio/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.mp3"; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_URI_API_0500 - * @tc.name : 005.播放文件名为“” - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_URI_API_0500', 0, async function (done) { - errCode = ERRSRC; - var mySteps = new Array(SRCSTATE, ERRORSTATE, SRCERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = ""; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_URI_API_0800 - * @tc.name : 008. 传入的地址不存在 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_URI_API_0800', 0, async function (done) { - errCode = 331350552; - var mySteps = new Array(SRCSTATE, ERRORSTATE, SRCERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = "data/media/audio/no.mp3"; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0100 - * @tc.name : 01.set loop true操作在createAudioPlayer之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0100', 0, async function (done) { - initAudioPlayer(); - audioPlayer.loop = true; - expect(audioPlayer.loop).assertEqual(false); - done(); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0200 - * @tc.name : 02.set loop true操作在play之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, LOOPSTATE, true, ENDSTATE, true); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0300 - * @tc.name : 03.set loop true操作在pause之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0300', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, LOOPSTATE, true, ENDSTATE, true); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0400 - * @tc.name : 04.set loop true操作在stop之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, LOOPSTATE, true, ENDSTATE, true); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0500 - * @tc.name : 05.set loop true操作在seek之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0500', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, LOOPSTATE, true, ENDSTATE, true); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0700 - * @tc.name : 07.set loop true操作在reset之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0700', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, LOOPSTATE, true, ENDSTATE, false); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0800 - * @tc.name : 08.set loop false操作在createAudioPlayer之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0800', 0, async function (done) { - initAudioPlayer(); - audioPlayer.loop = false; - expect(audioPlayer.loop).assertEqual(false); - done(); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0900 - * @tc.name : 09.set loop false操作在play之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0900', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, LOOPSTATE, false, ENDSTATE, false); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1000 - * @tc.name : 10.set loop false操作在pause之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1000', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, LOOPSTATE, false, ENDSTATE, false); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1100 - * @tc.name : 11.set loop false操作在stop之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1100', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, LOOPSTATE, false, ENDSTATE, false); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1200 - * @tc.name : 12.set loop false操作在seek之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, LOOPSTATE, false, ENDSTATE, false); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1400 - * @tc.name : 14.set loop false操作在reset之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, LOOPSTATE, false, ENDSTATE, false); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - /* * * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Time_API_0100 * @tc.name : 01.获取参数操作在createAudioPlayer之后 @@ -1120,5 +597,4 @@ describe('PlayerLocalTestAudioAPI', function () { expect(audioPlayer.loop).assertEqual(false); done(); }) - }) diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/BUILD.gn b/multimedia/audio/audio_native_standard/media_cpp_test_standard/BUILD.gn deleted file mode 100644 index dc4e9709c..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/BUILD.gn +++ /dev/null @@ -1,70 +0,0 @@ -# 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") -module_output_path = "hit/ActsMediaCppStandardTest" - -############################################################################### -config("media_cpp_config") { - visibility = [ ":*" ] - include_dirs = [ - "include", - "//multimedia/media_standard/frameworks/innerkitsimpl/native/player/include", - ] -} - -ohos_moduletest_suite("ActsMediaCppStandardTest") { - module_out_path = module_output_path - sources = [ - "recorder/src/fuction/ActsVideoRecorderTest.cpp", - "recorder/src/fuction/ActsAudioRecoederTest.cpp", - "player/Testplayer.cpp", - "player/src/function/ActsPlayerFuncTest.cpp", - "player/src/function/ActsPlayerFuncAsyncTest.cpp", - "player/src/function/ActsPlayerStateTest.cpp", - "player/src/function/ActsPlayerStateAsyncTest.cpp", - "player/src/api/01.SetSource.cpp", - "player/src/api/02.Prepare.cpp", - "player/src/api/03.Play.cpp", - "player/src/api/04.Pause.cpp", - "player/src/api/05.Stop.cpp", - "player/src/api/06.Reset.cpp", - "player/src/api/07.Seek.cpp", - "player/src/api/08.SetVolume.cpp", - "player/src/api/09.SetLooping.cpp", - "player/src/api/10.SetPlaybackSpeed.cpp", - "player/src/api/11.PrepareAsync.cpp", - "player/src/api/12.GetCurrentTime.cpp", - ] - include_dirs = [ - "include", - "player/include", - "recorder/include", - "//base/startup/syspara_lite/interfaces/innerkits/native/syspara/include", - ] - cflags = [ - "-Wall" - ] - cflags_cc = cflags - deps = [ - "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog", - "//foundation/graphic/standard:libwms_client", - "//third_party/googletest:gtest_main", - "//base/startup/syspara_lite/interfaces/innerkits/native/syspara:syspara", - ] - external_deps = [ - "ipc:ipc_core", - "multimedia_media_standard:media_client", - ] - configs = [ ":media_cpp_config" ] -} diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/Test.json b/multimedia/audio/audio_native_standard/media_cpp_test_standard/Test.json deleted file mode 100644 index f2e652539..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/Test.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "kits": [ - { - "push": [ - "ActsMediaCppStandardTest->/data/local/tmp/ActsMediaCppStandardTest" - ], - "type": "PushKit", - "post-push": [ - "chmod -R 777 /data/local/tmp/*" - ] - } - ], - "driver": { - "native-test-timeout": "120000", - "type": "CppTest", - "module-name": "ActsMediaCppStandardTest", - "runtime-hint": "1s", - "native-test-device-path": "/data/local/tmp" - }, - "description": "Configuration for ActsMediaCppStandardTest Tests" -} \ No newline at end of file diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/include/mediatest_log.h b/multimedia/audio/audio_native_standard/media_cpp_test_standard/include/mediatest_log.h deleted file mode 100644 index 6fbf44067..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/include/mediatest_log.h +++ /dev/null @@ -1,51 +0,0 @@ - -/* - * 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. - */ -#include "media_log.h" - -#define MEDIA_DEBUG_LOG(fmt, ...) \ -do { \ - printf(fmt, ##__VA_ARGS__); \ - printf("\n"); \ - __MEDIA_LOG(::OHOS::HiviewDFX::HiLog::Debug, fmt, ##__VA_ARGS__); \ -} while (0) \ - -#define MEDIA_INFO_LOG(fmt, ...) \ -do { \ - printf(fmt, ##__VA_ARGS__); \ - printf("\n"); \ - __MEDIA_LOG(::OHOS::HiviewDFX::HiLog::Info, fmt, ##__VA_ARGS__); \ -} while (0) \ - -#define MEDIA_ERROR_LOG(fmt, ...) \ -do { \ - printf(fmt, ##__VA_ARGS__); \ - printf("\n"); \ - __MEDIA_LOG(::OHOS::HiviewDFX::HiLog::Error, fmt, ##__VA_ARGS__); \ -} while (0) \ - -namespace { - constexpr OHOS::HiviewDFX::HiLogLabel LABEL = {LOG_CORE, LOG_DOMAIN, "MediaTest"}; -} - -namespace MediaTest { - constexpr int SURFACE_QUEUE_SIZE = 5; - const float VOLUME = 0.5f; - const int FIRST_ARG_IDX = 1; - const int SECOND_ARG_IDX = 2; - const int THIRD_ARG = 3; - const int HEIGHT = 720; - const int WIDTH = 1280; -} \ No newline at end of file diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/Testplayer.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/Testplayer.cpp deleted file mode 100644 index 51f2301ee..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/Testplayer.cpp +++ /dev/null @@ -1,384 +0,0 @@ - -/* - * 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. - */ - -#include "Testplayer.h" -#include "parameter.h" - -using namespace OHOS; -using namespace OHOS::Media; -using namespace PlayerNameSpace; - -namespace PlayerNameSpace { -std::string GetUri() -{ - char path[256] = "/data/1.mp4"; - GetParameter("sys.media.test.stream.path", "/data/1.mp4", &path[0], 256); - MEDIA_INFO_LOG("PATH : %s", path); - return path; -} -} -TestPlayer::TestPlayer(PlayerSignal *test) - : test_(test) -{ -} -TestPlayer::~TestPlayer() -{ -} -bool TestPlayer::CreatePlayer() -{ - player = PlayerFactory::CreatePlayer(); - if (player == nullptr) { - return false; - } - return true; -} -int32_t TestPlayer::SetSource(const std::string &uri) -{ - return player->SetSource(uri); -} - -int32_t TestPlayer::Play() -{ - int32_t ret = player->Play(); - if (test_->mutexFlag_ == true && test_->state_ != PLAYER_STARTED) { - std::unique_lock lockPlay(test_->mutexPlay_); - test_->condVarPlay_.wait_for(lockPlay, std::chrono::seconds(WAITSECOND)); - if (test_->state_ != PLAYER_STARTED) { - return -1; - } - } - return ret; -} - -int32_t TestPlayer::Prepare() -{ - int32_t ret = player->Prepare(); - if (test_->mutexFlag_ == true && test_->state_ != PLAYER_PREPARED) { - std::unique_lock lockPrepare(test_->mutexPrepare_); - test_->condVarPrepare_.wait_for(lockPrepare, std::chrono::seconds(WAITSECOND)); - if (test_->state_ != PLAYER_PREPARED) { - return -1; - } - } - return ret; -} - -int32_t TestPlayer::PrepareAsync() -{ - int32_t ret = player->PrepareAsync(); - if (test_->mutexFlag_ == true && test_->state_ != PLAYER_PREPARED) { - std::unique_lock lockPrepare(test_->mutexPrepare_); - test_->condVarPrepare_.wait_for(lockPrepare, std::chrono::seconds(WAITSECOND)); - if (test_->state_ != PLAYER_PREPARED) { - return -1; - } - } - return ret; -} - -int32_t TestPlayer::Pause() -{ - int32_t ret = player->Pause(); - if (test_->mutexFlag_ == true && test_->state_ != PLAYER_PAUSED) { - std::unique_lock lockPause(test_->mutexPause_); - test_->condVarPause_.wait_for(lockPause, std::chrono::seconds(WAITSECOND)); - if (test_->state_ != PLAYER_PAUSED) { - return -1; - } - } - return ret; -} - -int32_t TestPlayer::Stop() -{ - int32_t ret = player->Stop(); - if (test_->mutexFlag_ == true && test_->state_ != PLAYER_STOPPED) { - std::unique_lock lockStop(test_->mutexStop_); - test_->condVarStop_.wait_for(lockStop, std::chrono::seconds(WAITSECOND)); - if (test_->state_ != PLAYER_STOPPED) { - return -1; - } - } - return ret; -} - -int32_t TestPlayer::Reset() -{ - int32_t ret = player->Reset(); - if (test_->mutexFlag_ == true && test_->state_ != PLAYER_IDLE) { - std::unique_lock lockReset(test_->mutexReset_); - test_->condVarReset_.wait_for(lockReset, std::chrono::seconds(WAITSECOND)); - if (test_->state_ != PLAYER_IDLE) { - return -1; - } - } - return ret; -} - -int32_t TestPlayer::Release() -{ - return player->Release(); -} - -int32_t TestPlayer::SetVolume(float leftVolume, float rightVolume) -{ - return player->SetVolume(leftVolume, rightVolume); -} - -int32_t TestPlayer::Seek(int32_t mseconds, PlayerSeekMode mode) -{ - test_->seekDoneFlag_ = false; - test_->seekPositon_ = mseconds; - int32_t ret = player->Seek(mseconds, mode); - if (test_->mutexFlag_ == true && test_->seekDoneFlag_ == false) { - std::unique_lock lockSeek(test_->mutexSeek_); - test_->condVarSeek_.wait_for(lockSeek, std::chrono::seconds(WAITSECOND)); - if (test_->seekDoneFlag_ != true) { - return -1; - } - } - return ret; -} - -int32_t TestPlayer::GetCurrentTime(int32_t ¤tTime) -{ - return player->GetCurrentTime(currentTime); -} - -int32_t TestPlayer::GetDuration(int32_t &duration) -{ - return player->GetDuration(duration); -} - -int32_t TestPlayer::SetPlaybackSpeed(PlaybackRateMode mode) -{ - return player->SetPlaybackSpeed(mode); -} - -int32_t TestPlayer::GetPlaybackSpeed(PlaybackRateMode &mode) -{ - return player->GetPlaybackSpeed(mode); -} -sptr TestPlayer::GetVideoSurface(WindowConfig sub_config) -{ - char surface[256] = "null"; - GetParameter("sys.media.test.surface", "null", &surface[0], 256); - mwindow = WindowManager::GetInstance()->CreateWindow(&g_config); - if (mwindow == nullptr) { - MEDIA_ERROR_LOG("Create mwindow failed!!!"); - return nullptr; - } - sptr videoSurface = nullptr; - if (strcmp(surface, "null") == 0) { - return videoSurface; - } - if (strcmp(surface, "subwindow") == 0) { - InitSubWindow(sub_config); - videoSurface = window->GetSurface(); - } else if (strcmp(surface, "window") == 0) { - videoSurface = mwindow->GetSurface(); - videoSurface->SetUserData(SURFACE_FORMAT, std::to_string(PIXEL_FMT_RGBA_8888)); - std::string format = videoSurface->GetUserData(SURFACE_FORMAT); - MEDIA_INFO_LOG("SetUserData SURFACE_FORMAT = %s", format.c_str()); - } - return videoSurface; -} -int32_t TestPlayer::SetVideoSurface(const sptr surface) -{ - char parameter[256] = "null"; - GetParameter("sys.media.test.surface", "null", ¶meter[0], 256); - if (strcmp(parameter, "null") == 0) { - MEDIA_INFO_LOG("sys.media.test.surface null"); - return 0; - } - return player->SetVideoSurface(surface); -} - -bool TestPlayer::IsPlaying() -{ - return player->IsPlaying(); -} - -bool TestPlayer::IsLooping() -{ - return player->IsLooping(); -} - -int32_t TestPlayer::SetLooping(bool loop) -{ - return player->SetLooping(loop); -} - -int32_t TestPlayer::SetPlayerCallback(const std::shared_ptr &callback) -{ - return player->SetPlayerCallback(callback); -} - -void TestPlayer::InitSubWindow(WindowConfig sub_config) -{ - sptr buffer; - BufferRequestConfig requestConfig; - int32_t releaseFence; - mwindow->GetRequestConfig(requestConfig); - (void)mwindow->GetSurface()->RequestBuffer(buffer, releaseFence, requestConfig); - uint32_t buffSize = buffer->GetSize(); - void *bufferVirAddr = buffer->GetVirAddr(); - (void)memset_s(bufferVirAddr, buffSize, 0, buffSize); - BufferFlushConfig flushConfig = { - .damage = { - .x = 0, - .y = 0, - .w = requestConfig.width, - .h = requestConfig.height, - }, - .timestamp = 0, - }; - if (mwindow->GetSurface()->FlushBuffer(buffer, -1, flushConfig) != 0) { - MEDIA_ERROR_LOG("FlushBuffer failed"); - } - window = WindowManager::GetInstance()->CreateSubWindow(mwindow->GetWindowID(), &sub_config); - ASSERT_NE(nullptr, window); - if (window == nullptr) { - MEDIA_ERROR_LOG("Create window failed!!!"); - return; - } - return; -} - -TestPlayerCallback::TestPlayerCallback(PlayerSignal *test) - : test_(test) -{ -} -TestPlayerCallback::~TestPlayerCallback() -{ -} -void TestPlayerCallback::OnError(PlayerErrorType errorType, int32_t errorCode) -{ - errorNum++; - errorType_ = errorType; - errorCode_ = errorCode; - MEDIA_INFO_LOG("TestPlayerCallback: OnError errorType is %d, errorCode is %d", errorType_, errorCode_); -} -void TestPlayerCallback::OnInfo(PlayerOnInfoType type, int32_t extra, const Format &InfoBody) -{ - switch (type) { - case INFO_TYPE_SEEKDONE: - seekDoneFlag = true; - test_->SetSeekResult(true); - MEDIA_INFO_LOG("TestPlayerCallback: OnSeekDone currentPositon is %d", extra); - if (abs(test_->seekPositon_ - extra) <= DELTA_TIME) { - test_->condVarSeek_.notify_all(); - } else { - test_->SetSeekResult(false); - } - break; - case INFO_TYPE_EOS: - MEDIA_INFO_LOG("TestPlayerCallback: OnEndOfStream isLooping is %d", extra); - break; - case INFO_TYPE_STATE_CHANGE: - state_ = static_cast(extra); - test_->SetState(state_); - PrintState(state_); - break; - case INFO_TYPE_POSITION_UPDATE: - postion_ = extra; - break; - case INFO_TYPE_MESSAGE: - MEDIA_INFO_LOG("TestPlayerCallback: OnMessage type is %d", extra); - break; - default: - break; - } -} - -int TestPlayerCallback::WaitForSeekDone(int32_t currentPositon) -{ - int64_t waitTime = 0; - seekDoneFlag = false; - while (seekDoneFlag != true && waitTime < WAITSECOND * 1000) { - usleep(1000); - waitTime += 1; - } - seekDoneFlag = false; - if (waitTime >= WAITSECOND * 1000) { - MEDIA_INFO_LOG("Failed to seek [%d]s ", currentPositon); - return -1; - } - return 0; -} - -int TestPlayerCallback::WaitForState(PlayerStates state) -{ - int64_t waitTime = 0; - while (state_ != state && waitTime < WAITSECOND * 1000) { - usleep(1000); - waitTime += 1; - } - if (waitTime >= WAITSECOND * 1000) { - MEDIA_INFO_LOG("Failed to wait for state[%d] down", state); - return -1; - } - return 0; -} -void TestPlayerCallback::PrintState(PlayerStates state) -{ - switch (state) { - case PLAYER_STATE_ERROR: - MEDIA_INFO_LOG("State: Error"); - break; - case PLAYER_IDLE: - MEDIA_INFO_LOG("State: IDLE"); - test_->condVarReset_.notify_all(); - break; - case PLAYER_INITIALIZED: - MEDIA_INFO_LOG("State: Initialized"); - break; - case PLAYER_PREPARING: - MEDIA_INFO_LOG("State: Preparing"); - break; - case PLAYER_PREPARED: - MEDIA_INFO_LOG("State: Prepared"); - test_->condVarPrepare_.notify_all(); - break; - case PLAYER_STARTED: - MEDIA_INFO_LOG("State: Started"); - test_->condVarPlay_.notify_all(); - break; - case PLAYER_PAUSED: - MEDIA_INFO_LOG("State: Paused"); - test_->condVarPause_.notify_all(); - break; - case PLAYER_STOPPED: - MEDIA_INFO_LOG("State: Stopped"); - test_->condVarStop_.notify_all(); - break; - case PLAYER_PLAYBACK_COMPLETE: - MEDIA_INFO_LOG("State: Complete"); - break; - default: - MEDIA_INFO_LOG("Invalid state"); - break; - } -} - -void PlayerSignal::SetState(PlayerStates state) -{ - state_ = state; -} -void PlayerSignal::SetSeekResult(bool seekDoneFlag) -{ - seekDoneFlag_ = seekDoneFlag; -} diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/ActsPlayerAPITest.h b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/ActsPlayerAPITest.h deleted file mode 100644 index 0757235bb..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/ActsPlayerAPITest.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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. - */ -#ifndef PLAYER_API_TEST_H -#define PLAYER_API_TEST_H - -#include "Testplayer.h" - -namespace OHOS { -namespace Media { -class ActsPlayerAPITest : public testing::Test { -public: - // SetUpTestCase: before all testcasee - static void SetUpTestCase(void) - { - MEDIA_INFO_LOG("ActsPlayerAPITest::SetUpTestCase"); - }; - // TearDownTestCase: after all testcase - static void TearDownTestCase(void) - { - MEDIA_INFO_LOG("ActsPlayerAPITest::TearDownTestCase"); - }; - // SetUp - void SetUp(void) - { - MEDIA_INFO_LOG("ActsPlayerAPITest::SetUp"); - }; - // TearDown - void TearDown(void) - { - MEDIA_INFO_LOG("ActsPlayerAPITest::TearDown"); - }; - void LocalPlayFunc(const std::string uri, bool isAsync, WindowConfig config = g_config); -}; -} -} -#endif diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/ActsPlayerFuncTest.h b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/ActsPlayerFuncTest.h deleted file mode 100644 index 58b453f62..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/ActsPlayerFuncTest.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * 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. - */ -#ifndef PLAYER_FUNC_TEST_H -#define PLAYER_FUNC_TEST_H - -#include "Testplayer.h" - -namespace OHOS { -namespace Media { -class ActsPlayerFuncTest : public testing::Test { -public: - // SetUpTestCase: before all testcasee - static void SetUpTestCase(void) - { - MEDIA_INFO_LOG("ActsPlayerFuncTest::SetUpTestCase"); - }; - // TearDownTestCase: after all testcase - static void TearDownTestCase(void) - { - MEDIA_INFO_LOG("ActsPlayerFuncTest::TearDownTestCase"); - }; - // SetUp - void SetUp(void) - { - MEDIA_INFO_LOG("ActsPlayerFuncTest::SetUp"); - }; - // TearDown - void TearDown(void) - { - MEDIA_INFO_LOG("ActsPlayerFuncTest::TearDown"); - }; - static void LocalPlayFunc(const std::string uri, bool isAsync, WindowConfig config = g_sub_config); - static void *LocalMulitPlayFunc(void *threadarg); -}; -} -} -#endif diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/Testplayer.h b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/Testplayer.h deleted file mode 100644 index 4017d54bc..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/Testplayer.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - * 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. - */ - -#include "securec.h" -#include "common.h" -#include "player.h" -#include "mediatest_log.h" -#include "window_manager.h" -#include "surface_type.h" -#include "display_type.h" - -namespace PlayerNameSpace { - static const int MAX_THREADS = 16; - static const int32_t PLAYING_TIME = 3; - static const int32_t PAUSED_TIME = 1; - static const int32_t SEEK_TIME_5_SEC = 5000; - static const int32_t SEEK_TIME_2_SEC = 2000; - static const int DELTA_TIME = 1000; - static const int WAITSECOND = 2; - static const int MAXTIME = 20; - static const int RET_OK = 0; - static const int32_t FILE_BEGIN = 0; - std::string GetUri(); -} - -namespace OHOS { -namespace Media { -static const std::string SURFACE_STRIDE_ALIGNMENT = "SURFACE_STRIDE_ALIGNMENT"; -static const std::string SURFACE_FORMAT = "SURFACE_FORMAT"; -static WindowConfig g_config = { - 1920, - 1080, - PIXEL_FMT_RGBA_8888, - 0, - 0, - WINDOW_TYPE_NORMAL -}; -static WindowConfig g_sub_config = { - 720, - 480, - PIXEL_FMT_YCRCB_420_SP, - 0, - 0, - WINDOW_TYPE_VIDEO, -}; - -class PlayerSignal { -public: - PlayerStates state_ = PLAYER_IDLE; - int32_t seekPositon_; - bool seekDoneFlag_; - bool mutexFlag_ = true; - std::mutex mutexSeek_; - std::mutex mutexReset_; - std::mutex mutexPrepare_; - std::mutex mutexPlay_; - std::mutex mutexPause_; - std::mutex mutexStop_; - std::condition_variable condVarSeek_; - std::condition_variable condVarReset_; - std::condition_variable condVarPrepare_; - std::condition_variable condVarPlay_; - std::condition_variable condVarPause_; - std::condition_variable condVarStop_; - - void SetState(PlayerStates state); - void SetSeekResult(bool seekDoneFlag); -}; -class TestPlayer { -public: - std::shared_ptr player; - std::unique_ptr mwindow; - std::unique_ptr window; - explicit TestPlayer(PlayerSignal *test); - ~TestPlayer(); - bool CreatePlayer(); - int32_t SetSource(const std::string &uri); - int32_t Play(); - int32_t Prepare(); - int32_t PrepareAsync(); - int32_t Pause(); - int32_t Stop(); - int32_t Reset(); - int32_t Release(); - int32_t SetVolume(float leftVolume, float rightVolume); - int32_t Seek(int32_t mseconds, PlayerSeekMode mode); - int32_t GetCurrentTime(int32_t ¤tTime); - int32_t GetDuration(int32_t &duration); - int32_t SetPlaybackSpeed(PlaybackRateMode mode); - int32_t GetPlaybackSpeed(PlaybackRateMode &mode); - sptr GetVideoSurface(WindowConfig g_sub_config); - int32_t SetVideoSurface(sptr surface); - bool IsPlaying(); - bool IsLooping(); - int32_t SetLooping(bool loop); - int32_t SetPlayerCallback(const std::shared_ptr &callback); -private: - void InitSubWindow(WindowConfig sub_config); - - PlayerSignal *test_; -}; -class TestPlayerCallback : public PlayerCallback { -public: - int errorNum = 0; - PlayerStates state_ = PLAYER_STATE_ERROR; - explicit TestPlayerCallback(PlayerSignal *test); - ~TestPlayerCallback(); - void OnError(PlayerErrorType errorType, int32_t errorCode); - int WaitForSeekDone(int32_t currentPositon); - void OnInfo(PlayerOnInfoType type, int32_t extra, const Format &InfoBody = {}); - int WaitForState(PlayerStates state); -private: - PlayerErrorType errorType_ = PLAYER_ERROR_UNKNOWN; - int32_t errorCode_ = -1; - bool seekDoneFlag = false; - int32_t postion_ = 0; - void PrintState(PlayerStates state); - - PlayerSignal *test_; -}; -} -} diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/common.h b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/common.h deleted file mode 100644 index a3655b3e1..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/include/common.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * 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. - */ - -#include "gtest/gtest.h" - -#define MOUNT_147 "/data/147" -#define MOUNT_189 "/data/189" - diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/01.SetSource.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/01.SetSource.cpp deleted file mode 100644 index bf316c679..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/01.SetSource.cpp +++ /dev/null @@ -1,333 +0,0 @@ -/* - * 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. - */ -#include "ActsPlayerAPITest.h" -#include "player.h" -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetSource_0100 - * @tc.name : 01.SetSource操作在new之后 - * @tc.desc : test SetSource -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetSource_0100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetSource_0200 - * @tc.name : 02.SetSource操作在PrepareAsync之后 - * @tc.desc : test SetSource -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetSource_0200, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_NE(RET_OK, player->SetSource(uri)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetSource_0300 - * @tc.name : 03.SetSource操作在Prepare之后 - * @tc.desc : test SetSource -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetSource_0300, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_NE(RET_OK, player->SetSource(uri)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetSource_0400 - * @tc.name : 04.SetSource操作在Play之后 - * @tc.desc : test SetSource -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetSource_0400, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->SetSource(uri)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetSource_0500 - * @tc.name : 05.SetSource操作在Pause之后 - * @tc.desc : test SetSource -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetSource_0500, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_NE(RET_OK, player->SetSource(uri)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetSource_0600 - * @tc.name : 06.SetSource操作在Seek之后 - * @tc.desc : test SetSource -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetSource_0600, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_NE(RET_OK, player->SetSource(uri)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetSource_0700 - * @tc.name : 07.SetSource操作在Stop之后 - * @tc.desc : test SetSource -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetSource_0700, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->SetSource(uri)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetSource_0800 - * @tc.name : 08.SetSource操作在Reset之后 - * @tc.desc : test SetSource -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetSource_0800, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetSource_0900 - * @tc.name : 09.SetSource操作在SetVideoSurface之后 - * @tc.desc : test SetSource -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetSource_0900, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - EXPECT_NE(RET_OK, player->SetSource(uri)); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetSource_1000 - * @tc.name : 10.SetSource操作调用3次 - * @tc.desc : test SetSource -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetSource_1000, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - EXPECT_NE(RET_OK, player->SetSource(uri)); - EXPECT_NE(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetSource_1100 - * @tc.name : 11.SetSource操作在每个可进行的操作后都调用一次 - * @tc.desc : test SetSource -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetSource_1100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - EXPECT_NE(RET_OK, player->SetSource(uri)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_NE(RET_OK, player->SetSource(uri)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->SetSource(uri)); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_NE(RET_OK, player->SetSource(uri)); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_NE(RET_OK, player->SetSource(uri)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_NE(RET_OK, player->SetSource(uri)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->SetSource(uri)); - EXPECT_EQ(RET_OK, player->Reset()); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} \ No newline at end of file diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/02.Prepare.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/02.Prepare.cpp deleted file mode 100644 index 4401f6894..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/02.Prepare.cpp +++ /dev/null @@ -1,351 +0,0 @@ -/* - * 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. - */ -#include "ActsPlayerAPITest.h" -#include "player.h" -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Prepare_0100 - * @tc.name : 01.Prepare操作在new之后 - * @tc.desc : test Prepare -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Prepare_0100, Reliability | SmallTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - EXPECT_NE(RET_OK, player->Prepare()); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Prepare_0200 - * @tc.name : 02.Prepare操作在PrepareAsync之后 - * @tc.desc : test Prepare -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Prepare_0200, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_NE(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Prepare_0300 - * @tc.name : 03.Prepare操作在SetSource之后 - * @tc.desc : test Prepare -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Prepare_0300, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - player->SetVideoSurface(videoSurface); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Prepare_0400 - * @tc.name : 04.Prepare操作在Play之后 - * @tc.desc : test Prepare -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Prepare_0400, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_NE(RET_OK, player->Prepare()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Prepare_0500 - * @tc.name : 05.Prepare操作在Pause之后 - * @tc.desc : test Prepare -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Prepare_0500, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Prepare_0600 - * @tc.name : 06.Prepare操作在Seek之后 - * @tc.desc : test Prepare -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Prepare_0600, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_NE(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Prepare_0700 - * @tc.name : 07.Prepare操作在Stop之后 - * @tc.desc : test Prepare -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Prepare_0700, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Prepare_0800 - * @tc.name : 08.Prepare操作在Reset之后 - * @tc.desc : test Prepare -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Prepare_0800, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_NE(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Prepare_0900 - * @tc.name : 09.Prepare操作在SetVideoSurface之后 - * @tc.desc : test Prepare -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Prepare_0900, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Prepare_1000 - * @tc.name : 10.Prepare操作调用3次 - * @tc.desc : test Prepare -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Prepare_1000, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_NE(RET_OK, player->Prepare()); - EXPECT_NE(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Prepare_1100 - * @tc.name : 11.Prepare操作在每个可进行的操作后都调用一次 - * @tc.desc : test Prepare -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Prepare_1100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_NE(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_NE(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/03.Play.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/03.Play.cpp deleted file mode 100644 index 72616a595..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/03.Play.cpp +++ /dev/null @@ -1,375 +0,0 @@ -/* - * 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. - */ -#include "ActsPlayerAPITest.h" -#include "player.h" -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Play_0100 - * @tc.name : 01.Play操作在new之后 - * @tc.desc : test Play -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Play_0100, Reliability | SmallTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - EXPECT_NE(RET_OK, player->Prepare()); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Play_0200 - * @tc.name : 02.Play操作在PrepareAsync之后 - * @tc.desc : test Play -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Play_0200, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Play_0300 - * @tc.name : 03.Play操作在Prepare之后 - * @tc.desc : test Play -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Play_0300, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Play_0400 - * @tc.name : 03.Play操作在SetSource之后 - * @tc.desc : test Play -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Play_0400, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - int32_t time; - EXPECT_NE(RET_OK, player->Play()); - EXPECT_FALSE(player->IsPlaying()); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(2000, time); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Play_0500 - * @tc.name : 05.Play操作在Pause之后 - * @tc.desc : test Play -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Play_0500, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Play_0600 - * @tc.name : 06.Play操作在Seek之后 - * @tc.desc : test Play -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Play_0600, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Play_0700 - * @tc.name : 07.Play操作在Stop之后 - * @tc.desc : test Play -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Play_0700, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Play()); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Play_0800 - * @tc.name : 08.Play操作在Reset之后 - * @tc.desc : test Play -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Play_0800, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Play_0900 - * @tc.name : 09.Play操作在SetVideoSurface之后 - * @tc.desc : test Play -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Play_0900, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - EXPECT_NE(RET_OK, player->Play()); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Play_1000 - * @tc.name : 10.Play操作调用3次 - * @tc.desc : test Play -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Play_1000, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Play_1100 - * @tc.name : 11.Play操作在每个可进行的操作后都调用一次 - * @tc.desc : test Play -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Play_1100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} \ No newline at end of file diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/04.Pause.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/04.Pause.cpp deleted file mode 100644 index 4ac788bda..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/04.Pause.cpp +++ /dev/null @@ -1,319 +0,0 @@ -/* - * 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. - */ -#include "ActsPlayerAPITest.h" -#include "player.h" -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Pause_0100 - * @tc.name : 01.Pause操作在new之后 - * @tc.desc : test Pause -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Pause_0100, Reliability | SmallTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - EXPECT_NE(RET_OK, player->Pause()); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Pause_0200 - * @tc.name : 02.Pause操作在PrepareAsync之后 - * @tc.desc : test Pause -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Pause_0200, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_NE(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Pause_0300 - * @tc.name : 03.Pause操作在Prepare之后 - * @tc.desc : test Pause -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Pause_0300, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_NE(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Pause_0500 - * @tc.name : 05.Pause操作在Play之后 - * @tc.desc : test Pause -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Pause_0500, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Pause_0600 - * @tc.name : 06.Pause操作在Seek之后 - * @tc.desc : test Pause -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Pause_0600, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Pause_0700 - * @tc.name : 07.Pause操作在Stop之后 - * @tc.desc : test Pause -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Pause_0700, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_NE(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Pause_0800 - * @tc.name : 08.Pause操作在Reset之后 - * @tc.desc : test Pause -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Pause_0800, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_NE(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Pause_0900 - * @tc.name : 09.Pause操作在SetVideoSurface之后 - * @tc.desc : test Pause -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Pause_0900, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - EXPECT_NE(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Pause_1000 - * @tc.name : 10.Pause操作调用3次 - * @tc.desc : test Pause -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Pause_1000, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Pause_1100 - * @tc.name : 10.Pause操作在每个可进行的操作后都调用一次 - * @tc.desc : test Pause -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Pause_1100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - EXPECT_NE(RET_OK, player->Pause()); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - EXPECT_NE(RET_OK, player->Pause()); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_NE(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_NE(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} \ No newline at end of file diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/05.Stop.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/05.Stop.cpp deleted file mode 100644 index bc618006b..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/05.Stop.cpp +++ /dev/null @@ -1,300 +0,0 @@ -/* - * 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. - */ -#include "ActsPlayerAPITest.h" -#include "player.h" -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Stop_0100 - * @tc.name : 01.Stop操作在new之后 - * @tc.desc : test Stop -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Stop_0100, Reliability | SmallTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - EXPECT_NE(RET_OK, player->Stop()); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Stop_0200 - * @tc.name : 02.Stop操作在PrepareAsync之后 - * @tc.desc : test Stop -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Stop_0200, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - EXPECT_NE(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Stop_0300 - * @tc.name : 03.Stop操作在Prepare之后 - * @tc.desc : test Stop -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Stop_0300, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - EXPECT_NE(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Stop_0400 - * @tc.name : 04.Stop操作在Play之后 - * @tc.desc : test Stop -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Stop_0400, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Stop_0500 - * @tc.name : 05.Stop操作在Pause之后 - * @tc.desc : test Stop -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Stop_0500, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Stop_0600 - * @tc.name : 06.Stop操作在Seek之后 - * @tc.desc : test Stop -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Stop_0600, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Stop_0800 - * @tc.name : 08.Stop操作在Reset之后 - * @tc.desc : test Stop -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Stop_0800, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_NE(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Stop_0900 - * @tc.name : 09.Stop操作在SetVideoSurface之后 - * @tc.desc : test Stop -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Stop_0900, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Stop_1000 - * @tc.name : 10.Stop操作调用3次 - * @tc.desc : test Stop -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Stop_1000, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Stop_1100 - * @tc.name : 11.Stop操作在每个可进行的操作后都调用一次 - * @tc.desc : test Stop -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Stop_1100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - EXPECT_NE(RET_OK, player->Stop()); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - EXPECT_NE(RET_OK, player->Stop()); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_NE(RET_OK, player->Play()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_NE(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/06.Reset.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/06.Reset.cpp deleted file mode 100644 index eb8ac59f8..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/06.Reset.cpp +++ /dev/null @@ -1,248 +0,0 @@ -/* - * 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. - */ -#include "ActsPlayerAPITest.h" -#include "player.h" -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Reset_0100 - * @tc.name : 01.Reset操作在new之后 - * @tc.desc : test Reset -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Reset_0100, Reliability | SmallTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - EXPECT_EQ(RET_OK, player->Reset()); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Reset_0200 - * @tc.name : 02.Reset操作在PrepareAsync之后 - * @tc.desc : test Reset -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Reset_0200, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Reset_0300 - * @tc.name : 03.Reset操作在Prepare之后 - * @tc.desc : test Reset -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Reset_0300, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Reset()); - - ASSERT_EQ(RET_OK, player->SetSource(uri)); - videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Reset_0400 - * @tc.name : 04.Reset操作在Play之后 - * @tc.desc : test Reset -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Reset_0400, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Reset_0500 - * @tc.name : 05.Reset操作在Pause之后 - * @tc.desc : test Reset -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Reset_0500, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Reset_0600 - * @tc.name : 06.Reset操作在Seek之后 - * @tc.desc : test Reset -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Reset_0600, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Reset_0700 - * @tc.name : 07.Reset操作在Stop之后 - * @tc.desc : test Reset -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Reset_0700, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Reset_0900 - * @tc.name : 09.Reset操作在SetVideoSurface之后 - * @tc.desc : test Reset -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Reset_0900, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Reset_1000 - * @tc.name : 10.Reset操作调用3次 - * @tc.desc : test Reset -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Reset_1000, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} \ No newline at end of file diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/07.Seek.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/07.Seek.cpp deleted file mode 100644 index 1a2468b4b..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/07.Seek.cpp +++ /dev/null @@ -1,568 +0,0 @@ -/* - * 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. - */ - -#include "ActsPlayerAPITest.h" -#include "player.h" -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_0100 - * @tc.name : 01.Seek操作在new之后 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_0100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_0200 - * @tc.name : 02.Seek操作在PrepareAsync之后 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_0200, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_0300 - * @tc.name : 03.Seek操作在Prepare之后 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_0300, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_0400 - * @tc.name : 04.Seek操作在Play之后 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_0400, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_0500 - * @tc.name : 05.Seek操作在Stop之后 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_0500, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_0600 - * @tc.name : 06.Seek操作在Pause之后 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_0600, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_0800 - * @tc.name : 08.Seek操作在Reset之后 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_0800, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_0900 - * @tc.name : 09.Seek操作在SetVideoSurface之后 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_0900, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_NE(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_1000 - * @tc.name : 10.Seek操作调用3次 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_1000, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_1100 - * @tc.name : 11.seek到码流任意某一点(0~码流时长) - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_1100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - int32_t duration; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(duration)); - time = duration * 2 / 3; - EXPECT_EQ(RET_OK, player->Seek(time, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(duration * 2 / 3, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_1200 - * @tc.name : 12.seek到起始位置(0) - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_1200, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Seek(FILE_BEGIN, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_1300 - * @tc.name : 13.seek到结束位置(码流时长),播放 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_1300, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - int32_t duration; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(duration)); - EXPECT_EQ(RET_OK, player->Seek(duration, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(duration, time); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_1325 - * @tc.name : 13.seek到结束位置(码流时长),暂停 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_1325, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - int32_t duration; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(duration)); - EXPECT_EQ(RET_OK, player->Seek(duration, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(duration, time); - EXPECT_NE(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_1350 - * @tc.name : 13.seek到结束位置(码流时长),再seek随机位置播放, - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_1350, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - int32_t duration; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(duration)); - EXPECT_EQ(RET_OK, player->Seek(duration, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(duration, time); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_1375 - * @tc.name : 13.seek到结束位置(码流时长),再seek随机位置暂停 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_1375, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - int32_t duration; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(duration)); - EXPECT_EQ(RET_OK, player->Seek(duration, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(duration, time); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_1400 - * @tc.name : 14.seek不存在的时间点 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_1400, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - int32_t duration; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(-1, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(FILE_BEGIN, time); - EXPECT_EQ(RET_OK, player->GetDuration(duration)); - EXPECT_EQ(RET_OK, player->Seek(duration + 1, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(duration, time); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_1500 - * @tc.name : 15.seek操作在每个可进行的操作后都调用一次 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_Seek_1500, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/08.SetVolume.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/08.SetVolume.cpp deleted file mode 100644 index 847d69adf..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/08.SetVolume.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* - * 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. - */ -#include "ActsPlayerAPITest.h" -#include "player.h" -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetVolume_0100 - * @tc.name : 01.SetVolume 0 0 - * @tc.desc : test SetVolume -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetVolume_0100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->SetVolume(0, 0)); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetVolume_0200 - * @tc.name : 02.SetVolume 1.0 1.0 - * @tc.desc : test SetVolume -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetVolume_0200, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->SetVolume(1.0, 1.0)); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} \ No newline at end of file diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/09.SetLooping.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/09.SetLooping.cpp deleted file mode 100644 index 46f368f15..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/09.SetLooping.cpp +++ /dev/null @@ -1,447 +0,0 @@ -/* - * 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. - */ -#include "ActsPlayerAPITest.h" -#include "player.h" -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetLooping_0100 - * @tc.name : 01.set loop true操作在createAudioPlayer之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetLooping_0100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - EXPECT_NE(RET_OK, player->SetLooping(true)); - EXPECT_FALSE(player->IsLooping()); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetLooping_0200 - * @tc.name : 02.set loop true操作在play之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetLooping_0200, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetLooping_0300 - * @tc.name : 03.set loop true操作在pause之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetLooping_0300, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetLooping_0400 - * @tc.name : 04.set loop true操作在stop之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetLooping_0400, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetLooping_0500 - * @tc.name : 05.set loop true操作在seek之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetLooping_0500, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetLooping_0600 - * @tc.name : 06.set loop true操作在set loop true之后的每个可进行的操作后都调用一次 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetLooping_0600, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - EXPECT_NE(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_NE(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetLooping_0700 - * @tc.name : 07.set loop true操作调用3次 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetLooping_0700, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsLooping()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetLooping_0800 - * @tc.name : 08.set loop false操作在play之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetLooping_0800, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetLooping_0900 - * @tc.name : 09.set loop false操作在pause之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetLooping_0900, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetLooping_1000 - * @tc.name : 010.set loop false操作在stop之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetLooping_1000, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetLooping_1100 - * @tc.name : 011.set loop false操作在seek之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetLooping_1100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetLooping_1200 - * @tc.name : 012.set loop false操作在set loop false之后的每个可进行的操作后都调用一次 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetLooping_1200, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - EXPECT_NE(RET_OK, player->SetLooping(false)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_NE(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetLooping_1300 - * @tc.name : 013.set loop false操作调用3次 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetLooping_1300, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/10.SetPlaybackSpeed.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/10.SetPlaybackSpeed.cpp deleted file mode 100644 index 79658fa8b..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/10.SetPlaybackSpeed.cpp +++ /dev/null @@ -1,380 +0,0 @@ -/* - * 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. - */ - -#include "ActsPlayerAPITest.h" -#include "player.h" -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0100 - * @tc.name : 01.SetPlaybackSpeed操作在createAudioPlayer之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - PlaybackRateMode mode; - EXPECT_NE(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_NE(RET_OK, player->GetPlaybackSpeed(mode)); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0200 - * @tc.name : 02.SetPlaybackSpeed操作在play之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0200, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - PlaybackRateMode mode; - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_0_75_X, mode); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0300 - * @tc.name : 03.SetPlaybackSpeed操作在pause之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0300, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - PlaybackRateMode mode; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_0_75_X, mode); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0400 - * @tc.name : 04.SetPlaybackSpeed操作在stop之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0400, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - PlaybackRateMode mode; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0500 - * @tc.name : 05.SetPlaybackSpeed操作在seek之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0500, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - PlaybackRateMode mode; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0600 - * @tc.name : 06.SetPlaybackSpeed操作在SetPlaybackSpeed之后的每个可进行的操作后都调用一次 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0600, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - PlaybackRateMode mode; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_0_75_X, mode); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_0_75_X, mode); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_0_75_X, mode); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_0_75_X, mode); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_0_75_X, mode); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_0_75_X, mode); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_NE(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_NE(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0700 - * @tc.name : 07.SetPlaybackSpeed操作调用3次 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0700, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - PlaybackRateMode mode; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_0_75_X, mode); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_1_25_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_1_25_X, mode); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_1_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_1_75_X, mode); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_2_00_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_2_00_X, mode); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0800 - * @tc.name : 08.SetPlaybackSpeed操作在Prepare之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0800, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - PlaybackRateMode mode; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_0_75_X, mode); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0900 - * @tc.name : 08.SetPlaybackSpeed操作在PrepareAsync之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_0900, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - PlaybackRateMode mode; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_0_75_X, mode); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_1000 - * @tc.name : 10.SetPlaybackSpeed操作在SetSource之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_1000, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - PlaybackRateMode mode; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - EXPECT_NE(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_NE(RET_OK, player->GetPlaybackSpeed(mode)); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_1100 - * @tc.name : 10.SetPlaybackSpeed操作在PLAYER_PLAYBACK_COMPLETE之后 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_1100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - PlaybackRateMode mode; - int32_t durationTime; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_0_75_X, mode); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_1200 - * @tc.name : 10.SetPlaybackSpeed操作在PLAYER_PLAYBACK_COMPLETE之后,loop=1 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_SetPlaybackSpeed_1200, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - PlaybackRateMode mode; - int32_t durationTime; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(RET_OK, player->SetPlaybackSpeed(SPEED_FORWARD_0_75_X)); - EXPECT_EQ(RET_OK, player->GetPlaybackSpeed(mode)); - EXPECT_EQ(SPEED_FORWARD_0_75_X, mode); - sleep(PLAYING_TIME); - EXPECT_EQ(SPEED_FORWARD_0_75_X, mode); -} \ No newline at end of file diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/11.PrepareAsync.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/11.PrepareAsync.cpp deleted file mode 100644 index 286343625..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/11.PrepareAsync.cpp +++ /dev/null @@ -1,352 +0,0 @@ -/* - * 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. - */ - -#include "ActsPlayerAPITest.h" -#include "player.h" -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_PrepareAsync_0100 - * @tc.name : 01.PrepareAsync操作在new之后 - * @tc.desc : test PrepareAsync -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_PrepareAsync_0100, Reliability | SmallTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - EXPECT_NE(RET_OK, player->PrepareAsync()); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_PrepareAsync_0200 - * @tc.name : 02.PrepareAsync操作在PrepareAsync之后 - * @tc.desc : test PrepareAsync -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_PrepareAsync_0200, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_NE(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_PrepareAsync_0300 - * @tc.name : 03.PrepareAsync操作在SetSource之后 - * @tc.desc : test PrepareAsync -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_PrepareAsync_0300, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_NE(RET_OK, player->SetVideoSurface(videoSurface)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_PrepareAsync_0400 - * @tc.name : 04.PrepareAsync操作在Play之后 - * @tc.desc : test PrepareAsync -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_PrepareAsync_0400, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_NE(RET_OK, player->PrepareAsync()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_PrepareAsync_0500 - * @tc.name : 05.PrepareAsync操作在Pause之后 - * @tc.desc : test PrepareAsync -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_PrepareAsync_0500, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_PrepareAsync_0600 - * @tc.name : 06.PrepareAsync操作在Seek之后 - * @tc.desc : test PrepareAsync -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_PrepareAsync_0600, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_NE(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_PrepareAsync_0700 - * @tc.name : 07.PrepareAsync操作在Stop之后 - * @tc.desc : test PrepareAsync -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_PrepareAsync_0700, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_PrepareAsync_0800 - * @tc.name : 08.PrepareAsync操作在Reset之后 - * @tc.desc : test PrepareAsync -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_PrepareAsync_0800, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_NE(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_PrepareAsync_0900 - * @tc.name : 09.PrepareAsync操作在SetVideoSurface之后 - * @tc.desc : test PrepareAsync -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_PrepareAsync_0900, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_PrepareAsync_1000 - * @tc.name : 10.PrepareAsync操作调用3次 - * @tc.desc : test PrepareAsync -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_PrepareAsync_1000, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_NE(RET_OK, player->PrepareAsync()); - EXPECT_NE(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_PrepareAsync_1100 - * @tc.name : 11.PrepareAsync操作在每个可进行的操作后都调用一次 - * @tc.desc : test PrepareAsync -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_PrepareAsync_1100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_NE(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_NE(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/12.GetCurrentTime.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/12.GetCurrentTime.cpp deleted file mode 100644 index 77a1d7a5d..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/api/12.GetCurrentTime.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/* - * 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. - */ -#include "ActsPlayerAPITest.h" -#include "player.h" -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_API_Seek_1500 - * @tc.name : 15.GET操作在每个可进行的操作后都调用一次 - * @tc.desc : test Seek -*/ -HWTEST_F(ActsPlayerAPITest, SUB_MEDIA_PLAYER_API_GetParameter_0100, Reliability | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - int32_t duration; - int32_t defaultDuration; - EXPECT_NE(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(0, time); - EXPECT_FALSE(player->IsPlaying()); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - EXPECT_NE(RET_OK, player->GetCurrentTime(time)); - EXPECT_NE(RET_OK, player->GetDuration(duration)); - EXPECT_FALSE(player->IsPlaying()); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - EXPECT_NE(RET_OK, player->GetCurrentTime(time)); - EXPECT_NE(RET_OK, player->GetDuration(duration)); - EXPECT_FALSE(player->IsPlaying()); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - EXPECT_NE(RET_OK, player->GetCurrentTime(time)); - EXPECT_NE(RET_OK, player->GetDuration(duration)); - EXPECT_FALSE(player->IsPlaying()); - // prepare - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(FILE_BEGIN, time); - EXPECT_EQ(RET_OK, player->GetDuration(defaultDuration)); - EXPECT_FALSE(player->IsPlaying()); - // play - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->GetDuration(duration)); - EXPECT_EQ(defaultDuration, duration); - EXPECT_TRUE(player->IsPlaying()); - // seek - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->GetDuration(duration)); - EXPECT_EQ(defaultDuration, duration); - // pause - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->GetDuration(duration)); - EXPECT_EQ(defaultDuration, duration); - // seek duration - EXPECT_EQ(RET_OK, player->Seek(defaultDuration + 1, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(defaultDuration, time); - EXPECT_EQ(RET_OK, player->GetDuration(duration)); - EXPECT_EQ(defaultDuration, duration); - // stop - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->GetDuration(duration)); - EXPECT_EQ(defaultDuration, duration); - EXPECT_FALSE(player->IsPlaying()); - // reset - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_NE(RET_OK, player->GetCurrentTime(time)); - EXPECT_NE(RET_OK, player->GetDuration(duration)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerFuncAsyncTest.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerFuncAsyncTest.cpp deleted file mode 100644 index d202970ea..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerFuncAsyncTest.cpp +++ /dev/null @@ -1,1203 +0,0 @@ -/* - * 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. - */ - -#include "ActsPlayerFuncTest.h" -#include "securec.h" - -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_0100 - * @tc.name : 001.进行播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_0100, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_0200 - * @tc.name : 002.进行暂停 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_0200, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_0300 - * @tc.name : 003.进行恢复播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_0300, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_0400 - * @tc.name : 004.进行停止播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_0400, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_0500 - * @tc.name : 005.进行结束播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_0500, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_0600 - * @tc.name : 006.暂停后恢复播放,再次暂停 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_0600, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_0700 - * @tc.name : 007.暂停后结束播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_0700, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_0800 - * @tc.name : 008.暂停后恢复播放,再结束播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_0800, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_0900 - * @tc.name : 009.停止播放后重新开始播放,暂停后恢复播放,再结束播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_0900, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_1000 - * @tc.name : 010.停止播放后重新开始播放,暂停后结束播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_1000, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_1100 - * @tc.name : 011.停止播放后重新开始播放,再次结束播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_1100, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_1300 - * @tc.name : 013.停止播放后暂停 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_1300, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_1400 - * @tc.name : 014.开始播放,进行Seek,再暂停 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_1400, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_1500 - * @tc.name : 015.开始播放,暂停后进行Seek,再恢复播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_1500, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_1600 - * @tc.name : 016.开始播放,暂停后恢复播放,进行Seek,再暂停 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_1600, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - for (int32_t i = 1; i < 4; i++) { - EXPECT_EQ(RET_OK, player->Seek(i * 1000, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(i * 1000, time, DELTA_TIME); - } - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_1700 - * @tc.name : 017.开始播放,进行Seek - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_1700, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_1800 - * @tc.name : 018.开始播放,进行Seek,停止播放, - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_1800, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_1900 - * @tc.name : 019.开始播放,停止播放,进行Seek - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_1900, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_2000 - * @tc.name : 020.开始播放,暂停后进行Seek - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_2000, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - for (int32_t i = 0; i < durationTime; i = i + (durationTime / 3) + 1) { - EXPECT_EQ(RET_OK, player->Seek(i, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(i, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - } - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_2100 - * @tc.name : 021.开始播放,暂停后进行Seek,停止播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_2100, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - for (int32_t i = 0; i < durationTime; i = i + (durationTime / 3) + 1) { - EXPECT_EQ(RET_OK, player->Seek(i, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(i, time, DELTA_TIME); - } - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_2200 - * @tc.name : 022.开始播放,暂停后恢复播放,进行Seek - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_2200, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(PLAYING_TIME * 1000 + SEEK_TIME_5_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_2300 - * @tc.name : 023.开始播放,暂停后恢复播放,进行Seek,停止播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_2300, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_2400 - * @tc.name : 024.开始播放,停止播放,进行Seek,重新播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_2400, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_2500 - * @tc.name : 025.进行Seek,Seek到文件开始的位置 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_2500, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Seek(FILE_BEGIN, SEEK_PREVIOUS_SYNC)); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_2600 - * @tc.name : 026.开始播放,停止播放,进行Seek,再暂停 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_2600, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - EXPECT_NE(RET_OK, player->Pause()); - - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_2700 - * @tc.name : 027.开始播放,停止播放,进行Seek,再进行恢复播放操作 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_2700, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_2800 - * @tc.name : 028.进行Seek,Seek到文件结尾的位置 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_2800, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_2900 - * @tc.name : 029.进行Seek,Seek到超过文件结尾的位置 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_2900, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime + 1, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_3000 - * @tc.name : 030.进行Seek,Seek到文件随机的位置 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_3000, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime / 3, SEEK_PREVIOUS_SYNC)); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(durationTime / 3, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_3100 - * @tc.name : 031.进行Seek,seek后开始进行基本播控操作 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_3100, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - for (int32_t i = 0; i < durationTime; i = i + (durationTime / 3) + 1) { - EXPECT_EQ(RET_OK, player->Seek(i, SEEK_PREVIOUS_SYNC)); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(i, time, DELTA_TIME); - } - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_3200 - * @tc.name : 032.暂停时Seek到文件开始,恢复播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_3200, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(FILE_BEGIN, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_3300 - * @tc.name : 033.暂停时Seek到文件结尾,恢复播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_3300, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - sleep(PLAYING_TIME); - - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_03_3400 - * @tc.name : 034.暂停时Seek到超过文件结尾的位置,恢复播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_03_3400, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime + 1, SEEK_PREVIOUS_SYNC)); - - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerFuncTest.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerFuncTest.cpp deleted file mode 100644 index 675877674..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerFuncTest.cpp +++ /dev/null @@ -1,1231 +0,0 @@ -/* - * 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. - */ -#include "ActsPlayerFuncTest.h" -#include "securec.h" - -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_0100 - * @tc.name : 001.进行播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_0100, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_0200 - * @tc.name : 002.进行暂停 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_0200, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_0300 - * @tc.name : 003.进行恢复播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_0300, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_0400 - * @tc.name : 004.进行停止播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_0400, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_0500 - * @tc.name : 005.进行结束播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_0500, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_0600 - * @tc.name : 006.暂停后恢复播放,再次暂停 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_0600, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_0700 - * @tc.name : 007.暂停后结束播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_0700, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_0800 - * @tc.name : 008.暂停后恢复播放,再结束播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_0800, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_0900 - * @tc.name : 009.停止播放后重新开始播放,暂停后恢复播放,再结束播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_0900, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_1000 - * @tc.name : 010.停止播放后重新开始播放,暂停后结束播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_1000, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_1100 - * @tc.name : 011.停止播放后重新开始播放,再次结束播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_1100, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_1300 - * @tc.name : 013.停止播放后暂停 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_1300, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_1400 - * @tc.name : 014.开始播放,进行Seek,再暂停 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_1400, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_1500 - * @tc.name : 015.开始播放,暂停后进行Seek,再恢复播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_1500, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_1600 - * @tc.name : 016.开始播放,暂停后恢复播放,进行Seek,再暂停 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_1600, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - for (int32_t i = 1; i < 4; i++) { - EXPECT_EQ(RET_OK, player->Seek(i * 1000, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(i * 1000, time, DELTA_TIME); - } - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_1700 - * @tc.name : 017.开始播放,进行Seek - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_1700, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_1800 - * @tc.name : 018.开始播放,进行Seek,停止播放, - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_1800, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_1900 - * @tc.name : 019.开始播放,停止播放,进行Seek - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_1900, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_2000 - * @tc.name : 020.开始播放,暂停后进行Seek - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_2000, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - for (int32_t i = 0; i < durationTime; i = i + (durationTime / 3) + 1) { - EXPECT_EQ(RET_OK, player->Seek(i, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(i, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - } - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_2100 - * @tc.name : 021.开始播放,暂停后进行Seek,停止播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_2100, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - for (int32_t i = 0; i < durationTime; i = i + (durationTime / 3) + 1) { - EXPECT_EQ(RET_OK, player->Seek(i, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(i, time, DELTA_TIME); - } - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_2200 - * @tc.name : 022.开始播放,暂停后恢复播放,进行Seek - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_2200, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(PLAYING_TIME * 1000 + SEEK_TIME_5_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_2300 - * @tc.name : 023.开始播放,暂停后恢复播放,进行Seek,停止播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_2300, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_2400 - * @tc.name : 024.开始播放,停止播放,进行Seek,重新播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_2400, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_2500 - * @tc.name : 025.进行Seek,Seek到文件开始的位置 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_2500, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Seek(FILE_BEGIN, SEEK_PREVIOUS_SYNC)); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_2600 - * @tc.name : 026.开始播放,停止播放,进行Seek,再暂停 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_2600, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - EXPECT_NE(RET_OK, player->Pause()); - - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_2700 - * @tc.name : 027.开始播放,停止播放,进行Seek,再进行恢复播放操作 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_2700, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_NE(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_2800 - * @tc.name : 028.进行Seek,Seek到文件结尾的位置 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_2800, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_2900 - * @tc.name : 029.进行Seek,Seek到超过文件结尾的位置 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_2900, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime + 1, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_3000 - * @tc.name : 030.进行Seek,Seek到文件随机的位置 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_3000, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime / 3, SEEK_PREVIOUS_SYNC)); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(durationTime / 3, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_3100 - * @tc.name : 031.进行Seek,seek后开始进行基本播控操作 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_3100, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - for (int32_t i = 0; i < durationTime; i = i + (durationTime / 3) + 1) { - EXPECT_EQ(RET_OK, player->Seek(i, SEEK_PREVIOUS_SYNC)); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(i, time, DELTA_TIME); - } - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_3200 - * @tc.name : 032.暂停时Seek到文件开始,恢复播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_3200, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Seek(FILE_BEGIN, SEEK_PREVIOUS_SYNC)); - - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_3300 - * @tc.name : 033.暂停时Seek到文件结尾,恢复播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_3300, Function | MediumTest | Level2) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - sleep(PLAYING_TIME); - - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_03_3400 - * @tc.name : 034.暂停时Seek到超过文件结尾的位置,恢复播放 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_03_3400, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime + 1, SEEK_PREVIOUS_SYNC)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} \ No newline at end of file diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerStateAsyncTest.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerStateAsyncTest.cpp deleted file mode 100644 index 78e6bdd53..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerStateAsyncTest.cpp +++ /dev/null @@ -1,1158 +0,0 @@ -/* - * 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. - */ - -#include "ActsPlayerFuncTest.h" -#include "securec.h" - -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_0100 - * @tc.name : 001.prepare-reset,销毁播放器 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_0100, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_0200 - * @tc.name : 002.prepare-reset,不销毁播放器 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_0200, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_0300 - * @tc.name : 003.prepare-stop-reset,销毁播放器 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_0300, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_0400 - * @tc.name : 004.prepare-stop-reset,不销毁播放器 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_0400, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_0600 - * @tc.name : 006.prepare-play-reset,不销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_0600, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(time, PLAYING_TIME * 1000, 1000); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_0700 - * @tc.name : 007.prepare-seek-play-reset,销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_0700, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(time, PLAYING_TIME * 1000, 1000); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_0800 - * @tc.name : 008.prepare-seek-play-reset,不销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_0800, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(time, SEEK_TIME_5_SEC + PLAYING_TIME * 1000, 1000); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_0900 - * @tc.name : 009.prepare-play-seek-reset,销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_0900, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_1000 - * @tc.name : 010.prepare-play-seek-reset,不销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_1000, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_1100 - * @tc.name : 011.prepare-play-seek-pause-reset,不销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_1100, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_1200 - * @tc.name : 012.prepare-play-seek-pause-reset,销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_1200, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_1300 - * @tc.name : 013.prepare-play-seek-pause-stop-reset,不销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_1300, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_1400 - * @tc.name : 014.prepare-play-seek-pause-stop-reset,销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_1400, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_1500 - * @tc.name : 015.prepare-play-stop-reset,不销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_1500, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_1600 - * @tc.name : 016.prepare-play-stop-reset,销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_1600, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_1700 - * @tc.name : 017.prepare-stop,不销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_1700, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_1800 - * @tc.name : 018.pause-GetCurrentTime-play-GetCurrentTime - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_1800, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(PLAYING_TIME * 1000, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(PLAYING_TIME * 1000 * 2, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_1900 - * @tc.name : 019.pause-GetCurrentTime-seek-play-GetCurrentTime - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_1900, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(PLAYING_TIME * 1000, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC + PLAYING_TIME * 1000, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_2000 - * @tc.name : 020.play-seek EOS-GetCurrentTime-进入PlaybackCompleted,loop=0 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_2000, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime + 1, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_FALSE(player->IsLooping()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(FILE_BEGIN, time); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_2100 - * @tc.name : 021.seek EOS-GetCurrentTime-进入PlaybackCompleted,loop=0 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_2100, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime + 1, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_FALSE(player->IsLooping()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(FILE_BEGIN, time); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_2200 - * @tc.name : 022.play-seek EOS-GetCurrentTime,loop=1 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_2200, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time_before; - int32_t time_after; - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime + 1, SEEK_PREVIOUS_SYNC)); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsLooping()); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time_before)); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time_after)); - EXPECT_NEAR(time_after - time_before, PLAYING_TIME * 1000, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_2300 - * @tc.name : 023.prepare-play-seek EOS-GetCurrentTime-进入PlaybackCompleted-stop,loop=0 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_2300, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime + 1, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - - EXPECT_FALSE(player->IsLooping()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_2400 - * @tc.name : 024.seek,seek随机+EOS附近 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_2400, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime - 1, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(durationTime, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_2500 - * @tc.name : 025.pause-seek-resume,不等seek完成 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_2500, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - testObj.mutexFlag_ = false; - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - testObj.mutexFlag_ = true; - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC + PLAYING_TIME * 1000, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_2600 - * @tc.name : 026.seek,不等seek完成,seek - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_2600, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - testObj.mutexFlag_ = false; - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - testObj.mutexFlag_ = true; - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_2625 - * @tc.name : 026.seek,不等seek完成,pause - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_2625, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - testObj.mutexFlag_ = false; - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - testObj.mutexFlag_ = true; - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_2650 - * @tc.name : 026.seek,不等seek完成,GetDuration - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_2650, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - testObj.mutexFlag_ = false; - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_2651 - * @tc.name : 026.seek,不等seek完成,GetCurrentTime - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_2651, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - testObj.mutexFlag_ = false; - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(PLAYING_TIME * 1000, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_2675 - * @tc.name : 026.seek,不等seek完成,play - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_2675, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - testObj.mutexFlag_ = false; - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - testObj.mutexFlag_ = true; - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(PLAYING_TIME * 1000, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_2700 - * @tc.name : 027.prepare-seek未完成-seek eos-start-seek eos-start-stop - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_2700, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_2800 - * @tc.name : 028.prepare-start-pause-seek eos-stop-prepare-start-stop - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_2800, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Stop()); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_2900 - * @tc.name : 029.prepare-seek eos-start-stop-prepare-seek eos-start-stop,loop=1 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_2900, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t time_before; - int32_t time_after; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(RET_OK, player->Stop()); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time_before)); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time_after)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Async_Function_04_3000 - * @tc.name : 030.prepare-start-pause-seek eos-start-stop-prepare-start-pause-seek-start-stop,loop=1 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Async_Function_04_3000, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t time_before; - int32_t time_after; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time_before)); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time_after)); - EXPECT_NEAR(time_after - time_before, PLAYING_TIME * 1000, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - ASSERT_EQ(RET_OK, player->PrepareAsync()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(SEEK_TIME_2_SEC, time); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(FILE_BEGIN, time); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerStateTest.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerStateTest.cpp deleted file mode 100644 index 41e6a2109..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/player/src/function/ActsPlayerStateTest.cpp +++ /dev/null @@ -1,1166 +0,0 @@ -/* - * 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. - */ - -#include "ActsPlayerFuncTest.h" -#include "securec.h" - -using namespace std; -using namespace OHOS; -using namespace OHOS::Media; -using namespace testing::ext; -using namespace PlayerNameSpace; - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_0100 - * @tc.name : 001.prepare-reset,销毁播放器 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_0100, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_0200 - * @tc.name : 002.prepare-reset,不销毁播放器 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_0200, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_0300 - * @tc.name : 003.prepare-stop-reset,销毁播放器 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_0300, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_0400 - * @tc.name : 004.prepare-stop-reset,不销毁播放器 - * @tc.desc : 播控 -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_0400, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_0600 - * @tc.name : 006.prepare-play-reset,不销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_0600, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_TRUE(player->IsPlaying()); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(time, PLAYING_TIME * 1000, 1000); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_0700 - * @tc.name : 007.prepare-seek-play-reset,销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_0700, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(time, PLAYING_TIME * 1000, 1000); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_0800 - * @tc.name : 008.prepare-seek-play-reset,不销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_0800, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(time, SEEK_TIME_5_SEC + PLAYING_TIME * 1000, 1000); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_0900 - * @tc.name : 009.prepare-play-seek-reset,销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_0900, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_1000 - * @tc.name : 010.prepare-play-seek-reset,不销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_1000, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_1100 - * @tc.name : 011.prepare-play-seek-pause-reset,不销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_1100, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_1200 - * @tc.name : 012.prepare-play-seek-pause-reset,销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_1200, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_1300 - * @tc.name : 013.prepare-play-seek-pause-stop-reset,不销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_1300, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_1400 - * @tc.name : 014.prepare-play-seek-pause-stop-reset,销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_1400, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_1500 - * @tc.name : 015.prepare-play-stop-reset,不销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_1500, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_1600 - * @tc.name : 016.prepare-play-stop-reset,销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_1600, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Release()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_1700 - * @tc.name : 017.prepare-stop,不销毁播放器 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_1700, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_1800 - * @tc.name : 018.pause-GetCurrentTime-play-GetCurrentTime - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_1800, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(PLAYING_TIME * 1000, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(PLAYING_TIME * 1000 * 2, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_1900 - * @tc.name : 019.pause-GetCurrentTime-seek-play-GetCurrentTime - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_1900, Function | MediumTest | Level0) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - int32_t time; - ASSERT_EQ(RET_OK, player->SetSource(uri)); - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_FALSE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(PLAYING_TIME * 1000, time, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC, time, DELTA_TIME); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_2_SEC + PLAYING_TIME * 1000, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_2000 - * @tc.name : 020.play-seek EOS-GetCurrentTime-进入PlaybackCompleted,loop=0 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_2000, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime + 1, SEEK_PREVIOUS_SYNC)); - - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_FALSE(player->IsLooping()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(FILE_BEGIN, time); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_2100 - * @tc.name : 021.seek EOS-GetCurrentTime-进入PlaybackCompleted,loop=0 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_2100, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime + 1, SEEK_PREVIOUS_SYNC)); - - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_FALSE(player->IsLooping()); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(FILE_BEGIN, time); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_2200 - * @tc.name : 022.play-seek EOS-GetCurrentTime,loop=1 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_2200, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time_before; - int32_t time_after; - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime + 1, SEEK_PREVIOUS_SYNC)); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsLooping()); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetCurrentTime(time_before)); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time_after)); - EXPECT_NEAR(time_after - time_before, PLAYING_TIME * 1000, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(FILE_BEGIN, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_2300 - * @tc.name : 023.prepare-play-seek EOS-GetCurrentTime-进入PlaybackCompleted-stop,loop=0 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_2300, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->SetLooping(false)); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime + 1, SEEK_PREVIOUS_SYNC)); - - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - - EXPECT_FALSE(player->IsLooping()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_2400 - * @tc.name : 024.seek,seek随机+EOS附近 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_2400, Function | MediumTest | Level1) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime - 1, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(durationTime, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_2500 - * @tc.name : 025.pause-seek-resume,不等seek完成 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_2500, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - testObj.mutexFlag_ = false; - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - testObj.mutexFlag_ = true; - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_GE(time, SEEK_TIME_5_SEC); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_2600 - * @tc.name : 026.seek,不等seek完成,seek - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_2600, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - testObj.mutexFlag_ = false; - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - testObj.mutexFlag_ = true; - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_5_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(SEEK_TIME_5_SEC, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_2625 - * @tc.name : 026.seek,不等seek完成,pause - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_2625, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - testObj.mutexFlag_ = false; - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - testObj.mutexFlag_ = true; - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_2650 - * @tc.name : 026.seek,不等seek完成,GetDuration - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_2650, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - testObj.mutexFlag_ = false; - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - testObj.mutexFlag_ = true; - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_2651 - * @tc.name : 026.seek,不等seek完成,GetCurrentTime - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_2651, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(PLAYING_TIME * 1000, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_2675 - * @tc.name : 026.seek,不等seek完成,play - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_2675, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - testObj.mutexFlag_ = false; - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - testObj.mutexFlag_ = true; - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_NEAR(PLAYING_TIME * 1000, time, DELTA_TIME); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_2700 - * @tc.name : 027.prepare-seek未完成-seek eos-start-seek eos-start-stop - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_2700, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_FALSE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_2800 - * @tc.name : 028.prepare-start-pause-seek eos-stop-prepare-start-stop - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_2800, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Pause()); - - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Stop()); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - sleep(PLAYING_TIME); - EXPECT_TRUE(player->IsPlaying()); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_2900 - * @tc.name : 029.prepare-seek eos-start-stop-prepare-seek eos-start-stop,loop=1 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_2900, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t time_before; - int32_t time_after; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(RET_OK, player->Stop()); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time_before)); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time_after)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} - -/** - * @tc.number : SUB_MEDIA_PLAYER_Local_Function_04_3000 - * @tc.name : 030.prepare-start-pause-seek eos-start-stop-prepare-start-pause-seek-start-stop,loop=1 - * @tc.desc : -*/ -HWTEST_F(ActsPlayerFuncTest, SUB_MEDIA_PLAYER_Local_Function_04_3000, Function | MediumTest | Level3) -{ - PlayerSignal testObj; - std::shared_ptr player = std::make_shared(&testObj); - ASSERT_NE(nullptr, player); - ASSERT_EQ(true, player->CreatePlayer()); - int32_t time; - int32_t time_before; - int32_t time_after; - int32_t durationTime; - std::string uri = GetUri(); - ASSERT_EQ(RET_OK, player->SetSource(uri)); - - sptr videoSurface = player->GetVideoSurface(g_sub_config); - EXPECT_EQ(RET_OK, player->SetVideoSurface(videoSurface)); - std::shared_ptr testCallback = std::make_shared(&testObj); - EXPECT_EQ(RET_OK, player->SetPlayerCallback(testCallback)); - - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->SetLooping(true)); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->GetDuration(durationTime)); - EXPECT_EQ(RET_OK, player->Seek(durationTime, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(durationTime, time); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, testCallback->WaitForState(PLAYER_PLAYBACK_COMPLETE)); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time_before)); - sleep(PLAYING_TIME); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time_after)); - EXPECT_NEAR(time_after - time_before, PLAYING_TIME * 1000, DELTA_TIME); - EXPECT_EQ(RET_OK, player->Stop()); - ASSERT_EQ(RET_OK, player->Prepare()); - EXPECT_EQ(RET_OK, player->Play()); - EXPECT_EQ(RET_OK, player->Pause()); - EXPECT_EQ(RET_OK, player->Seek(SEEK_TIME_2_SEC, SEEK_PREVIOUS_SYNC)); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(SEEK_TIME_2_SEC, time); - EXPECT_EQ(RET_OK, player->Stop()); - EXPECT_EQ(RET_OK, player->GetCurrentTime(time)); - EXPECT_EQ(FILE_BEGIN, time); - EXPECT_EQ(RET_OK, player->Reset()); - EXPECT_EQ(RET_OK, testCallback->errorNum); -} diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/include/ActsAudioRecoederTest.h b/multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/include/ActsAudioRecoederTest.h deleted file mode 100644 index 82fd92114..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/include/ActsAudioRecoederTest.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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. - */ -#ifndef RECODER_DEMO_TEST_H -#define RECODER_DEMO_TEST_H - -#include "gtest/gtest.h" -#include "recorder.h" - -namespace OHOS { -namespace Media { -struct AudioRecorderConfig { - int32_t audioSourceId; - int32_t audioEncodingBitRate; - int32_t channelCount; - int32_t duration; - std::string outPath; - int32_t sampleRate; - AudioCodecFormat audioFormat; - AudioSourceType inputSource; - OutputFormatType outPutFormat; -}; - -class ActsAudioRecorderTest : public testing::Test { -public: - static void SetUpTestCase(void); - static void TearDownTestCase(void); - void SetUp(void); - void TearDown(void); - void ConfigAudioRecorder(std::shared_ptr recorder, AudioRecorderConfig audioConfig); - void AudioRecorderStart(std::shared_ptr recorder); -}; - -class TestAudioRecorderCallback : public RecorderCallback { -public: - void OnError(int32_t errorType, int32_t errorCode); - void OnInfo(int32_t type, int32_t extra); -}; -} -} -#endif \ No newline at end of file diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/include/ActsVideoRecorderTest.h b/multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/include/ActsVideoRecorderTest.h deleted file mode 100644 index 404a9d956..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/include/ActsVideoRecorderTest.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * 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. - */ -#ifndef RECODER_VIDEO_TEST_H -#define RECODER_VIDEO_TEST_H - -#include "gtest/gtest.h" -#include "recorder.h" - -namespace OHOS { -namespace Media { -struct VideoRecorderConfig { - int32_t audioSourceId; - int32_t videoSourceId; - int32_t audioEncodingBitRate; - int32_t channelCount; - int32_t duration; - int32_t width; - int32_t height; - int32_t frameRate; - int32_t videoEncodingBitRate; - int32_t sampleRate; - double captureFps; - std::string outPath; - AudioCodecFormat audioFormat; - AudioSourceType aSource; - OutputFormatType outPutFormat; - VideoSourceType vSource; - VideoCodecFormat videoFormat; -}; - -class ActsVideoRecorderTest : public testing::Test { -public: - static void SetUpTestCase(void); - static void TearDownTestCase(void); - void SetUp(void); - void TearDown(void); - void ConfigvideoRecorder(std::shared_ptr recorder, VideoRecorderConfig videoConfig, bool isAudio); - void VideoRecorderStart(std::shared_ptr recorder); -}; - -class TestVideoRecorderCallback : public RecorderCallback { -public: - void OnError(int32_t errorType, int32_t errorCode); - void OnInfo(int32_t type, int32_t extra); -}; -} -} -#endif \ No newline at end of file diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/src/fuction/ActsAudioRecoederTest.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/src/fuction/ActsAudioRecoederTest.cpp deleted file mode 100644 index dd26dc562..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/src/fuction/ActsAudioRecoederTest.cpp +++ /dev/null @@ -1,152 +0,0 @@ -/* - * 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. - */ -#include "ActsAudioRecoederTest.h" -#include "mediatest_log.h" - -using namespace std; -using namespace OHOS::Media; -using namespace testing::ext; - -static AudioRecorderConfig g_audioRecorderConfig = { - 0, - 48000, - 2, - 60, - "/data/recorder", - 48000, - AAC_LC, - AUDIO_MIC, - FORMAT_M4A, -}; - -void TestAudioRecorderCallback::OnError(int32_t errorType, int32_t errorCode) -{ - MEDIA_INFO_LOG("OnError errorType is %d, errorCode is %d", errorType, errorCode); -} - -void TestAudioRecorderCallback::OnInfo(int32_t type, int32_t extra) -{ - MEDIA_INFO_LOG("OnInfo type is %d, extra is %d", type, extra); -} - -void ActsAudioRecorderTest::SetUpTestCase(void) -{ - MEDIA_INFO_LOG("ActsAudioRecorderTest::SetUpTestCase"); -} - -void ActsAudioRecorderTest::TearDownTestCase(void) -{ - MEDIA_INFO_LOG("ActsAudioRecorderTest::TearDownTestCase"); -} - -void ActsAudioRecorderTest::SetUp(void) -{ - MEDIA_INFO_LOG("ActsAudioRecorderTest::SetUp"); -} - -void ActsAudioRecorderTest::TearDown(void) -{ - MEDIA_INFO_LOG("ActsAudioRecorderTest::TearDown"); -} - -void ActsAudioRecorderTest::ConfigAudioRecorder(std::shared_ptr recorder, AudioRecorderConfig audioConfig) -{ - std::shared_ptr testCallback = std::make_shared(); - ASSERT_NE(nullptr, testCallback); - EXPECT_EQ(0, recorder->SetAudioSource(audioConfig.inputSource, audioConfig.audioSourceId)); - EXPECT_EQ(0, recorder->SetOutputFormat(audioConfig.outPutFormat)); - EXPECT_EQ(0, recorder->SetAudioEncoder(audioConfig.audioSourceId, audioConfig.audioFormat)); - EXPECT_EQ(0, recorder->SetAudioSampleRate(audioConfig.audioSourceId, audioConfig.sampleRate)); - EXPECT_EQ(0, recorder->SetAudioChannels(audioConfig.audioSourceId, audioConfig.channelCount)); - EXPECT_EQ(0, recorder->SetAudioEncodingBitRate(audioConfig.audioSourceId, audioConfig.audioEncodingBitRate)); - EXPECT_EQ(0, recorder->SetMaxDuration(audioConfig.duration)); - EXPECT_EQ(0, recorder->SetOutputPath(audioConfig.outPath)); - EXPECT_EQ(0, recorder->SetRecorderCallback(testCallback)); -} - -void ActsAudioRecorderTest::AudioRecorderStart(std::shared_ptr recorder) -{ - EXPECT_EQ(0, recorder->Prepare()); - EXPECT_EQ(0, recorder->Start()); - sleep(2); - EXPECT_EQ(0, recorder->Stop(false)); - EXPECT_EQ(0, recorder->Reset()); - EXPECT_EQ(0, recorder->Release()); -} - -/* * - * @tc.number : SUB_MEDIA_RECORDER_Codec_AAC_Function_0100 - * @tc.name : 01.set audio format to AAC - * @tc.desc : The test case is successfully executed. - The video file can be played properly. -*/ -HWTEST_F(ActsAudioRecorderTest, SUB_MEDIA_RECORDER_Codec_AAC_Function_0100, Function | MediumTest | Level0) -{ - std::shared_ptr recorder = RecorderFactory::CreateRecorder(); - ASSERT_NE(nullptr, recorder); - ActsAudioRecorderTest::ConfigAudioRecorder(recorder, g_audioRecorderConfig); - ActsAudioRecorderTest::AudioRecorderStart(recorder); -} - -/* * - * @tc.number : SUB_MEDIA_RECORDER_Codec_AAC_Function_0300 - * @tc.name : 03.Set different samplerate 8-96KHz - * @tc.desc : The test case is successfully executed. - The video file can be played properly. -*/ -HWTEST_F(ActsAudioRecorderTest, SUB_MEDIA_RECORDER_Codec_AAC_Function_0300, Function | MediumTest | Level0) -{ - for (int i = 8000; i < 96000; i = i + 10000) { - g_audioRecorderConfig.sampleRate = i; - g_audioRecorderConfig.outPath = "/data/recorder"; - std::shared_ptr recorder = RecorderFactory::CreateRecorder(); - ASSERT_NE(nullptr, recorder); - ActsAudioRecorderTest::ConfigAudioRecorder(recorder, g_audioRecorderConfig); - ActsAudioRecorderTest::AudioRecorderStart(recorder); - } -} - -/* * - * @tc.number : SUB_MEDIA_RECORDER_Format_MP4_Function_05_0200 - * @tc.name : 02.Set outPutFormat to FORMAT_MPEG_4 - * @tc.desc : The test case is successfully executed. - The video file can be played properly. -*/ -HWTEST_F(ActsAudioRecorderTest, SUB_MEDIA_RECORDER_Format_MP4_Function_05_0200, Function | MediumTest | Level0) -{ - g_audioRecorderConfig.outPutFormat = FORMAT_MPEG_4; - std::shared_ptr recorder = RecorderFactory::CreateRecorder(); - ASSERT_NE(nullptr, recorder); - ActsAudioRecorderTest::ConfigAudioRecorder(recorder, g_audioRecorderConfig); - ActsAudioRecorderTest::AudioRecorderStart(recorder); -} - -/* * - * @tc.number : SUB_MEDIA_RECORDER_Function_09_01_0100 - * @tc.name : 001.Stopping Recording in DRAIN Mode When Recording Pure Audio Files - * @tc.desc : The test case is successfully executed. - The video file can be played properly. -*/ -HWTEST_F(ActsAudioRecorderTest, SUB_MEDIA_RECORDER_Function_09_01_0100, Function | MediumTest | Level0) -{ - std::shared_ptr recorder = RecorderFactory::CreateRecorder(); - ASSERT_NE(nullptr, recorder); - ActsAudioRecorderTest::ConfigAudioRecorder(recorder, g_audioRecorderConfig); - EXPECT_EQ(0, recorder->Prepare()); - EXPECT_EQ(0, recorder->Start()); - sleep(5); - EXPECT_EQ(0, recorder->Stop(true)); - EXPECT_EQ(0, recorder->Release()); -} diff --git a/multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/src/fuction/ActsVideoRecorderTest.cpp b/multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/src/fuction/ActsVideoRecorderTest.cpp deleted file mode 100644 index f954d4ce4..000000000 --- a/multimedia/audio/audio_native_standard/media_cpp_test_standard/recorder/src/fuction/ActsVideoRecorderTest.cpp +++ /dev/null @@ -1,239 +0,0 @@ -/* - * 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. - */ -#include "ActsVideoRecorderTest.h" -#include "mediatest_log.h" - -using namespace std; -using namespace OHOS::Media; -using namespace testing::ext; - -static VideoRecorderConfig g_videoRecorderConfig = { - 0, - 0, - 48000, - 2, - 60, - 1920, - 1080, - 30, - 48000, - 48000, - 30, - "/data/recorder", - AAC_LC, - AUDIO_MIC, - FORMAT_MPEG_4, - VIDEO_SOURCE_SURFACE_ES, - H264, -}; - -static int g_videoWidth[3] = {1920, 1280, 720}; -static int g_videoHeight[3] = {1080, 720, 480}; - -void TestVideoRecorderCallback::OnError(int32_t errorType, int32_t errorCode) -{ - MEDIA_INFO_LOG("OnError errorType is %d, errorCode is %d", errorType, errorCode); -} - -void TestVideoRecorderCallback::OnInfo(int32_t type, int32_t extra) -{ - MEDIA_INFO_LOG("OnInfo type is %d, extra is %d", type, extra); -} - -void ActsVideoRecorderTest::SetUpTestCase(void) -{ - MEDIA_INFO_LOG("ActsAudioRecorderTest::SetUpTestCase"); -} - -void ActsVideoRecorderTest::TearDownTestCase(void) -{ - MEDIA_INFO_LOG("ActsAudioRecorderTest::TearDownTestCase"); -} - -void ActsVideoRecorderTest::SetUp(void) -{ - MEDIA_INFO_LOG("ActsAudioRecorderTest::SetUp"); -} - -void ActsVideoRecorderTest::TearDown(void) -{ - MEDIA_INFO_LOG("ActsAudioRecorderTest::TearDown"); -} - -void ActsVideoRecorderTest::ConfigvideoRecorder(std::shared_ptr recorder, - VideoRecorderConfig videoConfig, bool isAudio) -{ - std::shared_ptr testCallback = std::make_shared(); - ASSERT_NE(nullptr, testCallback); - EXPECT_EQ(0, recorder->SetVideoSource(videoConfig.vSource, videoConfig.videoSourceId)); - if (isAudio) { - EXPECT_EQ(0, recorder->SetAudioSource(videoConfig.aSource, videoConfig.audioSourceId)); - } - EXPECT_EQ(0, recorder->SetOutputFormat(videoConfig.outPutFormat)); - EXPECT_EQ(0, recorder->SetVideoEncoder(videoConfig.videoSourceId, videoConfig.videoFormat)); - EXPECT_EQ(0, recorder->SetVideoSize(videoConfig.videoSourceId, videoConfig.width, videoConfig.height)); - EXPECT_EQ(0, recorder->SetVideoFrameRate(videoConfig.videoSourceId, videoConfig.frameRate)); - EXPECT_EQ(0, recorder->SetVideoEncodingBitRate(videoConfig.videoSourceId, videoConfig.videoEncodingBitRate)); - EXPECT_EQ(0, recorder->SetCaptureRate(videoConfig.videoSourceId, videoConfig.captureFps)); - if (isAudio) { - EXPECT_EQ(0, recorder->SetAudioEncoder(videoConfig.audioSourceId, videoConfig.audioFormat)); - EXPECT_EQ(0, recorder->SetAudioSampleRate(videoConfig.audioSourceId, videoConfig.sampleRate)); - EXPECT_EQ(0, recorder->SetAudioChannels(videoConfig.audioSourceId, videoConfig.channelCount)); - EXPECT_EQ(0, recorder->SetAudioEncodingBitRate(videoConfig.audioSourceId, videoConfig.audioEncodingBitRate)); - } - EXPECT_EQ(0, recorder->SetMaxDuration(videoConfig.duration)); - EXPECT_EQ(0, recorder->SetOutputPath(videoConfig.outPath)); - EXPECT_EQ(0, recorder->SetRecorderCallback(testCallback)); -} - -void ActsVideoRecorderTest::VideoRecorderStart(std::shared_ptr recorder) -{ - EXPECT_EQ(0, recorder->Prepare()); - EXPECT_EQ(0, recorder->Start()); - sleep(5); - EXPECT_EQ(0, recorder->Stop(false)); - EXPECT_EQ(0, recorder->Reset()); - EXPECT_EQ(0, recorder->Release()); -} - -/** - * @tc.number : SUB_MEDIA_RECORDER_Codec_H264_Function_03_0100 - * @tc.name : 01.Local recording H264 - * @tc.desc : The test case is successfully executed. - The video file can be played properly. -*/ -HWTEST_F(ActsVideoRecorderTest, SUB_MEDIA_RECORDER_Codec_H264_Function_03_0100, Function | MediumTest | Level0) -{ - std::shared_ptr recorder = RecorderFactory::CreateRecorder(); - ASSERT_NE(nullptr, recorder); - ActsVideoRecorderTest::ConfigvideoRecorder(recorder, g_videoRecorderConfig, true); - ActsVideoRecorderTest::VideoRecorderStart(recorder); -} - -/** - * @tc.number : SUB_MEDIA_RECORDER_Codec_H264_Function_03_0200 - * @tc.name : 02.Local recording H264_1080P/720P/480P - * @tc.desc : The test case is successfully executed. - The video file can be played properly. -*/ -HWTEST_F(ActsVideoRecorderTest, SUB_MEDIA_RECORDER_Codec_H264_Function_03_0200, Function | MediumTest | Level0) -{ - for (int i = 0; i < 3; i++) { - g_videoRecorderConfig.width = g_videoWidth[i]; - g_videoRecorderConfig.height = g_videoHeight[i]; - std::shared_ptr recorder = RecorderFactory::CreateRecorder(); - ASSERT_NE(nullptr, recorder); - ActsVideoRecorderTest::ConfigvideoRecorder(recorder, g_videoRecorderConfig, true); - ActsVideoRecorderTest::VideoRecorderStart(recorder); - } -} - -/** - * @tc.number : SUB_MEDIA_RECORDER_Codec_H264_Function_03_0400 - * @tc.name : 04.Local recording H264_BitRate - * @tc.desc : The test case is successfully executed. - The video file can be played properly. -*/ -HWTEST_F(ActsVideoRecorderTest, SUB_MEDIA_RECORDER_Codec_H264_Function_03_0400, Function | MediumTest | Level0) -{ - g_videoRecorderConfig.audioEncodingBitRate = 96000; - g_videoRecorderConfig.videoEncodingBitRate = 96000; - g_videoRecorderConfig.sampleRate = 96000; - std::shared_ptr recorder = RecorderFactory::CreateRecorder(); - ASSERT_NE(nullptr, recorder); - ActsVideoRecorderTest::ConfigvideoRecorder(recorder, g_videoRecorderConfig, true); - ActsVideoRecorderTest::VideoRecorderStart(recorder); -} - -/** - * @tc.number : SUB_MEDIA_RECORDER_Format_MP4_Function_05_0100 - * @tc.name : 01.Local recording H264 - * @tc.desc : The test case is successfully executed. - The video file can be played properly. -*/ -HWTEST_F(ActsVideoRecorderTest, SUB_MEDIA_RECORDER_Format_MP4_Function_05_0100, Function | MediumTest | Level0) -{ - std::shared_ptr recorder = RecorderFactory::CreateRecorder(); - ASSERT_NE(nullptr, recorder); - ActsVideoRecorderTest::ConfigvideoRecorder(recorder, g_videoRecorderConfig, false); - ActsVideoRecorderTest::VideoRecorderStart(recorder); -} - -/** - * @tc.number : SUB_MEDIA_RECORDER_Format_MP4_Function_05_0300 - * @tc.name : 03.Local recording H264 and AAC - * @tc.desc : The test case is successfully executed. - The video file can be played properly. -*/ -HWTEST_F(ActsVideoRecorderTest, SUB_MEDIA_RECORDER_Format_MP4_Function_05_0300, Function | MediumTest | Level0) -{ - std::shared_ptr recorder = RecorderFactory::CreateRecorder(); - ASSERT_NE(nullptr, recorder); - ActsVideoRecorderTest::ConfigvideoRecorder(recorder, g_videoRecorderConfig, true); - ActsVideoRecorderTest::VideoRecorderStart(recorder); -} - -/** - * @tc.number : SUB_MEDIA_RECORDER_Function_06_0100 - * @tc.name : 001.Start - * @tc.desc : The test case is successfully executed. - The video file can be played properly. -*/ -HWTEST_F(ActsVideoRecorderTest, SUB_MEDIA_RECORDER_Function_06_0100, Function | MediumTest | Level0) -{ - std::shared_ptr recorder = RecorderFactory::CreateRecorder(); - ASSERT_NE(nullptr, recorder); - ActsVideoRecorderTest::ConfigvideoRecorder(recorder, g_videoRecorderConfig, true); - EXPECT_EQ(0, recorder->Prepare()); - EXPECT_EQ(0, recorder->Start()); - sleep(5); - EXPECT_EQ(0, recorder->Release()); -} - -/** - * @tc.number : SUB_MEDIA_RECORDER_Function_06_0400 - * @tc.name : 004.Start-Stop - * @tc.desc : The test case is successfully executed. - The video file can be played properly. -*/ -HWTEST_F(ActsVideoRecorderTest, SUB_MEDIA_RECORDER_Function_06_0400, Function | MediumTest | Level0) -{ - std::shared_ptr recorder = RecorderFactory::CreateRecorder(); - ASSERT_NE(nullptr, recorder); - ActsVideoRecorderTest::ConfigvideoRecorder(recorder, g_videoRecorderConfig, true); - EXPECT_EQ(0, recorder->Prepare()); - EXPECT_EQ(0, recorder->Start()); - sleep(5); - EXPECT_EQ(0, recorder->Stop(false)); - EXPECT_EQ(0, recorder->Release()); -} - -/** - * @tc.number : SUB_MEDIA_RECORDER_Function_06_0500 - * @tc.name : 005.Start-Reset - * @tc.desc : The test case is successfully executed. - The video file can be played properly. -*/ -HWTEST_F(ActsVideoRecorderTest, SUB_MEDIA_RECORDER_Function_06_0500, Function | MediumTest | Level0) -{ - std::shared_ptr recorder = RecorderFactory::CreateRecorder(); - ASSERT_NE(nullptr, recorder); - ActsVideoRecorderTest::ConfigvideoRecorder(recorder, g_videoRecorderConfig, true); - EXPECT_EQ(0, recorder->Prepare()); - EXPECT_EQ(0, recorder->Start()); - sleep(5); - EXPECT_EQ(0, recorder->Reset()); - EXPECT_EQ(0, recorder->Release()); -} \ No newline at end of file diff --git a/multimedia/media/media_js_test_standard/src/main/js/test/List.test.js b/multimedia/media/media_js_test_standard/src/main/js/test/List.test.js deleted file mode 100644 index c636ae4f2..000000000 --- a/multimedia/media/media_js_test_standard/src/main/js/test/List.test.js +++ /dev/null @@ -1,2 +0,0 @@ -require('../test/fuction/media_player/PlayerLocalTestAudioFUNC.test.js'); -require('../test/reliability/media_player/PlayerLocalTestAudioAPI.test.js'); diff --git a/multimedia/media/media_js_test_standard/src/main/js/test/fuction/media_player/PlayerLocalTestAudioFUNC.test.js b/multimedia/media/media_js_test_standard/src/main/js/test/fuction/media_player/PlayerLocalTestAudioFUNC.test.js deleted file mode 100644 index 781c004ad..000000000 --- a/multimedia/media/media_js_test_standard/src/main/js/test/fuction/media_player/PlayerLocalTestAudioFUNC.test.js +++ /dev/null @@ -1,887 +0,0 @@ -/* - * 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 media from '@ohos.multimedia.media' -import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' - -describe('PlayerLocalTestAudioFUNC', function () { - var audioPlayer = media.createAudioPlayer(); - var audioSource = "data/media/audio/Homey.mp3"; - var PLAY_TIME = 3000; - var DURATION_TIME = 89239; - var SEEK_TIME = 5000; - var DELTA_TIME = 1000; - var ENDSTATE = 0; - var SRCSTATE = 1; - var PLAYSTATE = 2; - var PAUSESTATE = 3; - var STOPSTATE = 4; - var RESETSTATE = 5; - var SEEKSTATE = 6; - var VOLUMESTATE = 7; - var RELEASESTATE = 8; - var ERRORSTATE = 9; - var FINISHSTATE = 10; - var LOOPSTATE = 11; - var NOERROR = 0; - var STEPERRCODE = 38; - var SEEKERROR = 'seekError'; - var PAUSEERROR = 'pauseError'; - var errCode = NOERROR; - beforeAll(function () { - console.info("beforeAll case"); - }) - - beforeEach(function () { - console.info("beforeEach case"); - }) - - afterEach(function () { - console.info("afterEach case"); - }) - - afterAll(function () { - console.info("afterAll case"); - }) - - var sleep = function(time) { - for(var t = Date.now(); Date.now() - t <= time;); - }; - - var initAudioPlayer = function() { - audioPlayer = media.createAudioPlayer(); - } - - var nextStep = function(mySteps, done) { - if (mySteps[0] == ENDSTATE) { - done(); - return; - } - switch (mySteps[0]) { - case SRCSTATE: - console.info(`case to prepare`); - audioPlayer.src = audioSource; - break; - case PLAYSTATE: - console.info(`case to play`); - audioPlayer.play(); - break; - case PAUSESTATE: - console.info(`case to pause`); - audioPlayer.pause(); - break; - case STOPSTATE: - console.info(`case to stop`); - audioPlayer.stop(); - break; - case RESETSTATE: - console.info(`case to reset`); - audioPlayer.reset(); - break; - case SEEKSTATE: - console.info(`case seek to time is ${mySteps[1]}`); - audioPlayer.seek(mySteps[1]); - break; - case VOLUMESTATE: - console.info(`case to setVolume`); - audioPlayer.setVolume(mySteps[1]); - break; - case RELEASESTATE: - console.info(`case to release`); - mySteps.shift(); - audioPlayer.release(); - break; - case LOOPSTATE: - audioPlayer.loop = mySteps[1]; - mySteps.shift(); - mySteps.shift(); - nextStep(mySteps, done); - break; - default: - break; - } - } - var setCallback = function(mySteps, done) { - console.info(`case setCallback`); - audioPlayer.on('dataLoad', () => { - mySteps.shift(); - console.info(`case dataLoad called`); - expect(audioPlayer.currentTime).assertEqual(0); - expect(audioPlayer.duration).assertEqual(DURATION_TIME); - expect(audioPlayer.state).assertEqual('paused'); - nextStep(mySteps, done); - }); - - audioPlayer.on('play', () => { - mySteps.shift(); - console.info(`case play called`); - console.info(`case play currentTime is ${audioPlayer.currentTime}`); - expect(audioPlayer.duration).assertEqual(DURATION_TIME); - if (mySteps[0] == FINISHSTATE) { - console.info(`case wait for finish`); - return; - } - expect(audioPlayer.state).assertEqual('playing'); - sleep(PLAY_TIME); - nextStep(mySteps, done); - }); - - audioPlayer.on('pause', () => { - mySteps.shift(); - console.info(`case pause called`); - console.info(`case pause currentTime is ${audioPlayer.currentTime}`); - expect(audioPlayer.duration).assertEqual(DURATION_TIME); - expect(audioPlayer.state).assertEqual('paused'); - nextStep(mySteps, done); - }); - - audioPlayer.on('reset', () => { - mySteps.shift(); - console.info(`case reset called`); - expect(audioPlayer.state).assertEqual('idle'); - nextStep(mySteps, done); - }); - - audioPlayer.on('stop', () => { - mySteps.shift(); - console.info(`case stop called`); - expect(audioPlayer.currentTime).assertEqual(0); - expect(audioPlayer.duration).assertEqual(DURATION_TIME); - expect(audioPlayer.state).assertEqual('stopped'); - nextStep(mySteps, done); - }); - - audioPlayer.on('timeUpdate', (seekDoneTime) => { - if (typeof (seekDoneTime) == "undefined") { - console.info(`case seek filed,errcode is ${seekDoneTime}`); - return; - } - mySteps.shift(); - mySteps.shift(); - console.info(`case seekDoneTime is ${seekDoneTime}`); - console.info(`case seek called`); - expect(audioPlayer.currentTime + DELTA_TIME).assertClose(seekDoneTime + DELTA_TIME, DELTA_TIME); - console.info(`case loop is ${audioPlayer.loop}`); - if ((audioPlayer.loop == true) && (seekDoneTime == DURATION_TIME)) { - console.info('case loop is true'); - sleep(PLAYSTATE); - } - if (seekDoneTime < audioPlayer.duration || audioPlayer.state == "paused") { - nextStep(mySteps, done); - } - }); - - audioPlayer.on('volumeChange', () => { - console.info(`case setvolume called`); - mySteps.shift(); - mySteps.shift(); - if (audioPlayer.state == "playing") { - sleep(PLAY_TIME); - } - nextStep(mySteps, done); - }); - - audioPlayer.on('finish', () => { - mySteps.shift(); - expect(audioPlayer.state).assertEqual('stopped'); - expect(audioPlayer.currentTime).assertClose(audioPlayer.duration, DELTA_TIME); - console.info(`case finish called`); - nextStep(mySteps, done); - }); - - audioPlayer.on('error', (err) => { - console.info(`case error called,errName is ${err.name}`); - console.info(`case error called,errCode is ${err.code}`); - console.info(`case error called,errMessage is ${err.message}`); - expect(err.code).assertEqual(errCode); - if ((mySteps[0] == SEEKSTATE) || (mySteps[0] == VOLUMESTATE)) { - expect(mySteps[2]).assertEqual(ERRORSTATE); - expect(err.message).assertEqual(mySteps[3]); - mySteps.shift(); - mySteps.shift(); - mySteps.shift(); - mySteps.shift(); - } else { - expect(mySteps[1]).assertEqual(ERRORSTATE); - expect(err.message).assertEqual(mySteps[2]); - mySteps.shift(); - mySteps.shift(); - mySteps.shift(); - } - nextStep(mySteps, done); - }); - }; - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0100 - * @tc.name : 001.本地音频初始状态:进行播放 - * @tc.desc : 1.播放成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0100', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0200 - * @tc.name : 002.本地音频播放状态:进行暂停 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0300 - * @tc.name : 003.本地音频暂停状态:进行恢复播放 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Play成功 - 4.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0300', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0500 - * @tc.name : 005.本地音频播放状态:进行结束播放 - * @tc.desc : 1.播放成功 - 2.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0500', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0600 - * @tc.name : 006.本地音频播放状态:暂停后恢复播放,再次暂停 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Play成功 - 4.Pause成功 - 5.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0600', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, PAUSESTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0700 - * @tc.name : 007.本地音频暂停状态:暂停后结束播放 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Stop成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0700', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, STOPSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0800 - * @tc.name : 008.本地音频播放状态:暂停后恢复播放,再结束播放 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.播放成功 - 4.Stop成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0800', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, STOPSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0900 - * @tc.name : 009.本地音频播放状态:停止播放后重新开始播放,暂停后恢复播放,再结束播放 - * @tc.desc : 1.播放成功 - 2.Stop成功 -                3.播放成功 -                4.Pause成功 -                5.Play成功 -                6.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_0900', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, RESETSTATE, SRCSTATE, PLAYSTATE, - PAUSESTATE, PLAYSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1000 - * @tc.name : 010.本地音频暂停状态:停止播放后重新开始播放,暂停后结束播放 - * @tc.desc : 1.播放成功 -                2.Pause成功 -                3.Stop成功 -                4.播放成功 -                5.Pause成功 -                6.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1000', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, STOPSTATE, RESETSTATE, SRCSTATE, PLAYSTATE, - PAUSESTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1100 - * @tc.name : 011.本地音频播放状态:停止播放后重新开始播放,再次结束播放 - * @tc.desc : 1.播放成功 -               2.Stop成功 -               3.播放成功 -               4.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1100', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, RESETSTATE, SRCSTATE, PLAYSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1200 - * @tc.name : 012.本地音频暂停状态:暂停后再次play - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.播放成功 - 4.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1300 - * @tc.name : 013.本地音频停止状态:停止播放后暂停 - * @tc.desc : 1.播放成功 - 2.Stop成功 - 3.Pause失败 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1300', 0, async function (done) { - errCode = STEPERRCODE; - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, PAUSESTATE, ERRORSTATE, PAUSEERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1400 - * @tc.name : 014.本地音频初始状态:开始播放,进行Seek,再暂停 - * @tc.desc : 1.播放成功 - 2.Seek成功 - 3.Pause成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, 0, PAUSESTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1500 - * @tc.name : 015.本地音频初始状态:开始播放,暂停后进行Seek,再恢复播放 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Seek成功 - 4.Play成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1500', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, 0, SEEKSTATE, DURATION_TIME / 2, - SEEKSTATE, audioPlayer.duration, PLAYSTATE, FINISHSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1600 - * @tc.name : 016.本地音频初始状态:开始播放,暂停后恢复播放,进行Seek,再暂停 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Play成功 - 4.Seek成功 - 5.pause成功 - 6.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1600', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, SEEKSTATE, 0, PAUSESTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1700 - * @tc.name : 017.本地音频初始状态:开始播放,进行Seek - * @tc.desc : 1.播放成功 - 2.Seek成功 - 3.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1700', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME / 2, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1800 - * @tc.name : 018.本地音频初始状态:开始播放,进行Seek,停止播放 - * @tc.desc : 1.播放成功 - 2.Seek成功 - 3.Stop成功 - 4.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1800', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME / 2, - STOPSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1900 - * @tc.name : 019.本地音频初始状态:开始播放,停止播放,进行Seek - * @tc.desc : 1.播放成功 - 2.Stop成功 - 3.Seek失败 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_1900', 0, async function (done) { - errCode = STEPERRCODE; - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, SEEKSTATE, 0, ERRORSTATE, SEEKERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2000 - * @tc.name : 020.本地音频初始状态:开始播放,暂停后进行Seek - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Seek成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2000', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, 0, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2100 - * @tc.name : 021.本地音频初始状态:开始播放,暂停后进行Seek,停止播放 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Seek成功 - 4.Stop成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2100', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, DURATION_TIME / 2, - STOPSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2200 - * @tc.name : 022.本地音频初始状态:开始播放,暂停后恢复播放,进行Seek - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Play成功 - 4.Seek成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, SEEKSTATE, 0, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2300 - * @tc.name : 023.本地音频初始状态:开始播放,暂停后恢复播放,进行Seek,停止播放 - * @tc.desc : 1.播放成功 - 2.Pause成功 - 3.Play成功 - 4.Stop成功 - 5.Seek成功 - 6.Stop成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2300', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, SEEKSTATE, 0, STOPSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2400 - * @tc.name : 024.本地音频初始状态:开始播放,停止播放,进行Seek,重新播放 - * @tc.desc : 1.播放成功 - 2.Stop成功 - 3.Seek失败 - 4.重新播放成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2400', 0, async function (done) { - errCode = STEPERRCODE; - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, SEEKSTATE, 0, ERRORSTATE, SEEKERROR, - RESETSTATE, SRCSTATE, PLAYSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2500 - * @tc.name : 025.本地音频播放状态:进行Seek,Seek到文件开始的位置 - * @tc.desc : 1.播放成功 - 2.Seek成功 - 3.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2500', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, 0, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2600 - * @tc.name : 026.本地音频初始状态:开始播放,停止播放,进行Seek,再暂停 - * @tc.desc : 1.播放成功 - 2.Stop成功 - 3.Seek失败 - 4.Pause失败 - 5.Reset成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 3 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2600', 0, async function (done) { - errCode = STEPERRCODE; - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, SEEKSTATE, SEEK_TIME, ERRORSTATE, - SEEKERROR, PAUSESTATE, ERRORSTATE, PAUSEERROR, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2700 - * @tc.name : 027.本地音频初始状态:开始播放,停止播放,进行Seek,再进行恢复播放操作 - * @tc.desc : 1.播放成功; - 2.Stop成功; - 3.Seek失败 - 4.恢复播放成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 3 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2700', 0, async function (done) { - errCode = STEPERRCODE; - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, SEEKSTATE, SEEK_TIME, ERRORSTATE, - SEEKERROR, RESETSTATE, SRCSTATE, PLAYSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2800 - * @tc.name : 028.本地音频播放状态:进行Seek,Seek到文件结尾的位置 - * @tc.desc : 1.播放成功 - 2.Seek成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2800', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME, FINISHSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2900 - * @tc.name : 029.本地音频播放状态:进行Seek,Seek到超过文件结尾的位置 - * @tc.desc : 1.播放成功 - 2.Seek到结尾 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 3 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_2900', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME + DELTA_TIME, - FINISHSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3000 - * @tc.name : 030.本地音频播放状态:进行Seek,Seek到文件随机的位置 - * @tc.desc : 1.Seek成功,查看currenTime与seek到的位置一致 - 2.当前位置为seek设置的随机位置 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3000', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME / 5, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3200 - * @tc.name : 032.本地音频播放状态:暂停时Seek到文件开始,恢复播放 - * @tc.desc : 1.播放成功 - 2.暂停成功 - 3.Seek成功 - 4.Play成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, 0, PLAYSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3300 - * @tc.name : 033.本地音频播放状态:暂停时Seek到文件结尾,恢复播放 - * @tc.desc : 1.播放成功 - 2.暂停成功 - 3.Seek成功 - 4.Play成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3300', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, DURATION_TIME, PLAYSTATE, - FINISHSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3400 - * @tc.name : 034.本地音频播放状态:暂停时Seek到超过文件结尾的位置,恢复播放 - * @tc.desc : 1.播放成功 - 2.暂停成功 - 3.Seek成功 - 4.Play成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 3 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, DURATION_TIME + DELTA_TIME, PLAYSTATE, - FINISHSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3500 - * @tc.name : 035.本地音频播放状态:播放时Seek到超过文件结尾的位置,再重新开始播放 - * @tc.desc : 1.播放成功 - 2.Seek成功 - 3.finish回调函数触发,并重新开始播放 - 3.Play成功 - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 3 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3500', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME + DELTA_TIME, - FINISHSTATE, PLAYSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3600 - * @tc.name : 036.支持设置循环播放 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : Function test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_Function_04_3600', 0, async function (done) { - var playCount = 0; - var seekCount = 0; - var testAudioPlayer = media.createAudioPlayer(); - testAudioPlayer.on('dataLoad', () => { - console.info(`case dataLoad called`); - expect(testAudioPlayer.currentTime).assertEqual(0); - expect(testAudioPlayer.duration).assertEqual(DURATION_TIME); - expect(testAudioPlayer.state).assertEqual('paused'); - testAudioPlayer.loop = true; - testAudioPlayer.play(); - }); - testAudioPlayer.on('play', () => { - console.info(`case play called`); - console.info(`case play currentTime is ${testAudioPlayer.currentTime}`); - expect(testAudioPlayer.duration).assertEqual(DURATION_TIME); - expect(testAudioPlayer.state).assertEqual('playing'); - sleep(PLAY_TIME); - if (playCount == 1) { - return; - } - playCount++ - testAudioPlayer.seek(DURATION_TIME); - }); - testAudioPlayer.on('timeUpdate', (seekDoneTime) => { - if (typeof (seekDoneTime) == "undefined") { - console.info(`case seek filed,errcode is ${seekDoneTime}`); - return; - } - if (seekCount == 1) { - testAudioPlayer.reset(); - return; - } - seekCount++ - console.info(`case seekDoneTime is ${seekDoneTime}`); - console.info(`case seek called`); - expect(testAudioPlayer.currentTime + 1).assertClose(seekDoneTime + 1, DELTA_TIME); - }); - testAudioPlayer.on('finish', () => { - expect(testAudioPlayer.state).assertEqual('playing'); - console.info(`case finish called`); - }); - testAudioPlayer.on('reset', () => { - expect(testAudioPlayer.state).assertEqual('idle'); - console.info(`case reset called`); - testAudioPlayer.release(); - done(); - }); - testAudioPlayer.src = audioSource; - }) - -}) \ No newline at end of file diff --git a/multimedia/media/media_js_test_standard/src/main/js/test/reliability/media_player/PlayerLocalTestAudioAPI.test.js b/multimedia/media/media_js_test_standard/src/main/js/test/reliability/media_player/PlayerLocalTestAudioAPI.test.js deleted file mode 100644 index c0adf89ea..000000000 --- a/multimedia/media/media_js_test_standard/src/main/js/test/reliability/media_player/PlayerLocalTestAudioAPI.test.js +++ /dev/null @@ -1,1124 +0,0 @@ -/* - * 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 media from '@ohos.multimedia.media' -import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' - -describe('PlayerLocalTestAudioAPI', function () { - var audioPlayer = media.createAudioPlayer(); - var audioSource = "data/media/audio/Homey.mp3"; - var PLAY_TIME = 3000; - var ENDSTATE = 0; - var SRCSTATE = 1; - var PLAYSTATE = 2; - var PAUSESTATE = 3; - var STOPSTATE = 4; - var RESETSTATE = 5; - var SEEKSTATE = 6; - var VOLUMESTATE = 7; - var RELEASESTATE = 8; - var ERRORSTATE = 9; - var FINISHSTATE = 10; - var LOOPSTATE = 11; - var NOERROR = 0; - var DURATION_TIME = 89239; - var SEEK_TIME = 5000; - var VOLUMEVALUE = 0.1; - var DELTA_TIME = 1000; - var SRCERROR = 'sourceError'; - var SEEKERROR = 'seekError'; - var PAUSEERROR = 'pauseError'; - var PLAYERROR = 'playError'; - var STOPERROR = 'stopError'; - var errCode = NOERROR; - var ERRSTEP = 38; - var ERRSRC = 22; - beforeAll(function () { - console.info("beforeAll case"); - }) - - beforeEach(function () { - console.info("beforeEach case"); - }) - - afterEach(function () { - console.info("afterEach case"); - errCode = NOERROR; - }) - - afterAll(function () { - console.info("afterAll case"); - }) - - var sleep = function(time) { - for(var t = Date.now();Date.now() - t <= time;); - }; - - var initAudioPlayer = function() { - audioPlayer.release(); - audioPlayer = media.createAudioPlayer(); - } - - var nextStep = function(mySteps, done) { - if (mySteps[0] == ENDSTATE) { - if (mySteps[1] == false || mySteps[1] == true) { - expect(audioPlayer.loop).assertEqual(mySteps[1]); - } - done(); - return; - } - switch (mySteps[0]) { - case SRCSTATE: - console.info(`case to prepare`); - audioPlayer.src = audioSource; - break; - case PLAYSTATE: - console.info(`case to play`); - audioPlayer.play(); - break; - case PAUSESTATE: - console.info(`case to pause`); - audioPlayer.pause(); - break; - case STOPSTATE: - console.info(`case to stop`); - audioPlayer.stop(); - break; - case RESETSTATE: - console.info(`case to reset`); - audioPlayer.reset(); - break; - case SEEKSTATE: - console.info(`case seek to time is ${mySteps[1]}`); - audioPlayer.seek(mySteps[1]); - break; - case VOLUMESTATE: - console.info(`case to setVolume`); - audioPlayer.setVolume(mySteps[1]); - break; - case RELEASESTATE: - console.info(`case to release`); - mySteps.shift(); - audioPlayer.release(); - nextStep(mySteps, done); - break; - case LOOPSTATE: - audioPlayer.loop = mySteps[1]; - mySteps.shift(); - mySteps.shift(); - nextStep(mySteps, done); - break; - default: - break; - } - } - var setCallback = function(mySteps, done) { - console.info(`case setCallback`); - audioPlayer.on('dataLoad', () => { - mySteps.shift(); - console.info(`case dataLoad called`); - expect(audioPlayer.currentTime).assertEqual(0); - expect(audioPlayer.duration).assertEqual(DURATION_TIME); - expect(audioPlayer.state).assertEqual('paused'); - nextStep(mySteps, done); - }); - - audioPlayer.on('play', () => { - mySteps.shift(); - console.info(`case play called`); - console.info(`case play currentTime is ${audioPlayer.currentTime}`); - expect(audioPlayer.duration).assertEqual(DURATION_TIME); - if (mySteps[0] == FINISHSTATE) { - console.info(`case wait for finish`); - return; - } - expect(audioPlayer.state).assertEqual('playing'); - nextStep(mySteps, done); - }); - - audioPlayer.on('pause', () => { - mySteps.shift(); - console.info(`case pause called`); - console.info(`case pause currentTime is ${audioPlayer.currentTime}`); - expect(audioPlayer.duration).assertEqual(DURATION_TIME); - expect(audioPlayer.state).assertEqual('paused'); - nextStep(mySteps, done); - }); - - audioPlayer.on('reset', () => { - mySteps.shift(); - console.info(`case reset called`); - expect(audioPlayer.state).assertEqual('idle'); - nextStep(mySteps, done); - }); - - audioPlayer.on('stop', () => { - mySteps.shift(); - console.info(`case stop called`); - expect(audioPlayer.currentTime).assertEqual(0); - expect(audioPlayer.duration).assertEqual(DURATION_TIME); - expect(audioPlayer.state).assertEqual('stopped'); - nextStep(mySteps, done); - }); - - audioPlayer.on('timeUpdate', (seekDoneTime) => { - if (typeof (seekDoneTime) == "undefined") { - console.info(`case seek filed,errcode is ${seekDoneTime}`); - return; - } - mySteps.shift(); - mySteps.shift(); - console.info(`case seekDoneTime is ${seekDoneTime}`); - console.info(`case seek called`); - expect(audioPlayer.currentTime + DELTA_TIME).assertClose(seekDoneTime + DELTA_TIME, DELTA_TIME); - console.info(`case loop is ${audioPlayer.loop}`); - if ((audioPlayer.loop == true) && (seekDoneTime == DURATION_TIME)) { - console.info('case loop is true'); - sleep(PLAYSTATE); - } - if (seekDoneTime < audioPlayer.duration || audioPlayer.state == "paused") { - nextStep(mySteps, done); - } - }); - - audioPlayer.on('volumeChange', () => { - console.info(`case setvolume called`); - mySteps.shift(); - mySteps.shift(); - if (audioPlayer.state == "playing") { - sleep(PLAY_TIME); - } - nextStep(mySteps, done); - }); - - audioPlayer.on('finish', () => { - mySteps.shift(); - expect(audioPlayer.state).assertEqual('stopped'); - expect(audioPlayer.currentTime).assertClose(audioPlayer.duration, DELTA_TIME); - console.info(`case finish called`); - nextStep(mySteps, done); - }); - - audioPlayer.on('error', (err) => { - console.info(`case error called,errName is ${err.name}`); - console.info(`case error called,errCode is ${err.code}`); - console.info(`case error called,errMessage is ${err.message}`); - expect(err.code).assertEqual(errCode); - if ((mySteps[0] == SEEKSTATE) || (mySteps[0] == VOLUMESTATE)) { - expect(mySteps[2]).assertEqual(ERRORSTATE); - expect(err.message).assertEqual(mySteps[3]); - mySteps.shift(); - mySteps.shift(); - mySteps.shift(); - mySteps.shift(); - } else { - expect(mySteps[1]).assertEqual(ERRORSTATE); - expect(err.message).assertEqual(mySteps[2]); - mySteps.shift(); - mySteps.shift(); - mySteps.shift(); - } - nextStep(mySteps, done); - }); - }; - - /* * - * @tc.number : SUB_MEDIA_PLAYER_createAudioPlayer_API_0100 - * @tc.name : 01.创建一个音频播放器createAudioPlayer() - * @tc.desc : testcreateAudioPlayer - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_createAudioPlayer_API_0100', 0, async function (done) { - var audioPlayerTest = media.createAudioPlayer(); - expect(audioPlayerTest != null).assertTrue(); - done(); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0100 - * @tc.name : 01.play操作在createAudioPlayer之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0100', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(PLAYSTATE, ERRORSTATE, PLAYERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.play(); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0200 - * @tc.name : 02.play操作在pause之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0200', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, PLAYSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0300 - * @tc.name : 03.play操作在stop之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0300', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, PLAYSTATE, ERRORSTATE, PLAYERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0400 - * @tc.name : 04.play操作在seek之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, SEEK_TIME, PLAYSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0800 - * @tc.name : 08.play操作在reset之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0800', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, RESETSTATE, PLAYSTATE, ERRORSTATE, PLAYERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0900 - * @tc.name : 09.play操作在release之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Play_API_0900', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, RELEASESTATE, PLAYSTATE, ERRORSTATE, PLAYERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0100 - * @tc.name : 01.pause操作在createAudioPlayer之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0100', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(PAUSESTATE, ERRORSTATE, PAUSEERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.pause(); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0200 - * @tc.name : 02.pause操作在play之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0300 - * @tc.name : 02.pause操作在stop之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0300', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(PLAYSTATE, STOPSTATE, PAUSESTATE, ERRORSTATE, PAUSEERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0400 - * @tc.name : 04.pause操作在seek之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, PAUSESTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0800 - * @tc.name : 08.pause操作在reset之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0800', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, RESETSTATE, PAUSESTATE, ERRORSTATE, PAUSEERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0900 - * @tc.name : 09.pause操作在release之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0900', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, RELEASESTATE, PAUSESTATE, ERRORSTATE, PAUSEERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0100 - * @tc.name : 01.stop操作在createAudioPlayer之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0100', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(STOPSTATE, ERRORSTATE, STOPERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.stop(); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0200 - * @tc.name : 02.stop操作在play之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0300 - * @tc.name : 03.stop操作在pause之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0300', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, STOPSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0400 - * @tc.name : 04.stop操作在seek之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, STOPSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0800 - * @tc.name : 08.stop操作在reset之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0800', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, STOPSTATE, ERRORSTATE, STOPERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Pause_API_0900 - * @tc.name : 09.stop操作在release之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Stop_API_0900', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, PLAYSTATE, RELEASESTATE, STOPSTATE, ERRORSTATE, STOPERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0100 - * @tc.name : 01.seek操作在createAudioPlayer之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0100', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SEEKSTATE, SEEK_TIME, ERRORSTATE, SEEKERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - var seekTime = SEEK_TIME; - audioPlayer.seek(seekTime); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0200 - * @tc.name : 02.seek操作在play之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0300 - * @tc.name : 03.seek操作在pause之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0300', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, SEEKSTATE, SEEK_TIME, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0500 - * @tc.name : 05.seek操作在stop之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0500', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, SEEKSTATE, SEEK_TIME, ERRORSTATE, SEEKERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0700 - * @tc.name : 07.seek操作调用3次 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0700', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, SEEKSTATE, 6000, SEEKSTATE, 7000, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0800 - * @tc.name : 08.seek到码流任意某一点(0~码流时长) - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0800', 0, async function (done) { - var randomTime = parseInt(Math.random()*(audioPlayer.duration + 1),10); - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, randomTime, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0900 - * @tc.name : 9.seek到起始位置(0) - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_0900', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, 0, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1000 - * @tc.name : 10.seek到结束位置(码流时长) - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1000', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME, FINISHSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1100 - * @tc.name : 11.seek操作在reset之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1100', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, SEEKSTATE, SEEK_TIME, - ERRORSTATE, SEEKERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1200 - * @tc.name : 12.seek操作在release之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1200', 0, async function (done) { - errCode = ERRSTEP; - var mySteps = new Array(SRCSTATE, PLAYSTATE, RELEASESTATE, SEEKSTATE, SEEK_TIME, - ERRORSTATE, SEEKERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1400 - * @tc.name : 14.seek到超出码流时长 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Seek_API_1400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, DURATION_TIME + DURATION_TIME, FINISHSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0200 - * @tc.name : 02.reset操作在play之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0300 - * @tc.name : 03.reset操作在pause之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0300', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0400 - * @tc.name : 04.reset操作在stop之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0500 - * @tc.name : 05.reset操作在seek之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Reset_API_0500', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, RESETSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0100 - * @tc.name : 01.release操作在createAudioPlayer之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0100', 0, async function (done) { - var mySteps = new Array(RELEASESTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.release(); - done(); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0200 - * @tc.name : 02.release操作在play之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, RELEASESTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0300 - * @tc.name : 03.release操作在pause之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0300', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, RELEASESTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0400 - * @tc.name : 04.release操作在stop之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, RELEASESTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0500 - * @tc.name : 05.release操作在seek之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0500', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, RELEASESTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0700 - * @tc.name : 07.release操作在reset之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Release_API_0700', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, RELEASESTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_URI_API_0300 - * @tc.name : 003.播放文件名超长(255)的本地音频素材 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_URI_API_0300', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = "data/media/audio/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.mp3"; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_URI_API_0500 - * @tc.name : 005.播放文件名为“” - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_URI_API_0500', 0, async function (done) { - errCode = ERRSRC; - var mySteps = new Array(SRCSTATE, ERRORSTATE, SRCERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = ""; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_URI_API_0800 - * @tc.name : 008. 传入的地址不存在 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 0 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_URI_API_0800', 0, async function (done) { - errCode = 331350552; - var mySteps = new Array(SRCSTATE, ERRORSTATE, SRCERROR, ENDSTATE); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = "data/media/audio/no.mp3"; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0100 - * @tc.name : 01.set loop true操作在createAudioPlayer之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0100', 0, async function (done) { - initAudioPlayer(); - audioPlayer.loop = true; - expect(audioPlayer.loop).assertEqual(false); - done(); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0200 - * @tc.name : 02.set loop true操作在play之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, LOOPSTATE, true, ENDSTATE, true); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0300 - * @tc.name : 03.set loop true操作在pause之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0300', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, LOOPSTATE, true, ENDSTATE, true); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0400 - * @tc.name : 04.set loop true操作在stop之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, LOOPSTATE, true, ENDSTATE, true); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0500 - * @tc.name : 05.set loop true操作在seek之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0500', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, LOOPSTATE, true, ENDSTATE, true); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0700 - * @tc.name : 07.set loop true操作在reset之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0700', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, LOOPSTATE, true, ENDSTATE, false); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0800 - * @tc.name : 08.set loop false操作在createAudioPlayer之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0800', 0, async function (done) { - initAudioPlayer(); - audioPlayer.loop = false; - expect(audioPlayer.loop).assertEqual(false); - done(); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0900 - * @tc.name : 09.set loop false操作在play之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_0900', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, LOOPSTATE, false, ENDSTATE, false); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1000 - * @tc.name : 10.set loop false操作在pause之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1000', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, PAUSESTATE, LOOPSTATE, false, ENDSTATE, false); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1100 - * @tc.name : 11.set loop false操作在stop之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1100', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, STOPSTATE, LOOPSTATE, false, ENDSTATE, false); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1200 - * @tc.name : 12.set loop false操作在seek之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1200', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, SEEKSTATE, SEEK_TIME, LOOPSTATE, false, ENDSTATE, false); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1400 - * @tc.name : 14.set loop false操作在reset之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Loop_API_1400', 0, async function (done) { - var mySteps = new Array(SRCSTATE, PLAYSTATE, RESETSTATE, LOOPSTATE, false, ENDSTATE, false); - initAudioPlayer(); - setCallback(mySteps, done); - audioPlayer.src = audioSource; - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Time_API_0100 - * @tc.name : 01.获取参数操作在createAudioPlayer之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Time_API_0100', 0, async function (done) { - initAudioPlayer(); - expect(audioPlayer.src).assertEqual(undefined); - expect(audioPlayer.duration).assertEqual(undefined); - expect(audioPlayer.currentTime).assertEqual(undefined); - expect(audioPlayer.state).assertEqual('idle'); - expect(audioPlayer.loop).assertEqual(false); - done(); - }) - - /* * - * @tc.number : SUB_MEDIA_PLAYER_AudioPlayer_Time_API_0200 - * @tc.name : 02.获取参数操作在setsrc之后 - * @tc.desc : - * @tc.size : MEDIUM - * @tc.type : API Test - * @tc.level : Level 2 - */ - it('SUB_MEDIA_PLAYER_AudioPlayer_Time_API_0200', 0, async function (done) { - initAudioPlayer(); - audioPlayer.src = audioSource; - sleep(PLAY_TIME); - expect(audioPlayer.src).assertEqual(audioSource); - expect(audioPlayer.currentTime).assertEqual(0); - expect(audioPlayer.duration).assertEqual(DURATION_TIME); - expect(audioPlayer.state).assertEqual('paused'); - expect(audioPlayer.loop).assertEqual(false); - done(); - }) - -}) -- GitLab