1 /* 2 * Copyright (c) 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 16 #include <gtest/gtest.h> 17 18 #define private public 19 #define protected public 20 #include "notification.h" 21 #undef private 22 #undef protected 23 24 #include "notification_request.h" 25 #include "parcel.h" 26 27 using namespace testing::ext; 28 namespace OHOS { 29 namespace Notification { 30 class NotificationTest : public testing::Test { 31 public: SetUpTestCase()32 static void SetUpTestCase() {} TearDownTestCase()33 static void TearDownTestCase() {} SetUp()34 void SetUp() {} TearDown()35 void TearDown() {} 36 }; 37 38 /** 39 * @tc.name: GetBundleName_00001 40 * @tc.desc: Test when request_ is nullptr get parameters. 41 * @tc.type: FUNC 42 * @tc.require: issueI5WBBH 43 */ 44 HWTEST_F(NotificationTest, GetBundleName_00001, Function | SmallTest | Level1) 45 { 46 sptr<NotificationRequest> request = nullptr; 47 auto rrc = std::make_shared<Notification>(request); 48 std::string ret = ""; 49 EXPECT_EQ(rrc->GetBundleName(), ret); 50 EXPECT_EQ(rrc->GetCreateBundle(), ret); 51 EXPECT_EQ(rrc->GetLabel(), ret); 52 EXPECT_EQ(rrc->GetId(), -1); 53 EXPECT_EQ(rrc->GetUid(), 0); 54 EXPECT_EQ(rrc->GetPid(), 0); 55 EXPECT_EQ(rrc->IsUnremovable(), false); 56 EXPECT_EQ(rrc->IsGroup(), false); 57 EXPECT_EQ(rrc->IsFloatingIcon(), false); 58 EXPECT_EQ(rrc->GetUserId(), 0); 59 } 60 61 /** 62 * @tc.name: GetLedLightColor_00001 63 * @tc.desc: Test GetLedLightColor parameters. 64 * @tc.type: FUNC 65 * @tc.require: issueI5WBBH 66 */ 67 HWTEST_F(NotificationTest, GetLedLightColor_00001, Function | SmallTest | Level1) 68 { 69 int32_t color = 10; 70 std::string deviceId = "DeviceId"; 71 sptr<NotificationRequest> request = nullptr; 72 auto rrc = std::make_shared<Notification>(deviceId, request); 73 rrc->SetLedLightColor(color); 74 EXPECT_EQ(rrc->GetLedLightColor(), color); 75 } 76 77 /** 78 * @tc.name: GetLockscreenVisibleness_00001 79 * @tc.desc: Test GetLockscreenVisibleness parameters. 80 * @tc.type: FUNC 81 * @tc.require: issueI5WBBH 82 */ 83 HWTEST_F(NotificationTest, GetLockscreenVisibleness_00001, Function | SmallTest | Level1) 84 { 85 NotificationConstant::VisiblenessType visbleness = NotificationConstant::VisiblenessType::PUBLIC; 86 sptr<NotificationRequest> request = nullptr; 87 auto rrc = std::make_shared<Notification>(request); 88 rrc->SetLockScreenVisbleness(visbleness); 89 EXPECT_EQ(rrc->GetLockscreenVisibleness(), visbleness); 90 } 91 92 /** 93 * @tc.name: GetGroup_00001 94 * @tc.desc: Test GetGroup parameters. 95 * @tc.type: FUNC 96 * @tc.require: issue 97 */ 98 HWTEST_F(NotificationTest, GetGroup_00001, Function | SmallTest | Level1) 99 { 100 sptr<NotificationRequest> request = nullptr; 101 auto rrc = std::make_shared<Notification>(request); 102 std::string ret = ""; 103 EXPECT_EQ(rrc->GetGroup(), ret); 104 } 105 106 /** 107 * @tc.name: GetGroup_00002 108 * @tc.desc: Test when request_ is not nullptr get parameters. 109 * @tc.type: FUNC 110 * @tc.require: issue 111 */ 112 HWTEST_F(NotificationTest, GetGroup_00002, Function | SmallTest | Level1) 113 { 114 sptr<NotificationRequest> request = new NotificationRequest(1); 115 auto rrc = std::make_shared<Notification>(request); 116 std::string ret = ""; 117 EXPECT_EQ(rrc->GetGroup(), ret); 118 EXPECT_EQ(rrc->GetPid(), 0); 119 EXPECT_EQ(rrc->IsUnremovable(), false); 120 EXPECT_EQ(rrc->IsGroup(), false); 121 EXPECT_EQ(rrc->IsFloatingIcon(), false); 122 } 123 124 /** 125 * @tc.name: GetPostTime_00001 126 * @tc.desc: Test GetPostTime parameters. 127 * @tc.type: FUNC 128 * @tc.require: issue 129 */ 130 HWTEST_F(NotificationTest, GetPostTime_00001, Function | SmallTest | Level1) 131 { 132 int64_t time = 10; 133 sptr<NotificationRequest> request = nullptr; 134 auto rrc = std::make_shared<Notification>(request); 135 rrc->SetPostTime(time); 136 EXPECT_EQ(rrc->GetPostTime(), time); 137 } 138 139 /** 140 * @tc.name: GetSound_00001 141 * @tc.desc: Test GetSound parameters. 142 * @tc.type: FUNC 143 * @tc.require: issue 144 */ 145 HWTEST_F(NotificationTest, GetSound_00001, Function | SmallTest | Level1) 146 { 147 Uri sound = Uri("sound"); 148 bool enable = true; 149 sptr<NotificationRequest> request = nullptr; 150 auto rrc = std::make_shared<Notification>(request); 151 rrc->SetSound(sound); 152 rrc->SetEnableSound(enable); 153 EXPECT_EQ(rrc->GetSound(), sound); 154 } 155 156 /** 157 * @tc.name: GetVibrationStyle_00001 158 * @tc.desc: Test GetVibrationStyle parameters. 159 * @tc.type: FUNC 160 * @tc.require: issue 161 */ 162 HWTEST_F(NotificationTest, GetVibrationStyle_00001, Function | SmallTest | Level1) 163 { 164 std::vector<int64_t> style; 165 sptr<NotificationRequest> request = nullptr; 166 auto rrc = std::make_shared<Notification>(request); 167 rrc->SetVibrationStyle(style); 168 EXPECT_EQ(rrc->GetVibrationStyle(), style); 169 } 170 171 /** 172 * @tc.name: GetRemindType_00001 173 * @tc.desc: Test GetRemindType parameters. 174 * @tc.type: FUNC 175 * @tc.require: issue 176 */ 177 HWTEST_F(NotificationTest, GetRemindType_00001, Function | SmallTest | Level1) 178 { 179 NotificationConstant::RemindType reminType = NotificationConstant::RemindType::NONE; 180 sptr<NotificationRequest> request = nullptr; 181 auto rrc = std::make_shared<Notification>(request); 182 rrc->SetRemindType(reminType); 183 EXPECT_EQ(rrc->GetRemindType(), reminType); 184 } 185 186 /** 187 * @tc.name: GenerateNotificationKey_00001 188 * @tc.desc: Test GenerateNotificationKey parameters. 189 * @tc.type: FUNC 190 * @tc.require: issue 191 */ 192 HWTEST_F(NotificationTest, GenerateNotificationKey_00001, Function | SmallTest | Level1) 193 { 194 std::string deviceId = "DeviceId"; 195 int32_t userId = 10; 196 int32_t uid = 20; 197 std::string label = "Lable"; 198 int32_t id = 30; 199 sptr<NotificationRequest> request = nullptr; 200 auto rrc = std::make_shared<Notification>(deviceId, request); 201 std::string result = "DeviceId_10_20_Lable_30"; 202 EXPECT_EQ(rrc->GenerateNotificationKey(deviceId, userId, uid, label, id), result); 203 } 204 205 /** 206 * @tc.name: IsRemoveAllowed_00001 207 * @tc.desc: Test IsRemoveAllowed parameters. 208 * @tc.type: FUNC 209 * @tc.require: issue 210 */ 211 HWTEST_F(NotificationTest, IsRemoveAllowed_00001, Function | SmallTest | Level1) 212 { 213 bool removeAllowed = true; 214 sptr<NotificationRequest> request = nullptr; 215 auto rrc = std::make_shared<Notification>(request); 216 rrc->SetRemoveAllowed(removeAllowed); 217 EXPECT_EQ(rrc->IsRemoveAllowed(), removeAllowed); 218 } 219 220 /** 221 * @tc.name: GetSourceType_00001 222 * @tc.desc: Test GetSourceType parameters. 223 * @tc.type: FUNC 224 * @tc.require: issue 225 */ 226 HWTEST_F(NotificationTest, GetSourceType_00001, Function | SmallTest | Level1) 227 { 228 NotificationConstant::SourceType sourceType = NotificationConstant::SourceType::TYPE_NORMAL; 229 sptr<NotificationRequest> request = nullptr; 230 auto rrc = std::make_shared<Notification>(request); 231 rrc->SetSourceType(sourceType); 232 EXPECT_EQ(rrc->GetSourceType(), sourceType); 233 } 234 235 /** 236 * @tc.name: GetDeviceId_00001 237 * @tc.desc: Test GetDeviceId parameters. 238 * @tc.type: FUNC 239 * @tc.require: issue 240 */ 241 HWTEST_F(NotificationTest, GetDeviceId_00001, Function | SmallTest | Level1) 242 { 243 std::string deviceId = "DeviceId"; 244 sptr<NotificationRequest> request = new NotificationRequest(); 245 auto rrc = std::make_shared<Notification>(deviceId, request); 246 EXPECT_EQ(rrc->GetDeviceId(), deviceId); 247 } 248 249 /** 250 * @tc.name: Dump_00001 251 * @tc.desc: Test Dump parameters. 252 * @tc.type: FUNC 253 * @tc.require: issue 254 */ 255 HWTEST_F(NotificationTest, Dump_00001, Function | SmallTest | Level1) 256 { 257 std::string deviceId = "DeviceId"; 258 sptr<NotificationRequest> request = new NotificationRequest(); 259 auto rrc = std::make_shared<Notification>(deviceId, request); 260 std::string ret = "Notification{ key = DeviceId_-1_0__0, ledLightColor = 0, " 261 "lockscreenVisbleness = 0, remindType = -1, isRemoveAllowed = true, sourceType = 0, " 262 "deviceId = DeviceId, request = NotificationRequest{ notificationId = 0, " 263 "slotType = 3, createTime = 0, deliveryTime = 0, autoDeletedTime = 0, settingsText = , " 264 "creatorBundleName = , creatorPid = 0, creatorUid = 0, ownerBundleName = , " 265 "ownerUid = 0, groupName = , statusBarText = , label = , shortcutId = , " 266 "sortingKey = , groupAlertType = 0, color = 0, badgeNumber = 0, visiblenessType = 0, " 267 "progressValue = 0, progressMax = 0, badgeStyle = 0, classification = , " 268 "notificationContentType = 0, showDeliveryTime = false, tapDismissed = true, " 269 "colorEnabled = false, alertOneTime = false, showStopwatch = false, isCountdown = false, " 270 "inProgress = false, groupOverview = false, progressIndeterminate = false, " 271 "unremovable = false, floatingIcon = false, onlyLocal = false, permitted = true, " 272 "isAgent = false, removalWantAgent = null, maxScreenWantAgent = null, additionalParams = null, " 273 "littleIcon = null, bigIcon = null, notificationContent = null, " 274 "notificationTemplate = null, actionButtons = empty, messageUsers = empty, " 275 "userInputHistory = empty, distributedOptions = NotificationDistributedOptions" 276 "{ isDistributed = true, devicesSupportDisplay = [], devicesSupportOperate = [] }, " 277 "notificationFlags = null, creatorUserId = -1, ownerUserId = -1, receiverUserId = -1 }, " 278 "postTime = 0, sound = nullptr, vibrationStyle = [] }"; 279 EXPECT_EQ(rrc->Dump(), ret); 280 } 281 282 /** 283 * @tc.name: MarshallingBool_00001 284 * @tc.desc: Test MarshallingBool parameters. 285 * @tc.type: FUNC 286 * @tc.require: issue 287 */ 288 HWTEST_F(NotificationTest, MarshallingBool_00001, Function | SmallTest | Level1) 289 { 290 Parcel parcel; 291 std::string deviceId = "DeviceId"; 292 sptr<NotificationRequest> request = new NotificationRequest(); 293 auto rrc = std::make_shared<Notification>(deviceId, request); 294 EXPECT_EQ(rrc->MarshallingBool(parcel), true); 295 } 296 297 /** 298 * @tc.name: Marshalling_00001 299 * @tc.desc: Test Marshalling parameters. 300 * @tc.type: FUNC 301 * @tc.require: issueI5WBBHI 302 */ 303 HWTEST_F(NotificationTest, Marshalling_00001, Function | SmallTest | Level1) 304 { 305 Parcel parcel; 306 std::string deviceId = "DeviceId"; 307 sptr<NotificationRequest> request = new NotificationRequest(); 308 auto rrc = std::make_shared<Notification>(deviceId, request); 309 EXPECT_EQ(rrc->Marshalling(parcel), true); 310 } 311 312 /** 313 * @tc.name: Unmarshalling_00001 314 * @tc.desc: Test Unmarshalling parameters. 315 * @tc.type: FUNC 316 * @tc.require: issueI5WBBH 317 */ 318 HWTEST_F(NotificationTest, Unmarshalling_001, Function | SmallTest | Level1) 319 { 320 bool unmarshalling = true; 321 Parcel parcel; 322 std::string deviceId = "DeviceId"; 323 sptr<NotificationRequest> request = new NotificationRequest(); 324 std::shared_ptr<Notification> result = 325 std::make_shared<Notification>(deviceId, request); 326 327 if (nullptr != result) { 328 if (nullptr == result->Unmarshalling(parcel)) { 329 unmarshalling = false; 330 } 331 } 332 EXPECT_EQ(unmarshalling, true); 333 } 334 335 /** 336 * @tc.name: ReadFromParcel_00001 337 * @tc.desc: Test ReadFromParcel parameters. 338 * @tc.type: FUNC 339 * @tc.require: issueI5WBBH 340 */ 341 HWTEST_F(NotificationTest, ReadFromParcel_00001, Function | SmallTest | Level1) 342 { 343 Parcel parcel; 344 std::string deviceId = "DeviceId"; 345 sptr<NotificationRequest> request = new NotificationRequest(); 346 auto rrc = std::make_shared<Notification>(deviceId, request); 347 EXPECT_EQ(rrc->ReadFromParcel(parcel), true); 348 } 349 } 350 }