• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2025 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 
16 #include "customised_tone_processor_test.h"
17 #include "ability_context_impl.h"
18 #include "datashare_ext_ability.h"
19 #include "iservice_registry.h"
20 #include "ringtone_restore_napi.h"
21 #include "ringtone_restore_factory.h"
22 #include "ringtone_restore_type.h"
23 #include "ringtone_rdb_callbacks.h"
24 
25 #define private public
26 #define protected public
27 #include "customised_tone_processor.h"
28 #include "dualfwk_conf_loader.h"
29 #undef protected
30 #undef private
31 #include "ringtone_errno.h"
32 #include "ringtone_file_utils.h"
33 #include "ringtone_log.h"
34 #include "ringtone_rdbstore.h"
35 #include "datashare_helper.h"
36 using namespace std;
37 using namespace testing::ext;
38 
39 namespace OHOS {
40 namespace Media {
41 const string TEST_BACKUP_PATH = "/data/test/backup";
42 const string TEST_BACKUP_DATA = "/data/local/tmp/test/Adara.ogg";
43 const std::string TEST_RINGTONE_EXTERNAL_BASE_PATH = "/storage/emulated/0";
44 const std::string TEST_RINGTONE_EXTERNAL_MUSIC_PATH = TEST_RINGTONE_EXTERNAL_BASE_PATH + "/Music";
45 const std::string TEST_FILE_MANAGER_BASE_PATH = "/storage/media/local/files/Docs";
46 const std::string TEST_FILE_MANAGER_MUSIC_PATH = TEST_FILE_MANAGER_BASE_PATH + "/Music";
47 const std::string TEST_FILE_MANAGER_UPDATE_BACKUP_PATH = TEST_FILE_MANAGER_BASE_PATH + "/UpdateBackup";
48 const std::string TEST_FILE_MANAGER_UPDATE_BACKUP_MUSIC_PATH = TEST_FILE_MANAGER_UPDATE_BACKUP_PATH + "/Music";
49 
50 unique_ptr<CustomisedToneProcessor> g_customisedToneProcess = nullptr;
51 
SetUpTestCase(void)52 void CustomisedToneProcessorTest::SetUpTestCase(void)
53 {
54     auto stageContext = std::make_shared<AbilityRuntime::ContextImpl>();
55     auto abilityContextImpl = std::make_shared<OHOS::AbilityRuntime::AbilityContextImpl>();
56     EXPECT_NE(abilityContextImpl, nullptr);
57     abilityContextImpl->SetStageContext(stageContext);
58     shared_ptr<RingtoneUnistore> rUniStore  = RingtoneRdbStore::GetInstance(abilityContextImpl);
59     EXPECT_NE(rUniStore, nullptr);
60     int32_t ret = rUniStore->Init();
61     EXPECT_EQ(ret, E_OK);
62     g_customisedToneProcess = make_unique<CustomisedToneProcessor>();
63     EXPECT_NE(g_customisedToneProcess, nullptr);
64 
65     const string subPath = "/data/local/tmp/test";
66     EXPECT_EQ(RingtoneFileUtils::CreateDirectory(subPath), true);
67     EXPECT_EQ(RingtoneFileUtils::CreateFile(TEST_BACKUP_DATA), E_SUCCESS);
68 }
69 
TearDownTestCase(void)70 void CustomisedToneProcessorTest::TearDownTestCase(void)
71 {
72     g_customisedToneProcess = nullptr;
73     system("rm -rf /data/local/tmp/test");
74 }
75 
SetUp()76 void CustomisedToneProcessorTest::SetUp()
77 {
78     system("rm -rf /storage/media/local");
79 }
80 
TearDown()81 void CustomisedToneProcessorTest::TearDown() {}
82 
83 HWTEST_F(CustomisedToneProcessorTest, customised_tone_processor_001, TestSize.Level0)
84 {
85     DualFwkConf dualFwkConf;
86     int32_t ret = g_customisedToneProcess->GetCustomisedAudioPath(dualFwkConf);
87     EXPECT_EQ(ret, E_OK);
88 
89     std::string ringtonePath = "";
90     std::string ret1 = g_customisedToneProcess->ConvertCustomisedAudioPath(ringtonePath);
91     EXPECT_EQ(ret1, "");
92     ringtonePath = "/Music";
93     ret1 = g_customisedToneProcess->ConvertCustomisedAudioPath(ringtonePath);
94     EXPECT_EQ(ret1, "");
95     ringtonePath = "/storage/emulated/0";
96     ret1 = g_customisedToneProcess->ConvertCustomisedAudioPath(ringtonePath);
97     EXPECT_EQ(ret1, "");
98 }
99 
100 HWTEST_F(CustomisedToneProcessorTest, customised_tone_processor_002, TestSize.Level0)
101 {
102     std::map<std::string, std::shared_ptr<FileInfo>> infoMap;
103     g_customisedToneProcess->BuildFileInfos();
104     int32_t ret = g_customisedToneProcess->QueryFileMgrForFileInfo(infoMap);
105     EXPECT_EQ(ret, E_SUCCESS);
106     std::string dualFilePath = "";
107     int32_t toneType = 2;
108     int32_t ringtoneType = 2;
109     int32_t shotToneType = 2;
110     std::vector<FileInfo> fileInfos;
111     ret = g_customisedToneProcess->BuildFileInfo(dualFilePath, toneType, ringtoneType, shotToneType, fileInfos);
112     EXPECT_EQ(ret, E_FAIL);
113     dualFilePath = "/Music";
114     ret = g_customisedToneProcess->BuildFileInfo(dualFilePath, toneType, ringtoneType, shotToneType, fileInfos);
115     EXPECT_EQ(ret, E_FAIL);
116 }
117 
118 HWTEST_F(CustomisedToneProcessorTest, customised_tone_processor_003, TestSize.Level0)
119 {
120     RINGTONE_INFO_LOG("customised_tone_processor_003::Start");
121     DualFwkConf dualFwkConf;
122     int32_t ret = g_customisedToneProcess->GetCustomisedAudioPath(dualFwkConf);
123     EXPECT_EQ(ret, E_OK);
124 
125     std::string ringtonePath = TEST_RINGTONE_EXTERNAL_BASE_PATH;
126     EXPECT_EQ(RingtoneFileUtils::CreateDirectory(TEST_FILE_MANAGER_BASE_PATH), true);
127     std::string ret1 = g_customisedToneProcess->ConvertCustomisedAudioPath(ringtonePath);
128     EXPECT_EQ(ret1, TEST_FILE_MANAGER_BASE_PATH);
129 
130     ringtonePath = TEST_RINGTONE_EXTERNAL_MUSIC_PATH;
131     EXPECT_EQ(RingtoneFileUtils::CreateDirectory(TEST_FILE_MANAGER_BASE_PATH + "/Music"), true);
132     ret1 = g_customisedToneProcess->ConvertCustomisedAudioPath(ringtonePath);
133     EXPECT_EQ(ret1, TEST_FILE_MANAGER_MUSIC_PATH);
134 
135     ringtonePath = TEST_RINGTONE_EXTERNAL_MUSIC_PATH;
136     EXPECT_EQ(RingtoneFileUtils::CreateDirectory(TEST_FILE_MANAGER_UPDATE_BACKUP_MUSIC_PATH), true);
137     ret1 = g_customisedToneProcess->ConvertCustomisedAudioPath(ringtonePath);
138     EXPECT_EQ(ret1, TEST_FILE_MANAGER_UPDATE_BACKUP_MUSIC_PATH);
139 
140     RINGTONE_INFO_LOG("customised_tone_processor_003::End");
141 }
142 
143 HWTEST_F(CustomisedToneProcessorTest, customised_tone_processor_004, TestSize.Level0)
144 {
145     RINGTONE_INFO_LOG("customised_tone_processor_004::Start");
146     EXPECT_EQ(RingtoneFileUtils::CreateDirectory(TEST_FILE_MANAGER_BASE_PATH), true);
147     std::string dualFilePath = TEST_RINGTONE_EXTERNAL_BASE_PATH;
148     int32_t toneType = 2;
149     int32_t ringtoneType = 2;
150     int32_t shotToneType = 2;
151     std::vector<FileInfo> fileInfos;
152     int32_t ret = g_customisedToneProcess->BuildFileInfo(dualFilePath, toneType, ringtoneType, shotToneType, fileInfos);
153     EXPECT_EQ(ret, E_OK);
154     RINGTONE_INFO_LOG("customised_tone_processor_004::End");
155 }
156 } // namespace Media
157 } // namespace OHOS