1fc223305Sopenharmony_ci/* 2fc223305Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 3fc223305Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fc223305Sopenharmony_ci * you may not use this file except in compliance with the License. 5fc223305Sopenharmony_ci * You may obtain a copy of the License at 6fc223305Sopenharmony_ci * 7fc223305Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fc223305Sopenharmony_ci * 9fc223305Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fc223305Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fc223305Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fc223305Sopenharmony_ci * See the License for the specific language governing permissions and 13fc223305Sopenharmony_ci * limitations under the License. 14fc223305Sopenharmony_ci */ 15fc223305Sopenharmony_ci 16fc223305Sopenharmony_ci#include "base64_helper.h" 17fc223305Sopenharmony_ci 18fc223305Sopenharmony_ci#include <gtest/gtest.h> 19fc223305Sopenharmony_ci 20fc223305Sopenharmony_ci#include <string> 21fc223305Sopenharmony_ci 22fc223305Sopenharmony_ci#include "log_print.h" 23fc223305Sopenharmony_ci 24fc223305Sopenharmony_ciusing namespace testing::ext; 25fc223305Sopenharmony_ciusing namespace OHOS::NativePreferences; 26fc223305Sopenharmony_cinamespace { 27fc223305Sopenharmony_ciclass Base64HelperTest : public testing::Test { 28fc223305Sopenharmony_cipublic: 29fc223305Sopenharmony_ci static void SetUpTestCase(void); 30fc223305Sopenharmony_ci static void TearDownTestCase(void); 31fc223305Sopenharmony_ci void SetUp(); 32fc223305Sopenharmony_ci void TearDown(); 33fc223305Sopenharmony_ci}; 34fc223305Sopenharmony_ci 35fc223305Sopenharmony_civoid Base64HelperTest::SetUpTestCase(void) 36fc223305Sopenharmony_ci{ 37fc223305Sopenharmony_ci} 38fc223305Sopenharmony_ci 39fc223305Sopenharmony_civoid Base64HelperTest::TearDownTestCase(void) 40fc223305Sopenharmony_ci{ 41fc223305Sopenharmony_ci} 42fc223305Sopenharmony_ci 43fc223305Sopenharmony_civoid Base64HelperTest::SetUp(void) 44fc223305Sopenharmony_ci{ 45fc223305Sopenharmony_ci} 46fc223305Sopenharmony_ci 47fc223305Sopenharmony_civoid Base64HelperTest::TearDown(void) 48fc223305Sopenharmony_ci{ 49fc223305Sopenharmony_ci} 50fc223305Sopenharmony_ci 51fc223305Sopenharmony_ci/** 52fc223305Sopenharmony_ci * @tc.name: Base64HelperTest_0001 53fc223305Sopenharmony_ci * @tc.desc: normal testcase of base64 encode 54fc223305Sopenharmony_ci * @tc.type: FUNC 55fc223305Sopenharmony_ci * @tc.require: SR000CU2BL 56fc223305Sopenharmony_ci * @tc.author: xiuhongju 57fc223305Sopenharmony_ci */ 58fc223305Sopenharmony_ciHWTEST_F(Base64HelperTest, Base64HelperTest_001, TestSize.Level1) 59fc223305Sopenharmony_ci{ 60fc223305Sopenharmony_ci std::vector<uint8_t> emptyArray {}; 61fc223305Sopenharmony_ci std::vector<uint8_t> oneArray { 'a' }; 62fc223305Sopenharmony_ci std::vector<uint8_t> twoArray { 'a', 'b' }; 63fc223305Sopenharmony_ci std::vector<uint8_t> threeArray { 'a', 'b', 'c' }; 64fc223305Sopenharmony_ci auto result = Base64Helper::Encode(emptyArray); 65fc223305Sopenharmony_ci EXPECT_EQ(result, ""); 66fc223305Sopenharmony_ci 67fc223305Sopenharmony_ci result = Base64Helper::Encode(oneArray); 68fc223305Sopenharmony_ci EXPECT_EQ(result.length(), 4); 69fc223305Sopenharmony_ci EXPECT_EQ(result, "YQ=="); 70fc223305Sopenharmony_ci 71fc223305Sopenharmony_ci result = Base64Helper::Encode(twoArray); 72fc223305Sopenharmony_ci EXPECT_EQ(result.length(), 4); 73fc223305Sopenharmony_ci EXPECT_EQ(result, "YWI="); 74fc223305Sopenharmony_ci 75fc223305Sopenharmony_ci result = Base64Helper::Encode(threeArray); 76fc223305Sopenharmony_ci EXPECT_EQ(result.length(), 4); 77fc223305Sopenharmony_ci EXPECT_EQ(result, "YWJj"); 78fc223305Sopenharmony_ci} 79fc223305Sopenharmony_ci 80fc223305Sopenharmony_ci/** 81fc223305Sopenharmony_ci * @tc.name: Base64HelperTest_002 82fc223305Sopenharmony_ci * @tc.desc: normal testcase of base64 decode 83fc223305Sopenharmony_ci * @tc.type: FUNC 84fc223305Sopenharmony_ci */ 85fc223305Sopenharmony_ciHWTEST_F(Base64HelperTest, Base64HelperTest_002, TestSize.Level1) 86fc223305Sopenharmony_ci{ 87fc223305Sopenharmony_ci std::vector<uint8_t> oneArray { 1 }; 88fc223305Sopenharmony_ci std::vector<uint8_t> twoArray { 1, 2 }; 89fc223305Sopenharmony_ci std::vector<uint8_t> threeArray { 1, 2, 3 }; 90fc223305Sopenharmony_ci std::vector<uint8_t> result {}; 91fc223305Sopenharmony_ci 92fc223305Sopenharmony_ci EXPECT_TRUE(Base64Helper::Decode(Base64Helper::Encode(oneArray), result)); 93fc223305Sopenharmony_ci EXPECT_EQ(result, oneArray); 94fc223305Sopenharmony_ci 95fc223305Sopenharmony_ci EXPECT_TRUE(Base64Helper::Decode(Base64Helper::Encode(twoArray), result)); 96fc223305Sopenharmony_ci EXPECT_EQ(result, twoArray); 97fc223305Sopenharmony_ci 98fc223305Sopenharmony_ci EXPECT_TRUE(Base64Helper::Decode(Base64Helper::Encode(threeArray), result)); 99fc223305Sopenharmony_ci EXPECT_EQ(result, threeArray); 100fc223305Sopenharmony_ci} 101fc223305Sopenharmony_ci 102fc223305Sopenharmony_ci/** 103fc223305Sopenharmony_ci * @tc.name: Base64HelperTest_003 104fc223305Sopenharmony_ci * @tc.desc: error testcase of base64 decode 105fc223305Sopenharmony_ci * @tc.type: FUNC 106fc223305Sopenharmony_ci */ 107fc223305Sopenharmony_ciHWTEST_F(Base64HelperTest, Base64HelperTest_003, TestSize.Level1) 108fc223305Sopenharmony_ci{ 109fc223305Sopenharmony_ci std::string wrongText = "abc"; 110fc223305Sopenharmony_ci std::vector<uint8_t> result {}; 111fc223305Sopenharmony_ci EXPECT_FALSE(Base64Helper::Decode(wrongText, result)); 112fc223305Sopenharmony_ci 113fc223305Sopenharmony_ci wrongText = "@bcd"; 114fc223305Sopenharmony_ci EXPECT_FALSE(Base64Helper::Decode(wrongText, result)); 115fc223305Sopenharmony_ci 116fc223305Sopenharmony_ci wrongText = "a@cd"; 117fc223305Sopenharmony_ci EXPECT_FALSE(Base64Helper::Decode(wrongText, result)); 118fc223305Sopenharmony_ci 119fc223305Sopenharmony_ci wrongText = "ab@d"; 120fc223305Sopenharmony_ci EXPECT_FALSE(Base64Helper::Decode(wrongText, result)); 121fc223305Sopenharmony_ci 122fc223305Sopenharmony_ci wrongText = "abc@"; 123fc223305Sopenharmony_ci EXPECT_FALSE(Base64Helper::Decode(wrongText, result)); 124fc223305Sopenharmony_ci} 125fc223305Sopenharmony_ci 126fc223305Sopenharmony_ci/** 127fc223305Sopenharmony_ci * @tc.name: Base64HelperTest_004 128fc223305Sopenharmony_ci * @tc.desc: error testcase of base64 decode 129fc223305Sopenharmony_ci * @tc.type: FUNC 130fc223305Sopenharmony_ci */ 131fc223305Sopenharmony_ciHWTEST_F(Base64HelperTest, Base64HelperTest_004, TestSize.Level1) 132fc223305Sopenharmony_ci{ 133fc223305Sopenharmony_ci std::vector<uint8_t> array; 134fc223305Sopenharmony_ci for (size_t i = 0; i < 256; ++i) { 135fc223305Sopenharmony_ci array.push_back(i); 136fc223305Sopenharmony_ci } 137fc223305Sopenharmony_ci std::string encodeStr = Base64Helper::Encode(array); 138fc223305Sopenharmony_ci std::vector<uint8_t> decodeArray; 139fc223305Sopenharmony_ci EXPECT_TRUE(Base64Helper::Decode(encodeStr, decodeArray)); 140fc223305Sopenharmony_ci EXPECT_TRUE(array == decodeArray); 141fc223305Sopenharmony_ci} 142fc223305Sopenharmony_ci} 143