1 /* 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include <gtest/gtest.h> 17 18 #define private public 19 #define protected public 20 #include "zchar_wrapper.h" 21 #undef private 22 #undef protected 23 24 using namespace OHOS; 25 using namespace OHOS::AAFwk; 26 using testing::ext::TestSize; 27 28 namespace OHOS { 29 namespace AAFwk { 30 class AAfWKZcharWrapperTest : public testing::Test { 31 public: SetUpTestCase()32 static void SetUpTestCase() {}; TearDownTestCase()33 static void TearDownTestCase() {}; SetUp()34 void SetUp() {}; TearDown()35 void TearDown() {}; 36 }; 37 38 /** 39 * @tc.number: ZcharWrapperTest_GetValue_001 40 * @tc.name: GetValue 41 * @tc.desc: 42 */ 43 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetValue_001, TestSize.Level1) 44 { 45 zchar value = 0; 46 Char zcharValue(value); 47 ErrCode result = zcharValue.GetValue(value); 48 EXPECT_EQ(ERR_OK, result); 49 } 50 51 /** 52 * @tc.number: ZcharWrapperTest_Box_001 53 * @tc.name: Box 54 * @tc.desc: 55 */ 56 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_Box_001, TestSize.Level1) 57 { 58 char value = 0; 59 Char charValue(value); 60 char result = charValue.Unbox(charValue.Box(value)); 61 EXPECT_EQ(0, result); 62 } 63 64 /** 65 * @tc.number: ZcharWrapperTest_GetByteSize_001 66 * @tc.name: GetByteSize 67 * @tc.desc: 68 */ 69 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_001, TestSize.Level1) 70 { 71 zchar value = 0xD801; 72 Char zcharValue(value); 73 EXPECT_EQ(0, zcharValue.GetByteSize(value)); 74 } 75 76 /** 77 * @tc.number: ZcharWrapperTest_GetByteSize_002 78 * @tc.name: GetByteSize 79 * @tc.desc: 80 */ 81 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_002, TestSize.Level1) 82 { 83 zchar value = 0x10FFFF + 1; 84 Char zcharValue(value); 85 EXPECT_EQ(0, zcharValue.GetByteSize(value)); 86 } 87 88 /** 89 * @tc.number: ZcharWrapperTest_GetByteSize_003 90 * @tc.name: GetByteSize 91 * @tc.desc: 92 */ 93 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_003, TestSize.Level1) 94 { 95 zchar value = 0x00000800 - 1; 96 Char zcharValue(value); 97 EXPECT_EQ(2, zcharValue.GetByteSize(value)); 98 } 99 100 /** 101 * @tc.number: ZcharWrapperTest_GetByteSize_004 102 * @tc.name: GetByteSize 103 * @tc.desc: 104 */ 105 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_004, TestSize.Level1) 106 { 107 zchar value = 0x00010000 - 1; 108 Char zcharValue(value); 109 EXPECT_EQ(3, zcharValue.GetByteSize(value)); 110 } 111 112 /** 113 * @tc.number: ZcharWrapperTest_GetByteSize_005 114 * @tc.name: GetByteSize 115 * @tc.desc: 116 */ 117 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_005, TestSize.Level1) 118 { 119 zchar value = 0x00010000 + 1; 120 Char zcharValue(value); 121 EXPECT_EQ(4, zcharValue.GetByteSize(value)); 122 } 123 124 /** 125 * @tc.number: ZcharWrapperTest_WriteUTF8Bytes_001 126 * @tc.name: WriteUTF8Bytes 127 * @tc.desc: 128 */ 129 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_WriteUTF8Bytes_001, TestSize.Level1) 130 { 131 zchar value = 0; 132 Char zcharValue(value); 133 char *dst = new char [4]; 134 int32_t size = 4; 135 zcharValue.WriteUTF8Bytes(dst, value, size); 136 EXPECT_EQ(1, zcharValue.GetByteSize(value)); 137 } 138 139 /** 140 * @tc.number: ZcharWrapperTest_WriteUTF8Bytes_002 141 * @tc.name: WriteUTF8Bytes 142 * @tc.desc: 143 */ 144 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_WriteUTF8Bytes_002, TestSize.Level1) 145 { 146 zchar value = 0; 147 Char zcharValue(value); 148 char *dst = new char [4]; 149 int32_t size = 3; 150 zcharValue.WriteUTF8Bytes(dst, value, size); 151 EXPECT_EQ(1, zcharValue.GetByteSize(value)); 152 } 153 154 /** 155 * @tc.number: ZcharWrapperTest_WriteUTF8Bytes_003 156 * @tc.name: WriteUTF8Bytes 157 * @tc.desc: 158 */ 159 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_WriteUTF8Bytes_003, TestSize.Level1) 160 { 161 zchar value = 0; 162 Char zcharValue(value); 163 char *dst = new char [4]; 164 int32_t size = 2; 165 zcharValue.WriteUTF8Bytes(dst, value, size); 166 EXPECT_EQ(1, zcharValue.GetByteSize(value)); 167 } 168 169 /** 170 * @tc.number: ZcharWrapperTest_GetChar_001 171 * @tc.name: GetChar 172 * @tc.desc: 173 */ 174 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetChar_001, TestSize.Level1) 175 { 176 zchar value = 0; 177 Char zcharValue(value); 178 std::string str = ""; 179 int32_t index = 2; 180 EXPECT_EQ(Char::INVALID_CHAR, zcharValue.GetChar(str, index)); 181 } 182 183 /** 184 * @tc.number: ZcharWrapperTest_GetChar_002 185 * @tc.name: GetChar 186 * @tc.desc: 187 */ 188 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetChar_002, TestSize.Level1) 189 { 190 zchar value = 0; 191 Char zcharValue(value); 192 std::string str = "string"; 193 int32_t index = -1; 194 EXPECT_EQ(Char::INVALID_CHAR, zcharValue.GetChar(str, index)); 195 } 196 197 /** 198 * @tc.number: ZcharWrapperTest_GetChar_003 199 * @tc.name: GetChar 200 * @tc.desc: 201 */ 202 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetChar_003, TestSize.Level1) 203 { 204 zchar value = 0; 205 Char zcharValue(value); 206 std::string str = "string"; 207 int32_t index = 10; 208 EXPECT_EQ(Char::INVALID_CHAR, zcharValue.GetChar(str, index)); 209 } 210 211 /** 212 * @tc.number: ZcharWrapperTest_GetCharInternal_001 213 * @tc.name: GetCharInternal 214 * @tc.desc: 215 */ 216 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetCharInternal_001, TestSize.Level1) 217 { 218 zchar value = 0; 219 Char zcharValue(value); 220 const char* str = u8"你好"; 221 unsigned char* cur = reinterpret_cast<unsigned char*>(const_cast<char*>(str)); 222 unsigned int size = 0; 223 zcharValue.GetCharInternal(cur, size); 224 EXPECT_EQ(3, size); 225 } 226 } 227 }