diff --git a/multimedia/media/media_js_standard/audioPlayer/Test.json b/multimedia/media/media_js_standard/audioPlayer/Test.json index 8d705ef062a1f50e917474387d1415222f66a863..70ad4293d11cb99aa887e843a5dbab4eaf265310 100644 --- a/multimedia/media/media_js_standard/audioPlayer/Test.json +++ b/multimedia/media/media_js_standard/audioPlayer/Test.json @@ -15,11 +15,19 @@ "cleanup-apps": true }, { + "type": "ShellKit", + "run-command": [ + "mkdir -p /data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile" + ], + "teardown-command":[ + ] + }, + { "type": "PushKit", "pre-push": [ ], "push": [ - "./resource/audio/01.mp3 ->/data/accounts/account_0/appdata/ohos.acts.multimedia.audio.audioplayer/", + "./resource/audio/01.mp3 ->/data/app/el1/bundle/public/ohos.acts.multimedia.audio.audioplayer/ohos.acts.multimedia.audio.audioplayer/assets/entry/resources/rawfile/", "./resource/audio/02.mp3 ->/data/accounts/account_0/appdata/ohos.acts.multimedia.audio.audioplayer/", "./resource/audio/03.mp3 ->/data/accounts/account_0/appdata/ohos.acts.multimedia.audio.audioplayer/", "./resource/audio/04.mp3 ->/data/accounts/account_0/appdata/ohos.acts.multimedia.audio.audioplayer/", @@ -44,13 +52,6 @@ "./resource/audio/97.mp4 ->/data/accounts/account_0/appdata/ohos.acts.multimedia.audio.audioplayer/", "./resource/audio/98.mp4 ->/data/accounts/account_0/appdata/ohos.acts.multimedia.audio.audioplayer/" ] - }, - { - "type": "ShellKit", - "run-command": [ - ], - "teardown-command":[ - ] } ] } diff --git a/multimedia/media/media_js_standard/audioPlayer/src/main/js/test/PlayerLocalTestAudioFUNC.test.js b/multimedia/media/media_js_standard/audioPlayer/src/main/js/test/PlayerLocalTestAudioFUNC.test.js index 13a6355f1eb3cc4a50a0c4add13e31b86806ff29..b0d940d89826bd7185fe23fd6edc7cce508df8f3 100644 --- a/multimedia/media/media_js_standard/audioPlayer/src/main/js/test/PlayerLocalTestAudioFUNC.test.js +++ b/multimedia/media/media_js_standard/audioPlayer/src/main/js/test/PlayerLocalTestAudioFUNC.test.js @@ -15,12 +15,14 @@ import media from '@ohos.multimedia.media' import fileIO from '@ohos.fileio' +import {getFileDescriptor, closeFileDescriptor} from './PlayerLocalTestBase.js'; import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' describe('PlayerLocalTestAudioFUNC', function () { let audioPlayer = media.createAudioPlayer(); let isTimeOut = false; const AUDIO_SOURCE = '/data/accounts/account_0/appdata/ohos.acts.multimedia.audio.audioplayer/01.mp3'; + const AUDIO_FILE = '01.mp3'; const PLAY_TIME = 3000; const DURATION_TIME = 219600; const SEEK_TIME = 5000; @@ -37,15 +39,20 @@ describe('PlayerLocalTestAudioFUNC', function () { const ERROR_STATE = 9; const FINISH_STATE = 10; const LOOP_STATE = 11; + const FDSRC_STATE = 12; const SECOND_INDEX = 1; const RAND_NUM = 5; const TIME_OUT = 40000; const MAX_VOLUME = 1; let fdPath; let fdValue; + let fileDescriptor; beforeAll(async function() { await getFd(); + await getFileDescriptor(AUDIO_FILE).then((res) => { + fileDescriptor = res; + }); console.info('beforeAll case'); }) @@ -60,6 +67,7 @@ describe('PlayerLocalTestAudioFUNC', function () { afterAll(async function() { await fileIO.close(fdValue); + await closeFileDescriptor(AUDIO_FILE); console.info('afterAll case'); }) @@ -103,6 +111,10 @@ describe('PlayerLocalTestAudioFUNC', function () { console.info(`case to prepare`); audioPlayer.src = fdPath; break; + case FDSRC_STATE: + console.info(`case to prepare`); + audioPlayer.fdSrc = fileDescriptor; + break; case PLAY_STATE: console.info(`case to play`); audioPlayer.play(); @@ -819,4 +831,142 @@ describe('PlayerLocalTestAudioFUNC', function () { setCallback(mySteps, done); audioPlayer.src = fdPath; }) + + /* * + * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0100 + * @tc.name : 001.play + * @tc.desc : Audio playback control test + * @tc.size : MediumTest + * @tc.type : Function test + * @tc.level : Level0 + */ + it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0100', 0, async function (done) { + console.info(`case update`); + let mySteps = new Array(SRC_STATE, PLAY_STATE, END_STATE); + initAudioPlayer(); + setCallback(mySteps, done); + audioPlayer.fdSrc = fileDescriptor; + }) + + /* * + * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0200 + * @tc.name : 002.play->pause + * @tc.desc : Audio playback control test + * @tc.size : MediumTestTest + * @tc.type : Function test + * @tc.level : Level0 + */ + it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0200', 0, async function (done) { + let mySteps = new Array(SRC_STATE, PLAY_STATE, PAUSE_STATE, RESET_STATE, END_STATE); + initAudioPlayer(); + setCallback(mySteps, done); + audioPlayer.fdSrc = fileDescriptor; + }) + + /* * + * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0300 + * @tc.name : 003.play->pause->play->reset + * @tc.desc : Audio playback control test + * @tc.size : MediumTest + * @tc.type : Function test + * @tc.level : Level0 + */ + it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0300', 0, async function (done) { + let mySteps = new Array(SRC_STATE, PLAY_STATE, PAUSE_STATE, PLAY_STATE, RESET_STATE, END_STATE); + initAudioPlayer(); + setCallback(mySteps, done); + audioPlayer.fdSrc = fileDescriptor; + }) + + /* * + * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0500 + * @tc.name : 005.play->reset + * @tc.desc : Audio playback control test + * @tc.size : MediumTest + * @tc.type : Function test + * @tc.level : Level0 + */ + it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0500', 0, async function (done) { + let mySteps = new Array(SRC_STATE, PLAY_STATE, RESET_STATE, END_STATE); + initAudioPlayer(); + setCallback(mySteps, done); + audioPlayer.fdSrc = fileDescriptor; + }) + + /* * + * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0600 + * @tc.name : 006.play->pause->play->pause + * @tc.desc : Audio playback control test + * @tc.size : MediumTest + * @tc.type : Function test + * @tc.level : Level0 + */ + it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0600', 0, async function (done) { + let mySteps = new Array(SRC_STATE, PLAY_STATE, PAUSE_STATE, PLAY_STATE, PAUSE_STATE, END_STATE); + initAudioPlayer(); + setCallback(mySteps, done); + audioPlayer.fdSrc = fileDescriptor; + }) + + /* * + * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0700 + * @tc.name : 007.play->pause->stop + * @tc.desc : Audio playback control test + * @tc.size : MediumTest + * @tc.type : Function test + * @tc.level : Level0 + */ + it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0700', 0, async function (done) { + let mySteps = new Array(SRC_STATE, PLAY_STATE, PAUSE_STATE, STOP_STATE, END_STATE); + initAudioPlayer(); + setCallback(mySteps, done); + audioPlayer.fdSrc = fileDescriptor; + }) + + /* * + * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0800 + * @tc.name : 008.play->pause->play->stop + * @tc.desc : Audio playback control test + * @tc.size : MediumTest + * @tc.type : Function test + * @tc.level : Level0 + */ + it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0800', 0, async function (done) { + let mySteps = new Array(SRC_STATE, PLAY_STATE, PAUSE_STATE, PLAY_STATE, STOP_STATE, END_STATE); + initAudioPlayer(); + setCallback(mySteps, done); + audioPlayer.fdSrc = fileDescriptor; + }) + + /* * + * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0900 + * @tc.name : 009.play->stop->reset->play->pause->play->reset + * @tc.desc : Audio playback control test + * @tc.size : MediumTest + * @tc.type : Function test + * @tc.level : Level0 + */ + it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_0900', 0, async function (done) { + let mySteps = new Array(SRC_STATE, PLAY_STATE, STOP_STATE, RESET_STATE, SRC_STATE, PLAY_STATE, + PAUSE_STATE, PLAY_STATE, RESET_STATE, END_STATE); + initAudioPlayer(); + setCallback(mySteps, done); + audioPlayer.fdSrc = fileDescriptor; + }) + + /* * + * @tc.number : SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_1000 + * @tc.name : 010.play->pause->stop->reset->play->pause->reset + * @tc.desc : Audio playback control test + * @tc.size : MediumTest + * @tc.type : Function test + * @tc.level : Level0 + */ + it('SUB_MEDIA_PLAYER_LOCAL_AUDIO_FUNCTION_05_1000', 0, async function (done) { + let mySteps = new Array(SRC_STATE, PLAY_STATE, PAUSE_STATE, STOP_STATE, RESET_STATE, SRC_STATE, PLAY_STATE, + PAUSE_STATE, RESET_STATE, END_STATE); + initAudioPlayer(); + setCallback(mySteps, done); + audioPlayer.fdSrc = fileDescriptor; + }) }) diff --git a/multimedia/media/media_js_standard/audioPlayer/src/main/js/test/PlayerLocalTestBase.js b/multimedia/media/media_js_standard/audioPlayer/src/main/js/test/PlayerLocalTestBase.js new file mode 100644 index 0000000000000000000000000000000000000000..f23198e99f6f2c56ff349d2808738d6e333b9b4e --- /dev/null +++ b/multimedia/media/media_js_standard/audioPlayer/src/main/js/test/PlayerLocalTestBase.js @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import resourceManager from '@ohos.resourceManager'; + +export async function getFileDescriptor(fileName) { + let fileDescriptor; + await resourceManager.getResourceManager().then(async (mgr) => { + await mgr.getRawFileDescriptor(fileName).then(value => { + console.log('case getRawFileDescriptor fd: ' + value.fd); + fileDescriptor = {fd: value.fd, offset: value.offset, length: value.length}; + }).catch(error => { + console.log('case getRawFileDescriptor err: ' + error); + }); + }); + return fileDescriptor; +} + +export async function closeFileDescriptor(fileName) { + await resourceManager.getResourceManager().then(async (mgr) => { + await mgr.closeRawFileDescriptor(fileName).then(value => { + console.log('case closeRawFileDescriptor ' + value); + }).catch(error => { + console.log('case closeRawFileDescriptor err: ' + error); + }); + }); +} diff --git a/multimedia/media/media_js_standard/videoPlayer/Test.json b/multimedia/media/media_js_standard/videoPlayer/Test.json index 97db72d66aaeed92612c080d86a203ca68bd9d40..b7fd02d018c7c6b5e0372918f999bf34754bf00b 100644 --- a/multimedia/media/media_js_standard/videoPlayer/Test.json +++ b/multimedia/media/media_js_standard/videoPlayer/Test.json @@ -14,20 +14,21 @@ "type": "AppInstallKit", "cleanup-apps": true }, - { - "type": "PushKit", - "pre-push": [ - ], - "push": [ - "./resource/audio/H264_AAC.mp4 ->/data/accounts/account_0/appdata/ohos.acts.multimedia.video.videoplayer/" - ] - }, { "type": "ShellKit", "run-command": [ + "mkdir -p /data/app/el1/bundle/public/ohos.acts.multimedia.video.videoplayer/ohos.acts.multimedia.video.videoplayer/assets/entry/resources/rawfile" ], "teardown-command":[ ] + }, + { + "type": "PushKit", + "pre-push": [ + ], + "push": [ + "./resource/audio/H264_AAC.mp4 ->/data/app/el1/bundle/public/ohos.acts.multimedia.video.videoplayer/ohos.acts.multimedia.video.videoplayer/assets/entry/resources/rawfile/" + ] } ] } diff --git a/multimedia/media/media_js_standard/videoPlayer/src/main/js/test/VideoPlayerFuncCallbackTest.test.js b/multimedia/media/media_js_standard/videoPlayer/src/main/js/test/VideoPlayerFuncCallbackTest.test.js index 68a686010452fdb136055a95317df4d7b4d097d2..2655233f14268968e8122938b4d1c637ea191e02 100644 --- a/multimedia/media/media_js_standard/videoPlayer/src/main/js/test/VideoPlayerFuncCallbackTest.test.js +++ b/multimedia/media/media_js_standard/videoPlayer/src/main/js/test/VideoPlayerFuncCallbackTest.test.js @@ -15,11 +15,11 @@ import media from '@ohos.multimedia.media' import router from '@system.router' -import fileIO from '@ohos.fileio' +import {getFileDescriptor, closeFileDescriptor} from './VideoPlayerTestBase.js'; import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' describe('VideoPlayerFuncCallbackTest', function () { - const AUDIO_SOURCE = '/data/accounts/account_0/appdata/ohos.acts.multimedia.video.videoplayer/H264_AAC.mp4'; + const VIDEO_SOURCE = 'H264_AAC.mp4'; const PLAY_TIME = 3000; const SEEK_TIME = 5000; const WIDTH_VALUE = 720; @@ -29,7 +29,7 @@ describe('VideoPlayerFuncCallbackTest', function () { const SETSURFACE_EVENT = 'setDisplaySurface'; const GETDESCRIPTION = 'getTrackDescription'; const PREPARE_EVENT = 'prepare'; - const PREPARE2_EVENT = 'prepare2'; + const SRC_PREPARE_EVENT = 'src2prepare'; const PLAY_EVENT = 'play'; const PAUSE_EVENT = 'pause'; const STOP_EVENT = 'stop'; @@ -46,20 +46,20 @@ describe('VideoPlayerFuncCallbackTest', function () { const NEXT_FRAME_TIME = 8333; const PREV_FRAME_TIME = 4166; let surfaceID = ''; - let fdPath; - let fdValue; + let fileDescriptor; let temp = 0; let events = require('events'); let eventEmitter = new events.EventEmitter(); - beforeAll(function() { + beforeAll(async function() { console.info('beforeAll case'); + await getFileDescriptor(VIDEO_SOURCE).then((res) => { + fileDescriptor = res; + }); }) beforeEach(async function() { - console.info('case flush surfaceID start'); await toNewPage(); - console.info('case flush surfaceID end'); await msleep(1000).then(() => { }, failureCallback).catch(catchCallback); console.info('beforeEach case'); @@ -71,7 +71,7 @@ describe('VideoPlayerFuncCallbackTest', function () { }) afterAll(async function() { - await fileIO.close(fdValue); + await closeFileDescriptor(VIDEO_SOURCE); console.info('afterAll case'); }) @@ -112,19 +112,6 @@ describe('VideoPlayerFuncCallbackTest', function () { } } - async function getFd() { - fdPath = 'fd://'; - await fileIO.open(AUDIO_SOURCE).then((fdNumber) => { - fdPath = fdPath + '' + fdNumber; - fdValue = fdNumber; - console.info('[fileIO]case open fd success,fdPath is ' + fdPath); - }, (err) => { - console.info('[fileIO]case open fd failed'); - }).catch((err) => { - console.info('[fileIO]case catch open fd failed'); - }); - } - function printfError(error, done) { expect().assertFail(); console.info(`case error called,errMessage is ${error.message}`); @@ -149,7 +136,6 @@ describe('VideoPlayerFuncCallbackTest', function () { eventEmitter.emit(steps[0], videoPlayer, steps, done); } } - function setOnCallback(videoPlayer) { videoPlayer.on('playbackCompleted', () => { console.info('case playbackCompleted success'); @@ -190,7 +176,7 @@ describe('VideoPlayerFuncCallbackTest', function () { eventEmitter.on(SETSURFACE_EVENT, (videoPlayer, steps, done) => { steps.shift(); - videoPlayer.url = fdPath; + videoPlayer.fdSrc = fileDescriptor; videoPlayer.setDisplaySurface(surfaceID, (err) => { if (typeof (err) == 'undefined') { expect(videoPlayer.state).assertEqual('idle'); @@ -218,9 +204,9 @@ describe('VideoPlayerFuncCallbackTest', function () { }); }); - eventEmitter.on(PREPARE2_EVENT, (videoPlayer, steps, done) => { + eventEmitter.on(SRC_PREPARE_EVENT, (videoPlayer, steps, done) => { steps.shift(); - videoPlayer.url = fdPath; + videoPlayer.fdSrc = fileDescriptor; videoPlayer.prepare((err) => { if (typeof (err) == 'undefined') { expect(videoPlayer.state).assertEqual('prepared'); @@ -446,7 +432,6 @@ describe('VideoPlayerFuncCallbackTest', function () { * @tc.level : Level0 */ it('SUB_MEDIA_VIDEO_PLAYER_FUNCTION_CALLBACK_0100', 0, async function (done) { - await getFd(); surfaceID = globalThis.value; console.info('case new surfaceID is ' + surfaceID); let videoPlayer = null; @@ -742,7 +727,7 @@ describe('VideoPlayerFuncCallbackTest', function () { console.info('case new surfaceID is ' + surfaceID); let videoPlayer = null; let mySteps = new Array(CREATE_EVENT, SETSURFACE_EVENT, PREPARE_EVENT, PLAY_EVENT, - STOP_EVENT, RESET_EVENT, PREPARE2_EVENT, + STOP_EVENT, RESET_EVENT, SRC_PREPARE_EVENT, PLAY_EVENT, RELEASE_EVENT, END_EVENT); eventEmitter.emit(mySteps[0], videoPlayer, mySteps, done); }) diff --git a/multimedia/media/media_js_standard/videoPlayer/src/main/js/test/VideoPlayerFuncPromiseTest.test.js b/multimedia/media/media_js_standard/videoPlayer/src/main/js/test/VideoPlayerFuncPromiseTest.test.js index 8c031160b9de304674f3c9cabed8fa30ed38b7dd..d9cee3c7b90e12ce8f841a6a929e84d3efaff839 100644 --- a/multimedia/media/media_js_standard/videoPlayer/src/main/js/test/VideoPlayerFuncPromiseTest.test.js +++ b/multimedia/media/media_js_standard/videoPlayer/src/main/js/test/VideoPlayerFuncPromiseTest.test.js @@ -19,10 +19,9 @@ import fileIO from '@ohos.fileio' import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' describe('VideoPlayerFuncPromiseTest', function () { - const AUDIO_SOURCE = '/data/accounts/account_0/appdata/ohos.acts.multimedia.video.videoplayer/H264_AAC.mp4'; + const VIDEO_SOURCE = '/data/accounts/account_0/appdata/ohos.acts.multimedia.video.videoplayer/H264_AAC.mp4'; const PLAY_TIME = 3000; const SEEK_TIME = 5000; - const SEEK_CLOSEST = 3; const WIDTH_VALUE = 720; const HEIGHT_VALUE = 480; const DURATION_TIME = 10034; @@ -38,9 +37,7 @@ describe('VideoPlayerFuncPromiseTest', function () { }) beforeEach(async function() { - console.info('case flush surfaceID start'); await toNewPage(); - console.info('case flush surfaceID end'); await msleep(1000).then(() => { }, failureCallback).catch(catchCallback); console.info('beforeEach case'); @@ -95,7 +92,7 @@ describe('VideoPlayerFuncPromiseTest', function () { async function getFd() { fdPath = 'fd://'; - await fileIO.open(AUDIO_SOURCE).then((fdNumber) => { + await fileIO.open(VIDEO_SOURCE).then((fdNumber) => { fdPath = fdPath + '' + fdNumber; fdValue = fdNumber; console.info('[fileIO]case open fd success,fdPath is ' + fdPath); diff --git a/multimedia/media/media_js_standard/videoPlayer/src/main/js/test/VideoPlayerTestBase.js b/multimedia/media/media_js_standard/videoPlayer/src/main/js/test/VideoPlayerTestBase.js new file mode 100644 index 0000000000000000000000000000000000000000..b2879167bf15175e645832caf3578a78e7a6304d --- /dev/null +++ b/multimedia/media/media_js_standard/videoPlayer/src/main/js/test/VideoPlayerTestBase.js @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import resourceManager from '@ohos.resourceManager'; + +export async function getFileDescriptor(fileName) { + let fileDescriptor; + await resourceManager.getResourceManager().then(async (mgr) => { + await mgr.getRawFileDescriptor(fileName).then(value => { + fileDescriptor = {fd: value.fd, offset: value.offset, length: value.length}; + }).catch(error => { + console.log('case getRawFileDescriptor err: ' + error); + }); + }); + return fileDescriptor; +} + +export async function closeFileDescriptor(fileName) { + await resourceManager.getResourceManager().then(async (mgr) => { + await mgr.closeRawFileDescriptor(fileName).then(value => { + console.log('case closeRawFileDescriptor ' + value); + }).catch(error => { + console.log('case closeRawFileDescriptor err: ' + error); + }); + }); +}