11e934351Sopenharmony_ci/*
21e934351Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
31e934351Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
41e934351Sopenharmony_ci * you may not use this file except in compliance with the License.
51e934351Sopenharmony_ci * You may obtain a copy of the License at
61e934351Sopenharmony_ci *
71e934351Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
81e934351Sopenharmony_ci *
91e934351Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
101e934351Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
111e934351Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
121e934351Sopenharmony_ci * See the License for the specific language governing permissions and
131e934351Sopenharmony_ci * limitations under the License.
141e934351Sopenharmony_ci */
151e934351Sopenharmony_ci
161e934351Sopenharmony_ci#include <map>
171e934351Sopenharmony_ci
181e934351Sopenharmony_ci#include "gtest/gtest.h"
191e934351Sopenharmony_ci
201e934351Sopenharmony_ci#include "base64_utils.h"
211e934351Sopenharmony_ci
221e934351Sopenharmony_cinamespace OHOS {
231e934351Sopenharmony_cinamespace NetStack {
241e934351Sopenharmony_ciusing namespace Base64;
251e934351Sopenharmony_ciusing namespace testing::ext;
261e934351Sopenharmony_cinamespace {
271e934351Sopenharmony_ciconst std::string TEST_TEXT[] = {
281e934351Sopenharmony_ci    "We are supporting a community where more than 28 million* people learn, share, and work together "
291e934351Sopenharmony_ci    "to build software. ",
301e934351Sopenharmony_ci    "这是一段用来测试的文本,测试加密内容。",
311e934351Sopenharmony_ci    "\\C6y\\83u\\F9C\\8As\\C8\\D1j.\\CFi\\83\\E2#Z:\\FB \\A7m\\8B\\D9\\E5ܫ\\E4\\D7PMY\\D6\\CF\\F0"
321e934351Sopenharmony_ci    "É",
331e934351Sopenharmony_ci};
341e934351Sopenharmony_ci
351e934351Sopenharmony_ciconst std::map<std::string, std::string> CODE_MAP = {
361e934351Sopenharmony_ci    {"abcde", "YWJjZGU="},
371e934351Sopenharmony_ci    {"测试加密解密", "5rWL6K+V5Yqg5a+G6Kej5a+G"},
381e934351Sopenharmony_ci    {"\\C6y\\83u\\F9C\\8As\\C8\\D1j.\\CFi\\83\\E2#Z:", "XEM2eVw4M3VcRjlDXDhBcxtcQzhcRDFqLlxDRmkeXDgzElxFMiNaETo="},
391e934351Sopenharmony_ci};
401e934351Sopenharmony_ci} // namespace
411e934351Sopenharmony_ci
421e934351Sopenharmony_ciclass Base64Test : public testing::Test {
431e934351Sopenharmony_cipublic:
441e934351Sopenharmony_ci    static void SetUpTestCase() {}
451e934351Sopenharmony_ci
461e934351Sopenharmony_ci    static void TearDownTestCase() {}
471e934351Sopenharmony_ci
481e934351Sopenharmony_ci    void SetUp() {}
491e934351Sopenharmony_ci
501e934351Sopenharmony_ci    void TearDown() {}
511e934351Sopenharmony_ci};
521e934351Sopenharmony_ci
531e934351Sopenharmony_ciHWTEST_F(Base64Test, EncodeAndDecodeTest, TestSize.Level1)
541e934351Sopenharmony_ci{
551e934351Sopenharmony_ci    for (const auto &str : TEST_TEXT) {
561e934351Sopenharmony_ci        EXPECT_EQ(Decode(Encode(str)), str);
571e934351Sopenharmony_ci    }
581e934351Sopenharmony_ci
591e934351Sopenharmony_ci    for (const auto &test : CODE_MAP) {
601e934351Sopenharmony_ci        EXPECT_EQ(Encode(test.first), test.second);
611e934351Sopenharmony_ci        EXPECT_EQ(Decode(test.second), test.first);
621e934351Sopenharmony_ci    }
631e934351Sopenharmony_ci}
641e934351Sopenharmony_ci} // namespace NetStack
651e934351Sopenharmony_ci} // namespace OHOS
66