1 /*
2  * Copyright (c) 2022-2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #ifndef OHOS_LITE
16 
17 #include <thread>
18 #include <chrono>
19 #include "helper/test_player.hpp"
20 #include "plugin/common/plugin_types.h"
21 #include "testngpp/testngpp.hpp"
22 
23 using namespace OHOS::Media::Test;
24 
25 // @fixture(tags=stdstream)
FIXTURE(TestStdStreamPlayerFast)26 FIXTURE(TestStdStreamPlayerFast)
27 {
28     DATA_PROVIDER(musicUrls, 1,
29     DATA_GROUP(std::string(RESOURCE_DIR "/MP3/mp3_stream")));
30 
31     // @test(data="musicUrls")
32     PTEST((std::string url), Test single player play std stream seekable, and finished automatically)
33     {
34         std::unique_ptr<TestPlayer> player = TestPlayer::Create();
35         auto testsrc = TestSource::CreateTestSource(url, TestSourceType::STREAM,
36                                                     OHOS::Media::Plugin::Seekable::SEEKABLE);
37         ASSERT_EQ(0, player->SetSource(testsrc));
38         ASSERT_EQ(0, player->Prepare());
39         ASSERT_EQ(0, player->Play());
40         while (player->IsPlaying()) {
41             std::this_thread::sleep_for(std::chrono::milliseconds(1000));
42         }
43     }
44 
45     // @test(data="musicUrls")
46     PTEST((std::string url), Test single player play std stream unseekable, and finished automatically)
47     {
48         std::unique_ptr<TestPlayer> player = TestPlayer::Create();
49         auto testsrc = TestSource::CreateTestSource(url, TestSourceType::STREAM,
50                                                     OHOS::Media::Plugin::Seekable::UNSEEKABLE);
51         ASSERT_EQ(0, player->SetSource(testsrc));
52         ASSERT_EQ(0, player->Prepare());
53         ASSERT_EQ(0, player->Play());
54         while (player->IsPlaying()) {
55             std::this_thread::sleep_for(std::chrono::milliseconds(1000));
56         }
57     }
58 };
59 #endif
60