• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2024 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 "ringtone_default_settings_test.h"
17 
18 #include <memory>
19 
20 #include "ringtone_errno.h"
21 #define private public
22 #include "ringtone_default_setting.h"
23 #undef private
24 #include "ability_context_impl.h"
25 #include "rdb_store.h"
26 #include "rdb_utils.h"
27 #include "ringtone_rdbstore.h"
28 
29 using namespace std;
30 using namespace OHOS;
31 using namespace testing::ext;
32 
33 namespace OHOS {
34 namespace Media {
SetUpTestCase()35 void RingtoneDefaultSettingsTest::SetUpTestCase()
36 {
37 }
38 
TearDownTestCase()39 void RingtoneDefaultSettingsTest::TearDownTestCase()
40 {
41 }
42 
43 // SetUp:Execute before each test case
SetUp()44 void RingtoneDefaultSettingsTest::SetUp() {}
45 
TearDown(void)46 void RingtoneDefaultSettingsTest::TearDown(void) {}
47 
48 HWTEST_F(RingtoneDefaultSettingsTest, settings_ShotToneDefaultSettings_001, TestSize.Level0)
49 {
50     auto stageContext = std::make_shared<AbilityRuntime::ContextImpl>();
51     auto abilityContextImpl = std::make_shared<OHOS::AbilityRuntime::AbilityContextImpl>();
52     abilityContextImpl->SetStageContext(stageContext);
53     shared_ptr<RingtoneUnistore> uniStore = RingtoneRdbStore::GetInstance(abilityContextImpl);
54     int32_t ret = uniStore->Init();
55     EXPECT_EQ(ret, E_OK);
56     auto rawRdb = uniStore->GetRaw();
57     std::unique_ptr<RingtoneDefaultSetting> defaultSetting = RingtoneDefaultSetting::GetObj(rawRdb);
58     system("param set const.multimedia.system_tone_sim_card_1 Betelgeuse.ogg");
59     system("param set const.multimedia.system_tone_sim_card_0 Bellatrix.ogg");
60     defaultSetting->ShotToneDefaultSettings();
61     Uri uri(RINGTONE_PATH_URI);
62     RingtoneDataCommand cmd(uri, RINGTONE_TABLE, RingtoneOperationType::INSERT);
63     NativeRdb::ValuesBucket values;
64     const string name = "test_name";
65     values.PutString(RINGTONE_COLUMN_DISPLAY_NAME, name);
66     const string data = ROOT_TONE_PRELOAD_PATH_OVERSEA_PATH + "rdbStore_Insert_test_001";
67     values.PutString(RINGTONE_COLUMN_DATA, data);
68     const string title = "insert test";
69     values.PutString(RINGTONE_COLUMN_TITLE, title);
70     values.Put(RINGTONE_COLUMN_RING_TONE_SOURCE_TYPE, static_cast<int>(1));
71     values.Put(RINGTONE_COLUMN_MEDIA_TYPE, static_cast<int>(RINGTONE_MEDIA_TYPE_AUDIO));
72     cmd.SetValueBucket(values);
73     uniStore->Init();
74     int64_t rowId = E_HAS_DB_ERROR;
75     ret = uniStore->Insert(cmd, rowId);
76     EXPECT_EQ(ret, E_OK);
77     defaultSetting->ShotToneDefaultSettings();
78     system("param set const.multimedia.system_tone_sim_card_1 \"\"");
79     system("param set const.multimedia.system_tone_sim_card_0 \"\"");
80     defaultSetting->ShotToneDefaultSettings();
81 }
82 
83 HWTEST_F(RingtoneDefaultSettingsTest, settings_NotificationToneDefaultSettings_001, TestSize.Level0)
84 {
85     auto stageContext = std::make_shared<AbilityRuntime::ContextImpl>();
86     auto abilityContextImpl = std::make_shared<OHOS::AbilityRuntime::AbilityContextImpl>();
87     abilityContextImpl->SetStageContext(stageContext);
88     shared_ptr<RingtoneUnistore> uniStore = RingtoneRdbStore::GetInstance(abilityContextImpl);
89     int32_t ret = uniStore->Init();
90     EXPECT_EQ(ret, E_OK);
91     auto rawRdb = uniStore->GetRaw();
92     std::unique_ptr<RingtoneDefaultSetting> defaultSetting = RingtoneDefaultSetting::GetObj(rawRdb);
93     system("param set const.multimedia.notification_tone Bellatrix.ogg");
94     defaultSetting->NotificationToneDefaultSettings();
95     Uri uri(RINGTONE_PATH_URI);
96     RingtoneDataCommand cmd(uri, RINGTONE_TABLE, RingtoneOperationType::INSERT);
97     NativeRdb::ValuesBucket values;
98     const string name = "test_name";
99     values.PutString(RINGTONE_COLUMN_DISPLAY_NAME, name);
100     const string data = ROOT_TONE_PRELOAD_PATH_CHINA_PATH + "rdbStore_Insert_test_001";
101     values.PutString(RINGTONE_COLUMN_DATA, data);
102     const string title = "insert test";
103     values.PutString(RINGTONE_COLUMN_TITLE, title);
104     values.Put(RINGTONE_COLUMN_RING_TONE_SOURCE_TYPE, static_cast<int>(1));
105     values.Put(RINGTONE_COLUMN_MEDIA_TYPE, static_cast<int>(RINGTONE_MEDIA_TYPE_AUDIO));
106     cmd.SetValueBucket(values);
107     uniStore->Init();
108     int64_t rowId = E_HAS_DB_ERROR;
109     ret = uniStore->Insert(cmd, rowId);
110     EXPECT_EQ(ret, E_OK);
111     defaultSetting->NotificationToneDefaultSettings();
112     system("param set const.multimedia.notification_tone \"\"");
113     defaultSetting->NotificationToneDefaultSettings();
114 }
115 
116 HWTEST_F(RingtoneDefaultSettingsTest, settings_RingToneDefaultSettings_001, TestSize.Level0)
117 {
118     auto stageContext = std::make_shared<AbilityRuntime::ContextImpl>();
119     auto abilityContextImpl = std::make_shared<OHOS::AbilityRuntime::AbilityContextImpl>();
120     abilityContextImpl->SetStageContext(stageContext);
121     shared_ptr<RingtoneUnistore> uniStore = RingtoneRdbStore::GetInstance(abilityContextImpl);
122     int32_t ret = uniStore->Init();
123     EXPECT_EQ(ret, E_OK);
124     auto rawRdb = uniStore->GetRaw();
125     std::unique_ptr<RingtoneDefaultSetting> defaultSetting = RingtoneDefaultSetting::GetObj(rawRdb);
126     system("param set const.multimedia.ringtone_sim_card_1 test_name");
127     system("param set const.multimedia.ringtone_sim_card_0 test_name");
128     defaultSetting->RingToneDefaultSettings();
129     Uri uri(RINGTONE_PATH_URI);
130     RingtoneDataCommand cmd(uri, RINGTONE_TABLE, RingtoneOperationType::INSERT);
131     NativeRdb::ValuesBucket values;
132     const string name = "test_name";
133     values.PutString(RINGTONE_COLUMN_DISPLAY_NAME, name);
134     const string data = ROOT_TONE_PRELOAD_PATH_NOAH_PATH + "rdbStore_Insert_test_001";
135     values.PutString(RINGTONE_COLUMN_DATA, data);
136     const string title = "insert test";
137     values.PutString(RINGTONE_COLUMN_TITLE, title);
138     values.Put(RINGTONE_COLUMN_RING_TONE_SOURCE_TYPE, static_cast<int>(1));
139     values.Put(RINGTONE_COLUMN_MEDIA_TYPE, static_cast<int>(RINGTONE_MEDIA_TYPE_AUDIO));
140     cmd.SetValueBucket(values);
141     uniStore->Init();
142     int64_t rowId = E_HAS_DB_ERROR;
143     ret = uniStore->Insert(cmd, rowId);
144     EXPECT_EQ(ret, E_OK);
145     defaultSetting->RingToneDefaultSettings();
146     system("param set const.multimedia.ringtone_sim_card_1 \"\"");
147     system("param set const.multimedia.ringtone_sim_card_0 \"\"");
148     defaultSetting->RingToneDefaultSettings();
149 }
150 
151 HWTEST_F(RingtoneDefaultSettingsTest, settings_GetTonePathByDisplayName_001, TestSize.Level0)
152 {
153     auto stageContext = std::make_shared<AbilityRuntime::ContextImpl>();
154     auto abilityContextImpl = std::make_shared<OHOS::AbilityRuntime::AbilityContextImpl>();
155     abilityContextImpl->SetStageContext(stageContext);
156     shared_ptr<RingtoneUnistore> uniStore = RingtoneRdbStore::GetInstance(abilityContextImpl);
157     int32_t ret = uniStore->Init();
158     EXPECT_EQ(ret, E_OK);
159     Uri uri(RINGTONE_PATH_URI);
160     RingtoneDataCommand cmd(uri, RINGTONE_TABLE, RingtoneOperationType::INSERT);
161     NativeRdb::ValuesBucket values;
162     string name = "test_name";
163     values.PutString(RINGTONE_COLUMN_DISPLAY_NAME, name);
164     const string data = "rdbStore_Insert_test_001";
165     values.PutString(RINGTONE_COLUMN_DATA, data);
166     const string title = "insert test";
167     values.PutString(RINGTONE_COLUMN_TITLE, title);
168     values.Put(RINGTONE_COLUMN_RING_TONE_SOURCE_TYPE, static_cast<int>(1));
169     values.Put(RINGTONE_COLUMN_MEDIA_TYPE, static_cast<int>(RINGTONE_MEDIA_TYPE_AUDIO));
170     cmd.SetValueBucket(values);
171     uniStore->Init();
172     int64_t rowId = E_HAS_DB_ERROR;
173     ret = uniStore->Insert(cmd, rowId);
174     EXPECT_EQ(ret, E_OK);
175     auto rawRdb = uniStore->GetRaw();
176     std::unique_ptr<RingtoneDefaultSetting> defaultSetting = RingtoneDefaultSetting::GetObj(rawRdb);
177     defaultSetting->GetTonePathByDisplayName(name);
178 }
179 
180 HWTEST_F(RingtoneDefaultSettingsTest, settings_AlarmToneDefaultSettings_001, TestSize.Level0)
181 {
182     auto stageContext = std::make_shared<AbilityRuntime::ContextImpl>();
183     auto abilityContextImpl = std::make_shared<OHOS::AbilityRuntime::AbilityContextImpl>();
184     abilityContextImpl->SetStageContext(stageContext);
185     shared_ptr<RingtoneUnistore> uniStore = RingtoneRdbStore::GetInstance(abilityContextImpl);
186     int32_t ret = uniStore->Init();
187     EXPECT_EQ(ret, E_OK);
188     auto rawRdb = uniStore->GetRaw();
189     std::unique_ptr<RingtoneDefaultSetting> defaultSetting = RingtoneDefaultSetting::GetObj(rawRdb);
190     system("param set const.multimedia.alarm_tone test_name");
191     defaultSetting->AlarmToneDefaultSettings();
192     Uri uri(RINGTONE_PATH_URI);
193     RingtoneDataCommand cmd(uri, RINGTONE_TABLE, RingtoneOperationType::INSERT);
194     NativeRdb::ValuesBucket values;
195     const string name = "test_name";
196     values.PutString(RINGTONE_COLUMN_DISPLAY_NAME, name);
197     const string data = ROOT_TONE_PRELOAD_PATH_NOAH_PATH + "rdbStore_Insert_test_001";
198     values.PutString(RINGTONE_COLUMN_DATA, data);
199     const string title = "insert test";
200     values.PutString(RINGTONE_COLUMN_TITLE, title);
201     values.Put(RINGTONE_COLUMN_RING_TONE_SOURCE_TYPE, static_cast<int>(1));
202     values.Put(RINGTONE_COLUMN_MEDIA_TYPE, static_cast<int>(RINGTONE_MEDIA_TYPE_AUDIO));
203     cmd.SetValueBucket(values);
204     uniStore->Init();
205     int64_t rowId = E_HAS_DB_ERROR;
206     ret = uniStore->Insert(cmd, rowId);
207     EXPECT_EQ(ret, E_OK);
208     defaultSetting->AlarmToneDefaultSettings();
209     system("param set const.multimedia.alarm_tone Bellatrix.ogg");
210     defaultSetting->AlarmToneDefaultSettings();
211 }
212 
213 /*
214  * Feature: Service
215  * Function: Test RingtoneDefaultSettings with GetTonePathByDisplayName
216  * SubFunction: NA
217  * FunctionPoints: NA
218  * EnvConditions: NA
219  * CaseDescription: Test GetTonePathByDisplayName for abnormal branches
220  */
221 HWTEST_F(RingtoneDefaultSettingsTest, settings_GetTonePathByDisplayName_002, TestSize.Level0)
222 {
223     auto stageContext = std::make_shared<AbilityRuntime::ContextImpl>();
224     auto abilityContextImpl = std::make_shared<OHOS::AbilityRuntime::AbilityContextImpl>();
225     ASSERT_NE(abilityContextImpl, nullptr);
226     abilityContextImpl->SetStageContext(stageContext);
227     shared_ptr<RingtoneUnistore> uniStore = RingtoneRdbStore::GetInstance(abilityContextImpl);
228     ASSERT_NE(uniStore, nullptr);
229     int32_t ret = uniStore->Init();
230     EXPECT_EQ(ret, E_OK);
231     Uri uri(RINGTONE_PATH_URI);
232     RingtoneDataCommand cmd(uri, RINGTONE_TABLE, RingtoneOperationType::INSERT);
233     NativeRdb::ValuesBucket values;
234     string name = "";
235     values.PutString(RINGTONE_COLUMN_DISPLAY_NAME, name);
236     const string data = "rdbStore_Insert_test_001";
237     values.PutString(RINGTONE_COLUMN_DATA, data);
238     const string title = "insert test";
239     values.PutString(RINGTONE_COLUMN_TITLE, title);
240     values.Put(RINGTONE_COLUMN_RING_TONE_SOURCE_TYPE, static_cast<int>(1));
241     values.Put(RINGTONE_COLUMN_MEDIA_TYPE, static_cast<int>(RINGTONE_MEDIA_TYPE_AUDIO));
242     cmd.SetValueBucket(values);
243     uniStore->Init();
244     int64_t rowId = E_HAS_DB_ERROR;
245     ret = uniStore->Insert(cmd, rowId);
246     EXPECT_EQ(ret, E_OK);
247     auto rawRdb = uniStore->GetRaw();
248     std::unique_ptr<RingtoneDefaultSetting> defaultSetting = RingtoneDefaultSetting::GetObj(rawRdb);
249     ASSERT_NE(defaultSetting, nullptr);
250     defaultSetting->GetTonePathByDisplayName(name);
251 }
252 } // namespace Media
253 } // namespace OHOS