1e0857b17Sopenharmony_ci/* 2e0857b17Sopenharmony_ci * Copyright (c) 2021-2023 Huawei Device Co., Ltd. 3e0857b17Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4e0857b17Sopenharmony_ci * you may not use this file except in compliance with the License. 5e0857b17Sopenharmony_ci * You may obtain a copy of the License at 6e0857b17Sopenharmony_ci * 7e0857b17Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8e0857b17Sopenharmony_ci * 9e0857b17Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10e0857b17Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11e0857b17Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e0857b17Sopenharmony_ci * See the License for the specific language governing permissions and 13e0857b17Sopenharmony_ci * limitations under the License. 14e0857b17Sopenharmony_ci */ 15e0857b17Sopenharmony_ci 16e0857b17Sopenharmony_ci#include <gtest/gtest.h> 17e0857b17Sopenharmony_ci 18e0857b17Sopenharmony_ci#include "string_wrapper.h" 19e0857b17Sopenharmony_ci#include "base_obj.h" 20e0857b17Sopenharmony_ci#include "bool_wrapper.h" 21e0857b17Sopenharmony_ci#include "int_wrapper.h" 22e0857b17Sopenharmony_ci#include "float_wrapper.h" 23e0857b17Sopenharmony_ci#include "long_wrapper.h" 24e0857b17Sopenharmony_ci#include "array_wrapper.h" 25e0857b17Sopenharmony_ci 26e0857b17Sopenharmony_ci#define private public 27e0857b17Sopenharmony_ci#define protected public 28e0857b17Sopenharmony_ci#include "operation.h" 29e0857b17Sopenharmony_ci#include "want.h" 30e0857b17Sopenharmony_ci#undef private 31e0857b17Sopenharmony_ci#undef protected 32e0857b17Sopenharmony_ci 33e0857b17Sopenharmony_ciusing namespace testing::ext; 34e0857b17Sopenharmony_ciusing namespace OHOS::AAFwk; 35e0857b17Sopenharmony_ciusing namespace OHOS; 36e0857b17Sopenharmony_ciusing OHOS::Parcel; 37e0857b17Sopenharmony_ciusing OHOS::AppExecFwk::ElementName; 38e0857b17Sopenharmony_ci 39e0857b17Sopenharmony_cinamespace OHOS { 40e0857b17Sopenharmony_cinamespace AAFwk { 41e0857b17Sopenharmony_ciclass WantBaseTest : public testing::Test { 42e0857b17Sopenharmony_cipublic: 43e0857b17Sopenharmony_ci WantBaseTest() 44e0857b17Sopenharmony_ci {} 45e0857b17Sopenharmony_ci ~WantBaseTest() 46e0857b17Sopenharmony_ci {} 47e0857b17Sopenharmony_ci static void SetUpTestCase(void); 48e0857b17Sopenharmony_ci static void TearDownTestCase(void); 49e0857b17Sopenharmony_ci void SetUp(); 50e0857b17Sopenharmony_ci void TearDown(); 51e0857b17Sopenharmony_ci 52e0857b17Sopenharmony_ci std::shared_ptr<Want> want_ = nullptr; 53e0857b17Sopenharmony_ci 54e0857b17Sopenharmony_ci void CompareWant(const std::shared_ptr<Want> &want1, const std::shared_ptr<Want> &want2) const; 55e0857b17Sopenharmony_ci bool CompareWant(const std::shared_ptr<Want> &want1, const std::shared_ptr<Want> &want2, 56e0857b17Sopenharmony_ci std::map<std::string, std::string> &keys) const; 57e0857b17Sopenharmony_ci void SendParcelTest(const std::shared_ptr<Want> &want, std::map<std::string, std::string> &keys) const; 58e0857b17Sopenharmony_ci void AddBoolParams(Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const; 59e0857b17Sopenharmony_ci void AddByteParams(Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const; 60e0857b17Sopenharmony_ci void AddCharParams(Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const; 61e0857b17Sopenharmony_ci void AddShortParams(Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const; 62e0857b17Sopenharmony_ci void AddIntParams(Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const; 63e0857b17Sopenharmony_ci void AddLongParams(Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const; 64e0857b17Sopenharmony_ci void AddFloatParams(Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const; 65e0857b17Sopenharmony_ci void AddDoubleParams(Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const; 66e0857b17Sopenharmony_ci void AddStringParams(Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const; 67e0857b17Sopenharmony_ci 68e0857b17Sopenharmony_ci std::string boolType = "bool"; 69e0857b17Sopenharmony_ci std::string boolArrayType = "boolArray"; 70e0857b17Sopenharmony_ci std::string byteType = "byte"; 71e0857b17Sopenharmony_ci std::string byteArrayType = "byteArray"; 72e0857b17Sopenharmony_ci std::string charType = "char"; 73e0857b17Sopenharmony_ci std::string charArrayType = "charArray"; 74e0857b17Sopenharmony_ci std::string shortType = "short"; 75e0857b17Sopenharmony_ci std::string shortArrayType = "shortArray"; 76e0857b17Sopenharmony_ci std::string intType = "int"; 77e0857b17Sopenharmony_ci std::string intArrayType = "intArray"; 78e0857b17Sopenharmony_ci std::string longType = "long"; 79e0857b17Sopenharmony_ci std::string longArrayType = "longArray"; 80e0857b17Sopenharmony_ci std::string floatType = "float"; 81e0857b17Sopenharmony_ci std::string floatArrayType = "floatArray"; 82e0857b17Sopenharmony_ci std::string doubleType = "double"; 83e0857b17Sopenharmony_ci std::string doubleArrayType = "doubleArray"; 84e0857b17Sopenharmony_ci std::string stringType = "string"; 85e0857b17Sopenharmony_ci std::string stringArrayType = "stringArray"; 86e0857b17Sopenharmony_ci 87e0857b17Sopenharmony_ci static const std::string URI_STRING_HEAD; 88e0857b17Sopenharmony_ci static const std::string URI_STRING_END; 89e0857b17Sopenharmony_ci}; 90e0857b17Sopenharmony_ci 91e0857b17Sopenharmony_citemplate<typename T> 92e0857b17Sopenharmony_cibool CompareArrayData(const std::vector<T> &arr1, const std::vector<T> &arr2) 93e0857b17Sopenharmony_ci{ 94e0857b17Sopenharmony_ci if (arr1.size() != arr2.size()) { 95e0857b17Sopenharmony_ci return false; 96e0857b17Sopenharmony_ci } 97e0857b17Sopenharmony_ci 98e0857b17Sopenharmony_ci for (std::uint32_t i = 0; i < arr1.size(); i++) { 99e0857b17Sopenharmony_ci if (arr1[i] != arr2[i]) { 100e0857b17Sopenharmony_ci return false; 101e0857b17Sopenharmony_ci } 102e0857b17Sopenharmony_ci } 103e0857b17Sopenharmony_ci 104e0857b17Sopenharmony_ci return true; 105e0857b17Sopenharmony_ci}; 106e0857b17Sopenharmony_ci 107e0857b17Sopenharmony_cienum type { FLAG_TEST_SINGLE = 0x01, FLAG_TEST_ARRAY, FLAG_TEST_BOTH }; 108e0857b17Sopenharmony_ci 109e0857b17Sopenharmony_civoid WantBaseTest::SetUpTestCase(void) 110e0857b17Sopenharmony_ci{} 111e0857b17Sopenharmony_ci 112e0857b17Sopenharmony_civoid WantBaseTest::TearDownTestCase(void) 113e0857b17Sopenharmony_ci{} 114e0857b17Sopenharmony_ci 115e0857b17Sopenharmony_civoid WantBaseTest::SetUp(void) 116e0857b17Sopenharmony_ci{ 117e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 118e0857b17Sopenharmony_ci} 119e0857b17Sopenharmony_ci 120e0857b17Sopenharmony_civoid WantBaseTest::TearDown(void) 121e0857b17Sopenharmony_ci{} 122e0857b17Sopenharmony_ci 123e0857b17Sopenharmony_ciconst std::string WantBaseTest::URI_STRING_HEAD("#Intent;"); 124e0857b17Sopenharmony_ciconst std::string WantBaseTest::URI_STRING_END(";end"); 125e0857b17Sopenharmony_ci 126e0857b17Sopenharmony_ci/** 127e0857b17Sopenharmony_ci * @tc.number: AaExecFwk_Want_Type_0100 128e0857b17Sopenharmony_ci * @tc.name: SetType/GetType 129e0857b17Sopenharmony_ci * @tc.desc: Validate when normally entering a string 130e0857b17Sopenharmony_ci */ 131e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaExecFwk_Want_Type_0100, Function | MediumTest | Level1) 132e0857b17Sopenharmony_ci{ 133e0857b17Sopenharmony_ci if (want_ != nullptr) { 134e0857b17Sopenharmony_ci std::string description = "liuuy"; 135e0857b17Sopenharmony_ci want_->SetType(description); 136e0857b17Sopenharmony_ci EXPECT_STREQ(description.c_str(), want_->GetType().c_str()); 137e0857b17Sopenharmony_ci } 138e0857b17Sopenharmony_ci} 139e0857b17Sopenharmony_ci 140e0857b17Sopenharmony_ci/** 141e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Action_0100 142e0857b17Sopenharmony_ci * @tc.name: SetAction/GetAction 143e0857b17Sopenharmony_ci * @tc.desc: Validate when normally entering a string 144e0857b17Sopenharmony_ci */ 145e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Action_0100, Function | MediumTest | Level1) 146e0857b17Sopenharmony_ci{ 147e0857b17Sopenharmony_ci if (want_ != nullptr) { 148e0857b17Sopenharmony_ci std::string actiondescription = "liuuy"; 149e0857b17Sopenharmony_ci want_->SetAction(actiondescription); 150e0857b17Sopenharmony_ci EXPECT_STREQ(actiondescription.c_str(), want_->GetAction().c_str()); 151e0857b17Sopenharmony_ci } 152e0857b17Sopenharmony_ci} 153e0857b17Sopenharmony_ci 154e0857b17Sopenharmony_ci/** 155e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Bundle_0100 156e0857b17Sopenharmony_ci * @tc.name: SetBundle/GetBundle 157e0857b17Sopenharmony_ci * @tc.desc: Validate when normally entering a string 158e0857b17Sopenharmony_ci */ 159e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Bundle_0100, Function | MediumTest | Level1) 160e0857b17Sopenharmony_ci{ 161e0857b17Sopenharmony_ci if (want_ != nullptr) { 162e0857b17Sopenharmony_ci std::string bundleName = "liuuy"; 163e0857b17Sopenharmony_ci want_->SetBundle(bundleName); 164e0857b17Sopenharmony_ci EXPECT_STREQ(bundleName.c_str(), want_->GetBundle().c_str()); 165e0857b17Sopenharmony_ci } 166e0857b17Sopenharmony_ci} 167e0857b17Sopenharmony_ci 168e0857b17Sopenharmony_ci/** 169e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_DeviceId_0100 170e0857b17Sopenharmony_ci * @tc.name: SetDeviceId/GetDeviceId 171e0857b17Sopenharmony_ci * @tc.desc: Validate when normally entering a string 172e0857b17Sopenharmony_ci */ 173e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_DeviceId_0100, Function | MediumTest | Level1) 174e0857b17Sopenharmony_ci{ 175e0857b17Sopenharmony_ci if (want_ != nullptr) { 176e0857b17Sopenharmony_ci std::string DeviceId = "liuuy"; 177e0857b17Sopenharmony_ci want_->SetDeviceId(DeviceId); 178e0857b17Sopenharmony_ci EXPECT_STREQ(DeviceId.c_str(), want_->GetDeviceId().c_str()); 179e0857b17Sopenharmony_ci } 180e0857b17Sopenharmony_ci} 181e0857b17Sopenharmony_ci 182e0857b17Sopenharmony_ci/** 183e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ModuleName_0100 184e0857b17Sopenharmony_ci * @tc.name: SetModuleName/GetModuleName 185e0857b17Sopenharmony_ci * @tc.desc: Validate when normally entering a string 186e0857b17Sopenharmony_ci */ 187e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ModuleName_0100, Function | MediumTest | Level1) 188e0857b17Sopenharmony_ci{ 189e0857b17Sopenharmony_ci if (want_ != nullptr) { 190e0857b17Sopenharmony_ci std::string ModuleName = "liuuy"; 191e0857b17Sopenharmony_ci want_->SetModuleName(ModuleName); 192e0857b17Sopenharmony_ci EXPECT_STREQ(ModuleName.c_str(), want_->GetModuleName().c_str()); 193e0857b17Sopenharmony_ci } 194e0857b17Sopenharmony_ci} 195e0857b17Sopenharmony_ci/** 196e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parcelable_0100 197e0857b17Sopenharmony_ci * @tc.name: Marshalling/Unmarshalling 198e0857b17Sopenharmony_ci * @tc.desc: marshalling Want, and then check result. 199e0857b17Sopenharmony_ci */ 200e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Parcelable_0100, Function | MediumTest | Level1) 201e0857b17Sopenharmony_ci{ 202e0857b17Sopenharmony_ci std::shared_ptr<Want> WantIn_ = std::make_shared<Want>(); 203e0857b17Sopenharmony_ci if (WantIn_ == nullptr) { 204e0857b17Sopenharmony_ci return; 205e0857b17Sopenharmony_ci } 206e0857b17Sopenharmony_ci 207e0857b17Sopenharmony_ci WantIn_->SetAction("12345"); 208e0857b17Sopenharmony_ci WantIn_->SetFlags(123); 209e0857b17Sopenharmony_ci 210e0857b17Sopenharmony_ci WantIn_->SetAction("12345"); 211e0857b17Sopenharmony_ci WantIn_->SetFlags(123); 212e0857b17Sopenharmony_ci WantIn_->AddEntity("12345"); 213e0857b17Sopenharmony_ci WantParams wantParams; 214e0857b17Sopenharmony_ci std::string keyStr = "12345667"; 215e0857b17Sopenharmony_ci bool valueBool = true; 216e0857b17Sopenharmony_ci wantParams.SetParam(keyStr, Boolean::Box(valueBool)); 217e0857b17Sopenharmony_ci WantIn_->SetParams(wantParams); 218e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName element; 219e0857b17Sopenharmony_ci element.SetAbilityName("12345"); 220e0857b17Sopenharmony_ci element.SetBundleName("12345"); 221e0857b17Sopenharmony_ci element.SetDeviceID("12345"); 222e0857b17Sopenharmony_ci WantIn_->SetElement(element); 223e0857b17Sopenharmony_ci WantIn_->SetType("12345"); 224e0857b17Sopenharmony_ci size_t pos1; 225e0857b17Sopenharmony_ci size_t pos2; 226e0857b17Sopenharmony_ci bool result = false; 227e0857b17Sopenharmony_ci 228e0857b17Sopenharmony_ci Parcel in; 229e0857b17Sopenharmony_ci pos1 = in.GetWritePosition(); 230e0857b17Sopenharmony_ci result = WantIn_->Marshalling(in); 231e0857b17Sopenharmony_ci pos2 = in.GetWritePosition(); 232e0857b17Sopenharmony_ci EXPECT_EQ(result, true); 233e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << " Marshalling: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 234e0857b17Sopenharmony_ci 235e0857b17Sopenharmony_ci pos1 = in.GetWritePosition(); 236e0857b17Sopenharmony_ci result = WantIn_->Marshalling(in); 237e0857b17Sopenharmony_ci pos2 = in.GetWritePosition(); 238e0857b17Sopenharmony_ci EXPECT_EQ(result, true); 239e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << " Marshalling: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 240e0857b17Sopenharmony_ci 241e0857b17Sopenharmony_ci pos1 = in.GetReadPosition(); 242e0857b17Sopenharmony_ci std::shared_ptr<Want> WantOut_(Want::Unmarshalling(in)); 243e0857b17Sopenharmony_ci if (WantOut_ != nullptr) { 244e0857b17Sopenharmony_ci pos2 = in.GetReadPosition(); 245e0857b17Sopenharmony_ci CompareWant(WantIn_, WantOut_); 246e0857b17Sopenharmony_ci EXPECT_EQ(valueBool, Boolean::Unbox(IBoolean::Query(WantOut_->GetParams().GetParam(keyStr)))); 247e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << " Unmarshalling: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 248e0857b17Sopenharmony_ci } 249e0857b17Sopenharmony_ci 250e0857b17Sopenharmony_ci pos1 = in.GetReadPosition(); 251e0857b17Sopenharmony_ci std::shared_ptr<Want> WantOut2_(Want::Unmarshalling(in)); 252e0857b17Sopenharmony_ci if (WantOut2_ != nullptr) { 253e0857b17Sopenharmony_ci pos2 = in.GetReadPosition(); 254e0857b17Sopenharmony_ci CompareWant(WantIn_, WantOut2_); 255e0857b17Sopenharmony_ci EXPECT_EQ(valueBool, Boolean::Unbox(IBoolean::Query(WantOut2_->GetParams().GetParam(keyStr)))); 256e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << " Unmarshalling: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 257e0857b17Sopenharmony_ci } 258e0857b17Sopenharmony_ci} 259e0857b17Sopenharmony_ci/** 260e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parcelable_0200 261e0857b17Sopenharmony_ci * @tc.name: Marshalling/Unmarshalling 262e0857b17Sopenharmony_ci * @tc.desc: marshalling Want, and then check result. 263e0857b17Sopenharmony_ci */ 264e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Parcelable_0200, Function | MediumTest | Level1) 265e0857b17Sopenharmony_ci{ 266e0857b17Sopenharmony_ci std::shared_ptr<Want> WantIn_ = std::make_shared<Want>(); 267e0857b17Sopenharmony_ci if (WantIn_ == nullptr) { 268e0857b17Sopenharmony_ci return; 269e0857b17Sopenharmony_ci } 270e0857b17Sopenharmony_ci WantIn_->SetAction("@#¥#3243adsafdf_中文"); 271e0857b17Sopenharmony_ci WantIn_->SetFlags(123); 272e0857b17Sopenharmony_ci WantIn_->AddEntity("@#¥#3243adsafdf_中文"); 273e0857b17Sopenharmony_ci WantParams wantParams; 274e0857b17Sopenharmony_ci std::string keyStr = "@#¥#3243adsafdf_中文"; 275e0857b17Sopenharmony_ci long valueLong = 123; 276e0857b17Sopenharmony_ci wantParams.SetParam(keyStr, Long::Box(valueLong)); 277e0857b17Sopenharmony_ci WantIn_->SetParams(wantParams); 278e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName element; 279e0857b17Sopenharmony_ci element.SetAbilityName("@#¥#3243adsafdf_中文"); 280e0857b17Sopenharmony_ci element.SetBundleName("@#¥#3243adsafdf_中文"); 281e0857b17Sopenharmony_ci element.SetDeviceID("@#¥#3243adsafdf_中文"); 282e0857b17Sopenharmony_ci WantIn_->SetElement(element); 283e0857b17Sopenharmony_ci WantIn_->SetType("@#¥#3243adsafdf_中文"); 284e0857b17Sopenharmony_ci size_t pos1; 285e0857b17Sopenharmony_ci size_t pos2; 286e0857b17Sopenharmony_ci bool result = false; 287e0857b17Sopenharmony_ci Parcel in; 288e0857b17Sopenharmony_ci pos1 = in.GetWritePosition(); 289e0857b17Sopenharmony_ci result = WantIn_->Marshalling(in); 290e0857b17Sopenharmony_ci pos2 = in.GetWritePosition(); 291e0857b17Sopenharmony_ci EXPECT_EQ(result, true); 292e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "Marshalling: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 293e0857b17Sopenharmony_ci pos1 = in.GetWritePosition(); 294e0857b17Sopenharmony_ci result = WantIn_->Marshalling(in); 295e0857b17Sopenharmony_ci pos2 = in.GetWritePosition(); 296e0857b17Sopenharmony_ci EXPECT_EQ(result, true); 297e0857b17Sopenharmony_ci pos1 = in.GetReadPosition(); 298e0857b17Sopenharmony_ci std::shared_ptr<Want> WantOut_(Want::Unmarshalling(in)); 299e0857b17Sopenharmony_ci if (WantOut_ != nullptr) { 300e0857b17Sopenharmony_ci pos2 = in.GetReadPosition(); 301e0857b17Sopenharmony_ci CompareWant(WantIn_, WantOut_); 302e0857b17Sopenharmony_ci long retLong = Long::Unbox(ILong::Query(WantOut_->GetParams().GetParam(keyStr))); 303e0857b17Sopenharmony_ci EXPECT_EQ(valueLong, retLong); 304e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "Unmarshalling: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 305e0857b17Sopenharmony_ci } 306e0857b17Sopenharmony_ci pos1 = in.GetReadPosition(); 307e0857b17Sopenharmony_ci std::shared_ptr<Want> WantOut2_(Want::Unmarshalling(in)); 308e0857b17Sopenharmony_ci if (WantOut2_ != nullptr) { 309e0857b17Sopenharmony_ci pos2 = in.GetReadPosition(); 310e0857b17Sopenharmony_ci CompareWant(WantIn_, WantOut2_); 311e0857b17Sopenharmony_ci long retLong = Long::Unbox(ILong::Query(WantOut2_->GetParams().GetParam(keyStr))); 312e0857b17Sopenharmony_ci EXPECT_EQ(valueLong, retLong); 313e0857b17Sopenharmony_ci } 314e0857b17Sopenharmony_ci} 315e0857b17Sopenharmony_ci 316e0857b17Sopenharmony_ci/** 317e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parcelable_0300 318e0857b17Sopenharmony_ci * @tc.name: Marshalling/Unmarshalling 319e0857b17Sopenharmony_ci * @tc.desc: marshalling Want, and then check result. 320e0857b17Sopenharmony_ci */ 321e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Parcelable_0300, Function | MediumTest | Level1) 322e0857b17Sopenharmony_ci{ 323e0857b17Sopenharmony_ci std::shared_ptr<Want> WantIn_ = std::make_shared<Want>(); 324e0857b17Sopenharmony_ci if (WantIn_ == nullptr) { 325e0857b17Sopenharmony_ci return; 326e0857b17Sopenharmony_ci } 327e0857b17Sopenharmony_ci 328e0857b17Sopenharmony_ci WantIn_->SetAction(""); 329e0857b17Sopenharmony_ci WantIn_->SetFlags(123); 330e0857b17Sopenharmony_ci WantIn_->AddEntity(""); 331e0857b17Sopenharmony_ci WantParams wantParams; 332e0857b17Sopenharmony_ci std::string keyStr = ""; 333e0857b17Sopenharmony_ci int valueInt = 123; 334e0857b17Sopenharmony_ci wantParams.SetParam(keyStr, Integer::Box(valueInt)); 335e0857b17Sopenharmony_ci WantIn_->SetParams(wantParams); 336e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName element; 337e0857b17Sopenharmony_ci element.SetAbilityName(""); 338e0857b17Sopenharmony_ci element.SetBundleName(""); 339e0857b17Sopenharmony_ci element.SetDeviceID(""); 340e0857b17Sopenharmony_ci WantIn_->SetElement(element); 341e0857b17Sopenharmony_ci WantIn_->SetType(""); 342e0857b17Sopenharmony_ci 343e0857b17Sopenharmony_ci size_t pos1; 344e0857b17Sopenharmony_ci size_t pos2; 345e0857b17Sopenharmony_ci bool result = false; 346e0857b17Sopenharmony_ci 347e0857b17Sopenharmony_ci Parcel in; 348e0857b17Sopenharmony_ci pos1 = in.GetWritePosition(); 349e0857b17Sopenharmony_ci result = WantIn_->Marshalling(in); 350e0857b17Sopenharmony_ci pos2 = in.GetWritePosition(); 351e0857b17Sopenharmony_ci EXPECT_EQ(result, true); 352e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "Marshalling: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 353e0857b17Sopenharmony_ci 354e0857b17Sopenharmony_ci pos1 = in.GetWritePosition(); 355e0857b17Sopenharmony_ci result = WantIn_->Marshalling(in); 356e0857b17Sopenharmony_ci pos2 = in.GetWritePosition(); 357e0857b17Sopenharmony_ci EXPECT_EQ(result, true); 358e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "Marshalling: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 359e0857b17Sopenharmony_ci 360e0857b17Sopenharmony_ci pos1 = in.GetReadPosition(); 361e0857b17Sopenharmony_ci std::shared_ptr<Want> WantOut_(Want::Unmarshalling(in)); 362e0857b17Sopenharmony_ci if (WantOut_ != nullptr) { 363e0857b17Sopenharmony_ci pos2 = in.GetReadPosition(); 364e0857b17Sopenharmony_ci CompareWant(WantIn_, WantOut_); 365e0857b17Sopenharmony_ci EXPECT_EQ(valueInt, Integer::Unbox(IInteger::Query(WantOut_->GetParams().GetParam(keyStr)))); 366e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "Unmarshalling: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 367e0857b17Sopenharmony_ci } 368e0857b17Sopenharmony_ci 369e0857b17Sopenharmony_ci pos1 = in.GetReadPosition(); 370e0857b17Sopenharmony_ci std::shared_ptr<Want> WantOut2_(Want::Unmarshalling(in)); 371e0857b17Sopenharmony_ci if (WantOut2_ != nullptr) { 372e0857b17Sopenharmony_ci pos2 = in.GetReadPosition(); 373e0857b17Sopenharmony_ci CompareWant(WantIn_, WantOut2_); 374e0857b17Sopenharmony_ci EXPECT_EQ(valueInt, Integer::Unbox(IInteger::Query(WantOut2_->GetParams().GetParam(keyStr)))); 375e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "Unmarshalling: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 376e0857b17Sopenharmony_ci } 377e0857b17Sopenharmony_ci} 378e0857b17Sopenharmony_ci 379e0857b17Sopenharmony_ci/** 380e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parcelable_0400 381e0857b17Sopenharmony_ci * @tc.name: Marshalling/Unmarshalling 382e0857b17Sopenharmony_ci * @tc.desc: marshalling Want, and then check result. 383e0857b17Sopenharmony_ci */ 384e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Parcelable_0400, Function | MediumTest | Level1) 385e0857b17Sopenharmony_ci{ 386e0857b17Sopenharmony_ci std::shared_ptr<Want> WantIn_ = std::make_shared<Want>(); 387e0857b17Sopenharmony_ci if (WantIn_ == nullptr) { 388e0857b17Sopenharmony_ci return; 389e0857b17Sopenharmony_ci } 390e0857b17Sopenharmony_ci 391e0857b17Sopenharmony_ci WantIn_->SetAction("12345"); 392e0857b17Sopenharmony_ci WantIn_->SetFlags(123); 393e0857b17Sopenharmony_ci WantIn_->AddEntity("12345"); 394e0857b17Sopenharmony_ci WantIn_->AddEntity("@#¥#3243adsafdf_中文"); 395e0857b17Sopenharmony_ci WantIn_->AddEntity(""); 396e0857b17Sopenharmony_ci WantParams wantParams; 397e0857b17Sopenharmony_ci std::string keyStr = "12345667"; 398e0857b17Sopenharmony_ci std::string valueString = "123"; 399e0857b17Sopenharmony_ci wantParams.SetParam(keyStr, String::Box(valueString)); 400e0857b17Sopenharmony_ci WantIn_->SetParams(wantParams); 401e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName element; 402e0857b17Sopenharmony_ci element.SetAbilityName("12345"); 403e0857b17Sopenharmony_ci element.SetBundleName("12345"); 404e0857b17Sopenharmony_ci element.SetDeviceID("12345"); 405e0857b17Sopenharmony_ci WantIn_->SetElement(element); 406e0857b17Sopenharmony_ci WantIn_->SetType("12345"); 407e0857b17Sopenharmony_ci 408e0857b17Sopenharmony_ci size_t pos1; 409e0857b17Sopenharmony_ci size_t pos2; 410e0857b17Sopenharmony_ci bool result = false; 411e0857b17Sopenharmony_ci 412e0857b17Sopenharmony_ci Parcel in; 413e0857b17Sopenharmony_ci pos1 = in.GetWritePosition(); 414e0857b17Sopenharmony_ci result = WantIn_->Marshalling(in); 415e0857b17Sopenharmony_ci pos2 = in.GetWritePosition(); 416e0857b17Sopenharmony_ci EXPECT_EQ(result, true); 417e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "Marshalling: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 418e0857b17Sopenharmony_ci 419e0857b17Sopenharmony_ci pos1 = in.GetWritePosition(); 420e0857b17Sopenharmony_ci result = WantIn_->Marshalling(in); 421e0857b17Sopenharmony_ci pos2 = in.GetWritePosition(); 422e0857b17Sopenharmony_ci EXPECT_EQ(result, true); 423e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "Marshalling: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 424e0857b17Sopenharmony_ci 425e0857b17Sopenharmony_ci pos1 = in.GetReadPosition(); 426e0857b17Sopenharmony_ci std::shared_ptr<Want> WantOut_(Want::Unmarshalling(in)); 427e0857b17Sopenharmony_ci if (WantOut_ != nullptr) { 428e0857b17Sopenharmony_ci pos2 = in.GetReadPosition(); 429e0857b17Sopenharmony_ci CompareWant(WantIn_, WantOut_); 430e0857b17Sopenharmony_ci EXPECT_EQ(valueString, String::Unbox(IString::Query(WantOut_->GetParams().GetParam(keyStr)))); 431e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "Unmarshalling: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 432e0857b17Sopenharmony_ci } 433e0857b17Sopenharmony_ci 434e0857b17Sopenharmony_ci pos1 = in.GetReadPosition(); 435e0857b17Sopenharmony_ci std::shared_ptr<Want> WantOut2_(Want::Unmarshalling(in)); 436e0857b17Sopenharmony_ci if (WantOut2_ != nullptr) { 437e0857b17Sopenharmony_ci pos2 = in.GetReadPosition(); 438e0857b17Sopenharmony_ci CompareWant(WantIn_, WantOut2_); 439e0857b17Sopenharmony_ci EXPECT_EQ(valueString, String::Unbox(IString::Query(WantOut2_->GetParams().GetParam(keyStr)))); 440e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "Unmarshalling: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 441e0857b17Sopenharmony_ci } 442e0857b17Sopenharmony_ci} 443e0857b17Sopenharmony_ci 444e0857b17Sopenharmony_ci/** 445e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parcelable_0500 446e0857b17Sopenharmony_ci * @tc.name: Marshalling/Unmarshalling 447e0857b17Sopenharmony_ci * @tc.desc: marshalling Want, and then check result. 448e0857b17Sopenharmony_ci */ 449e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Parcelable_0500, Function | MediumTest | Level1) 450e0857b17Sopenharmony_ci{ 451e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "AaFwk_Want_Parcelable_005 start"; 452e0857b17Sopenharmony_ci std::shared_ptr<Want> WantIn_ = std::make_shared<Want>(); 453e0857b17Sopenharmony_ci if (WantIn_ == nullptr) { 454e0857b17Sopenharmony_ci return; 455e0857b17Sopenharmony_ci } 456e0857b17Sopenharmony_ci 457e0857b17Sopenharmony_ci WantIn_->SetAction("system.test.action"); 458e0857b17Sopenharmony_ci WantIn_->SetFlags(64); 459e0857b17Sopenharmony_ci WantIn_->AddEntity("system.test.entity"); 460e0857b17Sopenharmony_ci 461e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName element; 462e0857b17Sopenharmony_ci element.SetAbilityName("system.test.abilityname"); 463e0857b17Sopenharmony_ci element.SetBundleName("system.test.bundlename"); 464e0857b17Sopenharmony_ci element.SetDeviceID("system.test.deviceid"); 465e0857b17Sopenharmony_ci WantIn_->SetElement(element); 466e0857b17Sopenharmony_ci 467e0857b17Sopenharmony_ci WantParams wantParams; 468e0857b17Sopenharmony_ci std::string keyStr = "system.test.wantparams.key"; 469e0857b17Sopenharmony_ci std::string MIMEKEY = "mime-type"; 470e0857b17Sopenharmony_ci wantParams.SetParam(MIMEKEY, String::Box("system.test.uritype")); 471e0857b17Sopenharmony_ci 472e0857b17Sopenharmony_ci std::string valueString = "system.wantparams.value.content.test"; 473e0857b17Sopenharmony_ci wantParams.SetParam(keyStr, String::Box(valueString)); 474e0857b17Sopenharmony_ci WantIn_->SetParams(wantParams); 475e0857b17Sopenharmony_ci 476e0857b17Sopenharmony_ci // want SetParam arraydata test 477e0857b17Sopenharmony_ci std::vector<bool> boolArrayValue = {true, false, true}; 478e0857b17Sopenharmony_ci WantIn_->SetParam(std::string("bool_arraykey"), boolArrayValue); 479e0857b17Sopenharmony_ci 480e0857b17Sopenharmony_ci std::vector<byte> byteArrayValue = {'?', 'a', '\\'}; 481e0857b17Sopenharmony_ci WantIn_->SetParam(std::string("byte_arraykey"), byteArrayValue); 482e0857b17Sopenharmony_ci 483e0857b17Sopenharmony_ci std::vector<zchar> charArrayValue = {U'e', U'l', U'l', U'o'}; 484e0857b17Sopenharmony_ci WantIn_->SetParam(std::string("char_arraykey"), charArrayValue); 485e0857b17Sopenharmony_ci 486e0857b17Sopenharmony_ci std::vector<short> shortArrayValue = {-1, 0, 1}; 487e0857b17Sopenharmony_ci WantIn_->SetParam(std::string("short_arraykey"), shortArrayValue); 488e0857b17Sopenharmony_ci 489e0857b17Sopenharmony_ci std::vector<int> intArrayValue = {-10, 0, 10}; 490e0857b17Sopenharmony_ci WantIn_->SetParam(std::string("int_arraykey"), intArrayValue); 491e0857b17Sopenharmony_ci 492e0857b17Sopenharmony_ci std::vector<long> longArrayValue = {-100, 0, 100}; 493e0857b17Sopenharmony_ci WantIn_->SetParam(std::string("long_arraykey"), longArrayValue); 494e0857b17Sopenharmony_ci 495e0857b17Sopenharmony_ci std::vector<float> floatArrayValue = {-100.1, 0.1, 100.1}; 496e0857b17Sopenharmony_ci WantIn_->SetParam(std::string("float_arraykey"), floatArrayValue); 497e0857b17Sopenharmony_ci 498e0857b17Sopenharmony_ci std::vector<double> doubleArrayValue = {-1000.1, 0.1, 1000.1}; 499e0857b17Sopenharmony_ci WantIn_->SetParam(std::string("double_arraykey"), doubleArrayValue); 500e0857b17Sopenharmony_ci 501e0857b17Sopenharmony_ci std::vector<std::string> stringArrayValue = {"stringtest1", "string@test2", "string@!#test2"}; 502e0857b17Sopenharmony_ci WantIn_->SetParam(std::string("string_arraykey"), stringArrayValue); 503e0857b17Sopenharmony_ci 504e0857b17Sopenharmony_ci Want wantCopy(*WantIn_); 505e0857b17Sopenharmony_ci std::vector<std::string> teststringArrayValue1 = WantIn_->GetStringArrayParam(std::string("string_arraykey")); 506e0857b17Sopenharmony_ci std::vector<std::string> teststringArrayValue2 = wantCopy.GetStringArrayParam(std::string("string_arraykey")); 507e0857b17Sopenharmony_ci bool copyarraycompare = CompareArrayData<std::string>(teststringArrayValue1, teststringArrayValue1); 508e0857b17Sopenharmony_ci EXPECT_EQ(copyarraycompare, true); 509e0857b17Sopenharmony_ci std::string str = (copyarraycompare == true) ? "true" : "false"; 510e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "copyarraycompare=" << str.c_str(); 511e0857b17Sopenharmony_ci 512e0857b17Sopenharmony_ci Parcel in; 513e0857b17Sopenharmony_ci bool result = false; 514e0857b17Sopenharmony_ci result = WantIn_->Marshalling(in); 515e0857b17Sopenharmony_ci EXPECT_EQ(result, true); 516e0857b17Sopenharmony_ci std::shared_ptr<Want> WantOut_(Want::Unmarshalling(in)); 517e0857b17Sopenharmony_ci if (WantOut_ != nullptr) { 518e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "WantOut_->GetAction().c_str(): " << WantOut_->GetAction().c_str(); 519e0857b17Sopenharmony_ci EXPECT_STREQ(WantOut_->GetAction().c_str(), std::string("system.test.action").c_str()); 520e0857b17Sopenharmony_ci 521e0857b17Sopenharmony_ci int flags = WantOut_->GetFlags(); 522e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "WantOut_->GetFlags(): " << flags; 523e0857b17Sopenharmony_ci EXPECT_EQ(static_cast<int>(flags), 64); 524e0857b17Sopenharmony_ci 525e0857b17Sopenharmony_ci bool hasentity = WantOut_->HasEntity("system.test.entity"); 526e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "WantOut_->HasEntity(system.test.entity)" << hasentity; 527e0857b17Sopenharmony_ci EXPECT_EQ(hasentity, true); 528e0857b17Sopenharmony_ci 529e0857b17Sopenharmony_ci WantOut_->RemoveEntity(std::string("system.test.entity")); 530e0857b17Sopenharmony_ci hasentity = WantOut_->HasEntity(std::string("system.test.entity")); 531e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "WantOut_->RemoveEntity(system.test.entity)" << hasentity; 532e0857b17Sopenharmony_ci EXPECT_EQ(hasentity, false); 533e0857b17Sopenharmony_ci 534e0857b17Sopenharmony_ci std::string outtype = WantOut_->GetType(); 535e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "WantOut_->GetType()" << outtype.c_str(); 536e0857b17Sopenharmony_ci EXPECT_STREQ(outtype.c_str(), std::string("system.test.uritype").c_str()); 537e0857b17Sopenharmony_ci 538e0857b17Sopenharmony_ci element = WantOut_->GetElement(); 539e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "element.GetAbilityName().c_str(): " << element.GetAbilityName().c_str(); 540e0857b17Sopenharmony_ci EXPECT_STREQ(element.GetAbilityName().c_str(), std::string("system.test.abilityname").c_str()); 541e0857b17Sopenharmony_ci 542e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "element->GetBundleName().c_str(): " << element.GetBundleName().c_str(); 543e0857b17Sopenharmony_ci EXPECT_STREQ(element.GetBundleName().c_str(), std::string("system.test.bundlename").c_str()); 544e0857b17Sopenharmony_ci 545e0857b17Sopenharmony_ci EXPECT_STREQ(element.GetDeviceID().c_str(), std::string("system.test.deviceid").c_str()); 546e0857b17Sopenharmony_ci 547e0857b17Sopenharmony_ci std::string param_content = WantOut_->GetStringParam(keyStr); 548e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "WantOut_->GetStringParam(keyStr): " << param_content.c_str(); 549e0857b17Sopenharmony_ci 550e0857b17Sopenharmony_ci // want SetParam arraydata test 551e0857b17Sopenharmony_ci std::vector<bool> retboolArray; 552e0857b17Sopenharmony_ci retboolArray = WantOut_->GetBoolArrayParam(std::string("bool_arraykey")); 553e0857b17Sopenharmony_ci 554e0857b17Sopenharmony_ci bool arraycompare = CompareArrayData<bool>(retboolArray, boolArrayValue); 555e0857b17Sopenharmony_ci EXPECT_EQ(arraycompare, true); 556e0857b17Sopenharmony_ci 557e0857b17Sopenharmony_ci std::vector<byte> retbyteArrayValue; 558e0857b17Sopenharmony_ci retbyteArrayValue = WantOut_->GetByteArrayParam(std::string("byte_arraykey")); 559e0857b17Sopenharmony_ci arraycompare = CompareArrayData<byte>(retbyteArrayValue, byteArrayValue); 560e0857b17Sopenharmony_ci EXPECT_EQ(arraycompare, true); 561e0857b17Sopenharmony_ci 562e0857b17Sopenharmony_ci std::vector<zchar> retcharArrayValue; 563e0857b17Sopenharmony_ci retcharArrayValue = WantOut_->GetCharArrayParam(std::string("char_arraykey")); 564e0857b17Sopenharmony_ci arraycompare = CompareArrayData<zchar>(retcharArrayValue, charArrayValue); 565e0857b17Sopenharmony_ci EXPECT_EQ(arraycompare, true); 566e0857b17Sopenharmony_ci 567e0857b17Sopenharmony_ci std::vector<short> retshortArrayValue; 568e0857b17Sopenharmony_ci retshortArrayValue = WantOut_->GetShortArrayParam(std::string("short_arraykey")); 569e0857b17Sopenharmony_ci arraycompare = CompareArrayData<short>(retshortArrayValue, shortArrayValue); 570e0857b17Sopenharmony_ci EXPECT_EQ(arraycompare, true); 571e0857b17Sopenharmony_ci 572e0857b17Sopenharmony_ci std::vector<int> retintArrayValue; 573e0857b17Sopenharmony_ci retintArrayValue = WantOut_->GetIntArrayParam(std::string("int_arraykey")); 574e0857b17Sopenharmony_ci arraycompare = CompareArrayData<int>(retintArrayValue, intArrayValue); 575e0857b17Sopenharmony_ci EXPECT_EQ(arraycompare, true); 576e0857b17Sopenharmony_ci 577e0857b17Sopenharmony_ci std::vector<long> retlonArrayValue; 578e0857b17Sopenharmony_ci retlonArrayValue = WantOut_->GetLongArrayParam(std::string("long_arraykey")); 579e0857b17Sopenharmony_ci arraycompare = CompareArrayData<long>(retlonArrayValue, longArrayValue); 580e0857b17Sopenharmony_ci EXPECT_EQ(arraycompare, true); 581e0857b17Sopenharmony_ci 582e0857b17Sopenharmony_ci std::vector<float> retfloatArrayValue; 583e0857b17Sopenharmony_ci retfloatArrayValue = WantOut_->GetFloatArrayParam(std::string("float_arraykey")); 584e0857b17Sopenharmony_ci arraycompare = CompareArrayData<float>(retfloatArrayValue, floatArrayValue); 585e0857b17Sopenharmony_ci EXPECT_EQ(arraycompare, true); 586e0857b17Sopenharmony_ci 587e0857b17Sopenharmony_ci std::vector<double> retdoubleArrayValue; 588e0857b17Sopenharmony_ci retdoubleArrayValue = WantOut_->GetDoubleArrayParam(std::string("double_arraykey")); 589e0857b17Sopenharmony_ci arraycompare = CompareArrayData<double>(retdoubleArrayValue, doubleArrayValue); 590e0857b17Sopenharmony_ci EXPECT_EQ(arraycompare, true); 591e0857b17Sopenharmony_ci 592e0857b17Sopenharmony_ci std::vector<std::string> retstringArrayValue; 593e0857b17Sopenharmony_ci retstringArrayValue = WantOut_->GetStringArrayParam(std::string("string_arraykey")); 594e0857b17Sopenharmony_ci arraycompare = CompareArrayData<std::string>(retstringArrayValue, stringArrayValue); 595e0857b17Sopenharmony_ci EXPECT_EQ(arraycompare, true); 596e0857b17Sopenharmony_ci 597e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "AaFwk_Want_Parcelable_005 end"; 598e0857b17Sopenharmony_ci } 599e0857b17Sopenharmony_ci} 600e0857b17Sopenharmony_ci 601e0857b17Sopenharmony_civoid WantBaseTest::CompareWant(const std::shared_ptr<Want> &want1, const std::shared_ptr<Want> &want2) const 602e0857b17Sopenharmony_ci{ 603e0857b17Sopenharmony_ci Operation opt1 = want1->GetOperation(); 604e0857b17Sopenharmony_ci Operation opt2 = want2->GetOperation(); 605e0857b17Sopenharmony_ci EXPECT_EQ(opt1.GetDeviceId(), opt2.GetDeviceId()); 606e0857b17Sopenharmony_ci EXPECT_EQ(opt1.GetBundleName(), opt2.GetBundleName()); 607e0857b17Sopenharmony_ci EXPECT_EQ(opt1.GetAbilityName(), opt2.GetAbilityName()); 608e0857b17Sopenharmony_ci 609e0857b17Sopenharmony_ci EXPECT_EQ(want1->GetAction(), want2->GetAction()); 610e0857b17Sopenharmony_ci EXPECT_EQ(want1->GetFlags(), want2->GetFlags()); 611e0857b17Sopenharmony_ci EXPECT_EQ(want1->GetType(), want2->GetType()); 612e0857b17Sopenharmony_ci EXPECT_EQ(want1->CountEntities(), want2->CountEntities()); 613e0857b17Sopenharmony_ci 614e0857b17Sopenharmony_ci int count = want1->CountEntities(); 615e0857b17Sopenharmony_ci std::vector<std::string> entities1 = want1->GetEntities(); 616e0857b17Sopenharmony_ci std::vector<std::string> entities2 = want2->GetEntities(); 617e0857b17Sopenharmony_ci for (int i = 0; i < count; i++) { 618e0857b17Sopenharmony_ci EXPECT_EQ(entities1.at(i), entities2.at(i)); 619e0857b17Sopenharmony_ci } 620e0857b17Sopenharmony_ci 621e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName element1 = want1->GetElement(); 622e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName element2 = want2->GetElement(); 623e0857b17Sopenharmony_ci EXPECT_EQ(element1.GetURI(), element1.GetURI()); 624e0857b17Sopenharmony_ci 625e0857b17Sopenharmony_ci std::set<std::string> key1; 626e0857b17Sopenharmony_ci std::set<std::string> key2; 627e0857b17Sopenharmony_ci key1 = want1->GetParams().KeySet(); 628e0857b17Sopenharmony_ci key2 = want2->GetParams().KeySet(); 629e0857b17Sopenharmony_ci EXPECT_EQ(key1.size(), key2.size()); 630e0857b17Sopenharmony_ci 631e0857b17Sopenharmony_ci std::set<std::string>::iterator iter1 = key1.begin(); 632e0857b17Sopenharmony_ci std::set<std::string>::iterator iter2 = key2.begin(); 633e0857b17Sopenharmony_ci for (; (iter1 != key1.end() && iter2 != key2.end()); iter1++, iter2++) { 634e0857b17Sopenharmony_ci EXPECT_EQ(*iter1, *iter2); 635e0857b17Sopenharmony_ci } 636e0857b17Sopenharmony_ci} 637e0857b17Sopenharmony_ci 638e0857b17Sopenharmony_cibool WantBaseTest::CompareWant(const std::shared_ptr<Want> &want1, const std::shared_ptr<Want> &want2, 639e0857b17Sopenharmony_ci std::map<std::string, std::string> &keys) const 640e0857b17Sopenharmony_ci{ 641e0857b17Sopenharmony_ci if (want1 == nullptr || want2 == nullptr) { 642e0857b17Sopenharmony_ci return false; 643e0857b17Sopenharmony_ci } 644e0857b17Sopenharmony_ci EXPECT_STREQ(want1->GetAction().c_str(), want2->GetAction().c_str()); 645e0857b17Sopenharmony_ci EXPECT_EQ(want1->CountEntities(), want2->CountEntities()); 646e0857b17Sopenharmony_ci 647e0857b17Sopenharmony_ci if (want1->CountEntities() != want2->CountEntities()) { 648e0857b17Sopenharmony_ci return false; 649e0857b17Sopenharmony_ci } 650e0857b17Sopenharmony_ci 651e0857b17Sopenharmony_ci int count = want1->CountEntities(); 652e0857b17Sopenharmony_ci 653e0857b17Sopenharmony_ci std::vector<std::string> entities1 = want1->GetEntities(); 654e0857b17Sopenharmony_ci std::vector<std::string> entities2 = want2->GetEntities(); 655e0857b17Sopenharmony_ci for (int i = 0; i < count; i++) { 656e0857b17Sopenharmony_ci EXPECT_EQ(entities1.at(i), entities2.at(i)); 657e0857b17Sopenharmony_ci } 658e0857b17Sopenharmony_ci EXPECT_EQ(want1->GetFlags(), want2->GetFlags()); 659e0857b17Sopenharmony_ci EXPECT_EQ(want1->GetElement(), want2->GetElement()); 660e0857b17Sopenharmony_ci 661e0857b17Sopenharmony_ci for (auto it = keys.begin(); it != keys.end(); it++) { 662e0857b17Sopenharmony_ci if (it->second == boolType) { 663e0857b17Sopenharmony_ci bool v1 = want1->GetBoolParam(it->first, false); 664e0857b17Sopenharmony_ci bool v2 = want2->GetBoolParam(it->first, false); 665e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 666e0857b17Sopenharmony_ci EXPECT_EQ(v1, true); 667e0857b17Sopenharmony_ci } else if (it->second == boolArrayType) { 668e0857b17Sopenharmony_ci std::vector<bool> v1 = want1->GetBoolArrayParam(it->first); 669e0857b17Sopenharmony_ci std::vector<bool> v2 = want2->GetBoolArrayParam(it->first); 670e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 671e0857b17Sopenharmony_ci } else if (it->second == byteType) { 672e0857b17Sopenharmony_ci byte v1 = want1->GetByteParam(it->first, 'j'); 673e0857b17Sopenharmony_ci byte v2 = want2->GetByteParam(it->first, 'k'); 674e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 675e0857b17Sopenharmony_ci } else if (it->second == byteArrayType) { 676e0857b17Sopenharmony_ci std::vector<byte> v1 = want1->GetByteArrayParam(it->first); 677e0857b17Sopenharmony_ci std::vector<byte> v2 = want2->GetByteArrayParam(it->first); 678e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 679e0857b17Sopenharmony_ci } else if (it->second == charType) { 680e0857b17Sopenharmony_ci zchar v1 = want1->GetCharParam(it->first, 0x01AB); 681e0857b17Sopenharmony_ci zchar v2 = want2->GetCharParam(it->first, 0x02CD); 682e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 683e0857b17Sopenharmony_ci } else if (it->second == charArrayType) { 684e0857b17Sopenharmony_ci std::vector<zchar> v1 = want1->GetCharArrayParam(it->first); 685e0857b17Sopenharmony_ci std::vector<zchar> v2 = want2->GetCharArrayParam(it->first); 686e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 687e0857b17Sopenharmony_ci } else if (it->second == shortType) { 688e0857b17Sopenharmony_ci short default1 = 123; 689e0857b17Sopenharmony_ci short default2 = 456; 690e0857b17Sopenharmony_ci short v1 = want1->GetShortParam(it->first, default1); 691e0857b17Sopenharmony_ci short v2 = want2->GetShortParam(it->first, default2); 692e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 693e0857b17Sopenharmony_ci } else if (it->second == shortArrayType) { 694e0857b17Sopenharmony_ci std::vector<short> v1 = want1->GetShortArrayParam(it->first); 695e0857b17Sopenharmony_ci std::vector<short> v2 = want2->GetShortArrayParam(it->first); 696e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 697e0857b17Sopenharmony_ci } else if (it->second == intType) { 698e0857b17Sopenharmony_ci int default1 = 1230000; 699e0857b17Sopenharmony_ci int default2 = 4560000; 700e0857b17Sopenharmony_ci int v1 = want1->GetIntParam(it->first, default1); 701e0857b17Sopenharmony_ci int v2 = want2->GetIntParam(it->first, default2); 702e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 703e0857b17Sopenharmony_ci } else if (it->second == intArrayType) { 704e0857b17Sopenharmony_ci std::vector<int> v1 = want1->GetIntArrayParam(it->first); 705e0857b17Sopenharmony_ci std::vector<int> v2 = want2->GetIntArrayParam(it->first); 706e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 707e0857b17Sopenharmony_ci } else if (it->second == longType) { 708e0857b17Sopenharmony_ci long default1 = 1e8; 709e0857b17Sopenharmony_ci long default2 = 2e8; 710e0857b17Sopenharmony_ci long v1 = want1->GetLongParam(it->first, default1); 711e0857b17Sopenharmony_ci long v2 = want2->GetLongParam(it->first, default2); 712e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 713e0857b17Sopenharmony_ci } else if (it->second == longArrayType) { 714e0857b17Sopenharmony_ci std::vector<long> v1 = want1->GetLongArrayParam(it->first); 715e0857b17Sopenharmony_ci std::vector<long> v2 = want2->GetLongArrayParam(it->first); 716e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 717e0857b17Sopenharmony_ci } else if (it->second == floatType) { 718e0857b17Sopenharmony_ci float default1 = 12.3; 719e0857b17Sopenharmony_ci float default2 = 45.6; 720e0857b17Sopenharmony_ci float v1 = want1->GetFloatParam(it->first, default1); 721e0857b17Sopenharmony_ci float v2 = want2->GetFloatParam(it->first, default2); 722e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 723e0857b17Sopenharmony_ci } else if (it->second == floatArrayType) { 724e0857b17Sopenharmony_ci std::vector<float> v1 = want1->GetFloatArrayParam(it->first); 725e0857b17Sopenharmony_ci std::vector<float> v2 = want2->GetFloatArrayParam(it->first); 726e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 727e0857b17Sopenharmony_ci } else if (it->second == doubleType) { 728e0857b17Sopenharmony_ci double default1 = 12.3; 729e0857b17Sopenharmony_ci double default2 = 45.6; 730e0857b17Sopenharmony_ci double v1 = want1->GetDoubleParam(it->first, default1); 731e0857b17Sopenharmony_ci double v2 = want2->GetDoubleParam(it->first, default2); 732e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 733e0857b17Sopenharmony_ci } else if (it->second == doubleArrayType) { 734e0857b17Sopenharmony_ci std::vector<double> v1 = want1->GetDoubleArrayParam(it->first); 735e0857b17Sopenharmony_ci std::vector<double> v2 = want2->GetDoubleArrayParam(it->first); 736e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 737e0857b17Sopenharmony_ci } else if (it->second == stringType) { 738e0857b17Sopenharmony_ci std::string v1 = want1->GetStringParam(it->first); 739e0857b17Sopenharmony_ci std::string v2 = want2->GetStringParam(it->first); 740e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 741e0857b17Sopenharmony_ci } else if (it->second == stringArrayType) { 742e0857b17Sopenharmony_ci std::vector<std::string> v1 = want1->GetStringArrayParam(it->first); 743e0857b17Sopenharmony_ci std::vector<std::string> v2 = want2->GetStringArrayParam(it->first); 744e0857b17Sopenharmony_ci EXPECT_EQ(v1, v2); 745e0857b17Sopenharmony_ci } 746e0857b17Sopenharmony_ci } 747e0857b17Sopenharmony_ci 748e0857b17Sopenharmony_ci return true; 749e0857b17Sopenharmony_ci} 750e0857b17Sopenharmony_ci 751e0857b17Sopenharmony_civoid WantBaseTest::SendParcelTest(const std::shared_ptr<Want> &want, std::map<std::string, std::string> &keys) const 752e0857b17Sopenharmony_ci{ 753e0857b17Sopenharmony_ci size_t pos1; 754e0857b17Sopenharmony_ci size_t pos2; 755e0857b17Sopenharmony_ci Parcel data; 756e0857b17Sopenharmony_ci bool result = false; 757e0857b17Sopenharmony_ci 758e0857b17Sopenharmony_ci pos1 = data.GetWritePosition(); 759e0857b17Sopenharmony_ci result = data.WriteParcelable(want.get()); 760e0857b17Sopenharmony_ci pos2 = data.GetWritePosition(); 761e0857b17Sopenharmony_ci EXPECT_EQ(result, true); 762e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "SendParcelTest: pos1: " << pos1 << ", pos2: " << pos2 << ", result: " << result; 763e0857b17Sopenharmony_ci 764e0857b17Sopenharmony_ci std::shared_ptr<Want> wantNew(data.ReadParcelable<Want>()); 765e0857b17Sopenharmony_ci EXPECT_NE(wantNew, nullptr); 766e0857b17Sopenharmony_ci 767e0857b17Sopenharmony_ci if (wantNew != nullptr) { 768e0857b17Sopenharmony_ci result = CompareWant(want, wantNew, keys); 769e0857b17Sopenharmony_ci EXPECT_EQ(result, true); 770e0857b17Sopenharmony_ci } 771e0857b17Sopenharmony_ci} 772e0857b17Sopenharmony_ci 773e0857b17Sopenharmony_civoid WantBaseTest::AddBoolParams( 774e0857b17Sopenharmony_ci Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const 775e0857b17Sopenharmony_ci{ 776e0857b17Sopenharmony_ci std::string key; 777e0857b17Sopenharmony_ci std::string boolKey = "boolKey"; 778e0857b17Sopenharmony_ci std::string boolArrayKey = "boolArrayKey"; 779e0857b17Sopenharmony_ci for (int i = 0; i < loop; i++) { 780e0857b17Sopenharmony_ci if (flag & FLAG_TEST_SINGLE) { 781e0857b17Sopenharmony_ci bool boolValue = true; 782e0857b17Sopenharmony_ci keys[boolKey + std::to_string(i)] = boolType; 783e0857b17Sopenharmony_ci want.SetParam(boolKey + std::to_string(i), boolValue); 784e0857b17Sopenharmony_ci } 785e0857b17Sopenharmony_ci 786e0857b17Sopenharmony_ci if (flag & FLAG_TEST_ARRAY) { 787e0857b17Sopenharmony_ci std::vector<bool> boolArrayValue = {true, false, true}; 788e0857b17Sopenharmony_ci keys[key] = boolArrayType; 789e0857b17Sopenharmony_ci want.SetParam(key, boolArrayValue); 790e0857b17Sopenharmony_ci } 791e0857b17Sopenharmony_ci } 792e0857b17Sopenharmony_ci} 793e0857b17Sopenharmony_ci 794e0857b17Sopenharmony_civoid WantBaseTest::AddByteParams( 795e0857b17Sopenharmony_ci Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const 796e0857b17Sopenharmony_ci{ 797e0857b17Sopenharmony_ci std::string key; 798e0857b17Sopenharmony_ci std::string byteKey = "byteKey"; 799e0857b17Sopenharmony_ci std::string byteArrayKey = "byteArrayKey"; 800e0857b17Sopenharmony_ci for (int i = 0; i < loop; i++) { 801e0857b17Sopenharmony_ci if (flag & FLAG_TEST_SINGLE) { 802e0857b17Sopenharmony_ci byte byteValue = 'z'; 803e0857b17Sopenharmony_ci key = byteKey + std::to_string(i); 804e0857b17Sopenharmony_ci keys[key] = byteType; 805e0857b17Sopenharmony_ci want.SetParam(key, byteValue); 806e0857b17Sopenharmony_ci } 807e0857b17Sopenharmony_ci 808e0857b17Sopenharmony_ci if (flag & FLAG_TEST_ARRAY) { 809e0857b17Sopenharmony_ci std::vector<byte> byteArrayValue = {'?', 'a', '\\'}; 810e0857b17Sopenharmony_ci key = byteArrayKey + std::to_string(i); 811e0857b17Sopenharmony_ci keys[key] = byteArrayType; 812e0857b17Sopenharmony_ci want.SetParam(key, byteArrayValue); 813e0857b17Sopenharmony_ci } 814e0857b17Sopenharmony_ci } 815e0857b17Sopenharmony_ci} 816e0857b17Sopenharmony_ci 817e0857b17Sopenharmony_civoid WantBaseTest::AddCharParams( 818e0857b17Sopenharmony_ci Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const 819e0857b17Sopenharmony_ci{ 820e0857b17Sopenharmony_ci std::string key; 821e0857b17Sopenharmony_ci std::string charKey = "charKey"; 822e0857b17Sopenharmony_ci std::string charArrayKey = "charArrayKey"; 823e0857b17Sopenharmony_ci for (int i = 0; i < loop; i++) { 824e0857b17Sopenharmony_ci if (flag & FLAG_TEST_SINGLE) { 825e0857b17Sopenharmony_ci zchar charValue = U'h'; 826e0857b17Sopenharmony_ci key = charKey + std::to_string(i); 827e0857b17Sopenharmony_ci keys[key] = charType; 828e0857b17Sopenharmony_ci want.SetParam(key, charValue); 829e0857b17Sopenharmony_ci } 830e0857b17Sopenharmony_ci 831e0857b17Sopenharmony_ci if (flag & FLAG_TEST_ARRAY) { 832e0857b17Sopenharmony_ci std::vector<zchar> charArrayValue = {U'e', U'l', U'l', U'o'}; 833e0857b17Sopenharmony_ci key = charArrayKey + std::to_string(i); 834e0857b17Sopenharmony_ci keys[key] = charArrayType; 835e0857b17Sopenharmony_ci want.SetParam(key, charArrayValue); 836e0857b17Sopenharmony_ci } 837e0857b17Sopenharmony_ci } 838e0857b17Sopenharmony_ci} 839e0857b17Sopenharmony_ci 840e0857b17Sopenharmony_civoid WantBaseTest::AddShortParams( 841e0857b17Sopenharmony_ci Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const 842e0857b17Sopenharmony_ci{ 843e0857b17Sopenharmony_ci std::string key; 844e0857b17Sopenharmony_ci std::string shortKey = "shortKey"; 845e0857b17Sopenharmony_ci std::string shortArrayKey = "shortArrayKey"; 846e0857b17Sopenharmony_ci for (int i = 0; i < loop; i++) { 847e0857b17Sopenharmony_ci if (flag & FLAG_TEST_SINGLE) { 848e0857b17Sopenharmony_ci short shortValue = 1; 849e0857b17Sopenharmony_ci key = shortKey + std::to_string(i); 850e0857b17Sopenharmony_ci keys[key] = shortType; 851e0857b17Sopenharmony_ci want.SetParam(key, shortValue); 852e0857b17Sopenharmony_ci } 853e0857b17Sopenharmony_ci 854e0857b17Sopenharmony_ci if (flag & FLAG_TEST_ARRAY) { 855e0857b17Sopenharmony_ci std::vector<short> shortArrayValue = {-1, 0, 1}; 856e0857b17Sopenharmony_ci key = shortArrayKey + std::to_string(i); 857e0857b17Sopenharmony_ci keys[key] = shortArrayType; 858e0857b17Sopenharmony_ci want.SetParam(key, shortArrayValue); 859e0857b17Sopenharmony_ci } 860e0857b17Sopenharmony_ci } 861e0857b17Sopenharmony_ci} 862e0857b17Sopenharmony_ci 863e0857b17Sopenharmony_civoid WantBaseTest::AddIntParams(Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const 864e0857b17Sopenharmony_ci{ 865e0857b17Sopenharmony_ci std::string key; 866e0857b17Sopenharmony_ci std::string intKey = "intKey"; 867e0857b17Sopenharmony_ci std::string intArrayKey = "intArrayKey"; 868e0857b17Sopenharmony_ci for (int i = 0; i < loop; i++) { 869e0857b17Sopenharmony_ci if (flag & FLAG_TEST_SINGLE) { 870e0857b17Sopenharmony_ci int intValue = 10; 871e0857b17Sopenharmony_ci key = intKey + std::to_string(i); 872e0857b17Sopenharmony_ci keys[key] = intType; 873e0857b17Sopenharmony_ci want.SetParam(key, intValue); 874e0857b17Sopenharmony_ci } 875e0857b17Sopenharmony_ci 876e0857b17Sopenharmony_ci if (flag & FLAG_TEST_ARRAY) { 877e0857b17Sopenharmony_ci std::vector<int> intArrayValue = {-10, 0, 10}; 878e0857b17Sopenharmony_ci key = intArrayKey + std::to_string(i); 879e0857b17Sopenharmony_ci keys[key] = intArrayType; 880e0857b17Sopenharmony_ci want.SetParam(key, intArrayValue); 881e0857b17Sopenharmony_ci } 882e0857b17Sopenharmony_ci } 883e0857b17Sopenharmony_ci} 884e0857b17Sopenharmony_ci 885e0857b17Sopenharmony_civoid WantBaseTest::AddLongParams( 886e0857b17Sopenharmony_ci Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const 887e0857b17Sopenharmony_ci{ 888e0857b17Sopenharmony_ci std::string key; 889e0857b17Sopenharmony_ci std::string longKey = "longKey"; 890e0857b17Sopenharmony_ci std::string longArrayKey = "longArrayKey"; 891e0857b17Sopenharmony_ci for (int i = 0; i < loop; i++) { 892e0857b17Sopenharmony_ci if (flag & FLAG_TEST_SINGLE) { 893e0857b17Sopenharmony_ci long longValue = 100L; 894e0857b17Sopenharmony_ci key = longKey + std::to_string(i); 895e0857b17Sopenharmony_ci keys[key] = longType; 896e0857b17Sopenharmony_ci want.SetParam(key, longValue); 897e0857b17Sopenharmony_ci } 898e0857b17Sopenharmony_ci 899e0857b17Sopenharmony_ci if (flag & FLAG_TEST_ARRAY) { 900e0857b17Sopenharmony_ci std::vector<long> longArrayValue = {-100, 0, 100}; 901e0857b17Sopenharmony_ci key = longArrayKey + std::to_string(i); 902e0857b17Sopenharmony_ci keys[key] = longArrayType; 903e0857b17Sopenharmony_ci want.SetParam(key, longArrayValue); 904e0857b17Sopenharmony_ci } 905e0857b17Sopenharmony_ci } 906e0857b17Sopenharmony_ci} 907e0857b17Sopenharmony_ci 908e0857b17Sopenharmony_civoid WantBaseTest::AddFloatParams( 909e0857b17Sopenharmony_ci Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const 910e0857b17Sopenharmony_ci{ 911e0857b17Sopenharmony_ci std::string key; 912e0857b17Sopenharmony_ci std::string floatKey = "floatKey"; 913e0857b17Sopenharmony_ci std::string floatArrayKey = "floatArrayKey"; 914e0857b17Sopenharmony_ci for (int i = 0; i < loop; i++) { 915e0857b17Sopenharmony_ci if (flag & FLAG_TEST_SINGLE) { 916e0857b17Sopenharmony_ci float floatValue = 100.1f; 917e0857b17Sopenharmony_ci key = floatKey + std::to_string(i); 918e0857b17Sopenharmony_ci keys[key] = floatType; 919e0857b17Sopenharmony_ci want.SetParam(key, floatValue); 920e0857b17Sopenharmony_ci } 921e0857b17Sopenharmony_ci 922e0857b17Sopenharmony_ci if (flag & FLAG_TEST_ARRAY) { 923e0857b17Sopenharmony_ci std::vector<float> floatArrayValue = {-100.1, 0.1, 100.1}; 924e0857b17Sopenharmony_ci key = floatArrayKey + std::to_string(i); 925e0857b17Sopenharmony_ci keys[key] = floatArrayType; 926e0857b17Sopenharmony_ci want.SetParam(key, floatArrayValue); 927e0857b17Sopenharmony_ci } 928e0857b17Sopenharmony_ci } 929e0857b17Sopenharmony_ci} 930e0857b17Sopenharmony_ci 931e0857b17Sopenharmony_civoid WantBaseTest::AddDoubleParams( 932e0857b17Sopenharmony_ci Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const 933e0857b17Sopenharmony_ci{ 934e0857b17Sopenharmony_ci std::string key; 935e0857b17Sopenharmony_ci std::string doubleKey = "doubleKey"; 936e0857b17Sopenharmony_ci std::string doubleArrayKey = "doubleArrayKey"; 937e0857b17Sopenharmony_ci for (int i = 0; i < loop; i++) { 938e0857b17Sopenharmony_ci if (flag & FLAG_TEST_SINGLE) { 939e0857b17Sopenharmony_ci double doubleValue = 1000.1; 940e0857b17Sopenharmony_ci key = doubleKey + std::to_string(i); 941e0857b17Sopenharmony_ci keys[key] = doubleType; 942e0857b17Sopenharmony_ci want.SetParam(key, doubleValue); 943e0857b17Sopenharmony_ci } 944e0857b17Sopenharmony_ci 945e0857b17Sopenharmony_ci if (flag & FLAG_TEST_ARRAY) { 946e0857b17Sopenharmony_ci std::vector<double> doubleArrayValue = {-1000.1, 0.1, 1000.1}; 947e0857b17Sopenharmony_ci key = doubleArrayKey + std::to_string(i); 948e0857b17Sopenharmony_ci keys[key] = doubleArrayType; 949e0857b17Sopenharmony_ci want.SetParam(key, doubleArrayValue); 950e0857b17Sopenharmony_ci } 951e0857b17Sopenharmony_ci } 952e0857b17Sopenharmony_ci} 953e0857b17Sopenharmony_ci 954e0857b17Sopenharmony_civoid WantBaseTest::AddStringParams( 955e0857b17Sopenharmony_ci Want &want, std::map<std::string, std::string> &keys, int loop, unsigned int flag) const 956e0857b17Sopenharmony_ci{ 957e0857b17Sopenharmony_ci std::string key; 958e0857b17Sopenharmony_ci std::string stringKey = "stringKey"; 959e0857b17Sopenharmony_ci std::string stringArrayKey = "stringArrayKey"; 960e0857b17Sopenharmony_ci for (int i = 0; i < loop; i++) { 961e0857b17Sopenharmony_ci if (flag & FLAG_TEST_SINGLE) { 962e0857b17Sopenharmony_ci string stringValue = "zzzz"; 963e0857b17Sopenharmony_ci key = stringKey + std::to_string(i); 964e0857b17Sopenharmony_ci keys[key] = stringType; 965e0857b17Sopenharmony_ci want.SetParam(key, stringValue); 966e0857b17Sopenharmony_ci } 967e0857b17Sopenharmony_ci 968e0857b17Sopenharmony_ci if (flag & FLAG_TEST_ARRAY) { 969e0857b17Sopenharmony_ci std::vector<std::string> stringArrayValue = {"??", "aa", "\\\\"}; 970e0857b17Sopenharmony_ci key = stringArrayKey + std::to_string(i); 971e0857b17Sopenharmony_ci keys[key] = stringArrayType; 972e0857b17Sopenharmony_ci want.SetParam(key, stringArrayValue); 973e0857b17Sopenharmony_ci } 974e0857b17Sopenharmony_ci } 975e0857b17Sopenharmony_ci} 976e0857b17Sopenharmony_ci 977e0857b17Sopenharmony_ci/** 978e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parcelable_0600 979e0857b17Sopenharmony_ci * @tc.name: parcelable 980e0857b17Sopenharmony_ci * @tc.desc: Verify parcelable. 981e0857b17Sopenharmony_ci */ 982e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Parcelable_0600, Function | MediumTest | Level1) 983e0857b17Sopenharmony_ci{ 984e0857b17Sopenharmony_ci std::string action = "want.action.test"; 985e0857b17Sopenharmony_ci unsigned int flag = 0x789; 986e0857b17Sopenharmony_ci std::string entity = "want.entity.test"; 987e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName element("bundlename", "appname", "abilityname"); 988e0857b17Sopenharmony_ci 989e0857b17Sopenharmony_ci std::shared_ptr<Want> want = std::make_shared<Want>(); 990e0857b17Sopenharmony_ci if (want != nullptr) { 991e0857b17Sopenharmony_ci want->SetAction(action); 992e0857b17Sopenharmony_ci want->AddEntity(entity); 993e0857b17Sopenharmony_ci want->AddFlags(flag); 994e0857b17Sopenharmony_ci want->SetElement(element); 995e0857b17Sopenharmony_ci 996e0857b17Sopenharmony_ci std::map<std::string, std::string> keys; 997e0857b17Sopenharmony_ci 998e0857b17Sopenharmony_ci SendParcelTest(want, keys); 999e0857b17Sopenharmony_ci } 1000e0857b17Sopenharmony_ci} 1001e0857b17Sopenharmony_ci 1002e0857b17Sopenharmony_ci/** 1003e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parcelable_0700 1004e0857b17Sopenharmony_ci * @tc.name: parcelable 1005e0857b17Sopenharmony_ci * @tc.desc: Verify parcelable. 1006e0857b17Sopenharmony_ci */ 1007e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Parcelable_0700, Function | MediumTest | Level1) 1008e0857b17Sopenharmony_ci{ 1009e0857b17Sopenharmony_ci std::string action = "want.action.test"; 1010e0857b17Sopenharmony_ci unsigned int flag = 0x789; 1011e0857b17Sopenharmony_ci std::string entity = "want.entity.test"; 1012e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName element("bundlename", "appname", "abilityname"); 1013e0857b17Sopenharmony_ci 1014e0857b17Sopenharmony_ci std::shared_ptr<Want> want = std::make_shared<Want>(); 1015e0857b17Sopenharmony_ci if (want != nullptr) { 1016e0857b17Sopenharmony_ci want->SetAction(action); 1017e0857b17Sopenharmony_ci want->AddEntity(entity); 1018e0857b17Sopenharmony_ci want->AddFlags(flag); 1019e0857b17Sopenharmony_ci want->SetElement(element); 1020e0857b17Sopenharmony_ci 1021e0857b17Sopenharmony_ci int loop = 1; 1022e0857b17Sopenharmony_ci std::map<std::string, std::string> keys; 1023e0857b17Sopenharmony_ci 1024e0857b17Sopenharmony_ci AddByteParams(*(want.get()), keys, loop, FLAG_TEST_BOTH); 1025e0857b17Sopenharmony_ci AddCharParams(*(want.get()), keys, loop, FLAG_TEST_BOTH); 1026e0857b17Sopenharmony_ci AddShortParams(*(want.get()), keys, loop, FLAG_TEST_BOTH); 1027e0857b17Sopenharmony_ci AddIntParams(*(want.get()), keys, loop, FLAG_TEST_BOTH); 1028e0857b17Sopenharmony_ci AddLongParams(*(want.get()), keys, loop, FLAG_TEST_BOTH); 1029e0857b17Sopenharmony_ci AddFloatParams(*(want.get()), keys, loop, FLAG_TEST_BOTH); 1030e0857b17Sopenharmony_ci AddDoubleParams(*(want.get()), keys, loop, FLAG_TEST_BOTH); 1031e0857b17Sopenharmony_ci AddStringParams(*(want.get()), keys, loop, FLAG_TEST_BOTH); 1032e0857b17Sopenharmony_ci 1033e0857b17Sopenharmony_ci SendParcelTest(want, keys); 1034e0857b17Sopenharmony_ci } 1035e0857b17Sopenharmony_ci} 1036e0857b17Sopenharmony_ci 1037e0857b17Sopenharmony_ci/** 1038e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parcelable_0800 1039e0857b17Sopenharmony_ci * @tc.name: parcelable 1040e0857b17Sopenharmony_ci * @tc.desc: Verify parcelable. 1041e0857b17Sopenharmony_ci */ 1042e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Parcelable_0800, Function | MediumTest | Level1) 1043e0857b17Sopenharmony_ci{ 1044e0857b17Sopenharmony_ci std::string action = "want.action.test"; 1045e0857b17Sopenharmony_ci unsigned int flag = 0x789; 1046e0857b17Sopenharmony_ci std::string entity = "want.entity.test"; 1047e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName element("bundlename", "appname", "abilityname"); 1048e0857b17Sopenharmony_ci 1049e0857b17Sopenharmony_ci std::shared_ptr<Want> want = std::make_shared<Want>(); 1050e0857b17Sopenharmony_ci if (want != nullptr) { 1051e0857b17Sopenharmony_ci want->SetAction(action); 1052e0857b17Sopenharmony_ci want->AddEntity(entity); 1053e0857b17Sopenharmony_ci want->AddFlags(flag); 1054e0857b17Sopenharmony_ci want->SetElement(element); 1055e0857b17Sopenharmony_ci std::map<std::string, std::string> keys; 1056e0857b17Sopenharmony_ci 1057e0857b17Sopenharmony_ci SendParcelTest(want, keys); 1058e0857b17Sopenharmony_ci } 1059e0857b17Sopenharmony_ci} 1060e0857b17Sopenharmony_ci 1061e0857b17Sopenharmony_ci/** 1062e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_FormatMimeType_0100 1063e0857b17Sopenharmony_ci * @tc.name: formatMimeType 1064e0857b17Sopenharmony_ci * @tc.desc: formats data of a specified MIME type. 1065e0857b17Sopenharmony_ci */ 1066e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_FormatMimeType_0100, Function | MediumTest | Level1) 1067e0857b17Sopenharmony_ci{ 1068e0857b17Sopenharmony_ci std::string mimeType = "Application/Envoy"; 1069e0857b17Sopenharmony_ci std::string mimeTypeResult = "application/envoy"; 1070e0857b17Sopenharmony_ci 1071e0857b17Sopenharmony_ci EXPECT_EQ(mimeTypeResult, Want::FormatMimeType(mimeType)); 1072e0857b17Sopenharmony_ci} 1073e0857b17Sopenharmony_ci 1074e0857b17Sopenharmony_ci/** 1075e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_FormatMimeType_0200 1076e0857b17Sopenharmony_ci * @tc.name: formatMimeType 1077e0857b17Sopenharmony_ci * @tc.desc: formats data of a specified MIME type. 1078e0857b17Sopenharmony_ci */ 1079e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_FormatMimeType_0200, Function | MediumTest | Level1) 1080e0857b17Sopenharmony_ci{ 1081e0857b17Sopenharmony_ci std::string mimeType = "APPLICATION/ENVOY"; 1082e0857b17Sopenharmony_ci std::string mimeTypeResult = "application/envoy"; 1083e0857b17Sopenharmony_ci 1084e0857b17Sopenharmony_ci EXPECT_EQ(mimeTypeResult, Want::FormatMimeType(mimeType)); 1085e0857b17Sopenharmony_ci} 1086e0857b17Sopenharmony_ci 1087e0857b17Sopenharmony_ci/** 1088e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_FormatMimeType_0300 1089e0857b17Sopenharmony_ci * @tc.name: formatMimeType 1090e0857b17Sopenharmony_ci * @tc.desc: formats data of a specified MIME type. 1091e0857b17Sopenharmony_ci */ 1092e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_FormatMimeType_0300, Function | MediumTest | Level1) 1093e0857b17Sopenharmony_ci{ 1094e0857b17Sopenharmony_ci std::string mimeType = " Appl icati on/ Envoy "; 1095e0857b17Sopenharmony_ci std::string mimeTypeResult = "application/envoy"; 1096e0857b17Sopenharmony_ci 1097e0857b17Sopenharmony_ci EXPECT_EQ(mimeTypeResult, Want::FormatMimeType(mimeType)); 1098e0857b17Sopenharmony_ci} 1099e0857b17Sopenharmony_ci 1100e0857b17Sopenharmony_ci/** 1101e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_FormatMimeType_0400 1102e0857b17Sopenharmony_ci * @tc.name: formatMimeType 1103e0857b17Sopenharmony_ci * @tc.desc: formats data of a specified MIME type. 1104e0857b17Sopenharmony_ci */ 1105e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_FormatMimeType_0400, Function | MediumTest | Level1) 1106e0857b17Sopenharmony_ci{ 1107e0857b17Sopenharmony_ci std::string mimeType = " Appl icati on/ Envoy ; yovnE ;no itaci lppA "; 1108e0857b17Sopenharmony_ci std::string mimeTypeResult = "application/envoy"; 1109e0857b17Sopenharmony_ci 1110e0857b17Sopenharmony_ci EXPECT_EQ(mimeTypeResult, Want::FormatMimeType(mimeType)); 1111e0857b17Sopenharmony_ci} 1112e0857b17Sopenharmony_ci 1113e0857b17Sopenharmony_ci/** 1114e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ParseUri_ToUri_0100 1115e0857b17Sopenharmony_ci * @tc.name: ParseUri and ToUri 1116e0857b17Sopenharmony_ci * @tc.desc: Verify the function when Want is empty. 1117e0857b17Sopenharmony_ci */ 1118e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ParseUri_ToUri_0100, Function | MediumTest | Level1) 1119e0857b17Sopenharmony_ci{ 1120e0857b17Sopenharmony_ci std::size_t pos = 0; 1121e0857b17Sopenharmony_ci std::size_t content = 0; 1122e0857b17Sopenharmony_ci std::size_t head = 0; 1123e0857b17Sopenharmony_ci Want wantOrigin; 1124e0857b17Sopenharmony_ci 1125e0857b17Sopenharmony_ci std::string uri = wantOrigin.ToUri(); 1126e0857b17Sopenharmony_ci 1127e0857b17Sopenharmony_ci head = uri.find(WantBaseTest::URI_STRING_HEAD, pos); 1128e0857b17Sopenharmony_ci EXPECT_EQ(head, pos); 1129e0857b17Sopenharmony_ci if (head != std::string::npos) { 1130e0857b17Sopenharmony_ci pos += head + WantBaseTest::URI_STRING_HEAD.length() - 1; 1131e0857b17Sopenharmony_ci } 1132e0857b17Sopenharmony_ci 1133e0857b17Sopenharmony_ci content = uri.find(WantBaseTest::URI_STRING_END, pos); 1134e0857b17Sopenharmony_ci EXPECT_EQ(content, pos); 1135e0857b17Sopenharmony_ci if (content != std::string::npos) { 1136e0857b17Sopenharmony_ci pos += WantBaseTest::URI_STRING_END.length(); 1137e0857b17Sopenharmony_ci } 1138e0857b17Sopenharmony_ci 1139e0857b17Sopenharmony_ci EXPECT_EQ(uri.length(), pos); 1140e0857b17Sopenharmony_ci 1141e0857b17Sopenharmony_ci Want *wantNew = Want::ParseUri(uri); 1142e0857b17Sopenharmony_ci EXPECT_NE(wantNew, nullptr); 1143e0857b17Sopenharmony_ci 1144e0857b17Sopenharmony_ci if (wantNew != nullptr) { 1145e0857b17Sopenharmony_ci EXPECT_EQ(wantNew->GetAction(), std::string("")); 1146e0857b17Sopenharmony_ci for (auto entity : wantNew->GetEntities()) { 1147e0857b17Sopenharmony_ci EXPECT_EQ(entity, std::string("")); 1148e0857b17Sopenharmony_ci } 1149e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName element; 1150e0857b17Sopenharmony_ci EXPECT_EQ(wantNew->GetElement(), element); 1151e0857b17Sopenharmony_ci EXPECT_EQ(static_cast<int>(wantNew->GetFlags()), 0); 1152e0857b17Sopenharmony_ci 1153e0857b17Sopenharmony_ci delete wantNew; 1154e0857b17Sopenharmony_ci } 1155e0857b17Sopenharmony_ci} 1156e0857b17Sopenharmony_ci 1157e0857b17Sopenharmony_ci/** 1158e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ParseUri_ToUri_0200 1159e0857b17Sopenharmony_ci * @tc.name: ParseUri and ToUri 1160e0857b17Sopenharmony_ci * @tc.desc: Verify the function when Want only has action/entity/flag/element. 1161e0857b17Sopenharmony_ci */ 1162e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ParseUri_ToUri_0200, Function | MediumTest | Level1) 1163e0857b17Sopenharmony_ci{ 1164e0857b17Sopenharmony_ci std::string search; 1165e0857b17Sopenharmony_ci 1166e0857b17Sopenharmony_ci std::string action = Want::ACTION_PLAY; 1167e0857b17Sopenharmony_ci std::string entity = Want::ENTITY_VIDEO; 1168e0857b17Sopenharmony_ci unsigned int flag = 0x0f0f0f0f; 1169e0857b17Sopenharmony_ci std::string flagStr = "0x0f0f0f0f"; 1170e0857b17Sopenharmony_ci std::string device = "device1"; 1171e0857b17Sopenharmony_ci std::string bundle = "bundle1"; 1172e0857b17Sopenharmony_ci std::string ability = "ability1"; 1173e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName element(device, bundle, ability); 1174e0857b17Sopenharmony_ci 1175e0857b17Sopenharmony_ci Want wantOrigin; 1176e0857b17Sopenharmony_ci wantOrigin.SetAction(action); 1177e0857b17Sopenharmony_ci wantOrigin.AddEntity(entity); 1178e0857b17Sopenharmony_ci wantOrigin.AddFlags(flag); 1179e0857b17Sopenharmony_ci wantOrigin.SetElement(element); 1180e0857b17Sopenharmony_ci 1181e0857b17Sopenharmony_ci std::string uri = wantOrigin.ToUri(); 1182e0857b17Sopenharmony_ci Want *wantNew = Want::ParseUri(uri); 1183e0857b17Sopenharmony_ci EXPECT_NE(wantNew, nullptr); 1184e0857b17Sopenharmony_ci 1185e0857b17Sopenharmony_ci if (wantNew != nullptr) { 1186e0857b17Sopenharmony_ci EXPECT_EQ(wantNew->GetAction(), action); 1187e0857b17Sopenharmony_ci for (auto entityItem : wantNew->GetEntities()) { 1188e0857b17Sopenharmony_ci EXPECT_EQ(entityItem, entity); 1189e0857b17Sopenharmony_ci } 1190e0857b17Sopenharmony_ci EXPECT_EQ(wantNew->GetElement().GetDeviceID(), device); 1191e0857b17Sopenharmony_ci EXPECT_EQ(wantNew->GetElement().GetBundleName(), bundle); 1192e0857b17Sopenharmony_ci EXPECT_EQ(wantNew->GetElement().GetAbilityName(), ability); 1193e0857b17Sopenharmony_ci EXPECT_EQ(wantNew->GetFlags(), flag); 1194e0857b17Sopenharmony_ci 1195e0857b17Sopenharmony_ci delete wantNew; 1196e0857b17Sopenharmony_ci wantNew = nullptr; 1197e0857b17Sopenharmony_ci } 1198e0857b17Sopenharmony_ci} 1199e0857b17Sopenharmony_ci 1200e0857b17Sopenharmony_ci/** 1201e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ParseUri_ToUri_0300 1202e0857b17Sopenharmony_ci * @tc.name: ParseUri and ToUri 1203e0857b17Sopenharmony_ci * @tc.desc: Verify the function when Want only has parameter and the parameter 1204e0857b17Sopenharmony_ci * has only 1 float type element. 1205e0857b17Sopenharmony_ci */ 1206e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ParseUri_ToUri_0300, Function | MediumTest | Level1) 1207e0857b17Sopenharmony_ci{ 1208e0857b17Sopenharmony_ci std::string search; 1209e0857b17Sopenharmony_ci std::string substring; 1210e0857b17Sopenharmony_ci std::size_t pos = 0; 1211e0857b17Sopenharmony_ci std::size_t length = 0; 1212e0857b17Sopenharmony_ci std::size_t result = 0; 1213e0857b17Sopenharmony_ci std::size_t delims = 0; 1214e0857b17Sopenharmony_ci std::size_t head = 0; 1215e0857b17Sopenharmony_ci Want wantOrigin; 1216e0857b17Sopenharmony_ci std::string keyFloat = "keyFloat"; 1217e0857b17Sopenharmony_ci float valueFloatOrigin = 123.4; 1218e0857b17Sopenharmony_ci wantOrigin.SetParam(keyFloat, valueFloatOrigin); 1219e0857b17Sopenharmony_ci 1220e0857b17Sopenharmony_ci std::string uri = wantOrigin.ToUri(); 1221e0857b17Sopenharmony_ci 1222e0857b17Sopenharmony_ci search = WantBaseTest::URI_STRING_HEAD; 1223e0857b17Sopenharmony_ci result = uri.find(search, pos); 1224e0857b17Sopenharmony_ci EXPECT_EQ(result, pos); 1225e0857b17Sopenharmony_ci if (result != std::string::npos) { 1226e0857b17Sopenharmony_ci head = result + search.length(); 1227e0857b17Sopenharmony_ci } 1228e0857b17Sopenharmony_ci length += head; 1229e0857b17Sopenharmony_ci 1230e0857b17Sopenharmony_ci search = Float::SIGNATURE + std::string(".") + keyFloat + std::string("="); 1231e0857b17Sopenharmony_ci result = uri.find(search); 1232e0857b17Sopenharmony_ci EXPECT_NE(result, std::string::npos); 1233e0857b17Sopenharmony_ci EXPECT_GE(result, head); 1234e0857b17Sopenharmony_ci length += search.length(); 1235e0857b17Sopenharmony_ci if (result != std::string::npos) { 1236e0857b17Sopenharmony_ci pos = result + search.length(); 1237e0857b17Sopenharmony_ci delims = uri.find(";", pos); 1238e0857b17Sopenharmony_ci if (delims != std::string::npos) { 1239e0857b17Sopenharmony_ci substring = uri.substr(pos, delims - pos); 1240e0857b17Sopenharmony_ci float valueFloatNew = Float::Unbox(Float::Parse(substring)); 1241e0857b17Sopenharmony_ci EXPECT_EQ(valueFloatNew, valueFloatOrigin); 1242e0857b17Sopenharmony_ci length += substring.length() + 1; 1243e0857b17Sopenharmony_ci } 1244e0857b17Sopenharmony_ci } 1245e0857b17Sopenharmony_ci 1246e0857b17Sopenharmony_ci search = WantBaseTest::URI_STRING_END; 1247e0857b17Sopenharmony_ci result = uri.find(search); 1248e0857b17Sopenharmony_ci EXPECT_NE(result, std::string::npos); 1249e0857b17Sopenharmony_ci EXPECT_GE(result, head); 1250e0857b17Sopenharmony_ci if (result != std::string::npos) { 1251e0857b17Sopenharmony_ci length += search.length() - 1; 1252e0857b17Sopenharmony_ci } 1253e0857b17Sopenharmony_ci 1254e0857b17Sopenharmony_ci EXPECT_EQ(uri.length(), length); 1255e0857b17Sopenharmony_ci 1256e0857b17Sopenharmony_ci Want *wantNew = Want::ParseUri(uri); 1257e0857b17Sopenharmony_ci EXPECT_NE(wantNew, nullptr); 1258e0857b17Sopenharmony_ci 1259e0857b17Sopenharmony_ci if (wantNew != nullptr) { 1260e0857b17Sopenharmony_ci float floatNew = wantNew->GetFloatParam(keyFloat, 0.1); 1261e0857b17Sopenharmony_ci float floatOld = wantOrigin.GetFloatParam(keyFloat, 1.1); 1262e0857b17Sopenharmony_ci EXPECT_EQ(floatNew, floatOld); 1263e0857b17Sopenharmony_ci delete wantNew; 1264e0857b17Sopenharmony_ci } 1265e0857b17Sopenharmony_ci} 1266e0857b17Sopenharmony_ci 1267e0857b17Sopenharmony_ci/** 1268e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ParseUri_ToUri_0400 1269e0857b17Sopenharmony_ci * @tc.name: ParseUri and ToUri 1270e0857b17Sopenharmony_ci * @tc.desc: Verify the function when Want only has parameter and the parameter 1271e0857b17Sopenharmony_ci * has only one float and one string type element. 1272e0857b17Sopenharmony_ci */ 1273e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ParseUri_ToUri_0400, Function | MediumTest | Level1) 1274e0857b17Sopenharmony_ci{ 1275e0857b17Sopenharmony_ci std::string search; 1276e0857b17Sopenharmony_ci std::string substring; 1277e0857b17Sopenharmony_ci std::size_t pos = 0; 1278e0857b17Sopenharmony_ci std::size_t length = 0; 1279e0857b17Sopenharmony_ci std::size_t result = 0; 1280e0857b17Sopenharmony_ci std::size_t delims = 0; 1281e0857b17Sopenharmony_ci std::size_t head = 0; 1282e0857b17Sopenharmony_ci Want wantOrigin; 1283e0857b17Sopenharmony_ci std::string keyFloat = "keyFloat"; 1284e0857b17Sopenharmony_ci std::string keyString = "keyString"; 1285e0857b17Sopenharmony_ci float valueFloatOrigin = 123.4; 1286e0857b17Sopenharmony_ci std::string valueStringOrigin = "abcd"; 1287e0857b17Sopenharmony_ci wantOrigin.SetParam(keyFloat, valueFloatOrigin); 1288e0857b17Sopenharmony_ci wantOrigin.SetParam(keyString, valueStringOrigin); 1289e0857b17Sopenharmony_ci 1290e0857b17Sopenharmony_ci std::string uri = wantOrigin.ToUri(); 1291e0857b17Sopenharmony_ci 1292e0857b17Sopenharmony_ci search = WantBaseTest::URI_STRING_HEAD; 1293e0857b17Sopenharmony_ci result = uri.find(search, pos); 1294e0857b17Sopenharmony_ci EXPECT_NE(result, std::string::npos); 1295e0857b17Sopenharmony_ci EXPECT_EQ(result, pos); 1296e0857b17Sopenharmony_ci if (result != std::string::npos) { 1297e0857b17Sopenharmony_ci head = result + search.length(); 1298e0857b17Sopenharmony_ci } 1299e0857b17Sopenharmony_ci length += head; 1300e0857b17Sopenharmony_ci 1301e0857b17Sopenharmony_ci search = Float::SIGNATURE + std::string(".") + keyFloat + std::string("="); 1302e0857b17Sopenharmony_ci result = uri.find(search); 1303e0857b17Sopenharmony_ci EXPECT_NE(result, std::string::npos); 1304e0857b17Sopenharmony_ci EXPECT_GE(result, head); 1305e0857b17Sopenharmony_ci length += search.length(); 1306e0857b17Sopenharmony_ci if (result != std::string::npos) { 1307e0857b17Sopenharmony_ci pos = result + search.length(); 1308e0857b17Sopenharmony_ci delims = uri.find(";", pos); 1309e0857b17Sopenharmony_ci if (delims != std::string::npos) { 1310e0857b17Sopenharmony_ci substring = uri.substr(pos, delims - pos); 1311e0857b17Sopenharmony_ci float valueFloatNew = Float::Unbox(Float::Parse(substring)); 1312e0857b17Sopenharmony_ci EXPECT_EQ(valueFloatNew, valueFloatOrigin); 1313e0857b17Sopenharmony_ci length += substring.length() + 1; 1314e0857b17Sopenharmony_ci } 1315e0857b17Sopenharmony_ci } 1316e0857b17Sopenharmony_ci 1317e0857b17Sopenharmony_ci search = String::SIGNATURE + std::string(".") + keyString + std::string("="); 1318e0857b17Sopenharmony_ci result = uri.find(search); 1319e0857b17Sopenharmony_ci EXPECT_NE(result, std::string::npos); 1320e0857b17Sopenharmony_ci EXPECT_GE(result, head); 1321e0857b17Sopenharmony_ci length += search.length(); 1322e0857b17Sopenharmony_ci if (result != std::string::npos) { 1323e0857b17Sopenharmony_ci pos = result + search.length(); 1324e0857b17Sopenharmony_ci delims = uri.find(";", result); 1325e0857b17Sopenharmony_ci if (delims != std::string::npos) { 1326e0857b17Sopenharmony_ci std::string substring = uri.substr(pos, delims - pos); 1327e0857b17Sopenharmony_ci std::string valueStringNew = String::Unbox(String::Parse(substring)); 1328e0857b17Sopenharmony_ci EXPECT_EQ(valueStringNew, valueStringOrigin); 1329e0857b17Sopenharmony_ci length += substring.length() + 1; 1330e0857b17Sopenharmony_ci } 1331e0857b17Sopenharmony_ci } 1332e0857b17Sopenharmony_ci 1333e0857b17Sopenharmony_ci search = WantBaseTest::URI_STRING_END; 1334e0857b17Sopenharmony_ci result = uri.find(search); 1335e0857b17Sopenharmony_ci EXPECT_NE(result, std::string::npos); 1336e0857b17Sopenharmony_ci EXPECT_GE(result, head); 1337e0857b17Sopenharmony_ci if (result != std::string::npos) { 1338e0857b17Sopenharmony_ci length += search.length() - 1; 1339e0857b17Sopenharmony_ci } 1340e0857b17Sopenharmony_ci 1341e0857b17Sopenharmony_ci EXPECT_EQ(uri.length(), length); 1342e0857b17Sopenharmony_ci 1343e0857b17Sopenharmony_ci Want *wantNew = Want::ParseUri(uri); 1344e0857b17Sopenharmony_ci EXPECT_NE(wantNew, nullptr); 1345e0857b17Sopenharmony_ci 1346e0857b17Sopenharmony_ci if (wantNew != nullptr) { 1347e0857b17Sopenharmony_ci float floatNew = wantNew->GetFloatParam(keyFloat, 0); 1348e0857b17Sopenharmony_ci float floatOld = wantOrigin.GetFloatParam(keyFloat, 1); 1349e0857b17Sopenharmony_ci EXPECT_EQ(floatNew, floatOld); 1350e0857b17Sopenharmony_ci 1351e0857b17Sopenharmony_ci std::string stringNew = wantNew->GetStringParam(keyString); 1352e0857b17Sopenharmony_ci std::string stringOld = wantOrigin.GetStringParam(keyString); 1353e0857b17Sopenharmony_ci EXPECT_EQ(stringNew, stringOld); 1354e0857b17Sopenharmony_ci 1355e0857b17Sopenharmony_ci delete wantNew; 1356e0857b17Sopenharmony_ci } 1357e0857b17Sopenharmony_ci} 1358e0857b17Sopenharmony_ci 1359e0857b17Sopenharmony_ci/** 1360e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ParseUri_ToUri_0500 1361e0857b17Sopenharmony_ci * @tc.name: ParseUri and ToUri 1362e0857b17Sopenharmony_ci * @tc.desc: Verify the function when Want only has parameter and the parameter 1363e0857b17Sopenharmony_ci * has only one float array type element. 1364e0857b17Sopenharmony_ci */ 1365e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ParseUri_ToUri_0500, Function | MediumTest | Level1) 1366e0857b17Sopenharmony_ci{ 1367e0857b17Sopenharmony_ci std::string search; 1368e0857b17Sopenharmony_ci std::string substring; 1369e0857b17Sopenharmony_ci std::size_t pos = 0; 1370e0857b17Sopenharmony_ci std::size_t length = 0; 1371e0857b17Sopenharmony_ci std::size_t result = 0; 1372e0857b17Sopenharmony_ci std::size_t delims = 0; 1373e0857b17Sopenharmony_ci std::size_t head = 0; 1374e0857b17Sopenharmony_ci Want wantOrigin; 1375e0857b17Sopenharmony_ci std::string keyFloatArray = "keyFloatArray"; 1376e0857b17Sopenharmony_ci std::vector<float> valueFloatArrayOrigin = {1.1, 2.1, 3.1}; 1377e0857b17Sopenharmony_ci wantOrigin.SetParam(keyFloatArray, valueFloatArrayOrigin); 1378e0857b17Sopenharmony_ci 1379e0857b17Sopenharmony_ci std::string uri = wantOrigin.ToUri(); 1380e0857b17Sopenharmony_ci 1381e0857b17Sopenharmony_ci search = WantBaseTest::URI_STRING_HEAD; 1382e0857b17Sopenharmony_ci result = uri.find(search, pos); 1383e0857b17Sopenharmony_ci EXPECT_NE(result, std::string::npos); 1384e0857b17Sopenharmony_ci EXPECT_EQ(result, pos); 1385e0857b17Sopenharmony_ci if (result != std::string::npos) { 1386e0857b17Sopenharmony_ci head = result + search.length(); 1387e0857b17Sopenharmony_ci } 1388e0857b17Sopenharmony_ci length += head; 1389e0857b17Sopenharmony_ci 1390e0857b17Sopenharmony_ci search = Array::SIGNATURE + std::string(".") + keyFloatArray + std::string("="); 1391e0857b17Sopenharmony_ci result = uri.find(search); 1392e0857b17Sopenharmony_ci EXPECT_NE(result, std::string::npos); 1393e0857b17Sopenharmony_ci EXPECT_GE(result, head); 1394e0857b17Sopenharmony_ci length += search.length(); 1395e0857b17Sopenharmony_ci if (result != std::string::npos) { 1396e0857b17Sopenharmony_ci pos = result + search.length(); 1397e0857b17Sopenharmony_ci delims = uri.find(";", result); 1398e0857b17Sopenharmony_ci if (delims != std::string::npos) { 1399e0857b17Sopenharmony_ci std::string substring = uri.substr(pos, delims - pos); 1400e0857b17Sopenharmony_ci sptr<IArray> array = Array::Parse(substring); 1401e0857b17Sopenharmony_ci std::vector<float> valueFloatArrayNew; 1402e0857b17Sopenharmony_ci auto func = [&valueFloatArrayNew]( 1403e0857b17Sopenharmony_ci IInterface *object) { valueFloatArrayNew.push_back(Float::Unbox(IFloat::Query(object))); }; 1404e0857b17Sopenharmony_ci Array::ForEach(array, func); 1405e0857b17Sopenharmony_ci EXPECT_EQ(valueFloatArrayNew, valueFloatArrayOrigin); 1406e0857b17Sopenharmony_ci length += substring.length() + 1; 1407e0857b17Sopenharmony_ci } 1408e0857b17Sopenharmony_ci } 1409e0857b17Sopenharmony_ci 1410e0857b17Sopenharmony_ci search = WantBaseTest::URI_STRING_END; 1411e0857b17Sopenharmony_ci result = uri.find(search); 1412e0857b17Sopenharmony_ci EXPECT_NE(result, std::string::npos); 1413e0857b17Sopenharmony_ci EXPECT_GE(result, head); 1414e0857b17Sopenharmony_ci if (result != std::string::npos) { 1415e0857b17Sopenharmony_ci length += search.length() - 1; 1416e0857b17Sopenharmony_ci } 1417e0857b17Sopenharmony_ci 1418e0857b17Sopenharmony_ci EXPECT_EQ(uri.length(), length); 1419e0857b17Sopenharmony_ci 1420e0857b17Sopenharmony_ci Want *wantNew = Want::ParseUri(uri); 1421e0857b17Sopenharmony_ci EXPECT_NE(wantNew, nullptr); 1422e0857b17Sopenharmony_ci 1423e0857b17Sopenharmony_ci if (wantNew != nullptr) { 1424e0857b17Sopenharmony_ci std::vector<float> arrayNew = wantNew->GetFloatArrayParam(keyFloatArray); 1425e0857b17Sopenharmony_ci std::vector<float> arrayOld = wantOrigin.GetFloatArrayParam(keyFloatArray); 1426e0857b17Sopenharmony_ci EXPECT_EQ(arrayNew, arrayOld); 1427e0857b17Sopenharmony_ci delete wantNew; 1428e0857b17Sopenharmony_ci } 1429e0857b17Sopenharmony_ci} 1430e0857b17Sopenharmony_ci 1431e0857b17Sopenharmony_ci/** 1432e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ParseUri_ToUri_0600 1433e0857b17Sopenharmony_ci * @tc.name: ParseUri and ToUri 1434e0857b17Sopenharmony_ci * @tc.desc: Verify the function when Want only has parameter and the parameter 1435e0857b17Sopenharmony_ci * has only one int array and one string array type element 1436e0857b17Sopenharmony_ci */ 1437e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ParseUri_ToUri_0600, Function | MediumTest | Level1) 1438e0857b17Sopenharmony_ci{ 1439e0857b17Sopenharmony_ci std::string search; 1440e0857b17Sopenharmony_ci std::string substring; 1441e0857b17Sopenharmony_ci std::size_t pos = 0; 1442e0857b17Sopenharmony_ci std::size_t length = 0; 1443e0857b17Sopenharmony_ci std::size_t result = 0; 1444e0857b17Sopenharmony_ci std::size_t delims = 0; 1445e0857b17Sopenharmony_ci std::size_t head = 0; 1446e0857b17Sopenharmony_ci Want wantOrigin; 1447e0857b17Sopenharmony_ci std::string keyFloatArray = "keyFloatArray"; 1448e0857b17Sopenharmony_ci std::string keyStringArray = "keyStringArray"; 1449e0857b17Sopenharmony_ci std::vector<float> valueFloatArrayOrigin = {1.1, 2.1, 3.1}; 1450e0857b17Sopenharmony_ci std::vector<std::string> valueStringArrayOrigin = {"aa", "bb", "cc"}; 1451e0857b17Sopenharmony_ci wantOrigin.SetParam(keyFloatArray, valueFloatArrayOrigin); 1452e0857b17Sopenharmony_ci wantOrigin.SetParam(keyStringArray, valueStringArrayOrigin); 1453e0857b17Sopenharmony_ci 1454e0857b17Sopenharmony_ci std::string uri = wantOrigin.ToUri(); 1455e0857b17Sopenharmony_ci 1456e0857b17Sopenharmony_ci search = WantBaseTest::URI_STRING_HEAD; 1457e0857b17Sopenharmony_ci result = uri.find(search, pos); 1458e0857b17Sopenharmony_ci EXPECT_NE(result, std::string::npos); 1459e0857b17Sopenharmony_ci EXPECT_EQ(result, pos); 1460e0857b17Sopenharmony_ci if (result != std::string::npos) { 1461e0857b17Sopenharmony_ci head = result + search.length(); 1462e0857b17Sopenharmony_ci } 1463e0857b17Sopenharmony_ci length += head; 1464e0857b17Sopenharmony_ci 1465e0857b17Sopenharmony_ci search = Array::SIGNATURE + std::string(".") + keyFloatArray + std::string("="); 1466e0857b17Sopenharmony_ci result = uri.find(search); 1467e0857b17Sopenharmony_ci EXPECT_NE(result, std::string::npos); 1468e0857b17Sopenharmony_ci EXPECT_GE(result, head); 1469e0857b17Sopenharmony_ci length += search.length(); 1470e0857b17Sopenharmony_ci if (result != std::string::npos) { 1471e0857b17Sopenharmony_ci pos = result + search.length(); 1472e0857b17Sopenharmony_ci delims = uri.find(";", result); 1473e0857b17Sopenharmony_ci if (delims != std::string::npos) { 1474e0857b17Sopenharmony_ci std::string substring = uri.substr(pos, delims - pos); 1475e0857b17Sopenharmony_ci sptr<IArray> array = Array::Parse(substring); 1476e0857b17Sopenharmony_ci std::vector<float> valueFloatArrayNew; 1477e0857b17Sopenharmony_ci auto func = [&valueFloatArrayNew]( 1478e0857b17Sopenharmony_ci IInterface *object) { valueFloatArrayNew.push_back(Float::Unbox(IFloat::Query(object))); }; 1479e0857b17Sopenharmony_ci Array::ForEach(array, func); 1480e0857b17Sopenharmony_ci EXPECT_EQ(valueFloatArrayNew, valueFloatArrayOrigin); 1481e0857b17Sopenharmony_ci length += substring.length() + 1; 1482e0857b17Sopenharmony_ci } 1483e0857b17Sopenharmony_ci } 1484e0857b17Sopenharmony_ci 1485e0857b17Sopenharmony_ci search = Array::SIGNATURE + std::string(".") + keyStringArray + std::string("="); 1486e0857b17Sopenharmony_ci result = uri.find(search); 1487e0857b17Sopenharmony_ci EXPECT_NE(result, std::string::npos); 1488e0857b17Sopenharmony_ci EXPECT_GE(result, head); 1489e0857b17Sopenharmony_ci length += search.length(); 1490e0857b17Sopenharmony_ci if (result != std::string::npos) { 1491e0857b17Sopenharmony_ci pos = result + search.length(); 1492e0857b17Sopenharmony_ci delims = uri.find(";", result); 1493e0857b17Sopenharmony_ci if (delims != std::string::npos) { 1494e0857b17Sopenharmony_ci std::string substring = uri.substr(pos, delims - pos); 1495e0857b17Sopenharmony_ci sptr<IArray> array = Array::Parse(substring); 1496e0857b17Sopenharmony_ci std::vector<std::string> valueStringArrayNew; 1497e0857b17Sopenharmony_ci auto func = [&valueStringArrayNew](IInterface *object) { 1498e0857b17Sopenharmony_ci valueStringArrayNew.push_back(String::Unbox(IString::Query(object))); 1499e0857b17Sopenharmony_ci }; 1500e0857b17Sopenharmony_ci Array::ForEach(array, func); 1501e0857b17Sopenharmony_ci EXPECT_EQ(valueStringArrayNew, valueStringArrayOrigin); 1502e0857b17Sopenharmony_ci length += substring.length() + 1; 1503e0857b17Sopenharmony_ci } 1504e0857b17Sopenharmony_ci } 1505e0857b17Sopenharmony_ci 1506e0857b17Sopenharmony_ci search = WantBaseTest::URI_STRING_END; 1507e0857b17Sopenharmony_ci result = uri.find(search); 1508e0857b17Sopenharmony_ci EXPECT_NE(result, std::string::npos); 1509e0857b17Sopenharmony_ci EXPECT_GE(result, head); 1510e0857b17Sopenharmony_ci if (result != std::string::npos) { 1511e0857b17Sopenharmony_ci length += search.length() - 1; 1512e0857b17Sopenharmony_ci } 1513e0857b17Sopenharmony_ci 1514e0857b17Sopenharmony_ci EXPECT_EQ(uri.length(), length); 1515e0857b17Sopenharmony_ci 1516e0857b17Sopenharmony_ci Want *wantNew = Want::ParseUri(uri); 1517e0857b17Sopenharmony_ci EXPECT_NE(wantNew, nullptr); 1518e0857b17Sopenharmony_ci 1519e0857b17Sopenharmony_ci if (wantNew != nullptr) { 1520e0857b17Sopenharmony_ci std::vector<float> arrayFloatNew = wantNew->GetFloatArrayParam(keyFloatArray); 1521e0857b17Sopenharmony_ci std::vector<float> arrayFloatOld = wantOrigin.GetFloatArrayParam(keyFloatArray); 1522e0857b17Sopenharmony_ci EXPECT_EQ(arrayFloatNew, arrayFloatOld); 1523e0857b17Sopenharmony_ci 1524e0857b17Sopenharmony_ci std::vector<std::string> arrayStringNew = wantNew->GetStringArrayParam(keyStringArray); 1525e0857b17Sopenharmony_ci std::vector<std::string> arrayStringOld = wantOrigin.GetStringArrayParam(keyStringArray); 1526e0857b17Sopenharmony_ci EXPECT_EQ(arrayStringNew, arrayStringOld); 1527e0857b17Sopenharmony_ci 1528e0857b17Sopenharmony_ci delete wantNew; 1529e0857b17Sopenharmony_ci } 1530e0857b17Sopenharmony_ci} 1531e0857b17Sopenharmony_ci 1532e0857b17Sopenharmony_ci/** 1533e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ParseUri_ToUri_0700 1534e0857b17Sopenharmony_ci * @tc.name: ParseUri and ToUri 1535e0857b17Sopenharmony_ci * @tc.desc: Verify the function when the length of input string is 0. 1536e0857b17Sopenharmony_ci */ 1537e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ParseUri_ToUri_0700, Function | MediumTest | Level1) 1538e0857b17Sopenharmony_ci{ 1539e0857b17Sopenharmony_ci std::string uri; 1540e0857b17Sopenharmony_ci EXPECT_EQ(static_cast<int>(uri.length()), 0); 1541e0857b17Sopenharmony_ci 1542e0857b17Sopenharmony_ci Want *want = Want::ParseUri(uri); 1543e0857b17Sopenharmony_ci EXPECT_EQ(want, nullptr); 1544e0857b17Sopenharmony_ci 1545e0857b17Sopenharmony_ci if (want != nullptr) { 1546e0857b17Sopenharmony_ci delete want; 1547e0857b17Sopenharmony_ci } 1548e0857b17Sopenharmony_ci} 1549e0857b17Sopenharmony_ci 1550e0857b17Sopenharmony_ci/** 1551e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ParseUri_ToUri_0800 1552e0857b17Sopenharmony_ci * @tc.name: ParseUri and ToUri 1553e0857b17Sopenharmony_ci * @tc.desc: Verify the function when the action etc. are empty. 1554e0857b17Sopenharmony_ci */ 1555e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ParseUri_ToUri_0800, Function | MediumTest | Level1) 1556e0857b17Sopenharmony_ci{ 1557e0857b17Sopenharmony_ci std::string empty; 1558e0857b17Sopenharmony_ci std::string uri = "#Intent;action=;entity=;device=;bundle=;ability=;flag=;end"; 1559e0857b17Sopenharmony_ci EXPECT_NE(static_cast<int>(uri.length()), 0); 1560e0857b17Sopenharmony_ci 1561e0857b17Sopenharmony_ci Want *want = Want::ParseUri(uri); 1562e0857b17Sopenharmony_ci EXPECT_NE(want, nullptr); 1563e0857b17Sopenharmony_ci 1564e0857b17Sopenharmony_ci if (want != nullptr) { 1565e0857b17Sopenharmony_ci EXPECT_EQ(want->GetAction(), empty); 1566e0857b17Sopenharmony_ci for (auto entityItem : want->GetEntities()) { 1567e0857b17Sopenharmony_ci EXPECT_EQ(entityItem, empty); 1568e0857b17Sopenharmony_ci } 1569e0857b17Sopenharmony_ci EXPECT_EQ(want->GetFlags(), (unsigned int)0); 1570e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName element; 1571e0857b17Sopenharmony_ci EXPECT_EQ(want->GetElement(), element); 1572e0857b17Sopenharmony_ci EXPECT_EQ(want->HasParameter(empty), false); 1573e0857b17Sopenharmony_ci delete want; 1574e0857b17Sopenharmony_ci } 1575e0857b17Sopenharmony_ci} 1576e0857b17Sopenharmony_ci 1577e0857b17Sopenharmony_ci/** 1578e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ParseUri_ToUri_0900 1579e0857b17Sopenharmony_ci * @tc.name: ParseUri and ToUri 1580e0857b17Sopenharmony_ci * @tc.desc: Verify the function when flag is not number. 1581e0857b17Sopenharmony_ci */ 1582e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ParseUri_ToUri_0900, Function | MediumTest | Level1) 1583e0857b17Sopenharmony_ci{ 1584e0857b17Sopenharmony_ci std::string empty; 1585e0857b17Sopenharmony_ci std::string uri = "#Intent;action=want.action.VIEW;flag=\"123\";end"; 1586e0857b17Sopenharmony_ci EXPECT_NE(static_cast<int>(uri.length()), 0); 1587e0857b17Sopenharmony_ci 1588e0857b17Sopenharmony_ci Want *want = Want::ParseUri(uri); 1589e0857b17Sopenharmony_ci EXPECT_EQ(want, nullptr); 1590e0857b17Sopenharmony_ci if (want != nullptr) { 1591e0857b17Sopenharmony_ci delete want; 1592e0857b17Sopenharmony_ci want = nullptr; 1593e0857b17Sopenharmony_ci } 1594e0857b17Sopenharmony_ci} 1595e0857b17Sopenharmony_ci 1596e0857b17Sopenharmony_ci/** 1597e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ParseUri_ToUri_1000 1598e0857b17Sopenharmony_ci * @tc.name: ParseUri and ToUri 1599e0857b17Sopenharmony_ci * @tc.desc: Verify the function when head is not "#Intent". 1600e0857b17Sopenharmony_ci */ 1601e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ParseUri_ToUri_1000, Function | MediumTest | Level1) 1602e0857b17Sopenharmony_ci{ 1603e0857b17Sopenharmony_ci std::string empty; 1604e0857b17Sopenharmony_ci std::string uri = "action=want.action.VIEW;end"; 1605e0857b17Sopenharmony_ci EXPECT_NE(static_cast<int>(uri.length()), 0); 1606e0857b17Sopenharmony_ci 1607e0857b17Sopenharmony_ci Want *want = Want::ParseUri(uri); 1608e0857b17Sopenharmony_ci EXPECT_EQ(want, nullptr); 1609e0857b17Sopenharmony_ci if (want != nullptr) { 1610e0857b17Sopenharmony_ci delete want; 1611e0857b17Sopenharmony_ci want = nullptr; 1612e0857b17Sopenharmony_ci } 1613e0857b17Sopenharmony_ci} 1614e0857b17Sopenharmony_ci 1615e0857b17Sopenharmony_ci/** 1616e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ParseUri_ToUri_1100 1617e0857b17Sopenharmony_ci * @tc.name: ParseUri and ToUri 1618e0857b17Sopenharmony_ci * @tc.desc: Verify the function when flag is empty. 1619e0857b17Sopenharmony_ci */ 1620e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ParseUri_ToUri_1100, Function | MediumTest | Level1) 1621e0857b17Sopenharmony_ci{ 1622e0857b17Sopenharmony_ci std::string empty; 1623e0857b17Sopenharmony_ci std::string uri = "#Intent;flag=;end"; 1624e0857b17Sopenharmony_ci EXPECT_NE(static_cast<int>(uri.length()), 0); 1625e0857b17Sopenharmony_ci 1626e0857b17Sopenharmony_ci Want *want = Want::ParseUri(uri); 1627e0857b17Sopenharmony_ci EXPECT_NE(want, nullptr); 1628e0857b17Sopenharmony_ci 1629e0857b17Sopenharmony_ci if (want != nullptr) { 1630e0857b17Sopenharmony_ci EXPECT_EQ(want->GetFlags(), static_cast<unsigned int>(0)); 1631e0857b17Sopenharmony_ci delete want; 1632e0857b17Sopenharmony_ci } 1633e0857b17Sopenharmony_ci} 1634e0857b17Sopenharmony_ci 1635e0857b17Sopenharmony_ci/** 1636e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ParseUri_ToUri_1200 1637e0857b17Sopenharmony_ci * @tc.name: ParseUri and ToUri 1638e0857b17Sopenharmony_ci * @tc.desc: Verify the function when x is capital. 1639e0857b17Sopenharmony_ci */ 1640e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ParseUri_ToUri_1200, Function | MediumTest | Level1) 1641e0857b17Sopenharmony_ci{ 1642e0857b17Sopenharmony_ci std::string empty; 1643e0857b17Sopenharmony_ci unsigned int flag = 0X12345678; 1644e0857b17Sopenharmony_ci std::string uri = "#Intent;flag=0X12345678;end"; 1645e0857b17Sopenharmony_ci EXPECT_NE(static_cast<int>(uri.length()), 0); 1646e0857b17Sopenharmony_ci 1647e0857b17Sopenharmony_ci Want *want = Want::ParseUri(uri); 1648e0857b17Sopenharmony_ci EXPECT_NE(want, nullptr); 1649e0857b17Sopenharmony_ci 1650e0857b17Sopenharmony_ci if (want != nullptr) { 1651e0857b17Sopenharmony_ci EXPECT_EQ(want->GetFlags(), flag); 1652e0857b17Sopenharmony_ci delete want; 1653e0857b17Sopenharmony_ci } 1654e0857b17Sopenharmony_ci} 1655e0857b17Sopenharmony_ci 1656e0857b17Sopenharmony_ci/** 1657e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ParseUri_ToUri_1300 1658e0857b17Sopenharmony_ci * @tc.name: ParseUri and ToUri 1659e0857b17Sopenharmony_ci * @tc.desc: Verify the function when special character. 1660e0857b17Sopenharmony_ci */ 1661e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ParseUri_ToUri_1300, Function | MediumTest | Level1) 1662e0857b17Sopenharmony_ci{ 1663e0857b17Sopenharmony_ci std::string action = "\\"; 1664e0857b17Sopenharmony_ci std::string entity = "../../../jj/j=075/./.;;/07507399/\\\\;;--==.com.\a\b\tfoobar.vide\073\\075"; 1665e0857b17Sopenharmony_ci unsigned int flag = 0x0f0f0f0f; 1666e0857b17Sopenharmony_ci std::string flagStr = "0x0f0f0f0f"; 1667e0857b17Sopenharmony_ci std::string key = "\\kkk=.=;"; 1668e0857b17Sopenharmony_ci std::string value = "==\\\\\\.;\\;\\;\\=\\\073075\\\\075073"; 1669e0857b17Sopenharmony_ci 1670e0857b17Sopenharmony_ci Want wantOrigin; 1671e0857b17Sopenharmony_ci wantOrigin.SetAction(action); 1672e0857b17Sopenharmony_ci wantOrigin.AddEntity(entity); 1673e0857b17Sopenharmony_ci wantOrigin.AddFlags(flag); 1674e0857b17Sopenharmony_ci wantOrigin.SetParam(key, value); 1675e0857b17Sopenharmony_ci 1676e0857b17Sopenharmony_ci std::string uri = wantOrigin.ToUri(); 1677e0857b17Sopenharmony_ci 1678e0857b17Sopenharmony_ci Want *wantNew = Want::ParseUri(uri); 1679e0857b17Sopenharmony_ci EXPECT_NE(wantNew, nullptr); 1680e0857b17Sopenharmony_ci 1681e0857b17Sopenharmony_ci if (wantNew != nullptr) { 1682e0857b17Sopenharmony_ci EXPECT_STREQ(wantNew->GetAction().c_str(), action.c_str()); 1683e0857b17Sopenharmony_ci for (auto entityItem : wantNew->GetEntities()) { 1684e0857b17Sopenharmony_ci EXPECT_EQ(entityItem, entity); 1685e0857b17Sopenharmony_ci } 1686e0857b17Sopenharmony_ci EXPECT_EQ(wantNew->GetFlags(), flag); 1687e0857b17Sopenharmony_ci EXPECT_EQ(wantNew->GetStringParam(key), value); 1688e0857b17Sopenharmony_ci 1689e0857b17Sopenharmony_ci delete wantNew; 1690e0857b17Sopenharmony_ci wantNew = nullptr; 1691e0857b17Sopenharmony_ci } 1692e0857b17Sopenharmony_ci} 1693e0857b17Sopenharmony_ci 1694e0857b17Sopenharmony_ci/** 1695e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ParseUri_ToUri_1400 1696e0857b17Sopenharmony_ci * @tc.name: ParseUri and ToUri 1697e0857b17Sopenharmony_ci * @tc.desc: Verify the function when no '=' or only has a '='. 1698e0857b17Sopenharmony_ci */ 1699e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ParseUri_ToUri_1400, Function | MediumTest | Level1) 1700e0857b17Sopenharmony_ci{ 1701e0857b17Sopenharmony_ci std::string uri = "#Intent;action;end"; 1702e0857b17Sopenharmony_ci Want *want = Want::ParseUri(uri); 1703e0857b17Sopenharmony_ci EXPECT_EQ(want, nullptr); 1704e0857b17Sopenharmony_ci if (want != nullptr) { 1705e0857b17Sopenharmony_ci delete want; 1706e0857b17Sopenharmony_ci want = nullptr; 1707e0857b17Sopenharmony_ci } 1708e0857b17Sopenharmony_ci 1709e0857b17Sopenharmony_ci uri = "#Intent;entity;end"; 1710e0857b17Sopenharmony_ci want = Want::ParseUri(uri); 1711e0857b17Sopenharmony_ci EXPECT_EQ(want, nullptr); 1712e0857b17Sopenharmony_ci if (want != nullptr) { 1713e0857b17Sopenharmony_ci delete want; 1714e0857b17Sopenharmony_ci want = nullptr; 1715e0857b17Sopenharmony_ci } 1716e0857b17Sopenharmony_ci 1717e0857b17Sopenharmony_ci uri = "#Intent;device;end"; 1718e0857b17Sopenharmony_ci want = Want::ParseUri(uri); 1719e0857b17Sopenharmony_ci EXPECT_EQ(want, nullptr); 1720e0857b17Sopenharmony_ci if (want != nullptr) { 1721e0857b17Sopenharmony_ci delete want; 1722e0857b17Sopenharmony_ci want = nullptr; 1723e0857b17Sopenharmony_ci } 1724e0857b17Sopenharmony_ci 1725e0857b17Sopenharmony_ci uri = "#Intent;bundle;end"; 1726e0857b17Sopenharmony_ci want = Want::ParseUri(uri); 1727e0857b17Sopenharmony_ci EXPECT_EQ(want, nullptr); 1728e0857b17Sopenharmony_ci if (want != nullptr) { 1729e0857b17Sopenharmony_ci delete want; 1730e0857b17Sopenharmony_ci want = nullptr; 1731e0857b17Sopenharmony_ci } 1732e0857b17Sopenharmony_ci 1733e0857b17Sopenharmony_ci uri = "#Intent;ability;end"; 1734e0857b17Sopenharmony_ci want = Want::ParseUri(uri); 1735e0857b17Sopenharmony_ci EXPECT_EQ(want, nullptr); 1736e0857b17Sopenharmony_ci if (want != nullptr) { 1737e0857b17Sopenharmony_ci delete want; 1738e0857b17Sopenharmony_ci want = nullptr; 1739e0857b17Sopenharmony_ci } 1740e0857b17Sopenharmony_ci 1741e0857b17Sopenharmony_ci uri = "#Intent;flag;end"; 1742e0857b17Sopenharmony_ci want = Want::ParseUri(uri); 1743e0857b17Sopenharmony_ci EXPECT_EQ(want, nullptr); 1744e0857b17Sopenharmony_ci if (want != nullptr) { 1745e0857b17Sopenharmony_ci delete want; 1746e0857b17Sopenharmony_ci want = nullptr; 1747e0857b17Sopenharmony_ci } 1748e0857b17Sopenharmony_ci 1749e0857b17Sopenharmony_ci uri = "#Intent;param;end"; 1750e0857b17Sopenharmony_ci want = Want::ParseUri(uri); 1751e0857b17Sopenharmony_ci EXPECT_EQ(want, nullptr); 1752e0857b17Sopenharmony_ci if (want != nullptr) { 1753e0857b17Sopenharmony_ci delete want; 1754e0857b17Sopenharmony_ci want = nullptr; 1755e0857b17Sopenharmony_ci } 1756e0857b17Sopenharmony_ci 1757e0857b17Sopenharmony_ci uri = "#Intent;=;end"; 1758e0857b17Sopenharmony_ci want = Want::ParseUri(uri); 1759e0857b17Sopenharmony_ci EXPECT_NE(want, nullptr); 1760e0857b17Sopenharmony_ci if (want != nullptr) { 1761e0857b17Sopenharmony_ci delete want; 1762e0857b17Sopenharmony_ci want = nullptr; 1763e0857b17Sopenharmony_ci } 1764e0857b17Sopenharmony_ci 1765e0857b17Sopenharmony_ci uri = "#Intent;abc=;end"; 1766e0857b17Sopenharmony_ci want = Want::ParseUri(uri); 1767e0857b17Sopenharmony_ci EXPECT_NE(want, nullptr); 1768e0857b17Sopenharmony_ci if (want != nullptr) { 1769e0857b17Sopenharmony_ci delete want; 1770e0857b17Sopenharmony_ci want = nullptr; 1771e0857b17Sopenharmony_ci } 1772e0857b17Sopenharmony_ci 1773e0857b17Sopenharmony_ci uri = "#Intent;=abc;end"; 1774e0857b17Sopenharmony_ci want = Want::ParseUri(uri); 1775e0857b17Sopenharmony_ci EXPECT_NE(want, nullptr); 1776e0857b17Sopenharmony_ci if (want != nullptr) { 1777e0857b17Sopenharmony_ci delete want; 1778e0857b17Sopenharmony_ci want = nullptr; 1779e0857b17Sopenharmony_ci } 1780e0857b17Sopenharmony_ci 1781e0857b17Sopenharmony_ci uri = "#Intent;xxxx=yyy;end"; 1782e0857b17Sopenharmony_ci want = Want::ParseUri(uri); 1783e0857b17Sopenharmony_ci EXPECT_NE(want, nullptr); 1784e0857b17Sopenharmony_ci if (want != nullptr) { 1785e0857b17Sopenharmony_ci delete want; 1786e0857b17Sopenharmony_ci want = nullptr; 1787e0857b17Sopenharmony_ci } 1788e0857b17Sopenharmony_ci 1789e0857b17Sopenharmony_ci uri = "#Intent;;;;;;end"; 1790e0857b17Sopenharmony_ci want = Want::ParseUri(uri); 1791e0857b17Sopenharmony_ci EXPECT_NE(want, nullptr); 1792e0857b17Sopenharmony_ci if (want != nullptr) { 1793e0857b17Sopenharmony_ci delete want; 1794e0857b17Sopenharmony_ci want = nullptr; 1795e0857b17Sopenharmony_ci } 1796e0857b17Sopenharmony_ci} 1797e0857b17Sopenharmony_ci 1798e0857b17Sopenharmony_ci/** 1799e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Flags_0100 1800e0857b17Sopenharmony_ci * @tc.name: SetFlags/AddFlags/GetFlags/RemoveFlags 1801e0857b17Sopenharmony_ci * @tc.desc: Verify SetFlags/AddFlags/GetFlags/RemoveFlags. 1802e0857b17Sopenharmony_ci */ 1803e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Flags_0100, Function | MediumTest | Level1) 1804e0857b17Sopenharmony_ci{ 1805e0857b17Sopenharmony_ci int flags = 3; 1806e0857b17Sopenharmony_ci int returnsflags; 1807e0857b17Sopenharmony_ci int description = 8; 1808e0857b17Sopenharmony_ci 1809e0857b17Sopenharmony_ci want_->SetFlags(description); 1810e0857b17Sopenharmony_ci want_->AddFlags(flags); 1811e0857b17Sopenharmony_ci returnsflags = want_->GetFlags(); 1812e0857b17Sopenharmony_ci EXPECT_EQ(11, returnsflags); 1813e0857b17Sopenharmony_ci 1814e0857b17Sopenharmony_ci want_->RemoveFlags(flags); 1815e0857b17Sopenharmony_ci returnsflags = want_->GetFlags(); 1816e0857b17Sopenharmony_ci EXPECT_EQ(description, returnsflags); 1817e0857b17Sopenharmony_ci} 1818e0857b17Sopenharmony_ci 1819e0857b17Sopenharmony_ci/** 1820e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_MakeMainAbility_0100 1821e0857b17Sopenharmony_ci * @tc.name: MakeMainAbility 1822e0857b17Sopenharmony_ci * @tc.desc: Verify MakeMainAbility. 1823e0857b17Sopenharmony_ci */ 1824e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_MakeMainAbility_0100, Function | MediumTest | Level1) 1825e0857b17Sopenharmony_ci{ 1826e0857b17Sopenharmony_ci ElementName elementName; 1827e0857b17Sopenharmony_ci 1828e0857b17Sopenharmony_ci std::string action("action.system.home"); 1829e0857b17Sopenharmony_ci std::string entity("entity.system.home"); 1830e0857b17Sopenharmony_ci 1831e0857b17Sopenharmony_ci Want *wantNew = want_->MakeMainAbility(elementName); 1832e0857b17Sopenharmony_ci if (wantNew != nullptr) { 1833e0857b17Sopenharmony_ci std::vector<std::string> entities = wantNew->GetEntities(); 1834e0857b17Sopenharmony_ci 1835e0857b17Sopenharmony_ci EXPECT_EQ((size_t)1, entities.size()); 1836e0857b17Sopenharmony_ci if (entities.size() > 0) { 1837e0857b17Sopenharmony_ci EXPECT_EQ(entity, entities.at(0)); 1838e0857b17Sopenharmony_ci } 1839e0857b17Sopenharmony_ci EXPECT_EQ(action, wantNew->GetAction()); 1840e0857b17Sopenharmony_ci EXPECT_EQ(elementName, wantNew->GetElement()); 1841e0857b17Sopenharmony_ci 1842e0857b17Sopenharmony_ci delete wantNew; 1843e0857b17Sopenharmony_ci wantNew = nullptr; 1844e0857b17Sopenharmony_ci } 1845e0857b17Sopenharmony_ci} 1846e0857b17Sopenharmony_ci 1847e0857b17Sopenharmony_ci/** 1848e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ClearWant_0100 1849e0857b17Sopenharmony_ci * @tc.name: ClearWant 1850e0857b17Sopenharmony_ci * @tc.desc: Verify ClearWant. 1851e0857b17Sopenharmony_ci */ 1852e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ClearWant_0100, Function | MediumTest | Level1) 1853e0857b17Sopenharmony_ci{ 1854e0857b17Sopenharmony_ci Want want; 1855e0857b17Sopenharmony_ci ElementName elementName; 1856e0857b17Sopenharmony_ci std::string empty = ""; 1857e0857b17Sopenharmony_ci want_->ClearWant(&want); 1858e0857b17Sopenharmony_ci 1859e0857b17Sopenharmony_ci EXPECT_EQ((uint)0, want_->GetFlags()); 1860e0857b17Sopenharmony_ci EXPECT_EQ(empty, want_->GetType()); 1861e0857b17Sopenharmony_ci EXPECT_EQ(empty, want_->GetAction()); 1862e0857b17Sopenharmony_ci EXPECT_EQ(elementName, want_->GetElement()); 1863e0857b17Sopenharmony_ci EXPECT_EQ((size_t)0, want_->GetEntities().size()); 1864e0857b17Sopenharmony_ci EXPECT_EQ(0, want_->CountEntities()); 1865e0857b17Sopenharmony_ci} 1866e0857b17Sopenharmony_ci 1867e0857b17Sopenharmony_ci/** 1868e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_replaceParams_0100 1869e0857b17Sopenharmony_ci * @tc.name: replaceParams(wantParams) 1870e0857b17Sopenharmony_ci * @tc.desc: Verify the function when the input string is empty. 1871e0857b17Sopenharmony_ci */ 1872e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_replaceParams_0100, Function | MediumTest | Level1) 1873e0857b17Sopenharmony_ci{ 1874e0857b17Sopenharmony_ci WantParams wantParams; 1875e0857b17Sopenharmony_ci std::string keyStr = "123"; 1876e0857b17Sopenharmony_ci std::string valueStr = "123"; 1877e0857b17Sopenharmony_ci wantParams.SetParam(keyStr, String::Box(valueStr)); 1878e0857b17Sopenharmony_ci want_->ReplaceParams(wantParams); 1879e0857b17Sopenharmony_ci 1880e0857b17Sopenharmony_ci EXPECT_EQ(valueStr, String::Unbox(IString::Query(want_->GetParams().GetParam(keyStr)))); 1881e0857b17Sopenharmony_ci} 1882e0857b17Sopenharmony_ci 1883e0857b17Sopenharmony_ci/** 1884e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_setElement_0100 1885e0857b17Sopenharmony_ci * @tc.name:setElement / setElementName 1886e0857b17Sopenharmony_ci * @tc.desc: Verify the function when the input string is empty. 1887e0857b17Sopenharmony_ci */ 1888e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_setElement_0100, Function | MediumTest | Level1) 1889e0857b17Sopenharmony_ci{ 1890e0857b17Sopenharmony_ci std::string valueStr1 = "xxxxx"; 1891e0857b17Sopenharmony_ci std::string valueStr2 = "uaid"; 1892e0857b17Sopenharmony_ci std::string valueStr3 = "uaygfi"; 1893e0857b17Sopenharmony_ci 1894e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName elementname1; 1895e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName elementname2; 1896e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName elementname3; 1897e0857b17Sopenharmony_ci ElementName elementname4; 1898e0857b17Sopenharmony_ci elementname1.SetAbilityName(valueStr1); 1899e0857b17Sopenharmony_ci elementname2.SetDeviceID(valueStr2); 1900e0857b17Sopenharmony_ci elementname3.SetBundleName(valueStr3); 1901e0857b17Sopenharmony_ci want_->SetElement(elementname1); 1902e0857b17Sopenharmony_ci EXPECT_EQ(valueStr1, want_->GetElement().GetAbilityName()); 1903e0857b17Sopenharmony_ci 1904e0857b17Sopenharmony_ci want_->SetElement(elementname2); 1905e0857b17Sopenharmony_ci EXPECT_EQ(valueStr2, want_->GetElement().GetDeviceID()); 1906e0857b17Sopenharmony_ci 1907e0857b17Sopenharmony_ci want_->SetElement(elementname3); 1908e0857b17Sopenharmony_ci EXPECT_EQ(valueStr3, want_->GetElement().GetBundleName()); 1909e0857b17Sopenharmony_ci 1910e0857b17Sopenharmony_ci want_->SetElementName(valueStr3, valueStr1); 1911e0857b17Sopenharmony_ci EXPECT_EQ(valueStr1, want_->GetElement().GetAbilityName()); 1912e0857b17Sopenharmony_ci EXPECT_EQ(valueStr3, want_->GetElement().GetBundleName()); 1913e0857b17Sopenharmony_ci 1914e0857b17Sopenharmony_ci want_->SetElementName(valueStr2, valueStr3, valueStr1); 1915e0857b17Sopenharmony_ci EXPECT_EQ(valueStr1, want_->GetElement().GetAbilityName()); 1916e0857b17Sopenharmony_ci EXPECT_EQ(valueStr2, want_->GetElement().GetDeviceID()); 1917e0857b17Sopenharmony_ci EXPECT_EQ(valueStr3, want_->GetElement().GetBundleName()); 1918e0857b17Sopenharmony_ci} 1919e0857b17Sopenharmony_ci 1920e0857b17Sopenharmony_ci/** 1921e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Action_0200 1922e0857b17Sopenharmony_ci * @tc.name:SetAction / GetAction 1923e0857b17Sopenharmony_ci * @tc.desc: Verify the function when the input string is empty. 1924e0857b17Sopenharmony_ci */ 1925e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Action_0200, Function | MediumTest | Level1) 1926e0857b17Sopenharmony_ci{ 1927e0857b17Sopenharmony_ci std::string setValue; 1928e0857b17Sopenharmony_ci want_->SetAction(setValue); 1929e0857b17Sopenharmony_ci EXPECT_EQ(setValue, want_->GetAction()); 1930e0857b17Sopenharmony_ci} 1931e0857b17Sopenharmony_ci 1932e0857b17Sopenharmony_ci/** 1933e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Action_0300 1934e0857b17Sopenharmony_ci * @tc.name:SetAction / GetAction 1935e0857b17Sopenharmony_ci * @tc.desc: Verify the function when the input string contains special characters. 1936e0857b17Sopenharmony_ci */ 1937e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Action_0300, Function | MediumTest | Level1) 1938e0857b17Sopenharmony_ci{ 1939e0857b17Sopenharmony_ci std::string setValue("action.system.com"); 1940e0857b17Sopenharmony_ci want_->SetAction(setValue); 1941e0857b17Sopenharmony_ci EXPECT_STREQ(setValue.c_str(), want_->GetAction().c_str()); 1942e0857b17Sopenharmony_ci} 1943e0857b17Sopenharmony_ci 1944e0857b17Sopenharmony_ciusing testByteType = std::tuple<std::string, std::string, byte, byte, byte>; 1945e0857b17Sopenharmony_ciclass WantParametersBoolArrayTest : public testing::TestWithParam<testByteType> { 1946e0857b17Sopenharmony_cipublic: 1947e0857b17Sopenharmony_ci WantParametersBoolArrayTest() 1948e0857b17Sopenharmony_ci { 1949e0857b17Sopenharmony_ci want_ = nullptr; 1950e0857b17Sopenharmony_ci } 1951e0857b17Sopenharmony_ci ~WantParametersBoolArrayTest() 1952e0857b17Sopenharmony_ci { 1953e0857b17Sopenharmony_ci want_ = nullptr; 1954e0857b17Sopenharmony_ci } 1955e0857b17Sopenharmony_ci static void SetUpTestCase(void); 1956e0857b17Sopenharmony_ci static void TearDownTestCase(void); 1957e0857b17Sopenharmony_ci void SetUp(); 1958e0857b17Sopenharmony_ci void TearDown(); 1959e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 1960e0857b17Sopenharmony_ci}; 1961e0857b17Sopenharmony_ci 1962e0857b17Sopenharmony_civoid WantParametersBoolArrayTest::SetUpTestCase(void) 1963e0857b17Sopenharmony_ci{} 1964e0857b17Sopenharmony_ci 1965e0857b17Sopenharmony_civoid WantParametersBoolArrayTest::TearDownTestCase(void) 1966e0857b17Sopenharmony_ci{} 1967e0857b17Sopenharmony_ci 1968e0857b17Sopenharmony_civoid WantParametersBoolArrayTest::SetUp(void) 1969e0857b17Sopenharmony_ci{ 1970e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 1971e0857b17Sopenharmony_ci} 1972e0857b17Sopenharmony_ci 1973e0857b17Sopenharmony_civoid WantParametersBoolArrayTest::TearDown(void) 1974e0857b17Sopenharmony_ci{} 1975e0857b17Sopenharmony_ci 1976e0857b17Sopenharmony_ci/** 1977e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_BoolArray_0100 1978e0857b17Sopenharmony_ci * @tc.name:SetBoolArrayParam/GetBoolArrayParam 1979e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 1980e0857b17Sopenharmony_ci */ 1981e0857b17Sopenharmony_ciHWTEST_P(WantParametersBoolArrayTest, AaFwk_Want_BoolArray_0100, Function | MediumTest | Level1) 1982e0857b17Sopenharmony_ci{ 1983e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 1984e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 1985e0857b17Sopenharmony_ci byte setValue = std::get<2>(GetParam()); 1986e0857b17Sopenharmony_ci byte defaultValue = std::get<3>(GetParam()); 1987e0857b17Sopenharmony_ci byte result = std::get<4>(GetParam()); 1988e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 1989e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetByteParam(getKey, defaultValue)); 1990e0857b17Sopenharmony_ci} 1991e0857b17Sopenharmony_ci 1992e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantParametersBoolArrayTestCaseP, WantParametersBoolArrayTest, 1993e0857b17Sopenharmony_ci testing::Values(testByteType("", "aa", '#', 'U', 'U'), testByteType("", "", 'N', 'K', 'N'), 1994e0857b17Sopenharmony_ci testByteType("1*中_aR", "aa", 'a', '%', '%'), testByteType("1*中_aR", "1*中_aR", 'a', 'z', 'a'))); 1995e0857b17Sopenharmony_ci 1996e0857b17Sopenharmony_ciusing testBoolArrayType = std::tuple<std::string, std::string, std::vector<bool>, std::vector<bool>, std::vector<bool>>; 1997e0857b17Sopenharmony_ciclass WantBoolArrayParamTest : public testing::TestWithParam<testBoolArrayType> { 1998e0857b17Sopenharmony_cipublic: 1999e0857b17Sopenharmony_ci WantBoolArrayParamTest() 2000e0857b17Sopenharmony_ci { 2001e0857b17Sopenharmony_ci want_ = nullptr; 2002e0857b17Sopenharmony_ci } 2003e0857b17Sopenharmony_ci ~WantBoolArrayParamTest() 2004e0857b17Sopenharmony_ci { 2005e0857b17Sopenharmony_ci want_ = nullptr; 2006e0857b17Sopenharmony_ci } 2007e0857b17Sopenharmony_ci static void SetUpTestCase(void); 2008e0857b17Sopenharmony_ci static void TearDownTestCase(void); 2009e0857b17Sopenharmony_ci void SetUp(); 2010e0857b17Sopenharmony_ci void TearDown(); 2011e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 2012e0857b17Sopenharmony_ci}; 2013e0857b17Sopenharmony_ci 2014e0857b17Sopenharmony_civoid WantBoolArrayParamTest::SetUpTestCase(void) 2015e0857b17Sopenharmony_ci{} 2016e0857b17Sopenharmony_ci 2017e0857b17Sopenharmony_civoid WantBoolArrayParamTest::TearDownTestCase(void) 2018e0857b17Sopenharmony_ci{} 2019e0857b17Sopenharmony_ci 2020e0857b17Sopenharmony_civoid WantBoolArrayParamTest::SetUp(void) 2021e0857b17Sopenharmony_ci{ 2022e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 2023e0857b17Sopenharmony_ci} 2024e0857b17Sopenharmony_ci 2025e0857b17Sopenharmony_civoid WantBoolArrayParamTest::TearDown(void) 2026e0857b17Sopenharmony_ci{} 2027e0857b17Sopenharmony_ci 2028e0857b17Sopenharmony_ci/** 2029e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_BoolArray_0200 2030e0857b17Sopenharmony_ci * @tc.name:SetBoolArrayParam/GetBoolArrayParam 2031e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 2032e0857b17Sopenharmony_ci */ 2033e0857b17Sopenharmony_ciHWTEST_P(WantBoolArrayParamTest, AaFwk_Want_BoolArray_0200, Function | MediumTest | Level1) 2034e0857b17Sopenharmony_ci{ 2035e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 2036e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 2037e0857b17Sopenharmony_ci std::vector<bool> setValue = std::get<2>(GetParam()); 2038e0857b17Sopenharmony_ci std::vector<bool> defaultValue = std::get<3>(GetParam()); 2039e0857b17Sopenharmony_ci std::vector<bool> result = std::get<4>(GetParam()); 2040e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 2041e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetBoolArrayParam(getKey)); 2042e0857b17Sopenharmony_ci} 2043e0857b17Sopenharmony_ci 2044e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantBoolArrayParamTestCaseP, WantBoolArrayParamTest, 2045e0857b17Sopenharmony_ci testing::Values(testBoolArrayType("", "aa", {true, false}, {}, {}), 2046e0857b17Sopenharmony_ci testBoolArrayType("", "", {true, false}, {}, {true, false}), 2047e0857b17Sopenharmony_ci testBoolArrayType("1*中_aR", "aa", {true, false}, {}, {}), 2048e0857b17Sopenharmony_ci testBoolArrayType("1*中_aR", "1*中_aR", {false, true}, {}, {false, true}))); 2049e0857b17Sopenharmony_ci 2050e0857b17Sopenharmony_ciusing testCharArrayType = 2051e0857b17Sopenharmony_ci std::tuple<std::string, std::string, std::vector<zchar>, std::vector<zchar>, std::vector<zchar>>; 2052e0857b17Sopenharmony_ciclass WantCharArrayParamTest : public testing::TestWithParam<testCharArrayType> { 2053e0857b17Sopenharmony_cipublic: 2054e0857b17Sopenharmony_ci WantCharArrayParamTest() 2055e0857b17Sopenharmony_ci { 2056e0857b17Sopenharmony_ci want_ = nullptr; 2057e0857b17Sopenharmony_ci } 2058e0857b17Sopenharmony_ci ~WantCharArrayParamTest() 2059e0857b17Sopenharmony_ci { 2060e0857b17Sopenharmony_ci want_ = nullptr; 2061e0857b17Sopenharmony_ci } 2062e0857b17Sopenharmony_ci static void SetUpTestCase(void); 2063e0857b17Sopenharmony_ci static void TearDownTestCase(void); 2064e0857b17Sopenharmony_ci void SetUp(); 2065e0857b17Sopenharmony_ci void TearDown(); 2066e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 2067e0857b17Sopenharmony_ci}; 2068e0857b17Sopenharmony_ci 2069e0857b17Sopenharmony_civoid WantCharArrayParamTest::SetUpTestCase(void) 2070e0857b17Sopenharmony_ci{} 2071e0857b17Sopenharmony_ci 2072e0857b17Sopenharmony_civoid WantCharArrayParamTest::TearDownTestCase(void) 2073e0857b17Sopenharmony_ci{} 2074e0857b17Sopenharmony_ci 2075e0857b17Sopenharmony_civoid WantCharArrayParamTest::SetUp(void) 2076e0857b17Sopenharmony_ci{ 2077e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 2078e0857b17Sopenharmony_ci} 2079e0857b17Sopenharmony_ci 2080e0857b17Sopenharmony_civoid WantCharArrayParamTest::TearDown(void) 2081e0857b17Sopenharmony_ci{} 2082e0857b17Sopenharmony_ci 2083e0857b17Sopenharmony_ci/** 2084e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parameters_CharArray_0100 2085e0857b17Sopenharmony_ci * @tc.name: SetParam/GetCharArrayParam 2086e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 2087e0857b17Sopenharmony_ci */ 2088e0857b17Sopenharmony_ciHWTEST_P(WantCharArrayParamTest, AaFwk_Want_Parameters_CharArray_0100, Function | MediumTest | Level1) 2089e0857b17Sopenharmony_ci{ 2090e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 2091e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 2092e0857b17Sopenharmony_ci std::vector<zchar> setValue = std::get<2>(GetParam()); 2093e0857b17Sopenharmony_ci std::vector<zchar> defaultValue = std::get<3>(GetParam()); 2094e0857b17Sopenharmony_ci std::vector<zchar> result = std::get<4>(GetParam()); 2095e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 2096e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetCharArrayParam(getKey)); 2097e0857b17Sopenharmony_ci} 2098e0857b17Sopenharmony_ci 2099e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantCharArrayParamTestCaseP, WantCharArrayParamTest, 2100e0857b17Sopenharmony_ci testing::Values(testCharArrayType("", "aa", {U'中', U'文'}, {}, {}), 2101e0857b17Sopenharmony_ci testCharArrayType("", "", {U'中', U'文'}, {}, {U'中', U'文'}), 2102e0857b17Sopenharmony_ci testCharArrayType("1*中_aR", "aa", {U'中', U'文'}, {}, {}), 2103e0857b17Sopenharmony_ci testCharArrayType("1*中_aR", "1*中_aR", {U'中', U'文'}, {}, {U'中', U'文'}))); 2104e0857b17Sopenharmony_ci 2105e0857b17Sopenharmony_ci/** 2106e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parameters_CharArray_0200 2107e0857b17Sopenharmony_ci * @tc.name: GetCharArrayParam 2108e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is char array. 2109e0857b17Sopenharmony_ci */ 2110e0857b17Sopenharmony_ciHWTEST_F(WantCharArrayParamTest, AaFwk_Want_Parameters_CharArray_0200, Function | MediumTest | Level1) 2111e0857b17Sopenharmony_ci{ 2112e0857b17Sopenharmony_ci std::vector<zchar> defaultValue; 2113e0857b17Sopenharmony_ci std::string getKey("aa"); 2114e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetCharArrayParam(getKey)); 2115e0857b17Sopenharmony_ci} 2116e0857b17Sopenharmony_ci 2117e0857b17Sopenharmony_ci/** 2118e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parameters_CharArray_0300 2119e0857b17Sopenharmony_ci * @tc.name: SetParam/GetCharArrayParam 2120e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is char array. 2121e0857b17Sopenharmony_ci */ 2122e0857b17Sopenharmony_ciHWTEST_F(WantCharArrayParamTest, AaFwk_Want_Parameters_CharArray_0300, Function | MediumTest | Level1) 2123e0857b17Sopenharmony_ci{ 2124e0857b17Sopenharmony_ci std::string emptyStr("ff"); 2125e0857b17Sopenharmony_ci std::vector<zchar> firstValue({U'中', U'文'}); 2126e0857b17Sopenharmony_ci std::vector<zchar> secondValue({U'字', U'符'}); 2127e0857b17Sopenharmony_ci std::vector<zchar> thirdValue({U'集', U'英'}); 2128e0857b17Sopenharmony_ci std::string keyStr("aa"); 2129e0857b17Sopenharmony_ci want_->SetParam(emptyStr, firstValue); 2130e0857b17Sopenharmony_ci want_->SetParam(emptyStr, firstValue); 2131e0857b17Sopenharmony_ci want_->SetParam(emptyStr, secondValue); 2132e0857b17Sopenharmony_ci std::vector<zchar> defaultValue; 2133e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetCharArrayParam(keyStr)); 2134e0857b17Sopenharmony_ci want_->SetParam(emptyStr, thirdValue); 2135e0857b17Sopenharmony_ci EXPECT_EQ(thirdValue, want_->GetCharArrayParam(emptyStr)); 2136e0857b17Sopenharmony_ci} 2137e0857b17Sopenharmony_ci 2138e0857b17Sopenharmony_ci/** 2139e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parameters_CharArray_0400 2140e0857b17Sopenharmony_ci * @tc.name: SetParam/GetCharArrayParam 2141e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is char array. 2142e0857b17Sopenharmony_ci */ 2143e0857b17Sopenharmony_ciHWTEST_F(WantCharArrayParamTest, AaFwk_Want_Parameters_CharArray_0400, Function | MediumTest | Level1) 2144e0857b17Sopenharmony_ci{ 2145e0857b17Sopenharmony_ci std::string firstKey("%1uH3"); 2146e0857b17Sopenharmony_ci std::vector<zchar> firstValue({U'中', U'文'}); 2147e0857b17Sopenharmony_ci std::vector<zchar> secondValue({U'字', U'符'}); 2148e0857b17Sopenharmony_ci std::vector<zchar> defaultValue; 2149e0857b17Sopenharmony_ci std::string secondKey("aa"); 2150e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 2151e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 2152e0857b17Sopenharmony_ci want_->SetParam(firstKey, secondValue); 2153e0857b17Sopenharmony_ci EXPECT_EQ(secondValue, want_->GetCharArrayParam(firstKey)); 2154e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 2155e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetCharArrayParam(secondKey)); 2156e0857b17Sopenharmony_ci} 2157e0857b17Sopenharmony_ci 2158e0857b17Sopenharmony_ciusing testCharType = std::tuple<std::string, std::string, zchar, zchar, zchar>; 2159e0857b17Sopenharmony_ciclass WantCharParamTest : public testing::TestWithParam<testCharType> { 2160e0857b17Sopenharmony_cipublic: 2161e0857b17Sopenharmony_ci WantCharParamTest() 2162e0857b17Sopenharmony_ci { 2163e0857b17Sopenharmony_ci want_ = nullptr; 2164e0857b17Sopenharmony_ci } 2165e0857b17Sopenharmony_ci ~WantCharParamTest() 2166e0857b17Sopenharmony_ci { 2167e0857b17Sopenharmony_ci want_ = nullptr; 2168e0857b17Sopenharmony_ci } 2169e0857b17Sopenharmony_ci static void SetUpTestCase(void); 2170e0857b17Sopenharmony_ci static void TearDownTestCase(void); 2171e0857b17Sopenharmony_ci void SetUp(); 2172e0857b17Sopenharmony_ci void TearDown(); 2173e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 2174e0857b17Sopenharmony_ci}; 2175e0857b17Sopenharmony_ci 2176e0857b17Sopenharmony_civoid WantCharParamTest::SetUpTestCase(void) 2177e0857b17Sopenharmony_ci{} 2178e0857b17Sopenharmony_ci 2179e0857b17Sopenharmony_civoid WantCharParamTest::TearDownTestCase(void) 2180e0857b17Sopenharmony_ci{} 2181e0857b17Sopenharmony_ci 2182e0857b17Sopenharmony_civoid WantCharParamTest::SetUp(void) 2183e0857b17Sopenharmony_ci{ 2184e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 2185e0857b17Sopenharmony_ci} 2186e0857b17Sopenharmony_ci 2187e0857b17Sopenharmony_civoid WantCharParamTest::TearDown(void) 2188e0857b17Sopenharmony_ci{} 2189e0857b17Sopenharmony_ci 2190e0857b17Sopenharmony_ci/** 2191e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parameters_Char_0100 2192e0857b17Sopenharmony_ci * @tc.name: SetParam/GetCharParam 2193e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is char array. 2194e0857b17Sopenharmony_ci */ 2195e0857b17Sopenharmony_ciHWTEST_P(WantCharParamTest, AaFwk_Want_Parameters_Char_0100, Function | MediumTest | Level1) 2196e0857b17Sopenharmony_ci{ 2197e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 2198e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 2199e0857b17Sopenharmony_ci zchar setValue = std::get<2>(GetParam()); 2200e0857b17Sopenharmony_ci zchar defaultValue = std::get<3>(GetParam()); 2201e0857b17Sopenharmony_ci zchar result = std::get<4>(GetParam()); 2202e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 2203e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetCharParam(getKey, defaultValue)); 2204e0857b17Sopenharmony_ci} 2205e0857b17Sopenharmony_ci 2206e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantParametersCharTestCaseP, WantCharParamTest, 2207e0857b17Sopenharmony_ci testing::Values(testCharType("", "aa", U'#', U'中', U'中'), testCharType("", "", U'中', U'K', U'中'), 2208e0857b17Sopenharmony_ci testCharType("1*中_aR", "aa", U'a', U'中', U'中'), testCharType("1*中_aR", "1*中_aR", U'中', U'z', U'中'))); 2209e0857b17Sopenharmony_ci 2210e0857b17Sopenharmony_ci/** 2211e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parameters_Char_0200 2212e0857b17Sopenharmony_ci * @tc.name: SetParam/GetCharParam 2213e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is char 2214e0857b17Sopenharmony_ci */ 2215e0857b17Sopenharmony_ciHWTEST_F(WantCharParamTest, AaFwk_Want_Parameters_Char_0200, Function | MediumTest | Level1) 2216e0857b17Sopenharmony_ci{ 2217e0857b17Sopenharmony_ci zchar defaultValue = U'文'; 2218e0857b17Sopenharmony_ci std::string getKey("aa"); 2219e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetCharParam(getKey, defaultValue)); 2220e0857b17Sopenharmony_ci} 2221e0857b17Sopenharmony_ci 2222e0857b17Sopenharmony_ci/** 2223e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parameters_Char_0300 2224e0857b17Sopenharmony_ci * @tc.name: SetParam/GetCharParam 2225e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is char. 2226e0857b17Sopenharmony_ci */ 2227e0857b17Sopenharmony_ciHWTEST_F(WantCharParamTest, AaFwk_Want_Parameters_Char_0300, Function | MediumTest | Level1) 2228e0857b17Sopenharmony_ci{ 2229e0857b17Sopenharmony_ci std::string emptyStr("jj"); 2230e0857b17Sopenharmony_ci zchar firstValue = U'中'; 2231e0857b17Sopenharmony_ci zchar secondValue = U'文'; 2232e0857b17Sopenharmony_ci zchar thirdValue = U'字'; 2233e0857b17Sopenharmony_ci zchar firstDefaultValue = U'符'; 2234e0857b17Sopenharmony_ci zchar secondDefaultValue = U'集'; 2235e0857b17Sopenharmony_ci std::string keyStr("aa"); 2236e0857b17Sopenharmony_ci want_->SetParam(emptyStr, firstValue); 2237e0857b17Sopenharmony_ci want_->SetParam(emptyStr, firstValue); 2238e0857b17Sopenharmony_ci want_->SetParam(emptyStr, secondValue); 2239e0857b17Sopenharmony_ci EXPECT_EQ(firstDefaultValue, want_->GetCharParam(keyStr, firstDefaultValue)); 2240e0857b17Sopenharmony_ci want_->SetParam(emptyStr, thirdValue); 2241e0857b17Sopenharmony_ci EXPECT_EQ(thirdValue, want_->GetCharParam(emptyStr, secondDefaultValue)); 2242e0857b17Sopenharmony_ci} 2243e0857b17Sopenharmony_ci 2244e0857b17Sopenharmony_ci/** 2245e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Parameters_Char_0400 2246e0857b17Sopenharmony_ci * @tc.name: SetParam/GetCharParam 2247e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is char. 2248e0857b17Sopenharmony_ci */ 2249e0857b17Sopenharmony_ciHWTEST_F(WantCharParamTest, AaFwk_Want_Parameters_Char_0400, Function | MediumTest | Level1) 2250e0857b17Sopenharmony_ci{ 2251e0857b17Sopenharmony_ci std::string firstKey("%1uH3"); 2252e0857b17Sopenharmony_ci zchar firstValue = U'中'; 2253e0857b17Sopenharmony_ci zchar secondValue = U'文'; 2254e0857b17Sopenharmony_ci zchar firstDefaultValue = U'字'; 2255e0857b17Sopenharmony_ci zchar secondDefaultValue = U'符'; 2256e0857b17Sopenharmony_ci std::string secondKey("aa"); 2257e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 2258e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 2259e0857b17Sopenharmony_ci want_->SetParam(firstKey, secondValue); 2260e0857b17Sopenharmony_ci EXPECT_EQ(secondValue, want_->GetCharParam(firstKey, firstDefaultValue)); 2261e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 2262e0857b17Sopenharmony_ci EXPECT_EQ(secondDefaultValue, want_->GetCharParam(secondKey, secondDefaultValue)); 2263e0857b17Sopenharmony_ci} 2264e0857b17Sopenharmony_ci 2265e0857b17Sopenharmony_ciusing testDoubleArrayType = 2266e0857b17Sopenharmony_ci std::tuple<std::string, std::string, std::vector<double>, std::vector<double>, std::vector<double>>; 2267e0857b17Sopenharmony_ciclass WantDoubleArrayParamTest : public testing::TestWithParam<testDoubleArrayType> { 2268e0857b17Sopenharmony_cipublic: 2269e0857b17Sopenharmony_ci WantDoubleArrayParamTest() 2270e0857b17Sopenharmony_ci { 2271e0857b17Sopenharmony_ci want_ = nullptr; 2272e0857b17Sopenharmony_ci } 2273e0857b17Sopenharmony_ci ~WantDoubleArrayParamTest() 2274e0857b17Sopenharmony_ci { 2275e0857b17Sopenharmony_ci want_ = nullptr; 2276e0857b17Sopenharmony_ci } 2277e0857b17Sopenharmony_ci static void SetUpTestCase(void); 2278e0857b17Sopenharmony_ci static void TearDownTestCase(void); 2279e0857b17Sopenharmony_ci void SetUp(); 2280e0857b17Sopenharmony_ci void TearDown(); 2281e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 2282e0857b17Sopenharmony_ci}; 2283e0857b17Sopenharmony_ci 2284e0857b17Sopenharmony_civoid WantDoubleArrayParamTest::SetUpTestCase(void) 2285e0857b17Sopenharmony_ci{} 2286e0857b17Sopenharmony_ci 2287e0857b17Sopenharmony_civoid WantDoubleArrayParamTest::TearDownTestCase(void) 2288e0857b17Sopenharmony_ci{} 2289e0857b17Sopenharmony_ci 2290e0857b17Sopenharmony_civoid WantDoubleArrayParamTest::SetUp(void) 2291e0857b17Sopenharmony_ci{ 2292e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 2293e0857b17Sopenharmony_ci} 2294e0857b17Sopenharmony_ci 2295e0857b17Sopenharmony_civoid WantDoubleArrayParamTest::TearDown(void) 2296e0857b17Sopenharmony_ci{} 2297e0857b17Sopenharmony_ci 2298e0857b17Sopenharmony_ci/** 2299e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_DoubleArray_0100 2300e0857b17Sopenharmony_ci * @tc.name: SetParam/GetDoubleArrayParam 2301e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 2302e0857b17Sopenharmony_ci */ 2303e0857b17Sopenharmony_ciHWTEST_P(WantDoubleArrayParamTest, AaFwk_Want_DoubleArray_0100, Function | MediumTest | Level1) 2304e0857b17Sopenharmony_ci{ 2305e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 2306e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 2307e0857b17Sopenharmony_ci std::vector<double> setValue = std::get<2>(GetParam()); 2308e0857b17Sopenharmony_ci std::vector<double> defaultValue = std::get<3>(GetParam()); 2309e0857b17Sopenharmony_ci std::vector<double> result = std::get<4>(GetParam()); 2310e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 2311e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetDoubleArrayParam(getKey)); 2312e0857b17Sopenharmony_ci} 2313e0857b17Sopenharmony_ci 2314e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantDoubleArrayParamTestCaseP, WantDoubleArrayParamTest, 2315e0857b17Sopenharmony_ci testing::Values(testDoubleArrayType("", "aa", {-1.1, -2.1}, {}, {}), 2316e0857b17Sopenharmony_ci testDoubleArrayType("", "", {-41.1, -42.1}, {}, {-41.1, -42.1}), 2317e0857b17Sopenharmony_ci testDoubleArrayType("1*中_aR", "aa", {50.1, 51.1}, {}, {}), 2318e0857b17Sopenharmony_ci testDoubleArrayType("1*中_aR", "1*中_aR", {5000.1, 5001.1}, {}, {5000.1, 5001.1}))); 2319e0857b17Sopenharmony_ci 2320e0857b17Sopenharmony_ci/** 2321e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_DoubleArray_0200 2322e0857b17Sopenharmony_ci * @tc.name: SetParam/GetDoubleArrayParam 2323e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 2324e0857b17Sopenharmony_ci */ 2325e0857b17Sopenharmony_ciHWTEST_F(WantDoubleArrayParamTest, AaFwk_Want_DoubleArray_0200, Function | MediumTest | Level1) 2326e0857b17Sopenharmony_ci{ 2327e0857b17Sopenharmony_ci std::vector<double> defaultValue; 2328e0857b17Sopenharmony_ci std::string key = "aa"; 2329e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetDoubleArrayParam(key)); 2330e0857b17Sopenharmony_ci} 2331e0857b17Sopenharmony_ci 2332e0857b17Sopenharmony_ci/** 2333e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_DoubleArray_0300 2334e0857b17Sopenharmony_ci * @tc.name: SetParam/GetDoubleArrayParam 2335e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, but get param of another nonexistent key 2336e0857b17Sopenharmony_ci */ 2337e0857b17Sopenharmony_ciHWTEST_F(WantDoubleArrayParamTest, AaFwk_Want_DoubleArray_0300, Function | MediumTest | Level1) 2338e0857b17Sopenharmony_ci{ 2339e0857b17Sopenharmony_ci std::vector<double> defaultValue; 2340e0857b17Sopenharmony_ci std::string setKey1 = "cc"; 2341e0857b17Sopenharmony_ci std::string setKey2 = "aa"; 2342e0857b17Sopenharmony_ci std::vector<double> setValue1 = {1.1, 2.1}; 2343e0857b17Sopenharmony_ci std::vector<double> setValue2 = {5.1, 6.1}; 2344e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2345e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2346e0857b17Sopenharmony_ci setValue1 = {2.1, 3.1}; 2347e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2348e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetDoubleArrayParam(setKey2)); 2349e0857b17Sopenharmony_ci setValue1 = {4.1, 5.1}; 2350e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2351e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetDoubleArrayParam(setKey1)); 2352e0857b17Sopenharmony_ci} 2353e0857b17Sopenharmony_ci 2354e0857b17Sopenharmony_ci/** 2355e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_DoubleArray_0400 2356e0857b17Sopenharmony_ci * @tc.name: SetParam/GetDoubleArrayParam 2357e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, then get param of the key 2358e0857b17Sopenharmony_ci */ 2359e0857b17Sopenharmony_ciHWTEST_F(WantDoubleArrayParamTest, AaFwk_Want_DoubleArray_0400, Function | MediumTest | Level1) 2360e0857b17Sopenharmony_ci{ 2361e0857b17Sopenharmony_ci std::vector<double> defaultValue; 2362e0857b17Sopenharmony_ci std::string setKey1 = "%1uH3"; 2363e0857b17Sopenharmony_ci std::string setKey2 = "aa"; 2364e0857b17Sopenharmony_ci std::vector<double> setValue1 = {-1.1, -2.1}; 2365e0857b17Sopenharmony_ci std::vector<double> setValue2 = {9.1, 10.1}; 2366e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2367e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2368e0857b17Sopenharmony_ci setValue1 = {0.1, 1.1}; 2369e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2370e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetDoubleArrayParam(setKey1)); 2371e0857b17Sopenharmony_ci setValue1 = {4.1, 5.1}; 2372e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2373e0857b17Sopenharmony_ci setValue1 = {-10.1, -11.1}; 2374e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetDoubleArrayParam(setKey2)); 2375e0857b17Sopenharmony_ci} 2376e0857b17Sopenharmony_ci 2377e0857b17Sopenharmony_ciusing testFloatArrayType = 2378e0857b17Sopenharmony_ci std::tuple<std::string, std::string, std::vector<float>, std::vector<float>, std::vector<float>>; 2379e0857b17Sopenharmony_ciclass WantFloatArrayParamTest : public testing::TestWithParam<testFloatArrayType> { 2380e0857b17Sopenharmony_cipublic: 2381e0857b17Sopenharmony_ci WantFloatArrayParamTest() 2382e0857b17Sopenharmony_ci { 2383e0857b17Sopenharmony_ci want_ = nullptr; 2384e0857b17Sopenharmony_ci } 2385e0857b17Sopenharmony_ci ~WantFloatArrayParamTest() 2386e0857b17Sopenharmony_ci { 2387e0857b17Sopenharmony_ci want_ = nullptr; 2388e0857b17Sopenharmony_ci } 2389e0857b17Sopenharmony_ci static void SetUpTestCase(void); 2390e0857b17Sopenharmony_ci static void TearDownTestCase(void); 2391e0857b17Sopenharmony_ci void SetUp(); 2392e0857b17Sopenharmony_ci void TearDown(); 2393e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 2394e0857b17Sopenharmony_ci}; 2395e0857b17Sopenharmony_ci 2396e0857b17Sopenharmony_civoid WantFloatArrayParamTest::SetUpTestCase(void) 2397e0857b17Sopenharmony_ci{} 2398e0857b17Sopenharmony_ci 2399e0857b17Sopenharmony_civoid WantFloatArrayParamTest::TearDownTestCase(void) 2400e0857b17Sopenharmony_ci{} 2401e0857b17Sopenharmony_ci 2402e0857b17Sopenharmony_civoid WantFloatArrayParamTest::SetUp(void) 2403e0857b17Sopenharmony_ci{ 2404e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 2405e0857b17Sopenharmony_ci} 2406e0857b17Sopenharmony_ci 2407e0857b17Sopenharmony_civoid WantFloatArrayParamTest::TearDown(void) 2408e0857b17Sopenharmony_ci{} 2409e0857b17Sopenharmony_ci 2410e0857b17Sopenharmony_ci/** 2411e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_FloatArray_0100 2412e0857b17Sopenharmony_ci * @tc.name: SetParam/GetFloatArrayParam 2413e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 2414e0857b17Sopenharmony_ci */ 2415e0857b17Sopenharmony_ciHWTEST_P(WantFloatArrayParamTest, AaFwk_Want_FloatArray_0100, Function | MediumTest | Level1) 2416e0857b17Sopenharmony_ci{ 2417e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 2418e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 2419e0857b17Sopenharmony_ci std::vector<float> setValue = std::get<2>(GetParam()); 2420e0857b17Sopenharmony_ci std::vector<float> defaultValue = std::get<3>(GetParam()); 2421e0857b17Sopenharmony_ci std::vector<float> result = std::get<4>(GetParam()); 2422e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 2423e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetFloatArrayParam(getKey)); 2424e0857b17Sopenharmony_ci} 2425e0857b17Sopenharmony_ci 2426e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantFloatArrayParamTestCaseP, WantFloatArrayParamTest, 2427e0857b17Sopenharmony_ci testing::Values(testFloatArrayType("", "aa", {-1.1, -2.1}, {}, {}), 2428e0857b17Sopenharmony_ci testFloatArrayType("", "", {-41.1, -42.1}, {}, {-41.1, -42.1}), 2429e0857b17Sopenharmony_ci testFloatArrayType("1*中_aR", "aa", {50.1, 51.1}, {}, {}), 2430e0857b17Sopenharmony_ci testFloatArrayType("1*中_aR", "1*中_aR", {5000.1, 5001.1}, {}, {5000.1, 5001.1}))); 2431e0857b17Sopenharmony_ci 2432e0857b17Sopenharmony_ci/** 2433e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_FloatArray_0200 2434e0857b17Sopenharmony_ci * @tc.name: SetParam/GetFloatArrayParam 2435e0857b17Sopenharmony_ci * @tc.desc: get param when WantParam is empty 2436e0857b17Sopenharmony_ci */ 2437e0857b17Sopenharmony_ciHWTEST_F(WantFloatArrayParamTest, AaFwk_Want_FloatArray_0200, Function | MediumTest | Level1) 2438e0857b17Sopenharmony_ci{ 2439e0857b17Sopenharmony_ci std::vector<float> defaultValue; 2440e0857b17Sopenharmony_ci std::string key = "aa"; 2441e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetFloatArrayParam(key)); 2442e0857b17Sopenharmony_ci} 2443e0857b17Sopenharmony_ci 2444e0857b17Sopenharmony_ci/** 2445e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_FloatArray_0300 2446e0857b17Sopenharmony_ci * @tc.name: SetParam & GetFloatArrayParam 2447e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, but get param of another nonexistent key 2448e0857b17Sopenharmony_ci */ 2449e0857b17Sopenharmony_ciHWTEST_F(WantFloatArrayParamTest, AaFwk_Want_FloatArray_0300, Function | MediumTest | Level1) 2450e0857b17Sopenharmony_ci{ 2451e0857b17Sopenharmony_ci std::vector<float> defaultValue; 2452e0857b17Sopenharmony_ci std::string setKey1 = "hh"; 2453e0857b17Sopenharmony_ci std::string setKey2 = "aa"; 2454e0857b17Sopenharmony_ci std::vector<float> setValue1 = {1.1, 2.1}; 2455e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2456e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2457e0857b17Sopenharmony_ci setValue1 = {2.1, 3.1}; 2458e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2459e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetFloatArrayParam(setKey2)); 2460e0857b17Sopenharmony_ci setValue1 = {4.1, 5.1}; 2461e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2462e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetFloatArrayParam(setKey1)); 2463e0857b17Sopenharmony_ci} 2464e0857b17Sopenharmony_ci 2465e0857b17Sopenharmony_ci/** 2466e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_FloatArray_0400 2467e0857b17Sopenharmony_ci * @tc.name: SetParam & GetFloatArrayParam 2468e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, then get param of the key 2469e0857b17Sopenharmony_ci */ 2470e0857b17Sopenharmony_ciHWTEST_F(WantFloatArrayParamTest, AaFwk_Want_FloatArray_0400, Function | MediumTest | Level1) 2471e0857b17Sopenharmony_ci{ 2472e0857b17Sopenharmony_ci std::vector<float> defaultValue; 2473e0857b17Sopenharmony_ci std::string setKey1 = "%1uH3"; 2474e0857b17Sopenharmony_ci std::string setKey2 = "aa"; 2475e0857b17Sopenharmony_ci std::vector<float> setValue1 = {-1.1, -2.1}; 2476e0857b17Sopenharmony_ci std::vector<float> setValue2 = {9.1, 10.1}; 2477e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2478e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2479e0857b17Sopenharmony_ci setValue1 = {0.1, 1.1}; 2480e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2481e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetFloatArrayParam(setKey1)); 2482e0857b17Sopenharmony_ci setValue1 = {4.1, 5.1}; 2483e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2484e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetFloatArrayParam(setKey2)); 2485e0857b17Sopenharmony_ci} 2486e0857b17Sopenharmony_ci 2487e0857b17Sopenharmony_ciusing testLongArrayType = std::tuple<std::string, std::string, std::vector<long>, std::vector<long>, std::vector<long>>; 2488e0857b17Sopenharmony_ciclass WantLongArrayParamTest : public testing::TestWithParam<testLongArrayType> { 2489e0857b17Sopenharmony_cipublic: 2490e0857b17Sopenharmony_ci WantLongArrayParamTest() 2491e0857b17Sopenharmony_ci { 2492e0857b17Sopenharmony_ci want_ = nullptr; 2493e0857b17Sopenharmony_ci } 2494e0857b17Sopenharmony_ci ~WantLongArrayParamTest() 2495e0857b17Sopenharmony_ci { 2496e0857b17Sopenharmony_ci want_ = nullptr; 2497e0857b17Sopenharmony_ci } 2498e0857b17Sopenharmony_ci static void SetUpTestCase(void); 2499e0857b17Sopenharmony_ci static void TearDownTestCase(void); 2500e0857b17Sopenharmony_ci void SetUp(); 2501e0857b17Sopenharmony_ci void TearDown(); 2502e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 2503e0857b17Sopenharmony_ci}; 2504e0857b17Sopenharmony_ci 2505e0857b17Sopenharmony_civoid WantLongArrayParamTest::SetUpTestCase(void) 2506e0857b17Sopenharmony_ci{} 2507e0857b17Sopenharmony_ci 2508e0857b17Sopenharmony_civoid WantLongArrayParamTest::TearDownTestCase(void) 2509e0857b17Sopenharmony_ci{} 2510e0857b17Sopenharmony_ci 2511e0857b17Sopenharmony_civoid WantLongArrayParamTest::SetUp(void) 2512e0857b17Sopenharmony_ci{ 2513e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 2514e0857b17Sopenharmony_ci} 2515e0857b17Sopenharmony_ci 2516e0857b17Sopenharmony_civoid WantLongArrayParamTest::TearDown(void) 2517e0857b17Sopenharmony_ci{} 2518e0857b17Sopenharmony_ci 2519e0857b17Sopenharmony_ci/** 2520e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_LongArray_0100 2521e0857b17Sopenharmony_ci * @tc.name: SetParam & GetLongArrayParam 2522e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 2523e0857b17Sopenharmony_ci */ 2524e0857b17Sopenharmony_ciHWTEST_P(WantLongArrayParamTest, AaFwk_Want_LongArray_0100, Function | MediumTest | Level1) 2525e0857b17Sopenharmony_ci{ 2526e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 2527e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 2528e0857b17Sopenharmony_ci std::vector<long> setValue = std::get<2>(GetParam()); 2529e0857b17Sopenharmony_ci std::vector<long> defaultValue = std::get<3>(GetParam()); 2530e0857b17Sopenharmony_ci std::vector<long> result = std::get<4>(GetParam()); 2531e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 2532e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetLongArrayParam(getKey)); 2533e0857b17Sopenharmony_ci} 2534e0857b17Sopenharmony_ci 2535e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantLongArrayParamTestCaseP, WantLongArrayParamTest, 2536e0857b17Sopenharmony_ci testing::Values(testLongArrayType("", "aa", {-1, 3, 25, -9}, {}, {}), 2537e0857b17Sopenharmony_ci testLongArrayType("", "", {-41, 0, 0, 9}, {}, {-41, 0, 0, 9}), 2538e0857b17Sopenharmony_ci testLongArrayType("1*中_aR", "aa", {50, 2, -9}, {}, {}), 2539e0857b17Sopenharmony_ci testLongArrayType("1*中_aR", "1*中_aR", {-5000}, {}, {-5000}))); 2540e0857b17Sopenharmony_ci 2541e0857b17Sopenharmony_ci/** 2542e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_LongArray_0200 2543e0857b17Sopenharmony_ci * @tc.name: SetParam & GetLongArrayParam 2544e0857b17Sopenharmony_ci * @tc.desc: get param when WantParam is empty 2545e0857b17Sopenharmony_ci */ 2546e0857b17Sopenharmony_ciHWTEST_F(WantLongArrayParamTest, AaFwk_Want_LongArray_0200, Function | MediumTest | Level1) 2547e0857b17Sopenharmony_ci{ 2548e0857b17Sopenharmony_ci std::vector<long> defaultValue; 2549e0857b17Sopenharmony_ci std::string key = "aa"; 2550e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetLongArrayParam(key)); 2551e0857b17Sopenharmony_ci} 2552e0857b17Sopenharmony_ci 2553e0857b17Sopenharmony_ci/** 2554e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_LongArray_0300 2555e0857b17Sopenharmony_ci * @tc.name: SetParam & GetLongArrayParam 2556e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, but get param of another nonexistent key 2557e0857b17Sopenharmony_ci */ 2558e0857b17Sopenharmony_ciHWTEST_F(WantLongArrayParamTest, AaFwk_Want_LongArray_0300, Function | MediumTest | Level1) 2559e0857b17Sopenharmony_ci{ 2560e0857b17Sopenharmony_ci std::vector<long> defaultValue; 2561e0857b17Sopenharmony_ci std::string setKey1 = "bb"; 2562e0857b17Sopenharmony_ci std::string setKey2 = "aa"; 2563e0857b17Sopenharmony_ci std::vector<long> setValue1 = {1, 2}; 2564e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2565e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2566e0857b17Sopenharmony_ci setValue1 = {2, 3}; 2567e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2568e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetLongArrayParam(setKey2)); 2569e0857b17Sopenharmony_ci setValue1 = {4, 5}; 2570e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2571e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetLongArrayParam(setKey1)); 2572e0857b17Sopenharmony_ci} 2573e0857b17Sopenharmony_ci 2574e0857b17Sopenharmony_ci/** 2575e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_LongArray_0400 2576e0857b17Sopenharmony_ci * @tc.name: SetParam & GetLongArrayParam 2577e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, then get param of the key 2578e0857b17Sopenharmony_ci */ 2579e0857b17Sopenharmony_ciHWTEST_F(WantLongArrayParamTest, AaFwk_Want_LongArray_0400, Function | MediumTest | Level1) 2580e0857b17Sopenharmony_ci{ 2581e0857b17Sopenharmony_ci std::vector<long> defaultValue; 2582e0857b17Sopenharmony_ci std::string setKey1 = "%1uH3"; 2583e0857b17Sopenharmony_ci std::string setKey2 = "aa"; 2584e0857b17Sopenharmony_ci std::vector<long> setValue1 = {-1, -2}; 2585e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2586e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2587e0857b17Sopenharmony_ci setValue1 = {0, 1}; 2588e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2589e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetLongArrayParam(setKey1)); 2590e0857b17Sopenharmony_ci setValue1 = {4, 5}; 2591e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 2592e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetLongArrayParam(setKey2)); 2593e0857b17Sopenharmony_ci} 2594e0857b17Sopenharmony_ci 2595e0857b17Sopenharmony_ciusing testShortArrayType = 2596e0857b17Sopenharmony_ci std::tuple<std::string, std::string, std::vector<short>, std::vector<short>, std::vector<short>>; 2597e0857b17Sopenharmony_ciclass WantShortArrayParamTest : public testing::TestWithParam<testShortArrayType> { 2598e0857b17Sopenharmony_cipublic: 2599e0857b17Sopenharmony_ci WantShortArrayParamTest() 2600e0857b17Sopenharmony_ci { 2601e0857b17Sopenharmony_ci want_ = nullptr; 2602e0857b17Sopenharmony_ci } 2603e0857b17Sopenharmony_ci ~WantShortArrayParamTest() 2604e0857b17Sopenharmony_ci { 2605e0857b17Sopenharmony_ci want_ = nullptr; 2606e0857b17Sopenharmony_ci } 2607e0857b17Sopenharmony_ci static void SetUpTestCase(void); 2608e0857b17Sopenharmony_ci static void TearDownTestCase(void); 2609e0857b17Sopenharmony_ci void SetUp(); 2610e0857b17Sopenharmony_ci void TearDown(); 2611e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 2612e0857b17Sopenharmony_ci}; 2613e0857b17Sopenharmony_ci 2614e0857b17Sopenharmony_civoid WantShortArrayParamTest::SetUpTestCase(void) 2615e0857b17Sopenharmony_ci{} 2616e0857b17Sopenharmony_ci 2617e0857b17Sopenharmony_civoid WantShortArrayParamTest::TearDownTestCase(void) 2618e0857b17Sopenharmony_ci{} 2619e0857b17Sopenharmony_ci 2620e0857b17Sopenharmony_civoid WantShortArrayParamTest::SetUp(void) 2621e0857b17Sopenharmony_ci{ 2622e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 2623e0857b17Sopenharmony_ci} 2624e0857b17Sopenharmony_ci 2625e0857b17Sopenharmony_civoid WantShortArrayParamTest::TearDown(void) 2626e0857b17Sopenharmony_ci{} 2627e0857b17Sopenharmony_ci 2628e0857b17Sopenharmony_ci/** 2629e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ShortArray_0100 2630e0857b17Sopenharmony_ci * @tc.name: SetParam/GetShortArrayParam 2631e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 2632e0857b17Sopenharmony_ci */ 2633e0857b17Sopenharmony_ciHWTEST_P(WantShortArrayParamTest, AaFwk_Want_ShortArray_0100, Function | MediumTest | Level1) 2634e0857b17Sopenharmony_ci{ 2635e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 2636e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 2637e0857b17Sopenharmony_ci std::vector<short> setValue = std::get<2>(GetParam()); 2638e0857b17Sopenharmony_ci std::vector<short> defaultValue = std::get<3>(GetParam()); 2639e0857b17Sopenharmony_ci std::vector<short> result = std::get<4>(GetParam()); 2640e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 2641e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetShortArrayParam(getKey)); 2642e0857b17Sopenharmony_ci} 2643e0857b17Sopenharmony_ci 2644e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantShortArrayParamTestCaseP, WantShortArrayParamTest, 2645e0857b17Sopenharmony_ci testing::Values(testShortArrayType("", "aa", {-1, 3, 25, -9}, {}, {}), 2646e0857b17Sopenharmony_ci testShortArrayType("", "", {-41, 0, 0, 9}, {}, {-41, 0, 0, 9}), 2647e0857b17Sopenharmony_ci testShortArrayType("1*中_aR", "aa", {50, 2, -9}, {}, {}), 2648e0857b17Sopenharmony_ci testShortArrayType("1*中_aR", "1*中_aR", {-5000}, {}, {-5000}))); 2649e0857b17Sopenharmony_ci 2650e0857b17Sopenharmony_ci/** 2651e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ShortArray_0200 2652e0857b17Sopenharmony_ci * @tc.name: SetParam/GetShortArrayParam 2653e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is short array 2654e0857b17Sopenharmony_ci */ 2655e0857b17Sopenharmony_ciHWTEST_F(WantShortArrayParamTest, AaFwk_Want_ShortArray_0200, Function | MediumTest | Level1) 2656e0857b17Sopenharmony_ci{ 2657e0857b17Sopenharmony_ci std::vector<short> defaultValue; 2658e0857b17Sopenharmony_ci std::string getKey("aa"); 2659e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetShortArrayParam(getKey)); 2660e0857b17Sopenharmony_ci} 2661e0857b17Sopenharmony_ci 2662e0857b17Sopenharmony_ci/** 2663e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ShortArray_0300 2664e0857b17Sopenharmony_ci * @tc.name: SetParam/GetShortArrayParam 2665e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is short array 2666e0857b17Sopenharmony_ci */ 2667e0857b17Sopenharmony_ciHWTEST_F(WantShortArrayParamTest, AaFwk_Want_ShortArray_0300, Function | MediumTest | Level1) 2668e0857b17Sopenharmony_ci{ 2669e0857b17Sopenharmony_ci std::string emptyStr("hh"); 2670e0857b17Sopenharmony_ci std::vector<short> firstValue({1, 4, -9}); 2671e0857b17Sopenharmony_ci std::vector<short> secondValue({1, 8, -9}); 2672e0857b17Sopenharmony_ci std::vector<short> thirdValue({1, 4, 9}); 2673e0857b17Sopenharmony_ci std::string keyStr("aa"); 2674e0857b17Sopenharmony_ci want_->SetParam(emptyStr, firstValue); 2675e0857b17Sopenharmony_ci want_->SetParam(emptyStr, firstValue); 2676e0857b17Sopenharmony_ci want_->SetParam(emptyStr, secondValue); 2677e0857b17Sopenharmony_ci std::vector<short> defaultValue; 2678e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetShortArrayParam(keyStr)); 2679e0857b17Sopenharmony_ci want_->SetParam(emptyStr, thirdValue); 2680e0857b17Sopenharmony_ci EXPECT_EQ(thirdValue, want_->GetShortArrayParam(emptyStr)); 2681e0857b17Sopenharmony_ci} 2682e0857b17Sopenharmony_ci 2683e0857b17Sopenharmony_ci/** 2684e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ShortArray_0400 2685e0857b17Sopenharmony_ci * @tc.name: SetParam/GetShortArrayParam 2686e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is short array 2687e0857b17Sopenharmony_ci */ 2688e0857b17Sopenharmony_ciHWTEST_F(WantShortArrayParamTest, AaFwk_Want_ShortArray_0400, Function | MediumTest | Level1) 2689e0857b17Sopenharmony_ci{ 2690e0857b17Sopenharmony_ci std::string firstKey("%1uH3"); 2691e0857b17Sopenharmony_ci std::vector<short> firstValue({-1, -2}); 2692e0857b17Sopenharmony_ci std::vector<short> secondValue({-1, -2, -1, -2, 0}); 2693e0857b17Sopenharmony_ci std::vector<short> thirdValue({-1, -2, 100}); 2694e0857b17Sopenharmony_ci std::string secondKey("aa"); 2695e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 2696e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 2697e0857b17Sopenharmony_ci want_->SetParam(firstKey, secondValue); 2698e0857b17Sopenharmony_ci EXPECT_EQ(secondValue, want_->GetShortArrayParam(firstKey)); 2699e0857b17Sopenharmony_ci want_->SetParam(firstKey, thirdValue); 2700e0857b17Sopenharmony_ci std::vector<short> defaultValue; 2701e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetShortArrayParam(secondKey)); 2702e0857b17Sopenharmony_ci} 2703e0857b17Sopenharmony_ci 2704e0857b17Sopenharmony_ciusing testShortType = std::tuple<std::string, std::string, short, short, short>; 2705e0857b17Sopenharmony_ciclass WantShortParamTest : public testing::TestWithParam<testShortType> { 2706e0857b17Sopenharmony_cipublic: 2707e0857b17Sopenharmony_ci WantShortParamTest() 2708e0857b17Sopenharmony_ci { 2709e0857b17Sopenharmony_ci want_ = nullptr; 2710e0857b17Sopenharmony_ci } 2711e0857b17Sopenharmony_ci ~WantShortParamTest() 2712e0857b17Sopenharmony_ci {} 2713e0857b17Sopenharmony_ci static void SetUpTestCase(void); 2714e0857b17Sopenharmony_ci static void TearDownTestCase(void); 2715e0857b17Sopenharmony_ci void SetUp(); 2716e0857b17Sopenharmony_ci void TearDown(); 2717e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 2718e0857b17Sopenharmony_ci}; 2719e0857b17Sopenharmony_ci 2720e0857b17Sopenharmony_civoid WantShortParamTest::SetUpTestCase(void) 2721e0857b17Sopenharmony_ci{} 2722e0857b17Sopenharmony_ci 2723e0857b17Sopenharmony_civoid WantShortParamTest::TearDownTestCase(void) 2724e0857b17Sopenharmony_ci{} 2725e0857b17Sopenharmony_ci 2726e0857b17Sopenharmony_civoid WantShortParamTest::SetUp(void) 2727e0857b17Sopenharmony_ci{ 2728e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 2729e0857b17Sopenharmony_ci} 2730e0857b17Sopenharmony_ci 2731e0857b17Sopenharmony_civoid WantShortParamTest::TearDown(void) 2732e0857b17Sopenharmony_ci{} 2733e0857b17Sopenharmony_ci 2734e0857b17Sopenharmony_ci/** 2735e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Short_0100 2736e0857b17Sopenharmony_ci * @tc.name: SetParam/GetShortParam 2737e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 2738e0857b17Sopenharmony_ci */ 2739e0857b17Sopenharmony_ciHWTEST_P(WantShortParamTest, AaFwk_Want_Short_0100, Function | MediumTest | Level1) 2740e0857b17Sopenharmony_ci{ 2741e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 2742e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 2743e0857b17Sopenharmony_ci short setValue = std::get<2>(GetParam()); 2744e0857b17Sopenharmony_ci short defaultValue = std::get<3>(GetParam()); 2745e0857b17Sopenharmony_ci short result = std::get<4>(GetParam()); 2746e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 2747e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetShortParam(getKey, defaultValue)); 2748e0857b17Sopenharmony_ci} 2749e0857b17Sopenharmony_ci 2750e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantShortParamTestCaseP, WantShortParamTest, 2751e0857b17Sopenharmony_ci testing::Values(testShortType("", "aa", -1, 100, 100), testShortType("", "", -9, -41, -9), 2752e0857b17Sopenharmony_ci testShortType("1*中_aR", "aa", 50, 5, 5), testShortType("1*中_aR", "1*中_aR", -5000, 5000, -5000))); 2753e0857b17Sopenharmony_ci 2754e0857b17Sopenharmony_ci/** 2755e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Short_0200 2756e0857b17Sopenharmony_ci * @tc.name: SetParam/GetShortParam 2757e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is short 2758e0857b17Sopenharmony_ci */ 2759e0857b17Sopenharmony_ciHWTEST_F(WantShortParamTest, AaFwk_Want_Short_0200, Function | MediumTest | Level1) 2760e0857b17Sopenharmony_ci{ 2761e0857b17Sopenharmony_ci short defaultValue = 200; 2762e0857b17Sopenharmony_ci std::string getKey("aa"); 2763e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetShortParam(getKey, defaultValue)); 2764e0857b17Sopenharmony_ci} 2765e0857b17Sopenharmony_ci/** 2766e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Short_0300 2767e0857b17Sopenharmony_ci * @tc.name: SetParam/GetShortParam 2768e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is short 2769e0857b17Sopenharmony_ci */ 2770e0857b17Sopenharmony_ciHWTEST_F(WantShortParamTest, AaFwk_Want_Short_0300, Function | MediumTest | Level1) 2771e0857b17Sopenharmony_ci{ 2772e0857b17Sopenharmony_ci std::string emptyStr("bb"); 2773e0857b17Sopenharmony_ci short firstValue = 1; 2774e0857b17Sopenharmony_ci short secondValue = 2; 2775e0857b17Sopenharmony_ci short thirdValue = 4; 2776e0857b17Sopenharmony_ci short firstDefaultValue = 3; 2777e0857b17Sopenharmony_ci short secondDefaultValue = 5; 2778e0857b17Sopenharmony_ci std::string keyStr("aa"); 2779e0857b17Sopenharmony_ci want_->SetParam(emptyStr, firstValue); 2780e0857b17Sopenharmony_ci want_->SetParam(emptyStr, firstValue); 2781e0857b17Sopenharmony_ci want_->SetParam(emptyStr, secondValue); 2782e0857b17Sopenharmony_ci EXPECT_EQ(firstDefaultValue, want_->GetShortParam(keyStr, firstDefaultValue)); 2783e0857b17Sopenharmony_ci want_->SetParam(emptyStr, thirdValue); 2784e0857b17Sopenharmony_ci EXPECT_EQ(thirdValue, want_->GetShortParam(emptyStr, secondDefaultValue)); 2785e0857b17Sopenharmony_ci} 2786e0857b17Sopenharmony_ci 2787e0857b17Sopenharmony_ci/** 2788e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Short_0400 2789e0857b17Sopenharmony_ci * @tc.name: SetParam/GetShortParam 2790e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is short 2791e0857b17Sopenharmony_ci */ 2792e0857b17Sopenharmony_ciHWTEST_F(WantShortParamTest, AaFwk_Want_Short_0400, Function | MediumTest | Level1) 2793e0857b17Sopenharmony_ci{ 2794e0857b17Sopenharmony_ci std::string firstKey("%1uH3"); 2795e0857b17Sopenharmony_ci short firstValue = -1; 2796e0857b17Sopenharmony_ci short secondValue = 0; 2797e0857b17Sopenharmony_ci short thirdValue = 4; 2798e0857b17Sopenharmony_ci short firstDefaultValue = 9; 2799e0857b17Sopenharmony_ci short secondDefaultValue = -10; 2800e0857b17Sopenharmony_ci std::string secondKey("aa"); 2801e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 2802e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 2803e0857b17Sopenharmony_ci want_->SetParam(firstKey, secondValue); 2804e0857b17Sopenharmony_ci EXPECT_EQ(secondValue, want_->GetShortParam(firstKey, firstDefaultValue)); 2805e0857b17Sopenharmony_ci want_->SetParam(firstKey, thirdValue); 2806e0857b17Sopenharmony_ci EXPECT_EQ(secondDefaultValue, want_->GetShortParam(secondKey, secondDefaultValue)); 2807e0857b17Sopenharmony_ci} 2808e0857b17Sopenharmony_ci 2809e0857b17Sopenharmony_ciusing testStrArrayType = 2810e0857b17Sopenharmony_ci std::tuple<std::string, std::string, std::vector<std::string>, std::vector<std::string>, std::vector<std::string>>; 2811e0857b17Sopenharmony_ciclass WantStringArrayParamTest : public testing::TestWithParam<testStrArrayType> { 2812e0857b17Sopenharmony_cipublic: 2813e0857b17Sopenharmony_ci WantStringArrayParamTest() 2814e0857b17Sopenharmony_ci { 2815e0857b17Sopenharmony_ci want_ = nullptr; 2816e0857b17Sopenharmony_ci } 2817e0857b17Sopenharmony_ci ~WantStringArrayParamTest() 2818e0857b17Sopenharmony_ci {} 2819e0857b17Sopenharmony_ci static void SetUpTestCase(void); 2820e0857b17Sopenharmony_ci static void TearDownTestCase(void); 2821e0857b17Sopenharmony_ci void SetUp(); 2822e0857b17Sopenharmony_ci void TearDown(); 2823e0857b17Sopenharmony_ci std::shared_ptr<Want> want_ = nullptr; 2824e0857b17Sopenharmony_ci}; 2825e0857b17Sopenharmony_ci 2826e0857b17Sopenharmony_civoid WantStringArrayParamTest::SetUpTestCase(void) 2827e0857b17Sopenharmony_ci{} 2828e0857b17Sopenharmony_ci 2829e0857b17Sopenharmony_civoid WantStringArrayParamTest::TearDownTestCase(void) 2830e0857b17Sopenharmony_ci{} 2831e0857b17Sopenharmony_ci 2832e0857b17Sopenharmony_civoid WantStringArrayParamTest::SetUp(void) 2833e0857b17Sopenharmony_ci{ 2834e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 2835e0857b17Sopenharmony_ci} 2836e0857b17Sopenharmony_ci 2837e0857b17Sopenharmony_civoid WantStringArrayParamTest::TearDown(void) 2838e0857b17Sopenharmony_ci{} 2839e0857b17Sopenharmony_ci 2840e0857b17Sopenharmony_ci/** 2841e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_StringArray_0100 2842e0857b17Sopenharmony_ci * @tc.name: SetParam/GetStringArrayParam 2843e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 2844e0857b17Sopenharmony_ci */ 2845e0857b17Sopenharmony_ciHWTEST_P(WantStringArrayParamTest, AaFwk_Want_StringArray_0100, Function | MediumTest | Level1) 2846e0857b17Sopenharmony_ci{ 2847e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 2848e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 2849e0857b17Sopenharmony_ci std::vector<std::string> setValue = std::get<2>(GetParam()); 2850e0857b17Sopenharmony_ci std::vector<std::string> defaultValue = std::get<3>(GetParam()); 2851e0857b17Sopenharmony_ci std::vector<std::string> result = std::get<4>(GetParam()); 2852e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 2853e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetStringArrayParam(getKey)); 2854e0857b17Sopenharmony_ci} 2855e0857b17Sopenharmony_ci 2856e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantStringArrayParamTestCaseP, WantStringArrayParamTest, 2857e0857b17Sopenharmony_ci testing::Values(testStrArrayType("", "aa", {"1*中_aR", "dbdb"}, {}, {}), 2858e0857b17Sopenharmony_ci testStrArrayType("", "", {"1*中_aR", "dbdb"}, {}, {"1*中_aR", "dbdb"}), 2859e0857b17Sopenharmony_ci testStrArrayType("1*中_aR", "aa", {"1*中_aR", "dbdb"}, {}, {}), 2860e0857b17Sopenharmony_ci testStrArrayType("1*中_aR", "1*中_aR", {"1*中_aR", "dbdb"}, {}, {"1*中_aR", "dbdb"}))); 2861e0857b17Sopenharmony_ci 2862e0857b17Sopenharmony_ci/** 2863e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_StringArray_0200 2864e0857b17Sopenharmony_ci * @tc.name: SetParam/GetStringArrayParam 2865e0857b17Sopenharmony_ci * @tc.desc: get param when WantParam is empty 2866e0857b17Sopenharmony_ci */ 2867e0857b17Sopenharmony_ciHWTEST_F(WantStringArrayParamTest, AaFwk_Want_StringArray_0200, Function | MediumTest | Level1) 2868e0857b17Sopenharmony_ci{ 2869e0857b17Sopenharmony_ci std::vector<std::string> defaultValue; 2870e0857b17Sopenharmony_ci std::string key = "aa"; 2871e0857b17Sopenharmony_ci std::vector<std::string> resultValue = want_->GetStringArrayParam(key); 2872e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, resultValue); 2873e0857b17Sopenharmony_ci} 2874e0857b17Sopenharmony_ci 2875e0857b17Sopenharmony_ci/** 2876e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_StringArray_0300 2877e0857b17Sopenharmony_ci * @tc.name: SetParam/GetStringArrayParam 2878e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, but get param of another nonexistent key 2879e0857b17Sopenharmony_ci */ 2880e0857b17Sopenharmony_ciHWTEST_F(WantStringArrayParamTest, AaFwk_Want_StringArray_0300, Function | MediumTest | Level1) 2881e0857b17Sopenharmony_ci{ 2882e0857b17Sopenharmony_ci std::vector<std::string> defaultValue; 2883e0857b17Sopenharmony_ci std::vector<std::string> setValue1 = {"aaa", "2132"}; 2884e0857b17Sopenharmony_ci std::vector<std::string> setValue2 = {"1*中_aR", "dbdb"}; 2885e0857b17Sopenharmony_ci std::string key1 = "cc"; 2886e0857b17Sopenharmony_ci std::string key2 = "aa"; 2887e0857b17Sopenharmony_ci want_->SetParam(key1, setValue1); 2888e0857b17Sopenharmony_ci want_->SetParam(key1, setValue1); 2889e0857b17Sopenharmony_ci want_->SetParam(key1, setValue2); 2890e0857b17Sopenharmony_ci std::vector<std::string> resultValue = want_->GetStringArrayParam(key2); 2891e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, resultValue); 2892e0857b17Sopenharmony_ci 2893e0857b17Sopenharmony_ci want_->SetParam(key1, setValue1); 2894e0857b17Sopenharmony_ci resultValue = want_->GetStringArrayParam(key1); 2895e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, resultValue); 2896e0857b17Sopenharmony_ci} 2897e0857b17Sopenharmony_ci 2898e0857b17Sopenharmony_ci/** 2899e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_StringArray_0400 2900e0857b17Sopenharmony_ci * @tc.name: SetParam/GetStringArrayParam 2901e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, then get param of the key 2902e0857b17Sopenharmony_ci */ 2903e0857b17Sopenharmony_ciHWTEST_F(WantStringArrayParamTest, AaFwk_Want_StringArray_0400, Function | MediumTest | Level1) 2904e0857b17Sopenharmony_ci{ 2905e0857b17Sopenharmony_ci std::vector<std::string> defaultValue; 2906e0857b17Sopenharmony_ci std::vector<std::string> setValue = {"aaa", "2132"}; 2907e0857b17Sopenharmony_ci std::string key1 = "%1uH3"; 2908e0857b17Sopenharmony_ci std::string key2 = "aa"; 2909e0857b17Sopenharmony_ci want_->SetParam(key1, setValue); 2910e0857b17Sopenharmony_ci want_->SetParam(key1, setValue); 2911e0857b17Sopenharmony_ci setValue = {"1*中_aR", "3#$%"}; 2912e0857b17Sopenharmony_ci want_->SetParam(key1, setValue); 2913e0857b17Sopenharmony_ci std::vector<std::string> resultValue = want_->GetStringArrayParam(key1); 2914e0857b17Sopenharmony_ci EXPECT_EQ(setValue, resultValue); 2915e0857b17Sopenharmony_ci 2916e0857b17Sopenharmony_ci setValue = {"aaa", "2132"}; 2917e0857b17Sopenharmony_ci want_->SetParam(key1, setValue); 2918e0857b17Sopenharmony_ci resultValue = want_->GetStringArrayParam(key2); 2919e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, resultValue); 2920e0857b17Sopenharmony_ci} 2921e0857b17Sopenharmony_ci 2922e0857b17Sopenharmony_ciusing testStrType = std::tuple<std::string, std::string, std::string, std::string, std::string>; 2923e0857b17Sopenharmony_ciclass WantStringParamTest : public testing::TestWithParam<testStrType> { 2924e0857b17Sopenharmony_cipublic: 2925e0857b17Sopenharmony_ci WantStringParamTest() 2926e0857b17Sopenharmony_ci { 2927e0857b17Sopenharmony_ci want_ = nullptr; 2928e0857b17Sopenharmony_ci } 2929e0857b17Sopenharmony_ci ~WantStringParamTest() 2930e0857b17Sopenharmony_ci {} 2931e0857b17Sopenharmony_ci static void SetUpTestCase(void); 2932e0857b17Sopenharmony_ci static void TearDownTestCase(void); 2933e0857b17Sopenharmony_ci void SetUp(); 2934e0857b17Sopenharmony_ci void TearDown(); 2935e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 2936e0857b17Sopenharmony_ci}; 2937e0857b17Sopenharmony_ci 2938e0857b17Sopenharmony_civoid WantStringParamTest::SetUpTestCase(void) 2939e0857b17Sopenharmony_ci{} 2940e0857b17Sopenharmony_ci 2941e0857b17Sopenharmony_civoid WantStringParamTest::TearDownTestCase(void) 2942e0857b17Sopenharmony_ci{} 2943e0857b17Sopenharmony_ci 2944e0857b17Sopenharmony_civoid WantStringParamTest::SetUp(void) 2945e0857b17Sopenharmony_ci{ 2946e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 2947e0857b17Sopenharmony_ci} 2948e0857b17Sopenharmony_ci 2949e0857b17Sopenharmony_civoid WantStringParamTest::TearDown(void) 2950e0857b17Sopenharmony_ci{} 2951e0857b17Sopenharmony_ci 2952e0857b17Sopenharmony_ci/** 2953e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_String_0100 2954e0857b17Sopenharmony_ci * @tc.name: SetParam/GetStringParam 2955e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 2956e0857b17Sopenharmony_ci */ 2957e0857b17Sopenharmony_ciHWTEST_P(WantStringParamTest, AaFwk_Want_String_0100, Function | MediumTest | Level1) 2958e0857b17Sopenharmony_ci{ 2959e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 2960e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 2961e0857b17Sopenharmony_ci std::string setValue = std::get<2>(GetParam()); 2962e0857b17Sopenharmony_ci std::string defaultValue = std::get<3>(GetParam()); 2963e0857b17Sopenharmony_ci std::string result = std::get<4>(GetParam()); 2964e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 2965e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetStringParam(getKey)); 2966e0857b17Sopenharmony_ci} 2967e0857b17Sopenharmony_ci 2968e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantStringParamTestCaseP, WantStringParamTest, 2969e0857b17Sopenharmony_ci testing::Values(testStrType("", "aa", "1*中_aR", "", ""), testStrType("", "", "1*中_aR", "", "1*中_aR"), 2970e0857b17Sopenharmony_ci testStrType("1*中_aR", "aa", "aaa", "", ""), testStrType("1*中_aR", "1*中_aR", "aaa", "", "aaa"))); 2971e0857b17Sopenharmony_ci 2972e0857b17Sopenharmony_ci/** 2973e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_String_0200 2974e0857b17Sopenharmony_ci * @tc.name: SetParam/GetStringParam 2975e0857b17Sopenharmony_ci * @tc.desc: get param when WantParam is empty. 2976e0857b17Sopenharmony_ci */ 2977e0857b17Sopenharmony_ciHWTEST_F(WantStringParamTest, AaFwk_Want_String_0200, Function | MediumTest | Level1) 2978e0857b17Sopenharmony_ci{ 2979e0857b17Sopenharmony_ci std::string defaultStrValue; 2980e0857b17Sopenharmony_ci std::string key = "aa"; 2981e0857b17Sopenharmony_ci EXPECT_EQ(defaultStrValue, want_->GetStringParam(key)); 2982e0857b17Sopenharmony_ci} 2983e0857b17Sopenharmony_ci 2984e0857b17Sopenharmony_ci/** 2985e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_String_0300 2986e0857b17Sopenharmony_ci * @tc.name: SetParam/GetStringParam 2987e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, but get param of another nonexistent key. 2988e0857b17Sopenharmony_ci */ 2989e0857b17Sopenharmony_ciHWTEST_F(WantStringParamTest, AaFwk_Want_String_0300, Function | MediumTest | Level1) 2990e0857b17Sopenharmony_ci{ 2991e0857b17Sopenharmony_ci std::string defaultStrValue; 2992e0857b17Sopenharmony_ci std::string setValue1 = "aaa"; 2993e0857b17Sopenharmony_ci std::string setValue2 = "1*中_aR"; 2994e0857b17Sopenharmony_ci std::string key1 = "dd"; 2995e0857b17Sopenharmony_ci std::string key2 = "aa"; 2996e0857b17Sopenharmony_ci want_->SetParam(key1, setValue1); 2997e0857b17Sopenharmony_ci want_->SetParam(key1, setValue1); 2998e0857b17Sopenharmony_ci want_->SetParam(key1, setValue2); 2999e0857b17Sopenharmony_ci EXPECT_EQ(defaultStrValue, want_->GetStringParam(key2)); 3000e0857b17Sopenharmony_ci want_->SetParam(key1, setValue1); 3001e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetStringParam(key1)); 3002e0857b17Sopenharmony_ci} 3003e0857b17Sopenharmony_ci 3004e0857b17Sopenharmony_ci/** 3005e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_String_0400 3006e0857b17Sopenharmony_ci * @tc.name: SetParam/GetStringParam 3007e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, then get param of the key. 3008e0857b17Sopenharmony_ci */ 3009e0857b17Sopenharmony_ciHWTEST_F(WantStringParamTest, AaFwk_Want_String_0400, Function | MediumTest | Level1) 3010e0857b17Sopenharmony_ci{ 3011e0857b17Sopenharmony_ci std::string key1 = "%1uH3"; 3012e0857b17Sopenharmony_ci std::string defaultStrValue; 3013e0857b17Sopenharmony_ci std::string setValue1 = "aaa"; 3014e0857b17Sopenharmony_ci std::string setValue2 = "1*中_aR"; 3015e0857b17Sopenharmony_ci std::string key2 = "aa"; 3016e0857b17Sopenharmony_ci want_->SetParam(key1, setValue1); 3017e0857b17Sopenharmony_ci want_->SetParam(key1, setValue1); 3018e0857b17Sopenharmony_ci want_->SetParam(key1, setValue2); 3019e0857b17Sopenharmony_ci EXPECT_EQ("1*中_aR", want_->GetStringParam(key1)); 3020e0857b17Sopenharmony_ci want_->SetParam(key1, setValue1); 3021e0857b17Sopenharmony_ci EXPECT_EQ(defaultStrValue, want_->GetStringParam(key2)); 3022e0857b17Sopenharmony_ci} 3023e0857b17Sopenharmony_ci 3024e0857b17Sopenharmony_ciusing testLongType = std::tuple<std::string, std::string, long, long, long>; 3025e0857b17Sopenharmony_ciclass WantLongParamTest : public testing::TestWithParam<testLongType> { 3026e0857b17Sopenharmony_cipublic: 3027e0857b17Sopenharmony_ci WantLongParamTest() 3028e0857b17Sopenharmony_ci { 3029e0857b17Sopenharmony_ci want_ = nullptr; 3030e0857b17Sopenharmony_ci } 3031e0857b17Sopenharmony_ci ~WantLongParamTest() 3032e0857b17Sopenharmony_ci {} 3033e0857b17Sopenharmony_ci static void SetUpTestCase(void); 3034e0857b17Sopenharmony_ci static void TearDownTestCase(void); 3035e0857b17Sopenharmony_ci void SetUp(); 3036e0857b17Sopenharmony_ci void TearDown(); 3037e0857b17Sopenharmony_ci std::shared_ptr<Want> want_ = nullptr; 3038e0857b17Sopenharmony_ci}; 3039e0857b17Sopenharmony_ci 3040e0857b17Sopenharmony_civoid WantLongParamTest::SetUpTestCase(void) 3041e0857b17Sopenharmony_ci{} 3042e0857b17Sopenharmony_ci 3043e0857b17Sopenharmony_civoid WantLongParamTest::TearDownTestCase(void) 3044e0857b17Sopenharmony_ci{} 3045e0857b17Sopenharmony_ci 3046e0857b17Sopenharmony_civoid WantLongParamTest::SetUp(void) 3047e0857b17Sopenharmony_ci{ 3048e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 3049e0857b17Sopenharmony_ci} 3050e0857b17Sopenharmony_ci 3051e0857b17Sopenharmony_civoid WantLongParamTest::TearDown(void) 3052e0857b17Sopenharmony_ci{} 3053e0857b17Sopenharmony_ci 3054e0857b17Sopenharmony_ci/** 3055e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_LongParam_0100 3056e0857b17Sopenharmony_ci * @tc.name: SetParam/GetLongParam 3057e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 3058e0857b17Sopenharmony_ci */ 3059e0857b17Sopenharmony_ciHWTEST_P(WantLongParamTest, AaFwk_Want_LongParam_0100, Function | MediumTest | Level1) 3060e0857b17Sopenharmony_ci{ 3061e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 3062e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 3063e0857b17Sopenharmony_ci long setValue = std::get<2>(GetParam()); 3064e0857b17Sopenharmony_ci long defaultValue = std::get<3>(GetParam()); 3065e0857b17Sopenharmony_ci long result = std::get<4>(GetParam()); 3066e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 3067e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetLongParam(getKey, defaultValue)); 3068e0857b17Sopenharmony_ci} 3069e0857b17Sopenharmony_ci 3070e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantLongParamTestCaseP, WantLongParamTest, 3071e0857b17Sopenharmony_ci testing::Values(testLongType("b1", "b1", -1, 100, -1), testLongType("b3", "b4", 600, 200, 200), 3072e0857b17Sopenharmony_ci testLongType("b5", "b5", 50, 6, 50), testLongType("b6", "b7", 1000, 2200, 2200))); 3073e0857b17Sopenharmony_ci 3074e0857b17Sopenharmony_ci/** 3075e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_LongParam_0200 3076e0857b17Sopenharmony_ci * @tc.name: SetParam/GetLongParam 3077e0857b17Sopenharmony_ci * @tc.desc: get param when WantParam is empty. 3078e0857b17Sopenharmony_ci */ 3079e0857b17Sopenharmony_ciHWTEST_F(WantLongParamTest, AaFwk_Want_LongParam_0200, Function | MediumTest | Level1) 3080e0857b17Sopenharmony_ci{ 3081e0857b17Sopenharmony_ci long defaultValue = 100; 3082e0857b17Sopenharmony_ci std::string key = "aa"; 3083e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetLongParam(key, defaultValue)); 3084e0857b17Sopenharmony_ci} 3085e0857b17Sopenharmony_ci 3086e0857b17Sopenharmony_ci/** 3087e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_LongParam_0300 3088e0857b17Sopenharmony_ci * @tc.name: SetParam/GetLongParam 3089e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, but get param of another nonexistent key. 3090e0857b17Sopenharmony_ci */ 3091e0857b17Sopenharmony_ciHWTEST_F(WantLongParamTest, AaFwk_Want_LongParam_0300, Function | MediumTest | Level1) 3092e0857b17Sopenharmony_ci{ 3093e0857b17Sopenharmony_ci std::string setKey1 = "dd"; 3094e0857b17Sopenharmony_ci std::string setKey2 = "aa"; 3095e0857b17Sopenharmony_ci long setValue1 = 1; 3096e0857b17Sopenharmony_ci long setValue2 = 5; 3097e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3098e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3099e0857b17Sopenharmony_ci setValue1 = 2; 3100e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3101e0857b17Sopenharmony_ci setValue1 = 3; 3102e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetLongParam(setKey2, setValue1)); 3103e0857b17Sopenharmony_ci setValue1 = 4; 3104e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3105e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetLongParam(setKey1, setValue2)); 3106e0857b17Sopenharmony_ci} 3107e0857b17Sopenharmony_ci 3108e0857b17Sopenharmony_ci/** 3109e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_LongParam_0400 3110e0857b17Sopenharmony_ci * @tc.name: SetParam/GetLongParam 3111e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, then get param of the key. 3112e0857b17Sopenharmony_ci */ 3113e0857b17Sopenharmony_ciHWTEST_F(WantLongParamTest, AaFwk_Want_LongParam_0400, Function | MediumTest | Level1) 3114e0857b17Sopenharmony_ci{ 3115e0857b17Sopenharmony_ci std::string setKey1 = "%1uH3"; 3116e0857b17Sopenharmony_ci std::string setKey2 = "aa"; 3117e0857b17Sopenharmony_ci long setValue1 = -1; 3118e0857b17Sopenharmony_ci long setValue2 = 9; 3119e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3120e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3121e0857b17Sopenharmony_ci setValue1 = 0; 3122e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3123e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetLongParam(setKey1, setValue2)); 3124e0857b17Sopenharmony_ci setValue1 = 4; 3125e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3126e0857b17Sopenharmony_ci setValue1 = -10; 3127e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetLongParam(setKey2, setValue1)); 3128e0857b17Sopenharmony_ci} 3129e0857b17Sopenharmony_ci 3130e0857b17Sopenharmony_ciusing testIntType = std::tuple<std::string, std::string, int, int, int>; 3131e0857b17Sopenharmony_ciclass WantIntParamTest : public testing::TestWithParam<testIntType> { 3132e0857b17Sopenharmony_cipublic: 3133e0857b17Sopenharmony_ci WantIntParamTest() 3134e0857b17Sopenharmony_ci { 3135e0857b17Sopenharmony_ci want_ = nullptr; 3136e0857b17Sopenharmony_ci } 3137e0857b17Sopenharmony_ci ~WantIntParamTest() 3138e0857b17Sopenharmony_ci { 3139e0857b17Sopenharmony_ci want_ = nullptr; 3140e0857b17Sopenharmony_ci } 3141e0857b17Sopenharmony_ci static void SetUpTestCase(void); 3142e0857b17Sopenharmony_ci static void TearDownTestCase(void); 3143e0857b17Sopenharmony_ci void SetUp(); 3144e0857b17Sopenharmony_ci void TearDown(); 3145e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 3146e0857b17Sopenharmony_ci}; 3147e0857b17Sopenharmony_ci 3148e0857b17Sopenharmony_civoid WantIntParamTest::SetUpTestCase(void) 3149e0857b17Sopenharmony_ci{} 3150e0857b17Sopenharmony_ci 3151e0857b17Sopenharmony_civoid WantIntParamTest::TearDownTestCase(void) 3152e0857b17Sopenharmony_ci{} 3153e0857b17Sopenharmony_ci 3154e0857b17Sopenharmony_civoid WantIntParamTest::SetUp(void) 3155e0857b17Sopenharmony_ci{ 3156e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 3157e0857b17Sopenharmony_ci} 3158e0857b17Sopenharmony_ci 3159e0857b17Sopenharmony_civoid WantIntParamTest::TearDown(void) 3160e0857b17Sopenharmony_ci{} 3161e0857b17Sopenharmony_ci 3162e0857b17Sopenharmony_ci/** 3163e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_IntParam_0100 3164e0857b17Sopenharmony_ci * @tc.name: SetParam/GetIntParam 3165e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 3166e0857b17Sopenharmony_ci */ 3167e0857b17Sopenharmony_ciHWTEST_P(WantIntParamTest, AaFwk_Want_IntParam_0100, Function | MediumTest | Level1) 3168e0857b17Sopenharmony_ci{ 3169e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 3170e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 3171e0857b17Sopenharmony_ci int setValue = std::get<2>(GetParam()); 3172e0857b17Sopenharmony_ci int defaultValue = std::get<3>(GetParam()); 3173e0857b17Sopenharmony_ci int result = std::get<4>(GetParam()); 3174e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 3175e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetIntParam(getKey, defaultValue)); 3176e0857b17Sopenharmony_ci} 3177e0857b17Sopenharmony_ci 3178e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantParametersIntTestCaseP, WantIntParamTest, 3179e0857b17Sopenharmony_ci testing::Values(testIntType("", "aa", -1, 100, 100), testIntType("", "", -9, -41, -9), 3180e0857b17Sopenharmony_ci testIntType("1*中_aR", "aa", 50, 5, 5), testIntType("1*中_aR", "1*中_aR", -5000, 5000, -5000))); 3181e0857b17Sopenharmony_ci 3182e0857b17Sopenharmony_ci/** 3183e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_IntParam_0200 3184e0857b17Sopenharmony_ci * @tc.name: SetParam/GetIntParam 3185e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is integer. 3186e0857b17Sopenharmony_ci */ 3187e0857b17Sopenharmony_ciHWTEST_F(WantIntParamTest, AaFwk_Want_IntParam_0200, Function | MediumTest | Level1) 3188e0857b17Sopenharmony_ci{ 3189e0857b17Sopenharmony_ci int defaultValue = 200; 3190e0857b17Sopenharmony_ci std::string getKey("aa"); 3191e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetIntParam(getKey, defaultValue)); 3192e0857b17Sopenharmony_ci} 3193e0857b17Sopenharmony_ci 3194e0857b17Sopenharmony_ci/** 3195e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_IntParam_0300 3196e0857b17Sopenharmony_ci * @tc.name: SetParam/GetIntParam 3197e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is integer. 3198e0857b17Sopenharmony_ci */ 3199e0857b17Sopenharmony_ciHWTEST_F(WantIntParamTest, AaFwk_Want_IntParam_0300, Function | MediumTest | Level1) 3200e0857b17Sopenharmony_ci{ 3201e0857b17Sopenharmony_ci std::string emptyStr("bb"); 3202e0857b17Sopenharmony_ci int firstValue = 1; 3203e0857b17Sopenharmony_ci int secondValue = 2; 3204e0857b17Sopenharmony_ci int thirdValue = 4; 3205e0857b17Sopenharmony_ci int firstDefaultValue = 3; 3206e0857b17Sopenharmony_ci int secondDefaultValue = 5; 3207e0857b17Sopenharmony_ci std::string keyStr("aa"); 3208e0857b17Sopenharmony_ci want_->SetParam(emptyStr, firstValue); 3209e0857b17Sopenharmony_ci want_->SetParam(emptyStr, firstValue); 3210e0857b17Sopenharmony_ci want_->SetParam(emptyStr, secondValue); 3211e0857b17Sopenharmony_ci EXPECT_EQ(firstDefaultValue, want_->GetIntParam(keyStr, firstDefaultValue)); 3212e0857b17Sopenharmony_ci want_->SetParam(emptyStr, thirdValue); 3213e0857b17Sopenharmony_ci EXPECT_EQ(thirdValue, want_->GetIntParam(emptyStr, secondDefaultValue)); 3214e0857b17Sopenharmony_ci} 3215e0857b17Sopenharmony_ci 3216e0857b17Sopenharmony_ci/** 3217e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_IntParam_0400 3218e0857b17Sopenharmony_ci * @tc.name: SetParam/GetIntParam 3219e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is integer. 3220e0857b17Sopenharmony_ci */ 3221e0857b17Sopenharmony_ciHWTEST_F(WantIntParamTest, AaFwk_Want_IntParam_0400, Function | MediumTest | Level1) 3222e0857b17Sopenharmony_ci{ 3223e0857b17Sopenharmony_ci std::string firstKey("%1uH3"); 3224e0857b17Sopenharmony_ci int firstValue = -1; 3225e0857b17Sopenharmony_ci int secondValue = 0; 3226e0857b17Sopenharmony_ci int thirdValue = 4; 3227e0857b17Sopenharmony_ci int firstDefaultValue = 9; 3228e0857b17Sopenharmony_ci int secondDefaultValue = -10; 3229e0857b17Sopenharmony_ci std::string secondKey("aa"); 3230e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 3231e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 3232e0857b17Sopenharmony_ci want_->SetParam(firstKey, secondValue); 3233e0857b17Sopenharmony_ci EXPECT_EQ(secondValue, want_->GetIntParam(firstKey, firstDefaultValue)); 3234e0857b17Sopenharmony_ci want_->SetParam(firstKey, thirdValue); 3235e0857b17Sopenharmony_ci EXPECT_EQ(secondDefaultValue, want_->GetIntParam(secondKey, secondDefaultValue)); 3236e0857b17Sopenharmony_ci} 3237e0857b17Sopenharmony_ci 3238e0857b17Sopenharmony_ciusing testIntArrayType = std::tuple<std::string, std::string, std::vector<int>, std::vector<int>, std::vector<int>>; 3239e0857b17Sopenharmony_ciclass WantIntArrayParamTest : public testing::TestWithParam<testIntArrayType> { 3240e0857b17Sopenharmony_cipublic: 3241e0857b17Sopenharmony_ci WantIntArrayParamTest() 3242e0857b17Sopenharmony_ci { 3243e0857b17Sopenharmony_ci want_ = nullptr; 3244e0857b17Sopenharmony_ci } 3245e0857b17Sopenharmony_ci ~WantIntArrayParamTest() 3246e0857b17Sopenharmony_ci { 3247e0857b17Sopenharmony_ci want_ = nullptr; 3248e0857b17Sopenharmony_ci } 3249e0857b17Sopenharmony_ci static void SetUpTestCase(void); 3250e0857b17Sopenharmony_ci static void TearDownTestCase(void); 3251e0857b17Sopenharmony_ci void SetUp(); 3252e0857b17Sopenharmony_ci void TearDown(); 3253e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 3254e0857b17Sopenharmony_ci}; 3255e0857b17Sopenharmony_ci 3256e0857b17Sopenharmony_civoid WantIntArrayParamTest::SetUpTestCase(void) 3257e0857b17Sopenharmony_ci{} 3258e0857b17Sopenharmony_ci 3259e0857b17Sopenharmony_civoid WantIntArrayParamTest::TearDownTestCase(void) 3260e0857b17Sopenharmony_ci{} 3261e0857b17Sopenharmony_ci 3262e0857b17Sopenharmony_civoid WantIntArrayParamTest::SetUp(void) 3263e0857b17Sopenharmony_ci{ 3264e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 3265e0857b17Sopenharmony_ci} 3266e0857b17Sopenharmony_ci 3267e0857b17Sopenharmony_civoid WantIntArrayParamTest::TearDown(void) 3268e0857b17Sopenharmony_ci{} 3269e0857b17Sopenharmony_ci 3270e0857b17Sopenharmony_ci/** 3271e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_IntArrayParam_0100 3272e0857b17Sopenharmony_ci * @tc.name: SetParam/GetIntArrayParam 3273e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 3274e0857b17Sopenharmony_ci */ 3275e0857b17Sopenharmony_ciHWTEST_P(WantIntArrayParamTest, AaFwk_Want_IntArrayParam_0100, Function | MediumTest | Level1) 3276e0857b17Sopenharmony_ci{ 3277e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 3278e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 3279e0857b17Sopenharmony_ci std::vector<int> setValue = std::get<2>(GetParam()); 3280e0857b17Sopenharmony_ci std::vector<int> defaultValue = std::get<3>(GetParam()); 3281e0857b17Sopenharmony_ci std::vector<int> result = std::get<4>(GetParam()); 3282e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 3283e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetIntArrayParam(getKey)); 3284e0857b17Sopenharmony_ci} 3285e0857b17Sopenharmony_ci 3286e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantIntArrayParamTestCaseP, WantIntArrayParamTest, 3287e0857b17Sopenharmony_ci testing::Values(testIntArrayType("", "aa", {-1, 3, 25, -9}, {}, {}), 3288e0857b17Sopenharmony_ci testIntArrayType("", "", {-41, 0, 0, 9}, {}, {-41, 0, 0, 9}), 3289e0857b17Sopenharmony_ci testIntArrayType("1*中_aR", "aa", {50, 2, -9}, {}, {}), 3290e0857b17Sopenharmony_ci testIntArrayType("1*中_aR", "1*中_aR", {-5000}, {}, {-5000}))); 3291e0857b17Sopenharmony_ci 3292e0857b17Sopenharmony_ci/** 3293e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_IntArrayParam_0200 3294e0857b17Sopenharmony_ci * @tc.name: SetParam/GetIntArrayParam 3295e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is integer array. 3296e0857b17Sopenharmony_ci */ 3297e0857b17Sopenharmony_ciHWTEST_F(WantIntArrayParamTest, AaFwk_Want_IntArrayParam_0200, Function | MediumTest | Level1) 3298e0857b17Sopenharmony_ci{ 3299e0857b17Sopenharmony_ci std::vector<int> defaultValue; 3300e0857b17Sopenharmony_ci std::string getKey("aa"); 3301e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetIntArrayParam(getKey)); 3302e0857b17Sopenharmony_ci} 3303e0857b17Sopenharmony_ci 3304e0857b17Sopenharmony_ci/** 3305e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_IntArrayParam_0300 3306e0857b17Sopenharmony_ci * @tc.name: SetParam/GetIntArrayParam 3307e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is integer array. 3308e0857b17Sopenharmony_ci */ 3309e0857b17Sopenharmony_ciHWTEST_F(WantIntArrayParamTest, AaFwk_Want_IntArrayParam_0300, Function | MediumTest | Level1) 3310e0857b17Sopenharmony_ci{ 3311e0857b17Sopenharmony_ci std::string emptyStr("cc"); 3312e0857b17Sopenharmony_ci std::vector<int> firstValue({1, 4, -9}); 3313e0857b17Sopenharmony_ci std::vector<int> secondValue({1, 8, -9}); 3314e0857b17Sopenharmony_ci std::vector<int> thirdValue({1, 4, 9}); 3315e0857b17Sopenharmony_ci std::string keyStr("aa"); 3316e0857b17Sopenharmony_ci want_->SetParam(emptyStr, firstValue); 3317e0857b17Sopenharmony_ci want_->SetParam(emptyStr, firstValue); 3318e0857b17Sopenharmony_ci want_->SetParam(emptyStr, secondValue); 3319e0857b17Sopenharmony_ci std::vector<int> defaultValue; 3320e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetIntArrayParam(keyStr)); 3321e0857b17Sopenharmony_ci want_->SetParam(emptyStr, thirdValue); 3322e0857b17Sopenharmony_ci EXPECT_EQ(thirdValue, want_->GetIntArrayParam(emptyStr)); 3323e0857b17Sopenharmony_ci} 3324e0857b17Sopenharmony_ci 3325e0857b17Sopenharmony_ci/** 3326e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_IntArrayParam_0400 3327e0857b17Sopenharmony_ci * @tc.name: SetParam/GetIntArrayParam 3328e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is integer array. 3329e0857b17Sopenharmony_ci */ 3330e0857b17Sopenharmony_ciHWTEST_F(WantIntArrayParamTest, AaFwk_Want_IntArrayParam_0400, Function | MediumTest | Level1) 3331e0857b17Sopenharmony_ci{ 3332e0857b17Sopenharmony_ci std::string firstKey("%1uH3"); 3333e0857b17Sopenharmony_ci std::vector<int> firstValue({-1, -2}); 3334e0857b17Sopenharmony_ci std::vector<int> secondValue({-1, -2, -1, -2, 0}); 3335e0857b17Sopenharmony_ci std::vector<int> thirdValue({-1, -2, 100}); 3336e0857b17Sopenharmony_ci std::string secondKey("aa"); 3337e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 3338e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 3339e0857b17Sopenharmony_ci want_->SetParam(firstKey, secondValue); 3340e0857b17Sopenharmony_ci EXPECT_EQ(secondValue, want_->GetIntArrayParam(firstKey)); 3341e0857b17Sopenharmony_ci want_->SetParam(firstKey, thirdValue); 3342e0857b17Sopenharmony_ci std::vector<int> defaultValue; 3343e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetIntArrayParam(secondKey)); 3344e0857b17Sopenharmony_ci} 3345e0857b17Sopenharmony_ci 3346e0857b17Sopenharmony_ciusing testFloatType = std::tuple<std::string, std::string, float, float, float>; 3347e0857b17Sopenharmony_ciclass WantFloatParamTest : public testing::TestWithParam<testFloatType> { 3348e0857b17Sopenharmony_cipublic: 3349e0857b17Sopenharmony_ci WantFloatParamTest() 3350e0857b17Sopenharmony_ci { 3351e0857b17Sopenharmony_ci want_ = nullptr; 3352e0857b17Sopenharmony_ci } 3353e0857b17Sopenharmony_ci ~WantFloatParamTest() 3354e0857b17Sopenharmony_ci { 3355e0857b17Sopenharmony_ci want_ = nullptr; 3356e0857b17Sopenharmony_ci } 3357e0857b17Sopenharmony_ci 3358e0857b17Sopenharmony_ci static void SetUpTestCase(void); 3359e0857b17Sopenharmony_ci static void TearDownTestCase(void); 3360e0857b17Sopenharmony_ci void SetUp(); 3361e0857b17Sopenharmony_ci void TearDown(); 3362e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 3363e0857b17Sopenharmony_ci}; 3364e0857b17Sopenharmony_ci 3365e0857b17Sopenharmony_civoid WantFloatParamTest::SetUpTestCase(void) 3366e0857b17Sopenharmony_ci{} 3367e0857b17Sopenharmony_ci 3368e0857b17Sopenharmony_civoid WantFloatParamTest::TearDownTestCase(void) 3369e0857b17Sopenharmony_ci{} 3370e0857b17Sopenharmony_ci 3371e0857b17Sopenharmony_civoid WantFloatParamTest::SetUp(void) 3372e0857b17Sopenharmony_ci{ 3373e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 3374e0857b17Sopenharmony_ci} 3375e0857b17Sopenharmony_ci 3376e0857b17Sopenharmony_civoid WantFloatParamTest::TearDown(void) 3377e0857b17Sopenharmony_ci{} 3378e0857b17Sopenharmony_ci 3379e0857b17Sopenharmony_ci/** 3380e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_FloatParam_0100 3381e0857b17Sopenharmony_ci * @tc.name: SetParam/GetFloatParam 3382e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 3383e0857b17Sopenharmony_ci */ 3384e0857b17Sopenharmony_ciHWTEST_P(WantFloatParamTest, AaFwk_Want_FloatParam_0100, Function | MediumTest | Level1) 3385e0857b17Sopenharmony_ci{ 3386e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 3387e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 3388e0857b17Sopenharmony_ci float setValue = std::get<2>(GetParam()); 3389e0857b17Sopenharmony_ci float defaultValue = std::get<3>(GetParam()); 3390e0857b17Sopenharmony_ci float result = std::get<4>(GetParam()); 3391e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 3392e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetFloatParam(getKey, defaultValue)); 3393e0857b17Sopenharmony_ci} 3394e0857b17Sopenharmony_ci 3395e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantFloatParamTestCaseP, WantFloatParamTest, 3396e0857b17Sopenharmony_ci testing::Values(testFloatType("", "aa", -1.1, 100.1, 100.1), testFloatType("", "", -9.1, -41.1, -9.1), 3397e0857b17Sopenharmony_ci testFloatType("1*中_aR", "aa", 50.1, 5.1, 5.1), testFloatType("1*中_aR", "1*中_aR", -5000.1, 5000.1, -5000.1))); 3398e0857b17Sopenharmony_ci 3399e0857b17Sopenharmony_ci/** 3400e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_FloatParam_0200 3401e0857b17Sopenharmony_ci * @tc.name: SetParam/GetFloatParam 3402e0857b17Sopenharmony_ci * @tc.desc: get param when WantParam is empty. 3403e0857b17Sopenharmony_ci */ 3404e0857b17Sopenharmony_ciHWTEST_F(WantFloatParamTest, AaFwk_Want_FloatParam_0200, Function | MediumTest | Level1) 3405e0857b17Sopenharmony_ci{ 3406e0857b17Sopenharmony_ci float defaultValue = 100.1; 3407e0857b17Sopenharmony_ci std::string key = "aa"; 3408e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetFloatParam(key, defaultValue)); 3409e0857b17Sopenharmony_ci} 3410e0857b17Sopenharmony_ci 3411e0857b17Sopenharmony_ci/** 3412e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_FloatParam_0300 3413e0857b17Sopenharmony_ci * @tc.name: SetParam/GetFloatParam 3414e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, but get param of another nonexistent key. 3415e0857b17Sopenharmony_ci */ 3416e0857b17Sopenharmony_ciHWTEST_F(WantFloatParamTest, AaFwk_Want_FloatParam_0300, Function | MediumTest | Level1) 3417e0857b17Sopenharmony_ci{ 3418e0857b17Sopenharmony_ci std::string setKey1 = "ee"; 3419e0857b17Sopenharmony_ci std::string setKey2 = "aa"; 3420e0857b17Sopenharmony_ci float setValue1 = 1.1; 3421e0857b17Sopenharmony_ci float setValue2 = 5.1; 3422e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3423e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3424e0857b17Sopenharmony_ci setValue1 = 2.1; 3425e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3426e0857b17Sopenharmony_ci setValue1 = 3.1; 3427e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetFloatParam(setKey2, setValue1)); 3428e0857b17Sopenharmony_ci setValue1 = 4.1; 3429e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3430e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetFloatParam(setKey1, setValue2)); 3431e0857b17Sopenharmony_ci} 3432e0857b17Sopenharmony_ci 3433e0857b17Sopenharmony_ci/** 3434e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_FloatParam_0400 3435e0857b17Sopenharmony_ci * @tc.name: SetParam/GetFloatParam 3436e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, but get param of another nonexistent key. 3437e0857b17Sopenharmony_ci */ 3438e0857b17Sopenharmony_ciHWTEST_F(WantFloatParamTest, AaFwk_Want_FloatParam_0400, Function | MediumTest | Level1) 3439e0857b17Sopenharmony_ci{ 3440e0857b17Sopenharmony_ci std::string setKey1 = "%1uH3"; 3441e0857b17Sopenharmony_ci std::string setKey2 = "aa"; 3442e0857b17Sopenharmony_ci float setValue1 = -1.1; 3443e0857b17Sopenharmony_ci float setValue2 = 9.1; 3444e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3445e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3446e0857b17Sopenharmony_ci setValue1 = 0.1; 3447e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3448e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetFloatParam(setKey1, setValue2)); 3449e0857b17Sopenharmony_ci setValue1 = 4.1; 3450e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3451e0857b17Sopenharmony_ci setValue1 = -10.1; 3452e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetFloatParam(setKey2, setValue1)); 3453e0857b17Sopenharmony_ci} 3454e0857b17Sopenharmony_ci 3455e0857b17Sopenharmony_ciusing testDoubleType = std::tuple<std::string, std::string, double, double, double>; 3456e0857b17Sopenharmony_ciclass WantDoubleParamTest : public testing::TestWithParam<testDoubleType> { 3457e0857b17Sopenharmony_cipublic: 3458e0857b17Sopenharmony_ci WantDoubleParamTest() 3459e0857b17Sopenharmony_ci { 3460e0857b17Sopenharmony_ci want_ = nullptr; 3461e0857b17Sopenharmony_ci } 3462e0857b17Sopenharmony_ci ~WantDoubleParamTest() 3463e0857b17Sopenharmony_ci { 3464e0857b17Sopenharmony_ci want_ = nullptr; 3465e0857b17Sopenharmony_ci } 3466e0857b17Sopenharmony_ci static void SetUpTestCase(void); 3467e0857b17Sopenharmony_ci static void TearDownTestCase(void); 3468e0857b17Sopenharmony_ci void SetUp(); 3469e0857b17Sopenharmony_ci void TearDown(); 3470e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 3471e0857b17Sopenharmony_ci}; 3472e0857b17Sopenharmony_ci 3473e0857b17Sopenharmony_civoid WantDoubleParamTest::SetUpTestCase(void) 3474e0857b17Sopenharmony_ci{} 3475e0857b17Sopenharmony_ci 3476e0857b17Sopenharmony_civoid WantDoubleParamTest::TearDownTestCase(void) 3477e0857b17Sopenharmony_ci{} 3478e0857b17Sopenharmony_ci 3479e0857b17Sopenharmony_civoid WantDoubleParamTest::SetUp(void) 3480e0857b17Sopenharmony_ci{ 3481e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 3482e0857b17Sopenharmony_ci} 3483e0857b17Sopenharmony_ci 3484e0857b17Sopenharmony_civoid WantDoubleParamTest::TearDown(void) 3485e0857b17Sopenharmony_ci{} 3486e0857b17Sopenharmony_ci 3487e0857b17Sopenharmony_ci/** 3488e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_DoubleParam_0100 3489e0857b17Sopenharmony_ci * @tc.name: SetParam/GetDoubleParam 3490e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 3491e0857b17Sopenharmony_ci */ 3492e0857b17Sopenharmony_ciHWTEST_P(WantDoubleParamTest, AaFwk_Want_DoubleParam_0100, Function | MediumTest | Level1) 3493e0857b17Sopenharmony_ci{ 3494e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 3495e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 3496e0857b17Sopenharmony_ci double setValue = std::get<2>(GetParam()); 3497e0857b17Sopenharmony_ci double defaultValue = std::get<3>(GetParam()); 3498e0857b17Sopenharmony_ci double result = std::get<4>(GetParam()); 3499e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 3500e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetDoubleParam(getKey, defaultValue)); 3501e0857b17Sopenharmony_ci} 3502e0857b17Sopenharmony_ci 3503e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantDoubleParamTestCaseP, WantDoubleParamTest, 3504e0857b17Sopenharmony_ci testing::Values(testDoubleType("", "aa", -1.1, 100.1, 100.1), testDoubleType("", "", -9.1, -41.1, -9.1), 3505e0857b17Sopenharmony_ci testDoubleType("1*中_aR", "aa", 50.1, 5.1, 5.1), 3506e0857b17Sopenharmony_ci testDoubleType("1*中_aR", "1*中_aR", -5000.1, 5000.1, -5000.1))); 3507e0857b17Sopenharmony_ci 3508e0857b17Sopenharmony_ci/** 3509e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_DoubleParam_0300 3510e0857b17Sopenharmony_ci * @tc.name: SetParam & GetDoubleParam 3511e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, but get param of another nonexistent key. 3512e0857b17Sopenharmony_ci */ 3513e0857b17Sopenharmony_ciHWTEST_F(WantDoubleParamTest, AaFwk_Want_DoubleParam_0300, Function | MediumTest | Level1) 3514e0857b17Sopenharmony_ci{ 3515e0857b17Sopenharmony_ci double defaultValue = 100.1; 3516e0857b17Sopenharmony_ci std::string key = "aa"; 3517e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetDoubleParam(key, defaultValue)); 3518e0857b17Sopenharmony_ci} 3519e0857b17Sopenharmony_ci 3520e0857b17Sopenharmony_ci/** 3521e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_DoubleParam_0400 3522e0857b17Sopenharmony_ci * @tc.name: SetParam & GetDoubleParam 3523e0857b17Sopenharmony_ci * @tc.desc: set empty-string key repeatedly, then get param of the key. 3524e0857b17Sopenharmony_ci */ 3525e0857b17Sopenharmony_ciHWTEST_F(WantDoubleParamTest, AaFwk_Want_DoubleParam_0400, Function | MediumTest | Level1) 3526e0857b17Sopenharmony_ci{ 3527e0857b17Sopenharmony_ci std::string setKey1 = "ff"; 3528e0857b17Sopenharmony_ci std::string setKey2 = "aa"; 3529e0857b17Sopenharmony_ci double setValue1 = 1.1; 3530e0857b17Sopenharmony_ci double setValue2 = 5.1; 3531e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3532e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3533e0857b17Sopenharmony_ci setValue1 = 2.1; 3534e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3535e0857b17Sopenharmony_ci setValue1 = 3.1; 3536e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetDoubleParam(setKey2, setValue1)); 3537e0857b17Sopenharmony_ci setValue1 = 4.1; 3538e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3539e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetDoubleParam(setKey1, setValue2)); 3540e0857b17Sopenharmony_ci} 3541e0857b17Sopenharmony_ci 3542e0857b17Sopenharmony_ci/** 3543e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ByteArray_0100 3544e0857b17Sopenharmony_ci * @tc.name: SetParam/GetByteArrayParam 3545e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 3546e0857b17Sopenharmony_ci */ 3547e0857b17Sopenharmony_ciHWTEST_F(WantDoubleParamTest, AaFwk_Want_ByteArray_0100, Function | MediumTest | Level1) 3548e0857b17Sopenharmony_ci{ 3549e0857b17Sopenharmony_ci std::string setKey1 = "%1uH3"; 3550e0857b17Sopenharmony_ci std::string setKey2 = "aa"; 3551e0857b17Sopenharmony_ci double setValue1 = -1.1; 3552e0857b17Sopenharmony_ci double setValue2 = 9.1; 3553e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3554e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3555e0857b17Sopenharmony_ci setValue1 = 0.1; 3556e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3557e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetDoubleParam(setKey1, setValue2)); 3558e0857b17Sopenharmony_ci setValue1 = 4.1; 3559e0857b17Sopenharmony_ci want_->SetParam(setKey1, setValue1); 3560e0857b17Sopenharmony_ci setValue1 = -10.1; 3561e0857b17Sopenharmony_ci EXPECT_EQ(setValue1, want_->GetDoubleParam(setKey2, setValue1)); 3562e0857b17Sopenharmony_ci} 3563e0857b17Sopenharmony_ci 3564e0857b17Sopenharmony_ciusing testByteArrayType = std::tuple<std::string, std::string, std::vector<byte>, std::vector<byte>, std::vector<byte>>; 3565e0857b17Sopenharmony_ciclass WantByteArrayParamTest : public testing::TestWithParam<testByteArrayType> { 3566e0857b17Sopenharmony_cipublic: 3567e0857b17Sopenharmony_ci WantByteArrayParamTest() 3568e0857b17Sopenharmony_ci { 3569e0857b17Sopenharmony_ci want_ = nullptr; 3570e0857b17Sopenharmony_ci } 3571e0857b17Sopenharmony_ci ~WantByteArrayParamTest() 3572e0857b17Sopenharmony_ci { 3573e0857b17Sopenharmony_ci want_ = nullptr; 3574e0857b17Sopenharmony_ci } 3575e0857b17Sopenharmony_ci static void SetUpTestCase(void); 3576e0857b17Sopenharmony_ci static void TearDownTestCase(void); 3577e0857b17Sopenharmony_ci void SetUp(); 3578e0857b17Sopenharmony_ci void TearDown(); 3579e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 3580e0857b17Sopenharmony_ci}; 3581e0857b17Sopenharmony_ci 3582e0857b17Sopenharmony_civoid WantByteArrayParamTest::SetUpTestCase(void) 3583e0857b17Sopenharmony_ci{} 3584e0857b17Sopenharmony_ci 3585e0857b17Sopenharmony_civoid WantByteArrayParamTest::TearDownTestCase(void) 3586e0857b17Sopenharmony_ci{} 3587e0857b17Sopenharmony_ci 3588e0857b17Sopenharmony_civoid WantByteArrayParamTest::SetUp(void) 3589e0857b17Sopenharmony_ci{ 3590e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 3591e0857b17Sopenharmony_ci} 3592e0857b17Sopenharmony_ci 3593e0857b17Sopenharmony_civoid WantByteArrayParamTest::TearDown(void) 3594e0857b17Sopenharmony_ci{} 3595e0857b17Sopenharmony_ci 3596e0857b17Sopenharmony_ci/** 3597e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ByteArray_0100 3598e0857b17Sopenharmony_ci * @tc.name: SetParam/GetByteArrayParam 3599e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 3600e0857b17Sopenharmony_ci */ 3601e0857b17Sopenharmony_ciHWTEST_P(WantByteArrayParamTest, AaFwk_Want_ByteArray_0100, Function | MediumTest | Level1) 3602e0857b17Sopenharmony_ci{ 3603e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 3604e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 3605e0857b17Sopenharmony_ci std::vector<byte> setValue = std::get<2>(GetParam()); 3606e0857b17Sopenharmony_ci std::vector<byte> defaultValue = std::get<3>(GetParam()); 3607e0857b17Sopenharmony_ci std::vector<byte> result = std::get<4>(GetParam()); 3608e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 3609e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetByteArrayParam(getKey)); 3610e0857b17Sopenharmony_ci} 3611e0857b17Sopenharmony_ci 3612e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantByteArrayParamTestCaseP, WantByteArrayParamTest, 3613e0857b17Sopenharmony_ci testing::Values(testByteArrayType("", "aa", {'*', 'D'}, {}, {}), 3614e0857b17Sopenharmony_ci testByteArrayType("", "", {'%', ')'}, {}, {'%', ')'}), testByteArrayType("1*中_aR", "aa", {'R', '.'}, {}, {}), 3615e0857b17Sopenharmony_ci testByteArrayType("1*中_aR", "1*中_aR", {'R', 'b'}, {}, {'R', 'b'}))); 3616e0857b17Sopenharmony_ci 3617e0857b17Sopenharmony_ci/** 3618e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ByteArray_0200 3619e0857b17Sopenharmony_ci * @tc.name: SetParam/GetByteArrayParam 3620e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is byte array. 3621e0857b17Sopenharmony_ci */ 3622e0857b17Sopenharmony_ciHWTEST_F(WantByteArrayParamTest, AaFwk_Want_ByteArray_0200, Function | MediumTest | Level1) 3623e0857b17Sopenharmony_ci{ 3624e0857b17Sopenharmony_ci std::vector<byte> defaultValue; 3625e0857b17Sopenharmony_ci std::string getKey("aa"); 3626e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetByteArrayParam(getKey)); 3627e0857b17Sopenharmony_ci} 3628e0857b17Sopenharmony_ci 3629e0857b17Sopenharmony_ci/** 3630e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ByteArray_0300 3631e0857b17Sopenharmony_ci * @tc.name: SetParam/GetByteArrayParam 3632e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is byte array. 3633e0857b17Sopenharmony_ci */ 3634e0857b17Sopenharmony_ciHWTEST_F(WantByteArrayParamTest, AaFwk_Want_ByteArray_0300, Function | MediumTest | Level1) 3635e0857b17Sopenharmony_ci{ 3636e0857b17Sopenharmony_ci std::string emptyStr("gg"); 3637e0857b17Sopenharmony_ci std::vector<byte> firstValue({'a', '2'}); 3638e0857b17Sopenharmony_ci std::vector<byte> secondValue({'1', 'd'}); 3639e0857b17Sopenharmony_ci std::vector<byte> thirdValue({'t', '3'}); 3640e0857b17Sopenharmony_ci std::string keyStr("aa"); 3641e0857b17Sopenharmony_ci want_->SetParam(emptyStr, firstValue); 3642e0857b17Sopenharmony_ci want_->SetParam(emptyStr, firstValue); 3643e0857b17Sopenharmony_ci want_->SetParam(emptyStr, secondValue); 3644e0857b17Sopenharmony_ci std::vector<byte> defaultValue; 3645e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetByteArrayParam(keyStr)); 3646e0857b17Sopenharmony_ci want_->SetParam(emptyStr, thirdValue); 3647e0857b17Sopenharmony_ci EXPECT_EQ(thirdValue, want_->GetByteArrayParam(emptyStr)); 3648e0857b17Sopenharmony_ci} 3649e0857b17Sopenharmony_ci 3650e0857b17Sopenharmony_ci/** 3651e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ByteArray_0400 3652e0857b17Sopenharmony_ci * @tc.name: SetParam/GetByteArrayParam 3653e0857b17Sopenharmony_ci * @tc.desc: Verify when the value is byte array. 3654e0857b17Sopenharmony_ci */ 3655e0857b17Sopenharmony_ciHWTEST_F(WantByteArrayParamTest, AaFwk_Want_ByteArray_0400, Function | MediumTest | Level1) 3656e0857b17Sopenharmony_ci{ 3657e0857b17Sopenharmony_ci std::string firstKey("%1uH3"); 3658e0857b17Sopenharmony_ci std::vector<byte> firstValue({'a', '2'}); 3659e0857b17Sopenharmony_ci std::vector<byte> secondValue({'w', '$'}); 3660e0857b17Sopenharmony_ci std::vector<byte> defaultValue; 3661e0857b17Sopenharmony_ci std::string secondKey("aa"); 3662e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 3663e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 3664e0857b17Sopenharmony_ci want_->SetParam(firstKey, secondValue); 3665e0857b17Sopenharmony_ci EXPECT_EQ(secondValue, want_->GetByteArrayParam(firstKey)); 3666e0857b17Sopenharmony_ci want_->SetParam(firstKey, firstValue); 3667e0857b17Sopenharmony_ci EXPECT_EQ(defaultValue, want_->GetByteArrayParam(secondKey)); 3668e0857b17Sopenharmony_ci} 3669e0857b17Sopenharmony_ci 3670e0857b17Sopenharmony_ciusing testBoolType = std::tuple<std::string, std::string, bool, bool, bool>; 3671e0857b17Sopenharmony_ciclass WantBoolParamTest : public testing::TestWithParam<testBoolType> { 3672e0857b17Sopenharmony_cipublic: 3673e0857b17Sopenharmony_ci WantBoolParamTest() 3674e0857b17Sopenharmony_ci { 3675e0857b17Sopenharmony_ci want_ = nullptr; 3676e0857b17Sopenharmony_ci } 3677e0857b17Sopenharmony_ci ~WantBoolParamTest() 3678e0857b17Sopenharmony_ci { 3679e0857b17Sopenharmony_ci want_ = nullptr; 3680e0857b17Sopenharmony_ci } 3681e0857b17Sopenharmony_ci static void SetUpTestCase(void); 3682e0857b17Sopenharmony_ci static void TearDownTestCase(void); 3683e0857b17Sopenharmony_ci void SetUp(); 3684e0857b17Sopenharmony_ci void TearDown(); 3685e0857b17Sopenharmony_ci std::shared_ptr<Want> want_; 3686e0857b17Sopenharmony_ci}; 3687e0857b17Sopenharmony_ci 3688e0857b17Sopenharmony_civoid WantBoolParamTest::SetUpTestCase(void) 3689e0857b17Sopenharmony_ci{} 3690e0857b17Sopenharmony_ci 3691e0857b17Sopenharmony_civoid WantBoolParamTest::TearDownTestCase(void) 3692e0857b17Sopenharmony_ci{} 3693e0857b17Sopenharmony_ci 3694e0857b17Sopenharmony_civoid WantBoolParamTest::SetUp(void) 3695e0857b17Sopenharmony_ci{ 3696e0857b17Sopenharmony_ci want_ = std::make_shared<Want>(); 3697e0857b17Sopenharmony_ci} 3698e0857b17Sopenharmony_ci 3699e0857b17Sopenharmony_civoid WantBoolParamTest::TearDown(void) 3700e0857b17Sopenharmony_ci{} 3701e0857b17Sopenharmony_ci 3702e0857b17Sopenharmony_ci/** 3703e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_BoolParam_0100 3704e0857b17Sopenharmony_ci * @tc.name: SetParam/GetBoolParam 3705e0857b17Sopenharmony_ci * @tc.desc: Verify when parameter change. 3706e0857b17Sopenharmony_ci */ 3707e0857b17Sopenharmony_ciHWTEST_P(WantBoolParamTest, AaFwk_Want_BoolParam_0100, Function | MediumTest | Level1) 3708e0857b17Sopenharmony_ci{ 3709e0857b17Sopenharmony_ci std::string setKey = std::get<0>(GetParam()); 3710e0857b17Sopenharmony_ci std::string getKey = std::get<1>(GetParam()); 3711e0857b17Sopenharmony_ci bool setValue = std::get<2>(GetParam()); 3712e0857b17Sopenharmony_ci bool defaultValue = std::get<3>(GetParam()); 3713e0857b17Sopenharmony_ci bool result = std::get<4>(GetParam()); 3714e0857b17Sopenharmony_ci want_->SetParam(setKey, setValue); 3715e0857b17Sopenharmony_ci EXPECT_EQ(result, want_->GetBoolParam(getKey, defaultValue)); 3716e0857b17Sopenharmony_ci} 3717e0857b17Sopenharmony_ci 3718e0857b17Sopenharmony_ciINSTANTIATE_TEST_SUITE_P(WantBoolParamTestCaseP, WantBoolParamTest, 3719e0857b17Sopenharmony_ci testing::Values(testBoolType("b1", "aa", true, true, true), testBoolType("b1", "aa", true, false, false), 3720e0857b17Sopenharmony_ci testBoolType("b2", "b2", true, true, true), testBoolType("b3", "b3", true, false, true), 3721e0857b17Sopenharmony_ci testBoolType("123", "123", true, false, true), testBoolType("123", "aa", true, false, false), 3722e0857b17Sopenharmony_ci testBoolType("-~*&%¥", "-~*&%¥", true, false, true), testBoolType("-~*&%¥", "aa", true, false, false), 3723e0857b17Sopenharmony_ci testBoolType("中文", "中文", true, false, true), testBoolType("中文", "aa", true, false, false), 3724e0857b17Sopenharmony_ci testBoolType("_中文ddPEJKJ#(&*~#^%", "_中文ddPEJKJ#(&*~#^%", true, false, true), 3725e0857b17Sopenharmony_ci testBoolType("_中文ddPEJKJ#(&*~#^%", "123", true, false, false))); 3726e0857b17Sopenharmony_ci 3727e0857b17Sopenharmony_ci/** 3728e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_BoolParam_0200 3729e0857b17Sopenharmony_ci * @tc.name: SetParam/GetBoolParam 3730e0857b17Sopenharmony_ci * @tc.desc: Verify when set twice and get twice. 3731e0857b17Sopenharmony_ci */ 3732e0857b17Sopenharmony_ciHWTEST_F(WantBoolParamTest, AaFwk_Want_BoolParam_0200, Function | MediumTest | Level1) 3733e0857b17Sopenharmony_ci{ 3734e0857b17Sopenharmony_ci std::string firstKey("_中文ddPEJKJ#(&*~#^%"); 3735e0857b17Sopenharmony_ci std::string secondKey("key33"); 3736e0857b17Sopenharmony_ci want_->SetParam(firstKey, true); 3737e0857b17Sopenharmony_ci want_->SetParam(secondKey, true); 3738e0857b17Sopenharmony_ci EXPECT_EQ(true, want_->GetBoolParam(firstKey, false)); 3739e0857b17Sopenharmony_ci EXPECT_EQ(true, want_->GetBoolParam(secondKey, false)); 3740e0857b17Sopenharmony_ci} 3741e0857b17Sopenharmony_ci 3742e0857b17Sopenharmony_ci/** 3743e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_BoolParam_0300 3744e0857b17Sopenharmony_ci * @tc.name: SetParam/GetBoolParam 3745e0857b17Sopenharmony_ci * @tc.desc: Verify when set 20 times, and get once. 3746e0857b17Sopenharmony_ci */ 3747e0857b17Sopenharmony_ciHWTEST_F(WantBoolParamTest, AaFwk_Want_BoolParam_0300, Function | MediumTest | Level1) 3748e0857b17Sopenharmony_ci{ 3749e0857b17Sopenharmony_ci std::string keyStr("_中文ddPEJKJ#(&*~#^%"); 3750e0857b17Sopenharmony_ci for (int i = 0; i < 20; i++) { 3751e0857b17Sopenharmony_ci want_->SetParam(keyStr, true); 3752e0857b17Sopenharmony_ci } 3753e0857b17Sopenharmony_ci EXPECT_EQ(true, want_->GetBoolParam(keyStr, false)); 3754e0857b17Sopenharmony_ci} 3755e0857b17Sopenharmony_ci 3756e0857b17Sopenharmony_ci/** 3757e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Want_0100 3758e0857b17Sopenharmony_ci * @tc.name: Want() and Want(want) 3759e0857b17Sopenharmony_ci * @tc.desc: Verify Want() 3760e0857b17Sopenharmony_ci */ 3761e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Want_0100, Function | MediumTest | Level1) 3762e0857b17Sopenharmony_ci{ 3763e0857b17Sopenharmony_ci Want want; 3764e0857b17Sopenharmony_ci 3765e0857b17Sopenharmony_ci EXPECT_EQ((uint)0, want.GetFlags()); 3766e0857b17Sopenharmony_ci EXPECT_EQ(std::string(""), want.GetAction()); 3767e0857b17Sopenharmony_ci 3768e0857b17Sopenharmony_ci std::vector<std::string> vect = want.GetEntities(); 3769e0857b17Sopenharmony_ci EXPECT_EQ((size_t)0, vect.size()); 3770e0857b17Sopenharmony_ci EXPECT_EQ(std::string(""), want.GetType()); 3771e0857b17Sopenharmony_ci 3772e0857b17Sopenharmony_ci want.SetFlags(10); 3773e0857b17Sopenharmony_ci want.SetAction("system.Action.test"); 3774e0857b17Sopenharmony_ci want.AddEntity("system.Entity.test"); 3775e0857b17Sopenharmony_ci want.SetType("system.Type.test"); 3776e0857b17Sopenharmony_ci 3777e0857b17Sopenharmony_ci Want want2(want); 3778e0857b17Sopenharmony_ci EXPECT_EQ("system.Action.test", want2.GetAction()); 3779e0857b17Sopenharmony_ci EXPECT_EQ(true, want2.HasEntity("system.Entity.test")); 3780e0857b17Sopenharmony_ci EXPECT_EQ("system.Type.test", want2.GetType()); 3781e0857b17Sopenharmony_ci} 3782e0857b17Sopenharmony_ci 3783e0857b17Sopenharmony_ci/** 3784e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_Entity_0100 3785e0857b17Sopenharmony_ci * @tc.name: [AddEntity or RemoveEntity] & HasEntity &CountEntities 3786e0857b17Sopenharmony_ci * @tc.desc: Verify [AddEntity or RemoveEntity] & HasEntity &CountEntities 3787e0857b17Sopenharmony_ci */ 3788e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_Entity_0100, Function | MediumTest | Level1) 3789e0857b17Sopenharmony_ci{ 3790e0857b17Sopenharmony_ci std::string entity1 = "entity.system.entity1"; 3791e0857b17Sopenharmony_ci 3792e0857b17Sopenharmony_ci want_->AddEntity(entity1); 3793e0857b17Sopenharmony_ci 3794e0857b17Sopenharmony_ci EXPECT_EQ(true, want_->HasEntity(entity1)); 3795e0857b17Sopenharmony_ci EXPECT_EQ(1, want_->CountEntities()); 3796e0857b17Sopenharmony_ci want_->RemoveEntity(entity1); 3797e0857b17Sopenharmony_ci EXPECT_EQ(false, want_->HasEntity(entity1)); 3798e0857b17Sopenharmony_ci EXPECT_EQ(0, want_->CountEntities()); 3799e0857b17Sopenharmony_ci int length = want_->GetEntities().size(); 3800e0857b17Sopenharmony_ci EXPECT_EQ(0, length); 3801e0857b17Sopenharmony_ci 3802e0857b17Sopenharmony_ci std::string entity2 = "entity.system.entity2"; 3803e0857b17Sopenharmony_ci 3804e0857b17Sopenharmony_ci want_->AddEntity(entity1); 3805e0857b17Sopenharmony_ci want_->AddEntity(entity2); 3806e0857b17Sopenharmony_ci 3807e0857b17Sopenharmony_ci EXPECT_EQ(true, want_->HasEntity(entity1)); 3808e0857b17Sopenharmony_ci EXPECT_EQ(2, want_->CountEntities()); 3809e0857b17Sopenharmony_ci EXPECT_EQ(true, want_->HasEntity(entity2)); 3810e0857b17Sopenharmony_ci EXPECT_EQ(2, want_->CountEntities()); 3811e0857b17Sopenharmony_ci 3812e0857b17Sopenharmony_ci want_->RemoveEntity(entity1); 3813e0857b17Sopenharmony_ci want_->RemoveEntity(entity2); 3814e0857b17Sopenharmony_ci EXPECT_EQ(0, want_->CountEntities()); 3815e0857b17Sopenharmony_ci int length2 = want_->GetEntities().size(); 3816e0857b17Sopenharmony_ci 3817e0857b17Sopenharmony_ci EXPECT_EQ(0, length2); 3818e0857b17Sopenharmony_ci} 3819e0857b17Sopenharmony_ci 3820e0857b17Sopenharmony_ci/** 3821e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_HasParameter_0100 3822e0857b17Sopenharmony_ci * @tc.name: SetParam and HasParameter 3823e0857b17Sopenharmony_ci * @tc.desc: Verify HasParameter() 3824e0857b17Sopenharmony_ci */ 3825e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_HasParameter_0100, Function | MediumTest | Level1) 3826e0857b17Sopenharmony_ci{ 3827e0857b17Sopenharmony_ci std::vector<std::string> vector; 3828e0857b17Sopenharmony_ci std::string key = "system.want.test.key"; 3829e0857b17Sopenharmony_ci std::string key2 = "system.want.test.key2"; 3830e0857b17Sopenharmony_ci 3831e0857b17Sopenharmony_ci vector.push_back("system.want.test.content"); 3832e0857b17Sopenharmony_ci want_->SetParam(key, vector); 3833e0857b17Sopenharmony_ci EXPECT_EQ(true, want_->HasParameter(key)); 3834e0857b17Sopenharmony_ci 3835e0857b17Sopenharmony_ci want_->SetParam(key2, vector); 3836e0857b17Sopenharmony_ci EXPECT_EQ(true, want_->HasParameter(key2)); 3837e0857b17Sopenharmony_ci} 3838e0857b17Sopenharmony_ci/** 3839e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_HasParameter_0200 3840e0857b17Sopenharmony_ci * @tc.name: SetParam and HasParameter 3841e0857b17Sopenharmony_ci * @tc.desc: Verify HasParameter() 3842e0857b17Sopenharmony_ci */ 3843e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_HasParameter_0200, Function | MediumTest | Level1) 3844e0857b17Sopenharmony_ci{ 3845e0857b17Sopenharmony_ci std::string key = std::to_string(Array::SIGNATURE) + ".#Intent;key=3{\"\\b\\\";end"; 3846e0857b17Sopenharmony_ci std::vector<zchar> arrayValue = {'.', '=', ';'}; 3847e0857b17Sopenharmony_ci std::shared_ptr<Want> p1 = std::make_shared<Want>(); 3848e0857b17Sopenharmony_ci if (p1 == nullptr) { 3849e0857b17Sopenharmony_ci return; 3850e0857b17Sopenharmony_ci } 3851e0857b17Sopenharmony_ci p1->SetParam(key, arrayValue); 3852e0857b17Sopenharmony_ci Want *newWant = nullptr; 3853e0857b17Sopenharmony_ci newWant = Want::ParseUri(p1->ToUri()); 3854e0857b17Sopenharmony_ci if (newWant == nullptr) { 3855e0857b17Sopenharmony_ci return; 3856e0857b17Sopenharmony_ci } 3857e0857b17Sopenharmony_ci std::shared_ptr<Want> p2(newWant); 3858e0857b17Sopenharmony_ci // want has default param which key is "moduleName" 3859e0857b17Sopenharmony_ci std::string moduleKey = "moduleName"; 3860e0857b17Sopenharmony_ci std::string moduleValue = "wantTest"; 3861e0857b17Sopenharmony_ci p1->SetParam(moduleKey, moduleValue); 3862e0857b17Sopenharmony_ci CompareWant(p1, p2); 3863e0857b17Sopenharmony_ci} 3864e0857b17Sopenharmony_ci/** 3865e0857b17Sopenharmony_ci * @tc.number: AaFwk_Want_ToString_0100 3866e0857b17Sopenharmony_ci * @tc.name: ToString and FromString 3867e0857b17Sopenharmony_ci * @tc.desc: Verify FromString() 3868e0857b17Sopenharmony_ci */ 3869e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, AaFwk_Want_ToString_0100, Function | MediumTest | Level1) 3870e0857b17Sopenharmony_ci{ 3871e0857b17Sopenharmony_ci std::string deviceId = "deviceId"; 3872e0857b17Sopenharmony_ci std::string bundleName = "bundleName"; 3873e0857b17Sopenharmony_ci std::string abilityName ="abilityName"; 3874e0857b17Sopenharmony_ci std::string uri = "url"; 3875e0857b17Sopenharmony_ci std::string type = "type"; 3876e0857b17Sopenharmony_ci unsigned int flags = 1; 3877e0857b17Sopenharmony_ci std::string action = "action"; 3878e0857b17Sopenharmony_ci WantParams parameters; 3879e0857b17Sopenharmony_ci std::vector<std::string> entities = {"entity.system.entity1", "entity.system.entity2"}; 3880e0857b17Sopenharmony_ci 3881e0857b17Sopenharmony_ci std::string keyBool = "key_bool"; 3882e0857b17Sopenharmony_ci bool valueBool = true; 3883e0857b17Sopenharmony_ci parameters.SetParam(keyBool, Boolean::Box(valueBool)); 3884e0857b17Sopenharmony_ci 3885e0857b17Sopenharmony_ci std::string keyStr = "key_string"; 3886e0857b17Sopenharmony_ci std::string valueString = "123"; 3887e0857b17Sopenharmony_ci parameters.SetParam(keyStr, String::Box(valueString)); 3888e0857b17Sopenharmony_ci 3889e0857b17Sopenharmony_ci std::string keyInt = "key_int"; 3890e0857b17Sopenharmony_ci int valueInt = 111; 3891e0857b17Sopenharmony_ci parameters.SetParam(keyStr, Integer::Box(valueInt)); 3892e0857b17Sopenharmony_ci 3893e0857b17Sopenharmony_ci std::shared_ptr<Want> want1 = std::make_shared<Want>(); 3894e0857b17Sopenharmony_ci if (want1 == nullptr) { 3895e0857b17Sopenharmony_ci return; 3896e0857b17Sopenharmony_ci } 3897e0857b17Sopenharmony_ci want1->SetElementName(deviceId, bundleName, abilityName); 3898e0857b17Sopenharmony_ci want1->SetUri(uri); 3899e0857b17Sopenharmony_ci want1->SetType(type); 3900e0857b17Sopenharmony_ci want1->SetFlags(flags); 3901e0857b17Sopenharmony_ci want1->SetAction(action); 3902e0857b17Sopenharmony_ci Uri urivalue(""); 3903e0857b17Sopenharmony_ci want1->SetUriAndType(urivalue, keyInt); 3904e0857b17Sopenharmony_ci want1->FormatUri(urivalue); 3905e0857b17Sopenharmony_ci want1->FormatUri(keyInt); 3906e0857b17Sopenharmony_ci want1->FormatType(keyInt); 3907e0857b17Sopenharmony_ci want1->FormatUriAndType(urivalue, keyInt); 3908e0857b17Sopenharmony_ci want1->CloneOperation(); 3909e0857b17Sopenharmony_ci for (auto entity : entities) { 3910e0857b17Sopenharmony_ci want1->AddEntity(entity); 3911e0857b17Sopenharmony_ci } 3912e0857b17Sopenharmony_ci 3913e0857b17Sopenharmony_ci std::string jsonString = want1->ToString(); 3914e0857b17Sopenharmony_ci Want *newWant = Want::FromString(jsonString); 3915e0857b17Sopenharmony_ci if (newWant == nullptr) { 3916e0857b17Sopenharmony_ci return; 3917e0857b17Sopenharmony_ci } 3918e0857b17Sopenharmony_ci std::shared_ptr<Want> want2(newWant); 3919e0857b17Sopenharmony_ci 3920e0857b17Sopenharmony_ci CompareWant(want1, want2); 3921e0857b17Sopenharmony_ci} 3922e0857b17Sopenharmony_ci 3923e0857b17Sopenharmony_ci/* 3924e0857b17Sopenharmony_ci * Feature: Array 3925e0857b17Sopenharmony_ci * Function: GetLength and GetType 3926e0857b17Sopenharmony_ci * SubFunction: NA 3927e0857b17Sopenharmony_ci * FunctionPoints: GetLength and GetType 3928e0857b17Sopenharmony_ci * EnvConditions: NA 3929e0857b17Sopenharmony_ci * CaseDescription: Verify GetLength and GetType method of Array. 3930e0857b17Sopenharmony_ci */ 3931e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, array_test_001, TestSize.Level1) 3932e0857b17Sopenharmony_ci{ 3933e0857b17Sopenharmony_ci sptr<Array> arrayObj = new Array(9, g_IID_IInteger); 3934e0857b17Sopenharmony_ci long size = 0; 3935e0857b17Sopenharmony_ci arrayObj->GetLength(size); 3936e0857b17Sopenharmony_ci EXPECT_EQ(size, 9); 3937e0857b17Sopenharmony_ci InterfaceID type; 3938e0857b17Sopenharmony_ci arrayObj->GetType(type); 3939e0857b17Sopenharmony_ci EXPECT_EQ(type, g_IID_IInteger); 3940e0857b17Sopenharmony_ci} 3941e0857b17Sopenharmony_ci 3942e0857b17Sopenharmony_ci/* 3943e0857b17Sopenharmony_ci * Feature: Array 3944e0857b17Sopenharmony_ci * Function: Get and Set 3945e0857b17Sopenharmony_ci * SubFunction: NA 3946e0857b17Sopenharmony_ci * FunctionPoints: Get and Set 3947e0857b17Sopenharmony_ci * EnvConditions: NA 3948e0857b17Sopenharmony_ci * CaseDescription: Verify Get and Set method of Array. 3949e0857b17Sopenharmony_ci */ 3950e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, array_test_002, TestSize.Level1) 3951e0857b17Sopenharmony_ci{ 3952e0857b17Sopenharmony_ci sptr<Array> arrayObj = new Array(19, g_IID_IInteger); 3953e0857b17Sopenharmony_ci arrayObj->Set(0, Integer::Box(23)); 3954e0857b17Sopenharmony_ci sptr<IInterface> valueObj; 3955e0857b17Sopenharmony_ci arrayObj->Get(0, valueObj); 3956e0857b17Sopenharmony_ci EXPECT_TRUE(valueObj != nullptr); 3957e0857b17Sopenharmony_ci EXPECT_EQ(Integer::Unbox(IInteger::Query(valueObj)), 23); 3958e0857b17Sopenharmony_ci arrayObj->Get(1, valueObj); 3959e0857b17Sopenharmony_ci EXPECT_TRUE(valueObj == nullptr); 3960e0857b17Sopenharmony_ci} 3961e0857b17Sopenharmony_ci 3962e0857b17Sopenharmony_ci/* 3963e0857b17Sopenharmony_ci * Feature: Array 3964e0857b17Sopenharmony_ci * Function: ToString 3965e0857b17Sopenharmony_ci * SubFunction: NA 3966e0857b17Sopenharmony_ci * FunctionPoints: ToString 3967e0857b17Sopenharmony_ci * EnvConditions: NA 3968e0857b17Sopenharmony_ci * CaseDescription: Verify ToString method of Array. 3969e0857b17Sopenharmony_ci */ 3970e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, array_test_003, TestSize.Level1) 3971e0857b17Sopenharmony_ci{ 3972e0857b17Sopenharmony_ci sptr<Array> arrayObj = new Array(5, g_IID_IInteger); 3973e0857b17Sopenharmony_ci arrayObj->Set(0, Integer::Box(2)); 3974e0857b17Sopenharmony_ci arrayObj->Set(1, Integer::Box(3)); 3975e0857b17Sopenharmony_ci arrayObj->Set(2, Integer::Box(5)); 3976e0857b17Sopenharmony_ci arrayObj->Set(3, Integer::Box(7)); 3977e0857b17Sopenharmony_ci arrayObj->Set(4, Integer::Box(11)); 3978e0857b17Sopenharmony_ci EXPECT_EQ(arrayObj->ToString(), std::string("I5{2,3,5,7,11}")); 3979e0857b17Sopenharmony_ci} 3980e0857b17Sopenharmony_ci 3981e0857b17Sopenharmony_ci/* 3982e0857b17Sopenharmony_ci * Feature: Array 3983e0857b17Sopenharmony_ci * Function: Parse 3984e0857b17Sopenharmony_ci * SubFunction: NA 3985e0857b17Sopenharmony_ci * FunctionPoints: Parse 3986e0857b17Sopenharmony_ci * EnvConditions: NA 3987e0857b17Sopenharmony_ci * CaseDescription: Verify Parse method of Array. 3988e0857b17Sopenharmony_ci */ 3989e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, array_test_004, TestSize.Level1) 3990e0857b17Sopenharmony_ci{ 3991e0857b17Sopenharmony_ci sptr<IArray> arrayObj = Array::Parse("I5{2,3,5,7,11}"); 3992e0857b17Sopenharmony_ci sptr<IInterface> valueObj; 3993e0857b17Sopenharmony_ci arrayObj->Get(0, valueObj); 3994e0857b17Sopenharmony_ci EXPECT_EQ(Integer::Unbox(IInteger::Query(valueObj)), 2); 3995e0857b17Sopenharmony_ci arrayObj->Get(1, valueObj); 3996e0857b17Sopenharmony_ci EXPECT_EQ(Integer::Unbox(IInteger::Query(valueObj)), 3); 3997e0857b17Sopenharmony_ci arrayObj->Get(2, valueObj); 3998e0857b17Sopenharmony_ci EXPECT_EQ(Integer::Unbox(IInteger::Query(valueObj)), 5); 3999e0857b17Sopenharmony_ci arrayObj->Get(3, valueObj); 4000e0857b17Sopenharmony_ci EXPECT_EQ(Integer::Unbox(IInteger::Query(valueObj)), 7); 4001e0857b17Sopenharmony_ci arrayObj->Get(4, valueObj); 4002e0857b17Sopenharmony_ci EXPECT_EQ(Integer::Unbox(IInteger::Query(valueObj)), 11); 4003e0857b17Sopenharmony_ci} 4004e0857b17Sopenharmony_ci 4005e0857b17Sopenharmony_ci/* 4006e0857b17Sopenharmony_ci * Feature: Array 4007e0857b17Sopenharmony_ci * Function: Equals 4008e0857b17Sopenharmony_ci * SubFunction: NA 4009e0857b17Sopenharmony_ci * FunctionPoints: Equals 4010e0857b17Sopenharmony_ci * EnvConditions: NA 4011e0857b17Sopenharmony_ci * CaseDescription: Verify Equals method of Array. 4012e0857b17Sopenharmony_ci */ 4013e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, array_test_005, TestSize.Level1) 4014e0857b17Sopenharmony_ci{ 4015e0857b17Sopenharmony_ci sptr<IArray> arrayObj1 = Array::Parse("I5{2,3,5,7,11}"); 4016e0857b17Sopenharmony_ci sptr<IArray> arrayObj2 = Array::Parse("I5{2,3,7,7,11}"); 4017e0857b17Sopenharmony_ci sptr<IArray> arrayObj3 = Array::Parse("I5{2,3,5,7,11}"); 4018e0857b17Sopenharmony_ci EXPECT_FALSE(Object::Equals(*(arrayObj1.GetRefPtr()), *(arrayObj2.GetRefPtr()))); 4019e0857b17Sopenharmony_ci EXPECT_TRUE(Object::Equals(*(arrayObj1.GetRefPtr()), *(arrayObj3.GetRefPtr()))); 4020e0857b17Sopenharmony_ci} 4021e0857b17Sopenharmony_ci 4022e0857b17Sopenharmony_ci/** 4023e0857b17Sopenharmony_ci * @tc.number: DumpInfo_test_001 4024e0857b17Sopenharmony_ci * @tc.name: DumpInfo 4025e0857b17Sopenharmony_ci * @tc.desc: Test the want function DumpInfo. 4026e0857b17Sopenharmony_ci */ 4027e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, DumpInfo_test_001, TestSize.Level1) 4028e0857b17Sopenharmony_ci{ 4029e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "AaFwk_Want_DumpInfo_0100 start"; 4030e0857b17Sopenharmony_ci 4031e0857b17Sopenharmony_ci Want want; 4032e0857b17Sopenharmony_ci int level = 1; 4033e0857b17Sopenharmony_ci want.operation_.entities_.push_back("a"); 4034e0857b17Sopenharmony_ci want.operation_.entities_.push_back("b"); 4035e0857b17Sopenharmony_ci want.DumpInfo(level); 4036e0857b17Sopenharmony_ci EXPECT_EQ(true, want.operation_.GetEntities().size() == 2); 4037e0857b17Sopenharmony_ci 4038e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "AaFwk_Want_DumpInfo_0100 end"; 4039e0857b17Sopenharmony_ci} 4040e0857b17Sopenharmony_ci 4041e0857b17Sopenharmony_ci/** 4042e0857b17Sopenharmony_ci * @tc.number: DupAllFd_test_001 4043e0857b17Sopenharmony_ci * @tc.name: DupAllFd 4044e0857b17Sopenharmony_ci * @tc.desc: Test the want function DupAllFd. 4045e0857b17Sopenharmony_ci */ 4046e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, DupAllFd_test_001, TestSize.Level1) 4047e0857b17Sopenharmony_ci{ 4048e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "DupAllFd_test_001 start"; 4049e0857b17Sopenharmony_ci 4050e0857b17Sopenharmony_ci Want want; 4051e0857b17Sopenharmony_ci want.operation_.entities_.push_back("a"); 4052e0857b17Sopenharmony_ci want.operation_.entities_.push_back("b"); 4053e0857b17Sopenharmony_ci want.DupAllFd(); 4054e0857b17Sopenharmony_ci EXPECT_EQ(true, want.operation_.GetEntities().size() == 2); 4055e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "DupAllFd_test_001 end"; 4056e0857b17Sopenharmony_ci} 4057e0857b17Sopenharmony_ci 4058e0857b17Sopenharmony_ci/** 4059e0857b17Sopenharmony_ci * @tc.number: SetEntities_test_001 4060e0857b17Sopenharmony_ci * @tc.name: SetEntities 4061e0857b17Sopenharmony_ci * @tc.desc: Test the want function SetEntities. 4062e0857b17Sopenharmony_ci */ 4063e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, SetEntities_test_001, TestSize.Level1) 4064e0857b17Sopenharmony_ci{ 4065e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "SetEntities_test_001 start"; 4066e0857b17Sopenharmony_ci 4067e0857b17Sopenharmony_ci Want want; 4068e0857b17Sopenharmony_ci want.operation_.entities_.push_back("a"); 4069e0857b17Sopenharmony_ci want.operation_.entities_.push_back("b"); 4070e0857b17Sopenharmony_ci std::vector<std::string> entities; 4071e0857b17Sopenharmony_ci want.SetEntities(entities); 4072e0857b17Sopenharmony_ci auto ret = want.operation_.GetEntities().size(); 4073e0857b17Sopenharmony_ci EXPECT_EQ(ret, 0); 4074e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "SetEntities_test_001 end"; 4075e0857b17Sopenharmony_ci} 4076e0857b17Sopenharmony_ci 4077e0857b17Sopenharmony_ci/** 4078e0857b17Sopenharmony_ci * @tc.number: SetElementModuleName_test_001 4079e0857b17Sopenharmony_ci * @tc.name: SetElementModuleName 4080e0857b17Sopenharmony_ci * @tc.desc: Test the want function SetElementModuleName. 4081e0857b17Sopenharmony_ci * @tc.require: issueI648W6 4082e0857b17Sopenharmony_ci */ 4083e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, SetElementModuleName_test_001, TestSize.Level1) 4084e0857b17Sopenharmony_ci{ 4085e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "SetElementModuleName_test_001 start"; 4086e0857b17Sopenharmony_ci 4087e0857b17Sopenharmony_ci std::shared_ptr<OHOS::AppExecFwk::ElementName> element = std::make_shared<OHOS::AppExecFwk::ElementName>(); 4088e0857b17Sopenharmony_ci ASSERT_NE(nullptr, element); 4089e0857b17Sopenharmony_ci const char *moduleName = "12345"; 4090e0857b17Sopenharmony_ci element->SetModuleName(moduleName); 4091e0857b17Sopenharmony_ci 4092e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "SetElementModuleName_test_001 end"; 4093e0857b17Sopenharmony_ci} 4094e0857b17Sopenharmony_ci 4095e0857b17Sopenharmony_ci/** 4096e0857b17Sopenharmony_ci * @tc.number: ParseURI_test_001 4097e0857b17Sopenharmony_ci * @tc.name: ParseURI 4098e0857b17Sopenharmony_ci * @tc.desc: Test the want function ParseURI. 4099e0857b17Sopenharmony_ci * @tc.require: issueI648W6 4100e0857b17Sopenharmony_ci */ 4101e0857b17Sopenharmony_ciHWTEST_F(WantBaseTest, ParseURI_test_001, TestSize.Level1) 4102e0857b17Sopenharmony_ci{ 4103e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "ParseURI_test_001 start"; 4104e0857b17Sopenharmony_ci 4105e0857b17Sopenharmony_ci OHOS::AppExecFwk::ElementName element; 4106e0857b17Sopenharmony_ci std::string uri = "#Intent;action;end"; 4107e0857b17Sopenharmony_ci bool result = element.ParseURI(uri); 4108e0857b17Sopenharmony_ci EXPECT_EQ(result, false); 4109e0857b17Sopenharmony_ci const char *deviceId = "12345"; 4110e0857b17Sopenharmony_ci const char *bundleName = "NAME"; 4111e0857b17Sopenharmony_ci const char *abilityName = "abilityName"; 4112e0857b17Sopenharmony_ci const char *moduleName = "moduleName"; 4113e0857b17Sopenharmony_ci ElementName *elementName = new (std::nothrow) ElementName(); 4114e0857b17Sopenharmony_ci element.SetElementDeviceID(elementName, deviceId); 4115e0857b17Sopenharmony_ci element.SetElementBundleName(elementName, bundleName); 4116e0857b17Sopenharmony_ci element.SetElementAbilityName(elementName, abilityName); 4117e0857b17Sopenharmony_ci element.SetElementModuleName(elementName, moduleName); 4118e0857b17Sopenharmony_ci element.ClearElement(elementName); 4119e0857b17Sopenharmony_ci element.SetElementDeviceID(nullptr, deviceId); 4120e0857b17Sopenharmony_ci element.SetElementBundleName(nullptr, bundleName); 4121e0857b17Sopenharmony_ci element.SetElementAbilityName(nullptr, abilityName); 4122e0857b17Sopenharmony_ci element.SetElementModuleName(nullptr, moduleName); 4123e0857b17Sopenharmony_ci element.ClearElement(nullptr); 4124e0857b17Sopenharmony_ci GTEST_LOG_(INFO) << "ParseURI_test_001 end"; 4125e0857b17Sopenharmony_ci} 4126e0857b17Sopenharmony_ci} // namespace AAFwk 4127e0857b17Sopenharmony_ci} // namespace OHOS