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 cmd.SetValueBucket(values);
72 uniStore->Init();
73 int64_t rowId = E_HAS_DB_ERROR;
74 ret = uniStore->Insert(cmd, rowId);
75 EXPECT_EQ(ret, E_OK);
76 defaultSetting->ShotToneDefaultSettings();
77 system("param set const.multimedia.system_tone_sim_card_1 \"\"");
78 system("param set const.multimedia.system_tone_sim_card_0 \"\"");
79 defaultSetting->ShotToneDefaultSettings();
80 }
81
82 HWTEST_F(RingtoneDefaultSettingsTest, settings_NotificationToneDefaultSettings_001, TestSize.Level0)
83 {
84 auto stageContext = std::make_shared<AbilityRuntime::ContextImpl>();
85 auto abilityContextImpl = std::make_shared<OHOS::AbilityRuntime::AbilityContextImpl>();
86 abilityContextImpl->SetStageContext(stageContext);
87 shared_ptr<RingtoneUnistore> uniStore = RingtoneRdbStore::GetInstance(abilityContextImpl);
88 int32_t ret = uniStore->Init();
89 EXPECT_EQ(ret, E_OK);
90 auto rawRdb = uniStore->GetRaw();
91 std::unique_ptr<RingtoneDefaultSetting> defaultSetting = RingtoneDefaultSetting::GetObj(rawRdb);
92 system("param set const.multimedia.notification_tone Bellatrix.ogg");
93 defaultSetting->NotificationToneDefaultSettings();
94 Uri uri(RINGTONE_PATH_URI);
95 RingtoneDataCommand cmd(uri, RINGTONE_TABLE, RingtoneOperationType::INSERT);
96 NativeRdb::ValuesBucket values;
97 const string name = "test_name";
98 values.PutString(RINGTONE_COLUMN_DISPLAY_NAME, name);
99 const string data = ROOT_TONE_PRELOAD_PATH_CHINA_PATH + "rdbStore_Insert_test_001";
100 values.PutString(RINGTONE_COLUMN_DATA, data);
101 const string title = "insert test";
102 values.PutString(RINGTONE_COLUMN_TITLE, title);
103 values.Put(RINGTONE_COLUMN_RING_TONE_SOURCE_TYPE, static_cast<int>(1));
104 cmd.SetValueBucket(values);
105 uniStore->Init();
106 int64_t rowId = E_HAS_DB_ERROR;
107 ret = uniStore->Insert(cmd, rowId);
108 EXPECT_EQ(ret, E_OK);
109 defaultSetting->NotificationToneDefaultSettings();
110 system("param set const.multimedia.notification_tone \"\"");
111 defaultSetting->NotificationToneDefaultSettings();
112 }
113
114 HWTEST_F(RingtoneDefaultSettingsTest, settings_RingToneDefaultSettings_001, TestSize.Level0)
115 {
116 auto stageContext = std::make_shared<AbilityRuntime::ContextImpl>();
117 auto abilityContextImpl = std::make_shared<OHOS::AbilityRuntime::AbilityContextImpl>();
118 abilityContextImpl->SetStageContext(stageContext);
119 shared_ptr<RingtoneUnistore> uniStore = RingtoneRdbStore::GetInstance(abilityContextImpl);
120 int32_t ret = uniStore->Init();
121 EXPECT_EQ(ret, E_OK);
122 auto rawRdb = uniStore->GetRaw();
123 std::unique_ptr<RingtoneDefaultSetting> defaultSetting = RingtoneDefaultSetting::GetObj(rawRdb);
124 system("param set const.multimedia.ringtone_sim_card_1 test_name");
125 system("param set const.multimedia.ringtone_sim_card_0 test_name");
126 defaultSetting->RingToneDefaultSettings();
127 Uri uri(RINGTONE_PATH_URI);
128 RingtoneDataCommand cmd(uri, RINGTONE_TABLE, RingtoneOperationType::INSERT);
129 NativeRdb::ValuesBucket values;
130 const string name = "test_name";
131 values.PutString(RINGTONE_COLUMN_DISPLAY_NAME, name);
132 const string data = ROOT_TONE_PRELOAD_PATH_NOAH_PATH + "rdbStore_Insert_test_001";
133 values.PutString(RINGTONE_COLUMN_DATA, data);
134 const string title = "insert test";
135 values.PutString(RINGTONE_COLUMN_TITLE, title);
136 values.Put(RINGTONE_COLUMN_RING_TONE_SOURCE_TYPE, static_cast<int>(1));
137 cmd.SetValueBucket(values);
138 uniStore->Init();
139 int64_t rowId = E_HAS_DB_ERROR;
140 ret = uniStore->Insert(cmd, rowId);
141 EXPECT_EQ(ret, E_OK);
142 defaultSetting->RingToneDefaultSettings();
143 system("param set const.multimedia.ringtone_sim_card_1 \"\"");
144 system("param set const.multimedia.ringtone_sim_card_0 \"\"");
145 defaultSetting->RingToneDefaultSettings();
146 }
147
148 HWTEST_F(RingtoneDefaultSettingsTest, settings_GetTonePathByDisplayName_001, TestSize.Level0)
149 {
150 auto stageContext = std::make_shared<AbilityRuntime::ContextImpl>();
151 auto abilityContextImpl = std::make_shared<OHOS::AbilityRuntime::AbilityContextImpl>();
152 abilityContextImpl->SetStageContext(stageContext);
153 shared_ptr<RingtoneUnistore> uniStore = RingtoneRdbStore::GetInstance(abilityContextImpl);
154 int32_t ret = uniStore->Init();
155 EXPECT_EQ(ret, E_OK);
156 Uri uri(RINGTONE_PATH_URI);
157 RingtoneDataCommand cmd(uri, RINGTONE_TABLE, RingtoneOperationType::INSERT);
158 NativeRdb::ValuesBucket values;
159 string name = "test_name";
160 values.PutString(RINGTONE_COLUMN_DISPLAY_NAME, name);
161 const string data = "rdbStore_Insert_test_001";
162 values.PutString(RINGTONE_COLUMN_DATA, data);
163 const string title = "insert test";
164 values.PutString(RINGTONE_COLUMN_TITLE, title);
165 values.Put(RINGTONE_COLUMN_RING_TONE_SOURCE_TYPE, static_cast<int>(1));
166 cmd.SetValueBucket(values);
167 uniStore->Init();
168 int64_t rowId = E_HAS_DB_ERROR;
169 ret = uniStore->Insert(cmd, rowId);
170 EXPECT_EQ(ret, E_OK);
171 auto rawRdb = uniStore->GetRaw();
172 std::unique_ptr<RingtoneDefaultSetting> defaultSetting = RingtoneDefaultSetting::GetObj(rawRdb);
173 defaultSetting->GetTonePathByDisplayName(name);
174 }
175
176 HWTEST_F(RingtoneDefaultSettingsTest, settings_AlarmToneDefaultSettings_001, TestSize.Level0)
177 {
178 auto stageContext = std::make_shared<AbilityRuntime::ContextImpl>();
179 auto abilityContextImpl = std::make_shared<OHOS::AbilityRuntime::AbilityContextImpl>();
180 abilityContextImpl->SetStageContext(stageContext);
181 shared_ptr<RingtoneUnistore> uniStore = RingtoneRdbStore::GetInstance(abilityContextImpl);
182 int32_t ret = uniStore->Init();
183 EXPECT_EQ(ret, E_OK);
184 auto rawRdb = uniStore->GetRaw();
185 std::unique_ptr<RingtoneDefaultSetting> defaultSetting = RingtoneDefaultSetting::GetObj(rawRdb);
186 system("param set const.multimedia.alarm_tone test_name");
187 defaultSetting->AlarmToneDefaultSettings();
188 Uri uri(RINGTONE_PATH_URI);
189 RingtoneDataCommand cmd(uri, RINGTONE_TABLE, RingtoneOperationType::INSERT);
190 NativeRdb::ValuesBucket values;
191 const string name = "test_name";
192 values.PutString(RINGTONE_COLUMN_DISPLAY_NAME, name);
193 const string data = ROOT_TONE_PRELOAD_PATH_NOAH_PATH + "rdbStore_Insert_test_001";
194 values.PutString(RINGTONE_COLUMN_DATA, data);
195 const string title = "insert test";
196 values.PutString(RINGTONE_COLUMN_TITLE, title);
197 values.Put(RINGTONE_COLUMN_RING_TONE_SOURCE_TYPE, static_cast<int>(1));
198 cmd.SetValueBucket(values);
199 uniStore->Init();
200 int64_t rowId = E_HAS_DB_ERROR;
201 ret = uniStore->Insert(cmd, rowId);
202 EXPECT_EQ(ret, E_OK);
203 defaultSetting->AlarmToneDefaultSettings();
204 system("param set const.multimedia.alarm_tone Bellatrix.ogg");
205 defaultSetting->AlarmToneDefaultSettings();
206 }
207 } // namespace Media
208 } // namespace OHOS