14d6c458bSopenharmony_ci/* 24d6c458bSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 34d6c458bSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 44d6c458bSopenharmony_ci * you may not use this file except in compliance with the License. 54d6c458bSopenharmony_ci * You may obtain a copy of the License at 64d6c458bSopenharmony_ci * 74d6c458bSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 84d6c458bSopenharmony_ci * 94d6c458bSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 104d6c458bSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 114d6c458bSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 124d6c458bSopenharmony_ci * See the License for the specific language governing permissions and 134d6c458bSopenharmony_ci * limitations under the License. 144d6c458bSopenharmony_ci */ 154d6c458bSopenharmony_ci 164d6c458bSopenharmony_ci#include "test.h" 174d6c458bSopenharmony_ci 184d6c458bSopenharmony_ci#include "napi/native_api.h" 194d6c458bSopenharmony_ci#include "napi/native_node_api.h" 204d6c458bSopenharmony_ci 214d6c458bSopenharmony_ci#include "converter.h" 224d6c458bSopenharmony_ci#include "js_blob.h" 234d6c458bSopenharmony_ci#include "js_buffer.h" 244d6c458bSopenharmony_ci#include "tools/log.h" 254d6c458bSopenharmony_ci 264d6c458bSopenharmony_ci#include <limits> 274d6c458bSopenharmony_ci 284d6c458bSopenharmony_ci#define ASSERT_CHECK_CALL(call) \ 294d6c458bSopenharmony_ci { \ 304d6c458bSopenharmony_ci ASSERT_EQ(call, napi_ok); \ 314d6c458bSopenharmony_ci } 324d6c458bSopenharmony_ci 334d6c458bSopenharmony_ci#define ASSERT_CHECK_VALUE_TYPE(env, value, type) \ 344d6c458bSopenharmony_ci { \ 354d6c458bSopenharmony_ci napi_valuetype valueType = napi_undefined; \ 364d6c458bSopenharmony_ci ASSERT_TRUE(value != nullptr); \ 374d6c458bSopenharmony_ci ASSERT_CHECK_CALL(napi_typeof(env, value, &valueType)); \ 384d6c458bSopenharmony_ci ASSERT_EQ(valueType, type); \ 394d6c458bSopenharmony_ci } 404d6c458bSopenharmony_civoid FillZero(OHOS::buffer::Buffer *buf, size_t size) 414d6c458bSopenharmony_ci{ 424d6c458bSopenharmony_ci for (size_t i = 0; i < size; i++) { 434d6c458bSopenharmony_ci buf->Set(i, 0); 444d6c458bSopenharmony_ci } 454d6c458bSopenharmony_ci} 464d6c458bSopenharmony_ci 474d6c458bSopenharmony_ci/** 484d6c458bSopenharmony_ci * @tc.name: ConstructorTest001 494d6c458bSopenharmony_ci * @tc.desc: Buffer Constructor. 504d6c458bSopenharmony_ci * @tc.type: FUNC 514d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 524d6c458bSopenharmony_ci */ 534d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest001, testing::ext::TestSize.Level0) 544d6c458bSopenharmony_ci{ 554d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 564d6c458bSopenharmony_ci buf->Init(10); 574d6c458bSopenharmony_ci ASSERT_EQ(buf->GetLength(), 10); 584d6c458bSopenharmony_ci} 594d6c458bSopenharmony_ci 604d6c458bSopenharmony_ci/** 614d6c458bSopenharmony_ci * @tc.name: ConstructorTest002 624d6c458bSopenharmony_ci * @tc.desc: Buffer Constructor. 634d6c458bSopenharmony_ci * @tc.type: FUNC 644d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 654d6c458bSopenharmony_ci */ 664d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest002, testing::ext::TestSize.Level0) 674d6c458bSopenharmony_ci{ 684d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf1 = new OHOS::buffer::Buffer(); 694d6c458bSopenharmony_ci buf1->Init(10); 704d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf2 = new OHOS::buffer::Buffer(); 714d6c458bSopenharmony_ci buf2->Init(buf1); 724d6c458bSopenharmony_ci ASSERT_EQ(buf2->GetLength(), 10); 734d6c458bSopenharmony_ci} 744d6c458bSopenharmony_ci 754d6c458bSopenharmony_ci 764d6c458bSopenharmony_ci/** 774d6c458bSopenharmony_ci * @tc.name: ConstructorTest003 784d6c458bSopenharmony_ci * @tc.desc: Buffer Constructor. 794d6c458bSopenharmony_ci * @tc.type: FUNC 804d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 814d6c458bSopenharmony_ci */ 824d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest003, testing::ext::TestSize.Level0) 834d6c458bSopenharmony_ci{ 844d6c458bSopenharmony_ci OHOS::buffer::Buffer *poolBuffer = new OHOS::buffer::Buffer(); 854d6c458bSopenharmony_ci poolBuffer->Init(1024 * 8); 864d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf2 = new OHOS::buffer::Buffer(); 874d6c458bSopenharmony_ci buf2->Init(poolBuffer, 0, 5); 884d6c458bSopenharmony_ci ASSERT_EQ(buf2->GetLength(), 5); 894d6c458bSopenharmony_ci ASSERT_EQ(buf2->GetByteOffset(), 0); 904d6c458bSopenharmony_ci 914d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf3 = new OHOS::buffer::Buffer(); 924d6c458bSopenharmony_ci buf3->Init(poolBuffer, 5, 6); 934d6c458bSopenharmony_ci ASSERT_EQ(buf3->GetLength(), 6); 944d6c458bSopenharmony_ci ASSERT_EQ(buf3->GetByteOffset(), 5); 954d6c458bSopenharmony_ci} 964d6c458bSopenharmony_ci 974d6c458bSopenharmony_ci/** 984d6c458bSopenharmony_ci * @tc.name: ConstructorTest004 994d6c458bSopenharmony_ci * @tc.desc: Buffer Constructor. 1004d6c458bSopenharmony_ci * @tc.type: FUNC 1014d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 1024d6c458bSopenharmony_ci */ 1034d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest004, testing::ext::TestSize.Level0) 1044d6c458bSopenharmony_ci{ 1054d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf2 = new OHOS::buffer::Buffer(); 1064d6c458bSopenharmony_ci uint8_t data[4] = {1, 2, 3, 4}; 1074d6c458bSopenharmony_ci buf2->Init(data, 0, 4); 1084d6c458bSopenharmony_ci ASSERT_EQ(buf2->GetLength(), 4); 1094d6c458bSopenharmony_ci ASSERT_EQ(buf2->GetByteOffset(), 0); 1104d6c458bSopenharmony_ci} 1114d6c458bSopenharmony_ci 1124d6c458bSopenharmony_ci/** 1134d6c458bSopenharmony_ci * @tc.name: ConstructorTest005 1144d6c458bSopenharmony_ci * @tc.desc: Buffer Constructor. 1154d6c458bSopenharmony_ci * @tc.type: FUNC 1164d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 1174d6c458bSopenharmony_ci */ 1184d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ConstructorTest005, testing::ext::TestSize.Level0) 1194d6c458bSopenharmony_ci{ 1204d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 1214d6c458bSopenharmony_ci buf->Init(1); 1224d6c458bSopenharmony_ci ASSERT_EQ(buf->GetLength(), 1); 1234d6c458bSopenharmony_ci uint32_t res = buf->Copy(nullptr, 0, 0, 0); 1244d6c458bSopenharmony_ci ASSERT_EQ(res, 0); 1254d6c458bSopenharmony_ci int result = buf->Compare(nullptr, 0, 0, 0); 1264d6c458bSopenharmony_ci ASSERT_EQ(result, 0); 1274d6c458bSopenharmony_ci buf->ReadBytes(nullptr, 0, 0); 1284d6c458bSopenharmony_ci buf->FillString("abc", 1, 0, "utf16le"); 1294d6c458bSopenharmony_ci buf->FillString("abc", 1, 0, "binary"); 1304d6c458bSopenharmony_ci buf->FillString("abc", 1, 0, "sos"); 1314d6c458bSopenharmony_ci buf->FillString("abc", 1, 0, "hex"); 1324d6c458bSopenharmony_ci std::vector<uint8_t> array; 1334d6c458bSopenharmony_ci buf->FillNumber(array, 0, 0); 1344d6c458bSopenharmony_ci OHOS::buffer::Buffer *buffer = new OHOS::buffer::Buffer(); 1354d6c458bSopenharmony_ci buf->FillBuffer(buffer, 0, 0); 1364d6c458bSopenharmony_ci buf->FillBuffer(nullptr, 1, 0); 1374d6c458bSopenharmony_ci buf->SetArray(array, 0); 1384d6c458bSopenharmony_ci result = buf->LastIndexOf(nullptr, 0, 0); 1394d6c458bSopenharmony_ci ASSERT_EQ(result, -1); 1404d6c458bSopenharmony_ci uint64_t resultIndex = 0; 1414d6c458bSopenharmony_ci result = buf->IndexOf(nullptr, 0, 0, resultIndex); 1424d6c458bSopenharmony_ci ASSERT_EQ(result, -1); 1434d6c458bSopenharmony_ci delete buf; 1444d6c458bSopenharmony_ci buf = nullptr; 1454d6c458bSopenharmony_ci delete buffer; 1464d6c458bSopenharmony_ci buffer = nullptr; 1474d6c458bSopenharmony_ci} 1484d6c458bSopenharmony_ci 1494d6c458bSopenharmony_ci/** 1504d6c458bSopenharmony_ci * @tc.name: DestructorTest001 1514d6c458bSopenharmony_ci * @tc.desc: Buffer Destructor. 1524d6c458bSopenharmony_ci * @tc.type: FUNC 1534d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 1544d6c458bSopenharmony_ci */ 1554d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, DestructorTest001, testing::ext::TestSize.Level0) 1564d6c458bSopenharmony_ci{ 1574d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 1584d6c458bSopenharmony_ci uint8_t data[4] = {1, 2, 3, 4}; 1594d6c458bSopenharmony_ci buf->Init(data, 0, 4); 1604d6c458bSopenharmony_ci ASSERT_EQ(buf->GetLength(), 4); 1614d6c458bSopenharmony_ci delete buf; 1624d6c458bSopenharmony_ci buf = nullptr; 1634d6c458bSopenharmony_ci} 1644d6c458bSopenharmony_ci 1654d6c458bSopenharmony_ci/** 1664d6c458bSopenharmony_ci * @tc.name: GetLengthTest001 1674d6c458bSopenharmony_ci * @tc.desc: Get buffer Length. 1684d6c458bSopenharmony_ci * @tc.type: FUNC 1694d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 1704d6c458bSopenharmony_ci */ 1714d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, GetLengthTest001, testing::ext::TestSize.Level0) 1724d6c458bSopenharmony_ci{ 1734d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 1744d6c458bSopenharmony_ci ASSERT_EQ(buf->GetLength(), 0); 1754d6c458bSopenharmony_ci} 1764d6c458bSopenharmony_ci 1774d6c458bSopenharmony_ci/** 1784d6c458bSopenharmony_ci * @tc.name: GetLengthTest002 1794d6c458bSopenharmony_ci * @tc.desc: Get buffer Length. 1804d6c458bSopenharmony_ci * @tc.type: FUNC 1814d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 1824d6c458bSopenharmony_ci */ 1834d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, GetLengthTest002, testing::ext::TestSize.Level0) 1844d6c458bSopenharmony_ci{ 1854d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 1864d6c458bSopenharmony_ci buf->Init(6); 1874d6c458bSopenharmony_ci ASSERT_EQ(buf->GetLength(), 6); 1884d6c458bSopenharmony_ci} 1894d6c458bSopenharmony_ci 1904d6c458bSopenharmony_ci/** 1914d6c458bSopenharmony_ci * @tc.name: SetLengthTest001 1924d6c458bSopenharmony_ci * @tc.desc: Set buffer Length. 1934d6c458bSopenharmony_ci * @tc.type: FUNC 1944d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 1954d6c458bSopenharmony_ci */ 1964d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, SetLengthTest001, testing::ext::TestSize.Level0) 1974d6c458bSopenharmony_ci{ 1984d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 1994d6c458bSopenharmony_ci buf->Init(6); 2004d6c458bSopenharmony_ci buf->SetLength(7); 2014d6c458bSopenharmony_ci ASSERT_EQ(buf->GetLength(), 7); 2024d6c458bSopenharmony_ci} 2034d6c458bSopenharmony_ci 2044d6c458bSopenharmony_ci/** 2054d6c458bSopenharmony_ci * @tc.name: GetByteOffsetTest001 2064d6c458bSopenharmony_ci * @tc.desc: Get buffer byteOffset. 2074d6c458bSopenharmony_ci * @tc.type: FUNC 2084d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 2094d6c458bSopenharmony_ci */ 2104d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, GetByteOffsetTest001, testing::ext::TestSize.Level0) 2114d6c458bSopenharmony_ci{ 2124d6c458bSopenharmony_ci OHOS::buffer::Buffer *poolBuffer = new OHOS::buffer::Buffer(); 2134d6c458bSopenharmony_ci poolBuffer->Init(1024 * 8); 2144d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 2154d6c458bSopenharmony_ci buf->Init(poolBuffer, 2, 5); 2164d6c458bSopenharmony_ci ASSERT_EQ(buf->GetByteOffset(), 2); 2174d6c458bSopenharmony_ci} 2184d6c458bSopenharmony_ci 2194d6c458bSopenharmony_ci/** 2204d6c458bSopenharmony_ci * @tc.name: GetAndSetTest001 2214d6c458bSopenharmony_ci * @tc.desc: Get And Set method. 2224d6c458bSopenharmony_ci * @tc.type: FUNC 2234d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 2244d6c458bSopenharmony_ci */ 2254d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, GetAndSetTest001, testing::ext::TestSize.Level0) 2264d6c458bSopenharmony_ci{ 2274d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 2284d6c458bSopenharmony_ci buf->Init(3); 2294d6c458bSopenharmony_ci buf->Set(0, 1); 2304d6c458bSopenharmony_ci int32_t value = buf->Get(0); 2314d6c458bSopenharmony_ci ASSERT_EQ(value, 1); 2324d6c458bSopenharmony_ci} 2334d6c458bSopenharmony_ci 2344d6c458bSopenharmony_ci/** 2354d6c458bSopenharmony_ci * @tc.name: GetAndSetTest002 2364d6c458bSopenharmony_ci * @tc.desc: Get And Set method. 2374d6c458bSopenharmony_ci * @tc.type: FUNC 2384d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 2394d6c458bSopenharmony_ci */ 2404d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, GetAndSetTest002, testing::ext::TestSize.Level0) 2414d6c458bSopenharmony_ci{ 2424d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 2434d6c458bSopenharmony_ci buf->Init(3); 2444d6c458bSopenharmony_ci buf->Set(0, 1); 2454d6c458bSopenharmony_ci buf->Set(1, 2); 2464d6c458bSopenharmony_ci buf->Set(2, 3); 2474d6c458bSopenharmony_ci int32_t value = buf->Get(2); 2484d6c458bSopenharmony_ci ASSERT_EQ(value, 3); 2494d6c458bSopenharmony_ci} 2504d6c458bSopenharmony_ci 2514d6c458bSopenharmony_ci/** 2524d6c458bSopenharmony_ci * @tc.name: WriteInt32BEAndReadInt32BETest001 2534d6c458bSopenharmony_ci * @tc.desc: Writes value to buf at the specified offset as big-endian. The value must be a valid signed 32-bit integer 2544d6c458bSopenharmony_ci * Reads a signed, big-endian 32-bit integer from buf at the specified offset. 2554d6c458bSopenharmony_ci * @tc.type: FUNC 2564d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 2574d6c458bSopenharmony_ci */ 2584d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteInt32BEAndReadInt32BETest001, testing::ext::TestSize.Level0) 2594d6c458bSopenharmony_ci{ 2604d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 2614d6c458bSopenharmony_ci buf->Init(4); 2624d6c458bSopenharmony_ci FillZero(buf, 4); 2634d6c458bSopenharmony_ci buf->WriteInt32BE(0x12345678, 0); 2644d6c458bSopenharmony_ci int32_t res = buf->ReadInt32BE(0); 2654d6c458bSopenharmony_ci ASSERT_EQ(res, 0x12345678); 2664d6c458bSopenharmony_ci} 2674d6c458bSopenharmony_ci 2684d6c458bSopenharmony_ci/** 2694d6c458bSopenharmony_ci * @tc.name: WriteInt32BEAndReadInt32BETest002 2704d6c458bSopenharmony_ci * @tc.desc: Writes value to buf at the specified offset as big-endian. The value must be a valid signed 32-bit integer 2714d6c458bSopenharmony_ci * Reads a signed, big-endian 32-bit integer from buf at the specified offset. 2724d6c458bSopenharmony_ci * @tc.type: FUNC 2734d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 2744d6c458bSopenharmony_ci */ 2754d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteInt32BEAndReadInt32BETest002, testing::ext::TestSize.Level0) 2764d6c458bSopenharmony_ci{ 2774d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 2784d6c458bSopenharmony_ci buf->Init(5); 2794d6c458bSopenharmony_ci FillZero(buf, 5); 2804d6c458bSopenharmony_ci buf->WriteInt32BE(0x12345678, 1); 2814d6c458bSopenharmony_ci int32_t res = buf->ReadInt32BE(1); 2824d6c458bSopenharmony_ci ASSERT_EQ(res, 0x12345678); 2834d6c458bSopenharmony_ci} 2844d6c458bSopenharmony_ci 2854d6c458bSopenharmony_ci/** 2864d6c458bSopenharmony_ci * @tc.name: WriteInt32BEAndReadInt32BETest003 2874d6c458bSopenharmony_ci * @tc.desc: Writes value to buf at the specified offset as big-endian. The value must be a valid signed 32-bit integer 2884d6c458bSopenharmony_ci * Reads a signed, big-endian 32-bit integer from buf at the specified offset. 2894d6c458bSopenharmony_ci * @tc.type: FUNC 2904d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 2914d6c458bSopenharmony_ci */ 2924d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteInt32BEAndReadInt32BETest003, testing::ext::TestSize.Level0) 2934d6c458bSopenharmony_ci{ 2944d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 2954d6c458bSopenharmony_ci buf->Init(5); 2964d6c458bSopenharmony_ci FillZero(buf, 5); 2974d6c458bSopenharmony_ci buf->WriteInt32BE(0x12345678, 1); 2984d6c458bSopenharmony_ci int32_t res = buf->ReadInt32BE(1); 2994d6c458bSopenharmony_ci ASSERT_EQ(res, 0x12345678); 3004d6c458bSopenharmony_ci} 3014d6c458bSopenharmony_ci 3024d6c458bSopenharmony_ci/** 3034d6c458bSopenharmony_ci * @tc.name: WriteInt32LEAndReadInt32LETest001 3044d6c458bSopenharmony_ci * @tc.desc: Writes value to buf at the specified offset as little-endian. 3054d6c458bSopenharmony_ci * The value must be a valid signed 32-bit integer. 3064d6c458bSopenharmony_ci * Reads a signed, little-endian 32-bit integer from buf at the specified offset. 3074d6c458bSopenharmony_ci * @tc.type: FUNC 3084d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 3094d6c458bSopenharmony_ci */ 3104d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteInt32LEAndReadInt32LETest001, testing::ext::TestSize.Level0) 3114d6c458bSopenharmony_ci{ 3124d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 3134d6c458bSopenharmony_ci buf->Init(4); 3144d6c458bSopenharmony_ci FillZero(buf, 4); 3154d6c458bSopenharmony_ci buf->WriteInt32LE(0x12345678, 0); 3164d6c458bSopenharmony_ci int32_t res = buf->ReadInt32LE(0); 3174d6c458bSopenharmony_ci ASSERT_EQ(res, 0x12345678); 3184d6c458bSopenharmony_ci res = buf->ReadInt32BE(0); 3194d6c458bSopenharmony_ci ASSERT_EQ(res, 0x78563412); 3204d6c458bSopenharmony_ci} 3214d6c458bSopenharmony_ci 3224d6c458bSopenharmony_ci/** 3234d6c458bSopenharmony_ci * @tc.name: WriteInt32LEAndReadInt32LETest002 3244d6c458bSopenharmony_ci * @tc.desc: Writes value to buf at the specified offset as little-endian. 3254d6c458bSopenharmony_ci * The value must be a valid signed 32-bit integer. 3264d6c458bSopenharmony_ci * Reads a signed, little-endian 32-bit integer from buf at the specified offset. 3274d6c458bSopenharmony_ci * @tc.type: FUNC 3284d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 3294d6c458bSopenharmony_ci */ 3304d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteInt32LEAndReadInt32LETest002, testing::ext::TestSize.Level0) 3314d6c458bSopenharmony_ci{ 3324d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 3334d6c458bSopenharmony_ci buf->Init(5); 3344d6c458bSopenharmony_ci FillZero(buf, 5); 3354d6c458bSopenharmony_ci buf->WriteInt32LE(0x12345678, 1); 3364d6c458bSopenharmony_ci int32_t res = buf->ReadInt32LE(0); 3374d6c458bSopenharmony_ci ASSERT_EQ(res, 0x34567800); 3384d6c458bSopenharmony_ci} 3394d6c458bSopenharmony_ci 3404d6c458bSopenharmony_ci/** 3414d6c458bSopenharmony_ci * @tc.name: WriteInt32LEAndReadInt32LETest003 3424d6c458bSopenharmony_ci * @tc.desc: Writes value to buf at the specified offset as little-endian. 3434d6c458bSopenharmony_ci * The value must be a valid signed 32-bit integer. 3444d6c458bSopenharmony_ci * Reads a signed, little-endian 32-bit integer from buf at the specified offset. 3454d6c458bSopenharmony_ci * @tc.type: FUNC 3464d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 3474d6c458bSopenharmony_ci */ 3484d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteInt32LEAndReadInt32LETest003, testing::ext::TestSize.Level0) 3494d6c458bSopenharmony_ci{ 3504d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 3514d6c458bSopenharmony_ci buf->Init(5); 3524d6c458bSopenharmony_ci FillZero(buf, 5); 3534d6c458bSopenharmony_ci buf->WriteInt32LE(0x12345678, 1); 3544d6c458bSopenharmony_ci int32_t res = buf->ReadInt32LE(1); 3554d6c458bSopenharmony_ci ASSERT_EQ(res, 0x12345678); 3564d6c458bSopenharmony_ci} 3574d6c458bSopenharmony_ci 3584d6c458bSopenharmony_ci/** 3594d6c458bSopenharmony_ci * @tc.name: WriteUInt32BEAndReadUInt32BETest001 3604d6c458bSopenharmony_ci * @tc.desc: Writes value to buf at the specified offset as big-endian. 3614d6c458bSopenharmony_ci * The value must be a valid unsigned 32-bit integer. 3624d6c458bSopenharmony_ci * Reads an unsigned, big-endian 32-bit integer from buf at the specified offset. 3634d6c458bSopenharmony_ci * @tc.type: FUNC 3644d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 3654d6c458bSopenharmony_ci */ 3664d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteUInt32BEAndReadUInt32BETest001, testing::ext::TestSize.Level0) 3674d6c458bSopenharmony_ci{ 3684d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 3694d6c458bSopenharmony_ci buf->Init(4); 3704d6c458bSopenharmony_ci FillZero(buf, 4); 3714d6c458bSopenharmony_ci buf->WriteUInt32BE(0x12345678, 0); 3724d6c458bSopenharmony_ci int32_t res = buf->ReadUInt32BE(0); 3734d6c458bSopenharmony_ci ASSERT_EQ(res, 0x12345678); 3744d6c458bSopenharmony_ci} 3754d6c458bSopenharmony_ci 3764d6c458bSopenharmony_ci/** 3774d6c458bSopenharmony_ci * @tc.name: WriteUInt32BEAndReadUInt32BETest002 3784d6c458bSopenharmony_ci * @tc.desc: Writes value to buf at the specified offset as big-endian. 3794d6c458bSopenharmony_ci * The value must be a valid unsigned 32-bit integer. 3804d6c458bSopenharmony_ci * Reads an unsigned, big-endian 32-bit integer from buf at the specified offset. 3814d6c458bSopenharmony_ci * @tc.type: FUNC 3824d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 3834d6c458bSopenharmony_ci */ 3844d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteUInt32BEAndReadUInt32BETest002, testing::ext::TestSize.Level0) 3854d6c458bSopenharmony_ci{ 3864d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 3874d6c458bSopenharmony_ci buf->Init(5); 3884d6c458bSopenharmony_ci FillZero(buf, 5); 3894d6c458bSopenharmony_ci buf->WriteUInt32BE(0x12345678, 1); 3904d6c458bSopenharmony_ci int32_t res = buf->ReadUInt32BE(0); 3914d6c458bSopenharmony_ci ASSERT_EQ(res, 0x123456); 3924d6c458bSopenharmony_ci} 3934d6c458bSopenharmony_ci 3944d6c458bSopenharmony_ci/** 3954d6c458bSopenharmony_ci * @tc.name: WriteUInt32BEAndReadUInt32BETest003 3964d6c458bSopenharmony_ci * @tc.desc: Writes value to buf at the specified offset as big-endian. 3974d6c458bSopenharmony_ci * The value must be a valid unsigned 32-bit integer. 3984d6c458bSopenharmony_ci * Reads an unsigned, big-endian 32-bit integer from buf at the specified offset. 3994d6c458bSopenharmony_ci * @tc.type: FUNC 4004d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 4014d6c458bSopenharmony_ci */ 4024d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteUInt32BEAndReadUInt32BETest003, testing::ext::TestSize.Level0) 4034d6c458bSopenharmony_ci{ 4044d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 4054d6c458bSopenharmony_ci buf->Init(5); 4064d6c458bSopenharmony_ci FillZero(buf, 5); 4074d6c458bSopenharmony_ci buf->WriteUInt32BE(0x12345678, 1); 4084d6c458bSopenharmony_ci int32_t res = buf->ReadUInt32BE(1); 4094d6c458bSopenharmony_ci ASSERT_EQ(res, 0x12345678); 4104d6c458bSopenharmony_ci} 4114d6c458bSopenharmony_ci 4124d6c458bSopenharmony_ci/** 4134d6c458bSopenharmony_ci * @tc.name: WriteUInt32LEAndReadUInt32LETest001 4144d6c458bSopenharmony_ci * @tc.desc: Writes value to buf at the specified offset as little-endian. 4154d6c458bSopenharmony_ci * The value must be a valid unsigned 32-bit integer. 4164d6c458bSopenharmony_ci * Reads an unsigned, little-endian 32-bit integer from buf at the specified offset. 4174d6c458bSopenharmony_ci * @tc.type: FUNC 4184d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 4194d6c458bSopenharmony_ci */ 4204d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteUInt32LEAndReadUInt32LETest001, testing::ext::TestSize.Level0) 4214d6c458bSopenharmony_ci{ 4224d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 4234d6c458bSopenharmony_ci buf->Init(4); 4244d6c458bSopenharmony_ci FillZero(buf, 4); 4254d6c458bSopenharmony_ci buf->WriteUInt32LE(0x12345678, 0); 4264d6c458bSopenharmony_ci int32_t res = buf->ReadUInt32LE(0); 4274d6c458bSopenharmony_ci ASSERT_EQ(res, 0x12345678); 4284d6c458bSopenharmony_ci} 4294d6c458bSopenharmony_ci 4304d6c458bSopenharmony_ci/** 4314d6c458bSopenharmony_ci * @tc.name: WriteUInt32LEAndReadUInt32LETest002 4324d6c458bSopenharmony_ci * @tc.desc: Writes value to buf at the specified offset as little-endian. 4334d6c458bSopenharmony_ci * The value must be a valid unsigned 32-bit integer. 4344d6c458bSopenharmony_ci * Reads an unsigned, little-endian 32-bit integer from buf at the specified offset. 4354d6c458bSopenharmony_ci * @tc.type: FUNC 4364d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 4374d6c458bSopenharmony_ci */ 4384d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteUInt32LEAndReadUInt32LETest002, testing::ext::TestSize.Level0) 4394d6c458bSopenharmony_ci{ 4404d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 4414d6c458bSopenharmony_ci buf->Init(5); 4424d6c458bSopenharmony_ci FillZero(buf, 5); 4434d6c458bSopenharmony_ci buf->WriteUInt32LE(0x12345678, 1); 4444d6c458bSopenharmony_ci int32_t res = buf->ReadUInt32LE(0); 4454d6c458bSopenharmony_ci ASSERT_EQ(res, 0x34567800); 4464d6c458bSopenharmony_ci} 4474d6c458bSopenharmony_ci 4484d6c458bSopenharmony_ci/** 4494d6c458bSopenharmony_ci * @tc.name: WriteUInt32LEAndReadUInt32LETest003 4504d6c458bSopenharmony_ci * @tc.desc: Writes value to buf at the specified offset as little-endian. 4514d6c458bSopenharmony_ci * The value must be a valid unsigned 32-bit integer. 4524d6c458bSopenharmony_ci * Reads an unsigned, little-endian 32-bit integer from buf at the specified offset. 4534d6c458bSopenharmony_ci * @tc.type: FUNC 4544d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 4554d6c458bSopenharmony_ci */ 4564d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteUInt32LEAndReadUInt32LETest003, testing::ext::TestSize.Level0) 4574d6c458bSopenharmony_ci{ 4584d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 4594d6c458bSopenharmony_ci buf->Init(5); 4604d6c458bSopenharmony_ci FillZero(buf, 5); 4614d6c458bSopenharmony_ci buf->WriteUInt32LE(0x12345678, 1); 4624d6c458bSopenharmony_ci int32_t res = buf->ReadUInt32LE(1); 4634d6c458bSopenharmony_ci ASSERT_EQ(res, 0x12345678); 4644d6c458bSopenharmony_ci} 4654d6c458bSopenharmony_ci 4664d6c458bSopenharmony_ci/** 4674d6c458bSopenharmony_ci * @tc.name: ReadBytesTest001 4684d6c458bSopenharmony_ci * @tc.desc: Read value from buffer. 4694d6c458bSopenharmony_ci * @tc.type: FUNC 4704d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 4714d6c458bSopenharmony_ci */ 4724d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ReadBytesTest001, testing::ext::TestSize.Level0) 4734d6c458bSopenharmony_ci{ 4744d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 4754d6c458bSopenharmony_ci buf->Init(4); 4764d6c458bSopenharmony_ci FillZero(buf, 4); 4774d6c458bSopenharmony_ci buf->WriteUInt32BE(0x12345678, 0); 4784d6c458bSopenharmony_ci uint32_t length = buf->GetLength(); 4794d6c458bSopenharmony_ci uint8_t data[length]; 4804d6c458bSopenharmony_ci buf->ReadBytes(data, 0, length); 4814d6c458bSopenharmony_ci uint8_t res[4] = {0x12, 0x34, 0x56, 0x78}; 4824d6c458bSopenharmony_ci for (size_t i = 0; i < length; i++) { 4834d6c458bSopenharmony_ci ASSERT_EQ(data[i], res[i]); 4844d6c458bSopenharmony_ci } 4854d6c458bSopenharmony_ci} 4864d6c458bSopenharmony_ci 4874d6c458bSopenharmony_ci/** 4884d6c458bSopenharmony_ci * @tc.name: ReadBytesTest002 4894d6c458bSopenharmony_ci * @tc.desc: Read value error when length is zero. 4904d6c458bSopenharmony_ci * @tc.type: FUNC 4914d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 4924d6c458bSopenharmony_ci */ 4934d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ReadBytesTest002, testing::ext::TestSize.Level0) 4944d6c458bSopenharmony_ci{ 4954d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 4964d6c458bSopenharmony_ci buf->Init(4); 4974d6c458bSopenharmony_ci FillZero(buf, 4); 4984d6c458bSopenharmony_ci buf->WriteUInt32BE(0x12345678, 0); 4994d6c458bSopenharmony_ci uint32_t length = buf->GetLength(); 5004d6c458bSopenharmony_ci uint8_t data[length]; 5014d6c458bSopenharmony_ci buf->ReadBytes(data, 0, 0); 5024d6c458bSopenharmony_ci uint8_t res[4] = {0x12, 0x34, 0x56, 0x78}; 5034d6c458bSopenharmony_ci ASSERT_NE(data[0], res[0]); 5044d6c458bSopenharmony_ci} 5054d6c458bSopenharmony_ci 5064d6c458bSopenharmony_ci/** 5074d6c458bSopenharmony_ci * @tc.name: WriteStringTest001 5084d6c458bSopenharmony_ci * @tc.desc: Write string to buffer. 5094d6c458bSopenharmony_ci * @tc.type: FUNC 5104d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 5114d6c458bSopenharmony_ci */ 5124d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteStringTest001, testing::ext::TestSize.Level0) 5134d6c458bSopenharmony_ci{ 5144d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 5154d6c458bSopenharmony_ci buf->Init(10); 5164d6c458bSopenharmony_ci std::string str = "1234567890"; 5174d6c458bSopenharmony_ci unsigned int size = buf->WriteString(str, 10); 5184d6c458bSopenharmony_ci ASSERT_EQ(size, 10); 5194d6c458bSopenharmony_ci} 5204d6c458bSopenharmony_ci 5214d6c458bSopenharmony_ci/** 5224d6c458bSopenharmony_ci * @tc.name: WriteStringTest002 5234d6c458bSopenharmony_ci * @tc.desc: Write string to buffer. 5244d6c458bSopenharmony_ci * @tc.type: FUNC 5254d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 5264d6c458bSopenharmony_ci */ 5274d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteStringTest002, testing::ext::TestSize.Level0) 5284d6c458bSopenharmony_ci{ 5294d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 5304d6c458bSopenharmony_ci buf->Init(9); 5314d6c458bSopenharmony_ci std::string str = "123456789"; 5324d6c458bSopenharmony_ci unsigned int size = buf->WriteString(str, 9); 5334d6c458bSopenharmony_ci uint8_t data[size]; 5344d6c458bSopenharmony_ci buf->ReadBytes(data, 0, size); 5354d6c458bSopenharmony_ci uint8_t value = 49; 5364d6c458bSopenharmony_ci for (size_t i = 0; i < size; i++) { 5374d6c458bSopenharmony_ci ASSERT_EQ(data[i], value); 5384d6c458bSopenharmony_ci value++; 5394d6c458bSopenharmony_ci } 5404d6c458bSopenharmony_ci} 5414d6c458bSopenharmony_ci 5424d6c458bSopenharmony_ci/** 5434d6c458bSopenharmony_ci * @tc.name: WriteStringTest003 5444d6c458bSopenharmony_ci * @tc.desc: Write string to buffer. 5454d6c458bSopenharmony_ci * @tc.type: FUNC 5464d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 5474d6c458bSopenharmony_ci */ 5484d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteStringTest003, testing::ext::TestSize.Level0) 5494d6c458bSopenharmony_ci{ 5504d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 5514d6c458bSopenharmony_ci buf->Init(9); 5524d6c458bSopenharmony_ci std::string str = "123456789"; 5534d6c458bSopenharmony_ci unsigned int size = buf->WriteString(str, 0, 9); 5544d6c458bSopenharmony_ci uint8_t data[size]; 5554d6c458bSopenharmony_ci buf->ReadBytes(data, 0, size); 5564d6c458bSopenharmony_ci uint8_t value = 49; 5574d6c458bSopenharmony_ci for (size_t i = 0; i < size; i++) { 5584d6c458bSopenharmony_ci ASSERT_EQ(data[i], value); 5594d6c458bSopenharmony_ci value++; 5604d6c458bSopenharmony_ci } 5614d6c458bSopenharmony_ci} 5624d6c458bSopenharmony_ci 5634d6c458bSopenharmony_ci/** 5644d6c458bSopenharmony_ci * @tc.name: WriteStringTest004 5654d6c458bSopenharmony_ci * @tc.desc: Write string to buffer. 5664d6c458bSopenharmony_ci * @tc.type: FUNC 5674d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 5684d6c458bSopenharmony_ci */ 5694d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteStringTest004, testing::ext::TestSize.Level0) 5704d6c458bSopenharmony_ci{ 5714d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 5724d6c458bSopenharmony_ci buf->Init(9); 5734d6c458bSopenharmony_ci std::string str = "123456789"; 5744d6c458bSopenharmony_ci unsigned int size = buf->WriteString(str, 2, 7); 5754d6c458bSopenharmony_ci uint8_t data[size]; 5764d6c458bSopenharmony_ci buf->ReadBytes(data, 0, size); 5774d6c458bSopenharmony_ci uint8_t value = 49; 5784d6c458bSopenharmony_ci for (size_t i = 2; i < size; i++) { 5794d6c458bSopenharmony_ci ASSERT_EQ(data[i], value); 5804d6c458bSopenharmony_ci value++; 5814d6c458bSopenharmony_ci } 5824d6c458bSopenharmony_ci} 5834d6c458bSopenharmony_ci 5844d6c458bSopenharmony_ci/** 5854d6c458bSopenharmony_ci * @tc.name: WriteStringTest005 5864d6c458bSopenharmony_ci * @tc.desc: Write string to buffer. 5874d6c458bSopenharmony_ci * @tc.type: FUNC 5884d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 5894d6c458bSopenharmony_ci */ 5904d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteStringTest005, testing::ext::TestSize.Level0) 5914d6c458bSopenharmony_ci{ 5924d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 5934d6c458bSopenharmony_ci buf->Init(9); 5944d6c458bSopenharmony_ci std::string str = "123456789"; 5954d6c458bSopenharmony_ci unsigned int size = buf->WriteString(str, 0, 9, "utf8"); 5964d6c458bSopenharmony_ci uint8_t data[size]; 5974d6c458bSopenharmony_ci buf->ReadBytes(data, 0, size); 5984d6c458bSopenharmony_ci uint8_t value = 49; 5994d6c458bSopenharmony_ci for (size_t i = 0; i < size; i++) { 6004d6c458bSopenharmony_ci ASSERT_EQ(data[i], value); 6014d6c458bSopenharmony_ci value++; 6024d6c458bSopenharmony_ci } 6034d6c458bSopenharmony_ci} 6044d6c458bSopenharmony_ci 6054d6c458bSopenharmony_ci/** 6064d6c458bSopenharmony_ci * @tc.name: WriteStringTest006 6074d6c458bSopenharmony_ci * @tc.desc: Write string to buffer. 6084d6c458bSopenharmony_ci * @tc.type: FUNC 6094d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 6104d6c458bSopenharmony_ci */ 6114d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, WriteStringTest006, testing::ext::TestSize.Level0) 6124d6c458bSopenharmony_ci{ 6134d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 6144d6c458bSopenharmony_ci buf->Init(16); 6154d6c458bSopenharmony_ci FillZero(buf, 16); 6164d6c458bSopenharmony_ci std::string str = "12345678"; 6174d6c458bSopenharmony_ci unsigned int size = buf->WriteString(str, 0, 16, "utf16le"); 6184d6c458bSopenharmony_ci ASSERT_EQ(size, 16); 6194d6c458bSopenharmony_ci uint8_t data[size]; 6204d6c458bSopenharmony_ci buf->ReadBytes(data, 0, size); 6214d6c458bSopenharmony_ci uint8_t value = 49; 6224d6c458bSopenharmony_ci for (size_t i = 0; i < size; i++) { 6234d6c458bSopenharmony_ci if (i % 2 == 0) { 6244d6c458bSopenharmony_ci ASSERT_EQ(data[i], value); 6254d6c458bSopenharmony_ci value++; 6264d6c458bSopenharmony_ci } else { 6274d6c458bSopenharmony_ci ASSERT_EQ(data[i], 0); 6284d6c458bSopenharmony_ci } 6294d6c458bSopenharmony_ci } 6304d6c458bSopenharmony_ci} 6314d6c458bSopenharmony_ci 6324d6c458bSopenharmony_ci/** 6334d6c458bSopenharmony_ci * @tc.name: SubBufferTest001 6344d6c458bSopenharmony_ci * @tc.desc: Returns a new Buffer that references the same memory as the original, 6354d6c458bSopenharmony_ci * but offset and cropped by the start and end indices. 6364d6c458bSopenharmony_ci * @tc.type: FUNC 6374d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 6384d6c458bSopenharmony_ci */ 6394d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, SubBufferTest001, testing::ext::TestSize.Level0) 6404d6c458bSopenharmony_ci{ 6414d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 6424d6c458bSopenharmony_ci buf->SubBuffer(nullptr, 0, 10); 6434d6c458bSopenharmony_ci 6444d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf1 = new OHOS::buffer::Buffer(); 6454d6c458bSopenharmony_ci buf1->Init(10); 6464d6c458bSopenharmony_ci FillZero(buf1, 10); 6474d6c458bSopenharmony_ci std::string str = "1234567890"; 6484d6c458bSopenharmony_ci buf1->WriteString(str, 0, 10); 6494d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf2 = new OHOS::buffer::Buffer(); 6504d6c458bSopenharmony_ci buf2->SubBuffer(buf1, 0, 10); 6514d6c458bSopenharmony_ci buf1->ReadBytesForArrayBuffer(NULL, 0); 6524d6c458bSopenharmony_ci 6534d6c458bSopenharmony_ci ASSERT_EQ(buf2->GetLength(), 10); 6544d6c458bSopenharmony_ci uint8_t data[11]; 6554d6c458bSopenharmony_ci buf2->ReadBytes(data, 0, 10); 6564d6c458bSopenharmony_ci data[10] = 0; 6574d6c458bSopenharmony_ci ASSERT_STREQ(reinterpret_cast<char*>(data), str.c_str()); 6584d6c458bSopenharmony_ci} 6594d6c458bSopenharmony_ci 6604d6c458bSopenharmony_ci/** 6614d6c458bSopenharmony_ci * @tc.name: SubBufferTest002 6624d6c458bSopenharmony_ci * @tc.desc: Returns a new Buffer that references the same memory as the original, 6634d6c458bSopenharmony_ci * but offset and cropped by the start and end indices. 6644d6c458bSopenharmony_ci * @tc.type: FUNC 6654d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 6664d6c458bSopenharmony_ci */ 6674d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, SubBufferTest002, testing::ext::TestSize.Level0) 6684d6c458bSopenharmony_ci{ 6694d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf1 = new OHOS::buffer::Buffer(); 6704d6c458bSopenharmony_ci buf1->Init(10); 6714d6c458bSopenharmony_ci FillZero(buf1, 10); 6724d6c458bSopenharmony_ci std::string str = "1234567890"; 6734d6c458bSopenharmony_ci buf1->WriteString(str, 0, 10); 6744d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf2 = new OHOS::buffer::Buffer(); 6754d6c458bSopenharmony_ci buf2->SubBuffer(buf1, 2, 10); 6764d6c458bSopenharmony_ci ASSERT_EQ(buf2->GetLength(), 8); 6774d6c458bSopenharmony_ci uint8_t data[9]; 6784d6c458bSopenharmony_ci buf2->ReadBytes(data, 0, 8); 6794d6c458bSopenharmony_ci data[8] = 0; 6804d6c458bSopenharmony_ci ASSERT_STREQ(reinterpret_cast<char*>(data), "34567890"); 6814d6c458bSopenharmony_ci} 6824d6c458bSopenharmony_ci 6834d6c458bSopenharmony_ci/** 6844d6c458bSopenharmony_ci * @tc.name: CopyTest001 6854d6c458bSopenharmony_ci * @tc.desc: Copies data from a region of buf to a region in target, 6864d6c458bSopenharmony_ci * even if the target memory region overlaps with buf. 6874d6c458bSopenharmony_ci * @tc.type: FUNC 6884d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 6894d6c458bSopenharmony_ci */ 6904d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, CopyTest001, testing::ext::TestSize.Level0) 6914d6c458bSopenharmony_ci{ 6924d6c458bSopenharmony_ci OHOS::buffer::Buffer *buffer = new OHOS::buffer::Buffer(); 6934d6c458bSopenharmony_ci buffer->Init(20); 6944d6c458bSopenharmony_ci 6954d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 6964d6c458bSopenharmony_ci buf->Init(20); 6974d6c458bSopenharmony_ci buf->WriteString("this is a string", 16); 6984d6c458bSopenharmony_ci 6994d6c458bSopenharmony_ci unsigned int tOffset = 1; 7004d6c458bSopenharmony_ci unsigned int sOffset = 0; 7014d6c458bSopenharmony_ci unsigned int tEnd = 16; 7024d6c458bSopenharmony_ci unsigned int sEnd = 16; 7034d6c458bSopenharmony_ci buf->Copy(buffer, tOffset, sOffset, sEnd); 7044d6c458bSopenharmony_ci uint8_t data[20] = {0}; 7054d6c458bSopenharmony_ci buffer->ReadBytes(data, tOffset, tEnd); 7064d6c458bSopenharmony_ci ASSERT_STREQ(reinterpret_cast<char*>(data), "this is a string"); 7074d6c458bSopenharmony_ci} 7084d6c458bSopenharmony_ci 7094d6c458bSopenharmony_ci/** 7104d6c458bSopenharmony_ci * @tc.name: CopyTest002 7114d6c458bSopenharmony_ci * @tc.desc: Copies data with len 0 7124d6c458bSopenharmony_ci * @tc.type: FUNC 7134d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 7144d6c458bSopenharmony_ci */ 7154d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, CopyTest002, testing::ext::TestSize.Level0) 7164d6c458bSopenharmony_ci{ 7174d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 7184d6c458bSopenharmony_ci buf->Init(20); 7194d6c458bSopenharmony_ci std::string value = "YWJjZA"; 7204d6c458bSopenharmony_ci ASSERT_EQ(buf->Copy(buf, 0, 2, 2), 0); 7214d6c458bSopenharmony_ci} 7224d6c458bSopenharmony_ci/** 7234d6c458bSopenharmony_ci * @tc.name: CopyTest003 7244d6c458bSopenharmony_ci * @tc.desc: Buffer Copy. 7254d6c458bSopenharmony_ci * @tc.type: FUNC 7264d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 7274d6c458bSopenharmony_ci */ 7284d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, CopyTest003, testing::ext::TestSize.Level0) 7294d6c458bSopenharmony_ci{ 7304d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 7314d6c458bSopenharmony_ci uint8_t data[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 7324d6c458bSopenharmony_ci buf->Init(data, 0, 10); 7334d6c458bSopenharmony_ci uint32_t res = buf->Copy(buf, 0, 4, 10); 7344d6c458bSopenharmony_ci ASSERT_EQ(res, 6); 7354d6c458bSopenharmony_ci res = buf->Copy(buf, 0, 0, 0); 7364d6c458bSopenharmony_ci ASSERT_EQ(res, 0); 7374d6c458bSopenharmony_ci delete buf; 7384d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf1 = new OHOS::buffer::Buffer(); 7394d6c458bSopenharmony_ci res = buf1->Copy(buf1, 0, 4, 10); 7404d6c458bSopenharmony_ci delete buf1; 7414d6c458bSopenharmony_ci ASSERT_EQ(res, 0); 7424d6c458bSopenharmony_ci} 7434d6c458bSopenharmony_ci 7444d6c458bSopenharmony_ci/** 7454d6c458bSopenharmony_ci * @tc.name: CompareTest001 7464d6c458bSopenharmony_ci * @tc.desc: Compares buf with target and returns a number indicating whether buf comes before, after, 7474d6c458bSopenharmony_ci * or is the same as target in sort order. Comparison is based on the actual sequence of bytes in each Buffer 7484d6c458bSopenharmony_ci * @tc.type: FUNC 7494d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 7504d6c458bSopenharmony_ci */ 7514d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, CompareTest001, testing::ext::TestSize.Level0) 7524d6c458bSopenharmony_ci{ 7534d6c458bSopenharmony_ci OHOS::buffer::Buffer *buffer = new OHOS::buffer::Buffer(); 7544d6c458bSopenharmony_ci buffer->Init(20); 7554d6c458bSopenharmony_ci buffer->WriteString("this is a string", 16); 7564d6c458bSopenharmony_ci 7574d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 7584d6c458bSopenharmony_ci buf->Init(20); 7594d6c458bSopenharmony_ci buf->WriteString("this is a string", 1, 16); 7604d6c458bSopenharmony_ci 7614d6c458bSopenharmony_ci int result = buf->Compare(buffer, 0, 1, 16); 7624d6c458bSopenharmony_ci ASSERT_EQ(result, 0); 7634d6c458bSopenharmony_ci} 7644d6c458bSopenharmony_ci 7654d6c458bSopenharmony_ci/** 7664d6c458bSopenharmony_ci * @tc.name: IndexOfTest001 7674d6c458bSopenharmony_ci * @tc.desc: The index of the first occurrence of value in buf. 7684d6c458bSopenharmony_ci * @tc.type: FUNC 7694d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 7704d6c458bSopenharmony_ci */ 7714d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, IndexOfTest001, testing::ext::TestSize.Level0) 7724d6c458bSopenharmony_ci{ 7734d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 7744d6c458bSopenharmony_ci buf->Init(20); 7754d6c458bSopenharmony_ci buf->WriteString("this is a string", 16); 7764d6c458bSopenharmony_ci uint64_t resultIndex = 0; 7774d6c458bSopenharmony_ci int index = buf->IndexOf("is", 0, 2, resultIndex); 7784d6c458bSopenharmony_ci ASSERT_EQ(index, -2); 7794d6c458bSopenharmony_ci ASSERT_EQ(resultIndex, 2); 7804d6c458bSopenharmony_ci} 7814d6c458bSopenharmony_ci 7824d6c458bSopenharmony_ci/** 7834d6c458bSopenharmony_ci * @tc.name: IndexOfTest002 7844d6c458bSopenharmony_ci * @tc.desc: The index of the first occurrence of value in buf. 7854d6c458bSopenharmony_ci * @tc.type: FUNC 7864d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 7874d6c458bSopenharmony_ci */ 7884d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, IndexOfTest002, testing::ext::TestSize.Level0) 7894d6c458bSopenharmony_ci{ 7904d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 7914d6c458bSopenharmony_ci buf->Init(7); 7924d6c458bSopenharmony_ci buf->WriteString("3363333", 7); 7934d6c458bSopenharmony_ci uint64_t resultIndex = 0; 7944d6c458bSopenharmony_ci int index = buf->IndexOf("36", 0, 2, resultIndex); 7954d6c458bSopenharmony_ci ASSERT_EQ(index, -2); 7964d6c458bSopenharmony_ci ASSERT_EQ(resultIndex, 1); 7974d6c458bSopenharmony_ci} 7984d6c458bSopenharmony_ci 7994d6c458bSopenharmony_ci/** 8004d6c458bSopenharmony_ci * @tc.name: IndexOfTest003 8014d6c458bSopenharmony_ci * @tc.desc: The index of the first occurrence of value in buf. 8024d6c458bSopenharmony_ci * @tc.type: FUNC 8034d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 8044d6c458bSopenharmony_ci */ 8054d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, IndexOfTest003, testing::ext::TestSize.Level0) 8064d6c458bSopenharmony_ci{ 8074d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 8084d6c458bSopenharmony_ci buf->Init(12); 8094d6c458bSopenharmony_ci buf->WriteString("322362326233", 12); 8104d6c458bSopenharmony_ci uint64_t resultIndex = 0; 8114d6c458bSopenharmony_ci int index = buf->IndexOf("2623", 0, 4, resultIndex); 8124d6c458bSopenharmony_ci ASSERT_EQ(index, -2); 8134d6c458bSopenharmony_ci ASSERT_EQ(resultIndex, 7); 8144d6c458bSopenharmony_ci} 8154d6c458bSopenharmony_ci 8164d6c458bSopenharmony_ci/** 8174d6c458bSopenharmony_ci * @tc.name: IndexOfTest004 8184d6c458bSopenharmony_ci * @tc.desc: Data is not in buf. 8194d6c458bSopenharmony_ci * @tc.type: FUNC 8204d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 8214d6c458bSopenharmony_ci */ 8224d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, IndexOfTest004, testing::ext::TestSize.Level0) 8234d6c458bSopenharmony_ci{ 8244d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 8254d6c458bSopenharmony_ci buf->Init(12); 8264d6c458bSopenharmony_ci buf->WriteString("322362326233", 12); 8274d6c458bSopenharmony_ci uint64_t resultIndex = 0; 8284d6c458bSopenharmony_ci int index = buf->IndexOf("99", 0, 2, resultIndex); 8294d6c458bSopenharmony_ci ASSERT_EQ(index, -1); 8304d6c458bSopenharmony_ci} 8314d6c458bSopenharmony_ci 8324d6c458bSopenharmony_ci/** 8334d6c458bSopenharmony_ci * @tc.name: LastIndexOfTest001 8344d6c458bSopenharmony_ci * @tc.desc: The index of the last occurrence of value in buf. 8354d6c458bSopenharmony_ci * @tc.type: FUNC 8364d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 8374d6c458bSopenharmony_ci */ 8384d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, LastIndexOfTest001, testing::ext::TestSize.Level0) 8394d6c458bSopenharmony_ci{ 8404d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 8414d6c458bSopenharmony_ci buf->Init(20); 8424d6c458bSopenharmony_ci buf->WriteString("this is a string", 16); 8434d6c458bSopenharmony_ci int index = buf->LastIndexOf("is", 0, 2); 8444d6c458bSopenharmony_ci ASSERT_EQ(index, 5); 8454d6c458bSopenharmony_ci} 8464d6c458bSopenharmony_ci 8474d6c458bSopenharmony_ci/** 8484d6c458bSopenharmony_ci * @tc.name: LastIndexOfTest002 8494d6c458bSopenharmony_ci * @tc.desc: The index of the last occurrence of value in buf. 8504d6c458bSopenharmony_ci * @tc.type: FUNC 8514d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 8524d6c458bSopenharmony_ci */ 8534d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, LastIndexOfTest002, testing::ext::TestSize.Level0) 8544d6c458bSopenharmony_ci{ 8554d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 8564d6c458bSopenharmony_ci buf->Init(7); 8574d6c458bSopenharmony_ci buf->WriteString("3363333", 7); 8584d6c458bSopenharmony_ci int index = buf->LastIndexOf("36", 0, 2); 8594d6c458bSopenharmony_ci ASSERT_EQ(index, 1); 8604d6c458bSopenharmony_ci} 8614d6c458bSopenharmony_ci 8624d6c458bSopenharmony_ci/** 8634d6c458bSopenharmony_ci * @tc.name: LastIndexOfTest003 8644d6c458bSopenharmony_ci * @tc.desc: The index of the last occurrence of value in buf. 8654d6c458bSopenharmony_ci * @tc.type: FUNC 8664d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 8674d6c458bSopenharmony_ci */ 8684d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, LastIndexOfTest003, testing::ext::TestSize.Level0) 8694d6c458bSopenharmony_ci{ 8704d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 8714d6c458bSopenharmony_ci buf->Init(11); 8724d6c458bSopenharmony_ci buf->WriteString("32236326233", 11); 8734d6c458bSopenharmony_ci int index = buf->LastIndexOf("236", 0, 3); 8744d6c458bSopenharmony_ci ASSERT_EQ(index, 2); 8754d6c458bSopenharmony_ci} 8764d6c458bSopenharmony_ci 8774d6c458bSopenharmony_ci/** 8784d6c458bSopenharmony_ci * @tc.name: LastIndexOfTest004 8794d6c458bSopenharmony_ci * @tc.desc: The index of the last occurrence of value in buf. 8804d6c458bSopenharmony_ci * @tc.type: FUNC 8814d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 8824d6c458bSopenharmony_ci */ 8834d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, LastIndexOfTest004, testing::ext::TestSize.Level0) 8844d6c458bSopenharmony_ci{ 8854d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 8864d6c458bSopenharmony_ci buf->Init(12); 8874d6c458bSopenharmony_ci buf->WriteString("322362326233", 12); 8884d6c458bSopenharmony_ci int index = buf->LastIndexOf("2236", 0, 4); 8894d6c458bSopenharmony_ci ASSERT_EQ(index, 1); 8904d6c458bSopenharmony_ci} 8914d6c458bSopenharmony_ci 8924d6c458bSopenharmony_ci/** 8934d6c458bSopenharmony_ci * @tc.name: LastIndexOfTest005 8944d6c458bSopenharmony_ci * @tc.desc: The index of the last occurrence of value in buf. 8954d6c458bSopenharmony_ci * @tc.type: FUNC 8964d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 8974d6c458bSopenharmony_ci */ 8984d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, LastIndexOfTest005, testing::ext::TestSize.Level0) 8994d6c458bSopenharmony_ci{ 9004d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 9014d6c458bSopenharmony_ci buf->Init(12); 9024d6c458bSopenharmony_ci buf->WriteString("322362326233", 12); 9034d6c458bSopenharmony_ci int index = buf->LastIndexOf("136", 0, 3); 9044d6c458bSopenharmony_ci ASSERT_EQ(index, -1); 9054d6c458bSopenharmony_ci} 9064d6c458bSopenharmony_ci 9074d6c458bSopenharmony_ci 9084d6c458bSopenharmony_ci/** 9094d6c458bSopenharmony_ci * @tc.name: ToBase64Test001 9104d6c458bSopenharmony_ci * @tc.desc: Convert the contents of the buffer into a string in Base64 format. 9114d6c458bSopenharmony_ci * @tc.type: FUNC 9124d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 9134d6c458bSopenharmony_ci */ 9144d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ToBase64Test001, testing::ext::TestSize.Level0) 9154d6c458bSopenharmony_ci{ 9164d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 9174d6c458bSopenharmony_ci buf->Init(20); 9184d6c458bSopenharmony_ci buf->WriteString("this is a string", 16); 9194d6c458bSopenharmony_ci std::string base64Str = buf->ToBase64(0, 16); 9204d6c458bSopenharmony_ci ASSERT_STREQ(base64Str.c_str(), "dGhpcyBpcyBhIHN0cmluZw=="); 9214d6c458bSopenharmony_ci} 9224d6c458bSopenharmony_ci 9234d6c458bSopenharmony_ci/** 9244d6c458bSopenharmony_ci * @tc.name: ToBase64Test002 9254d6c458bSopenharmony_ci * @tc.desc: Convert the contents of the buffer into a string in Base64 format. 9264d6c458bSopenharmony_ci * @tc.type: FUNC 9274d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 9284d6c458bSopenharmony_ci */ 9294d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ToBase64Test002, testing::ext::TestSize.Level0) 9304d6c458bSopenharmony_ci{ 9314d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 9324d6c458bSopenharmony_ci buf->Init(30); 9334d6c458bSopenharmony_ci buf->WriteString("this is a big string", 20); 9344d6c458bSopenharmony_ci std::string base64Str = buf->ToBase64(0, 20); 9354d6c458bSopenharmony_ci ASSERT_STREQ(base64Str.c_str(), "dGhpcyBpcyBhIGJpZyBzdHJpbmc="); 9364d6c458bSopenharmony_ci} 9374d6c458bSopenharmony_ci 9384d6c458bSopenharmony_ci/** 9394d6c458bSopenharmony_ci * @tc.name: ToBase64Test003 9404d6c458bSopenharmony_ci * @tc.desc: Convert to base64 with length 0. 9414d6c458bSopenharmony_ci * @tc.type: FUNC 9424d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 9434d6c458bSopenharmony_ci */ 9444d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ToBase64Test003, testing::ext::TestSize.Level0) 9454d6c458bSopenharmony_ci{ 9464d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 9474d6c458bSopenharmony_ci buf->Init(30); 9484d6c458bSopenharmony_ci buf->WriteString("this is a big string", 20); 9494d6c458bSopenharmony_ci std::string base64Str = buf->ToBase64(0, 0); 9504d6c458bSopenharmony_ci ASSERT_STREQ(base64Str.c_str(), ""); 9514d6c458bSopenharmony_ci} 9524d6c458bSopenharmony_ci 9534d6c458bSopenharmony_ci/** 9544d6c458bSopenharmony_ci * @tc.name: ToBase64UrlTest001 9554d6c458bSopenharmony_ci * @tc.desc: Convert the contents of the buffer into a string in Base64 format. 9564d6c458bSopenharmony_ci * @tc.type: FUNC 9574d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 9584d6c458bSopenharmony_ci */ 9594d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, ToBase64UrlTest001, testing::ext::TestSize.Level0) 9604d6c458bSopenharmony_ci{ 9614d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 9624d6c458bSopenharmony_ci buf->Init(20); 9634d6c458bSopenharmony_ci buf->WriteString("this is a string", 16); 9644d6c458bSopenharmony_ci std::string base64Str = buf->ToBase64Url(0, 16); 9654d6c458bSopenharmony_ci std::string stra = OHOS::buffer::Base64Encode(nullptr, 10, OHOS::buffer::BASE64URL); 9664d6c458bSopenharmony_ci ASSERT_STREQ(base64Str.c_str(), "dGhpcyBpcyBhIHN0cmluZw"); 9674d6c458bSopenharmony_ci} 9684d6c458bSopenharmony_ci 9694d6c458bSopenharmony_ci/** 9704d6c458bSopenharmony_ci * @tc.name: GetEncodingTypeTest001 9714d6c458bSopenharmony_ci * @tc.desc: Get encoding type. 9724d6c458bSopenharmony_ci * @tc.type: FUNC 9734d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 9744d6c458bSopenharmony_ci */ 9754d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, GetEncodingTypeTest001, testing::ext::TestSize.Level0) 9764d6c458bSopenharmony_ci{ 9774d6c458bSopenharmony_ci std::map <std::string, int> _typeMap = 9784d6c458bSopenharmony_ci { 9794d6c458bSopenharmony_ci {"hex", OHOS::buffer::HEX}, 9804d6c458bSopenharmony_ci {"base64url", OHOS::buffer::BASE64URL}, 9814d6c458bSopenharmony_ci {"ascii", OHOS::buffer::ASCII}, 9824d6c458bSopenharmony_ci {"base64", OHOS::buffer::BASE64}, 9834d6c458bSopenharmony_ci {"latin1", OHOS::buffer::LATIN1}, 9844d6c458bSopenharmony_ci {"binary", OHOS::buffer::BINARY}, 9854d6c458bSopenharmony_ci {"utf16le", OHOS::buffer::UTF16LE}, 9864d6c458bSopenharmony_ci {"utf8", OHOS::buffer::UTF8}, 9874d6c458bSopenharmony_ci }; 9884d6c458bSopenharmony_ci 9894d6c458bSopenharmony_ci for (auto item =_typeMap.begin(); item != _typeMap.end(); item++) 9904d6c458bSopenharmony_ci { 9914d6c458bSopenharmony_ci std::string type = item->first; 9924d6c458bSopenharmony_ci OHOS::buffer::EncodingType et = OHOS::buffer::Buffer::GetEncodingType(type); 9934d6c458bSopenharmony_ci ASSERT_EQ(et, item->second); 9944d6c458bSopenharmony_ci } 9954d6c458bSopenharmony_ci} 9964d6c458bSopenharmony_ci 9974d6c458bSopenharmony_ci/** 9984d6c458bSopenharmony_ci * @tc.name: SetArrayTest001 9994d6c458bSopenharmony_ci * @tc.desc: Put the contents of the array into the buffer. 10004d6c458bSopenharmony_ci * @tc.type: FUNC 10014d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 10024d6c458bSopenharmony_ci */ 10034d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, SetArrayTest001, testing::ext::TestSize.Level0) 10044d6c458bSopenharmony_ci{ 10054d6c458bSopenharmony_ci OHOS::buffer::Buffer *buffer = new OHOS::buffer::Buffer(); 10064d6c458bSopenharmony_ci buffer->Init(20); 10074d6c458bSopenharmony_ci std::vector<uint8_t> numbers; 10084d6c458bSopenharmony_ci for (int i = 0; i < 10; i++) { 10094d6c458bSopenharmony_ci numbers.push_back(i); 10104d6c458bSopenharmony_ci } 10114d6c458bSopenharmony_ci buffer->SetArray(numbers); 10124d6c458bSopenharmony_ci unsigned int offset = 0; 10134d6c458bSopenharmony_ci unsigned int end = 10; 10144d6c458bSopenharmony_ci uint8_t data[20] = {0}; 10154d6c458bSopenharmony_ci buffer->ReadBytes(data, offset, end); 10164d6c458bSopenharmony_ci for (int j = 0; j < 10; j++) { 10174d6c458bSopenharmony_ci ASSERT_EQ(data[j], j); 10184d6c458bSopenharmony_ci } 10194d6c458bSopenharmony_ci} 10204d6c458bSopenharmony_ci 10214d6c458bSopenharmony_ci/** 10224d6c458bSopenharmony_ci * @tc.name: FillBufferTest001 10234d6c458bSopenharmony_ci * @tc.desc: Fill the buffer with the buffer object 10244d6c458bSopenharmony_ci * @tc.type: FUNC 10254d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 10264d6c458bSopenharmony_ci */ 10274d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, FillBufferTest001, testing::ext::TestSize.Level0) 10284d6c458bSopenharmony_ci{ 10294d6c458bSopenharmony_ci OHOS::buffer::Buffer *buffer = new OHOS::buffer::Buffer(); 10304d6c458bSopenharmony_ci buffer->Init(10); 10314d6c458bSopenharmony_ci std::vector<uint8_t> numbers; 10324d6c458bSopenharmony_ci for (int i = 0; i < 10; i++) { 10334d6c458bSopenharmony_ci numbers.push_back(i); 10344d6c458bSopenharmony_ci } 10354d6c458bSopenharmony_ci buffer->SetArray(numbers); 10364d6c458bSopenharmony_ci unsigned int offset = 0; 10374d6c458bSopenharmony_ci unsigned int end = 10; 10384d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 10394d6c458bSopenharmony_ci buf->Init(20); 10404d6c458bSopenharmony_ci buf->FillBuffer(buffer, offset, end); 10414d6c458bSopenharmony_ci uint8_t data[20] = {0}; 10424d6c458bSopenharmony_ci buf->ReadBytes(data, offset, end); 10434d6c458bSopenharmony_ci for (int j = 0; j < 10; j++) { 10444d6c458bSopenharmony_ci ASSERT_EQ(data[j], j); 10454d6c458bSopenharmony_ci } 10464d6c458bSopenharmony_ci} 10474d6c458bSopenharmony_ci 10484d6c458bSopenharmony_ci/** 10494d6c458bSopenharmony_ci * @tc.name: FillNumberTest001 10504d6c458bSopenharmony_ci * @tc.desc: Fill the buffer with the number 10514d6c458bSopenharmony_ci * @tc.type: FUNC 10524d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 10534d6c458bSopenharmony_ci */ 10544d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, FillNumberTest001, testing::ext::TestSize.Level0) 10554d6c458bSopenharmony_ci{ 10564d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 10574d6c458bSopenharmony_ci buf->Init(20); 10584d6c458bSopenharmony_ci std::vector<uint8_t> numbers; 10594d6c458bSopenharmony_ci for (int i = 0; i < 10; i++) { 10604d6c458bSopenharmony_ci numbers.push_back(i); 10614d6c458bSopenharmony_ci } 10624d6c458bSopenharmony_ci unsigned int offset = 0; 10634d6c458bSopenharmony_ci unsigned int end = 10; 10644d6c458bSopenharmony_ci buf->FillNumber(numbers, offset, end); 10654d6c458bSopenharmony_ci uint8_t data[20] = {0}; 10664d6c458bSopenharmony_ci buf->ReadBytes(data, offset, end); 10674d6c458bSopenharmony_ci for (int j = 0; j < 10; j++) { 10684d6c458bSopenharmony_ci ASSERT_EQ(data[j], j); 10694d6c458bSopenharmony_ci } 10704d6c458bSopenharmony_ci} 10714d6c458bSopenharmony_ci 10724d6c458bSopenharmony_ci/** 10734d6c458bSopenharmony_ci * @tc.name: FillStringTest001 10744d6c458bSopenharmony_ci * @tc.desc: Fill the buffer with the string 10754d6c458bSopenharmony_ci * @tc.type: FUNC 10764d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 10774d6c458bSopenharmony_ci */ 10784d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, FillStringTest001, testing::ext::TestSize.Level0) 10794d6c458bSopenharmony_ci{ 10804d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 10814d6c458bSopenharmony_ci buf->Init(20); 10824d6c458bSopenharmony_ci std::string value = "abcd"; 10834d6c458bSopenharmony_ci std::string encoding = "ascii"; 10844d6c458bSopenharmony_ci buf->FillString(value, 1, 1, encoding); 10854d6c458bSopenharmony_ci 10864d6c458bSopenharmony_ci unsigned int offset = 0; 10874d6c458bSopenharmony_ci unsigned int end = 10; 10884d6c458bSopenharmony_ci buf->FillString(value, offset, end, encoding); 10894d6c458bSopenharmony_ci uint8_t data[20] = {0}; 10904d6c458bSopenharmony_ci buf->ReadBytes(data, offset, end); 10914d6c458bSopenharmony_ci ASSERT_STREQ(reinterpret_cast<char*>(data), "abcdabcdab"); 10924d6c458bSopenharmony_ci} 10934d6c458bSopenharmony_ci 10944d6c458bSopenharmony_ci/** 10954d6c458bSopenharmony_ci * @tc.name: FillStringTest002 10964d6c458bSopenharmony_ci * @tc.desc: Fill the buffer with the string 10974d6c458bSopenharmony_ci * @tc.type: FUNC 10984d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 10994d6c458bSopenharmony_ci */ 11004d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, FillStringTest002, testing::ext::TestSize.Level0) 11014d6c458bSopenharmony_ci{ 11024d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 11034d6c458bSopenharmony_ci buf->Init(20); 11044d6c458bSopenharmony_ci std::string value = "扡摣"; 11054d6c458bSopenharmony_ci unsigned int offset = 0; 11064d6c458bSopenharmony_ci unsigned int end = 10; 11074d6c458bSopenharmony_ci std::string encoding = "utf16le"; 11084d6c458bSopenharmony_ci buf->FillString(value, offset, end, encoding); 11094d6c458bSopenharmony_ci uint8_t data[20] = {0}; 11104d6c458bSopenharmony_ci buf->ReadBytes(data, offset, end); 11114d6c458bSopenharmony_ci ASSERT_STREQ(reinterpret_cast<char*>(data), "abcdabcdab"); 11124d6c458bSopenharmony_ci} 11134d6c458bSopenharmony_ci 11144d6c458bSopenharmony_ci/** 11154d6c458bSopenharmony_ci * @tc.name: FillStringTest003 11164d6c458bSopenharmony_ci * @tc.desc: Fill the buffer with the string 11174d6c458bSopenharmony_ci * @tc.type: FUNC 11184d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 11194d6c458bSopenharmony_ci */ 11204d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, FillStringTest003, testing::ext::TestSize.Level0) 11214d6c458bSopenharmony_ci{ 11224d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 11234d6c458bSopenharmony_ci buf->Init(20); 11244d6c458bSopenharmony_ci std::string value = "YWJjZA"; 11254d6c458bSopenharmony_ci unsigned int offset = 0; 11264d6c458bSopenharmony_ci unsigned int end = 10; 11274d6c458bSopenharmony_ci std::string encoding = "base64"; 11284d6c458bSopenharmony_ci buf->FillString(value, offset, end, encoding); 11294d6c458bSopenharmony_ci uint8_t data[20] = {0}; 11304d6c458bSopenharmony_ci buf->ReadBytes(data, offset, end); 11314d6c458bSopenharmony_ci ASSERT_STREQ(reinterpret_cast<char*>(data), "abcdabcdab"); 11324d6c458bSopenharmony_ci} 11334d6c458bSopenharmony_ci 11344d6c458bSopenharmony_ci/** 11354d6c458bSopenharmony_ci * @tc.name: BlobConstructorTest001 11364d6c458bSopenharmony_ci * @tc.desc: Blob Constructor 11374d6c458bSopenharmony_ci * @tc.type: FUNC 11384d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 11394d6c458bSopenharmony_ci */ 11404d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, BlobConstructorTest001, testing::ext::TestSize.Level0) 11414d6c458bSopenharmony_ci{ 11424d6c458bSopenharmony_ci OHOS::buffer::Blob *blob = new OHOS::buffer::Blob(); 11434d6c458bSopenharmony_ci uint8_t data[4] = {1, 2, 3, 4}; 11444d6c458bSopenharmony_ci blob->Init(data, 4); 11454d6c458bSopenharmony_ci ASSERT_EQ(blob->GetLength(), 4); 11464d6c458bSopenharmony_ci} 11474d6c458bSopenharmony_ci 11484d6c458bSopenharmony_ci/** 11494d6c458bSopenharmony_ci * @tc.name: BlobConstructorTest002 11504d6c458bSopenharmony_ci * @tc.desc: Blob Constructor 11514d6c458bSopenharmony_ci * @tc.type: FUNC 11524d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 11534d6c458bSopenharmony_ci */ 11544d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, BlobConstructorTest002, testing::ext::TestSize.Level0) 11554d6c458bSopenharmony_ci{ 11564d6c458bSopenharmony_ci OHOS::buffer::Blob *blob = new OHOS::buffer::Blob(); 11574d6c458bSopenharmony_ci uint8_t data[4] = {1, 2, 3, 4}; 11584d6c458bSopenharmony_ci blob->Init(data, 4); 11594d6c458bSopenharmony_ci 11604d6c458bSopenharmony_ci OHOS::buffer::Blob *blob2 = new OHOS::buffer::Blob(); 11614d6c458bSopenharmony_ci blob2->Init(blob, 0); 11624d6c458bSopenharmony_ci 11634d6c458bSopenharmony_ci ASSERT_EQ(blob2->GetLength(), 4); 11644d6c458bSopenharmony_ci} 11654d6c458bSopenharmony_ci 11664d6c458bSopenharmony_ci/** 11674d6c458bSopenharmony_ci * @tc.name: BlobConstructorTest003 11684d6c458bSopenharmony_ci * @tc.desc: Blob Constructor 11694d6c458bSopenharmony_ci * @tc.type: FUNC 11704d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 11714d6c458bSopenharmony_ci */ 11724d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, BlobConstructorTest003, testing::ext::TestSize.Level0) 11734d6c458bSopenharmony_ci{ 11744d6c458bSopenharmony_ci OHOS::buffer::Blob *blob = new OHOS::buffer::Blob(); 11754d6c458bSopenharmony_ci uint8_t data[4] = {1, 2, 3, 4}; 11764d6c458bSopenharmony_ci blob->Init(data, 4); 11774d6c458bSopenharmony_ci 11784d6c458bSopenharmony_ci OHOS::buffer::Blob *blob2 = new OHOS::buffer::Blob(); 11794d6c458bSopenharmony_ci blob2->Init(blob, 1, 4); 11804d6c458bSopenharmony_ci 11814d6c458bSopenharmony_ci ASSERT_EQ(blob2->GetLength(), 3); 11824d6c458bSopenharmony_ci} 11834d6c458bSopenharmony_ci 11844d6c458bSopenharmony_ci/** 11854d6c458bSopenharmony_ci * @tc.name: BlobConstructorTest004 11864d6c458bSopenharmony_ci * @tc.desc: Blob Constructor 11874d6c458bSopenharmony_ci * @tc.type: FUNC 11884d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 11894d6c458bSopenharmony_ci */ 11904d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, BlobConstructorTest004, testing::ext::TestSize.Level0) 11914d6c458bSopenharmony_ci{ 11924d6c458bSopenharmony_ci OHOS::buffer::Blob *blob = new OHOS::buffer::Blob(); 11934d6c458bSopenharmony_ci uint8_t data[1] = {1}; 11944d6c458bSopenharmony_ci OHOS::buffer::Blob *blob1 = new OHOS::buffer::Blob(); 11954d6c458bSopenharmony_ci blob->Init(blob1, 1, 0); 11964d6c458bSopenharmony_ci blob->Init(blob1, 1, -1); 11974d6c458bSopenharmony_ci blob->Init(blob1, -1, 1); 11984d6c458bSopenharmony_ci blob->Init(nullptr, 0, 1); 11994d6c458bSopenharmony_ci blob->Init(data, 1); 12004d6c458bSopenharmony_ci ASSERT_EQ(blob->GetLength(), 1); 12014d6c458bSopenharmony_ci delete blob; 12024d6c458bSopenharmony_ci blob = nullptr; 12034d6c458bSopenharmony_ci delete blob1; 12044d6c458bSopenharmony_ci blob1 = nullptr; 12054d6c458bSopenharmony_ci} 12064d6c458bSopenharmony_ci 12074d6c458bSopenharmony_ci/** 12084d6c458bSopenharmony_ci * @tc.name: BlobDestructorTest001 12094d6c458bSopenharmony_ci * @tc.desc: Blob Destructor. 12104d6c458bSopenharmony_ci * @tc.type: FUNC 12114d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 12124d6c458bSopenharmony_ci */ 12134d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, BlobDestructorTest001, testing::ext::TestSize.Level0) 12144d6c458bSopenharmony_ci{ 12154d6c458bSopenharmony_ci OHOS::buffer::Blob *blob = new OHOS::buffer::Blob(); 12164d6c458bSopenharmony_ci uint8_t data[4] = {1, 2, 3, 4}; 12174d6c458bSopenharmony_ci blob->Init(data, 4); 12184d6c458bSopenharmony_ci unsigned int len = blob->GetLength(); 12194d6c458bSopenharmony_ci ASSERT_EQ(len, 4); 12204d6c458bSopenharmony_ci delete blob; 12214d6c458bSopenharmony_ci blob = nullptr; 12224d6c458bSopenharmony_ci} 12234d6c458bSopenharmony_ci 12244d6c458bSopenharmony_ci/** 12254d6c458bSopenharmony_ci * @tc.name: BlobGetByteTest001 12264d6c458bSopenharmony_ci * @tc.desc: Get a byte in blob 12274d6c458bSopenharmony_ci * @tc.type: FUNC 12284d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 12294d6c458bSopenharmony_ci */ 12304d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, BlobGetByteTest001, testing::ext::TestSize.Level0) 12314d6c458bSopenharmony_ci{ 12324d6c458bSopenharmony_ci OHOS::buffer::Blob *blob = new OHOS::buffer::Blob(); 12334d6c458bSopenharmony_ci uint8_t data[4] = {1, 2, 3, 4}; 12344d6c458bSopenharmony_ci blob->Init(data, 4); 12354d6c458bSopenharmony_ci 12364d6c458bSopenharmony_ci uint8_t byte = blob->GetByte(2); 12374d6c458bSopenharmony_ci 12384d6c458bSopenharmony_ci ASSERT_EQ(byte, 3); 12394d6c458bSopenharmony_ci} 12404d6c458bSopenharmony_ci 12414d6c458bSopenharmony_ci/** 12424d6c458bSopenharmony_ci * @tc.name: BlobGetRawTest001 12434d6c458bSopenharmony_ci * @tc.desc: Get the raw in blob 12444d6c458bSopenharmony_ci * @tc.type: FUNC 12454d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 12464d6c458bSopenharmony_ci */ 12474d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, BlobGetRawTest001, testing::ext::TestSize.Level0) 12484d6c458bSopenharmony_ci{ 12494d6c458bSopenharmony_ci OHOS::buffer::Blob *blob = new OHOS::buffer::Blob(); 12504d6c458bSopenharmony_ci uint8_t data[4] = {1, 2, 3, 4}; 12514d6c458bSopenharmony_ci blob->Init(data, 4); 12524d6c458bSopenharmony_ci 12534d6c458bSopenharmony_ci uint8_t *raw = blob->GetRaw(); 12544d6c458bSopenharmony_ci 12554d6c458bSopenharmony_ci ASSERT_TRUE(raw != nullptr); 12564d6c458bSopenharmony_ci} 12574d6c458bSopenharmony_ci 12584d6c458bSopenharmony_ci/** 12594d6c458bSopenharmony_ci * @tc.name: BlobGetLengthTest001 12604d6c458bSopenharmony_ci * @tc.desc: Get the length in blob 12614d6c458bSopenharmony_ci * @tc.type: FUNC 12624d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 12634d6c458bSopenharmony_ci */ 12644d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, BlobGetLengthTest001, testing::ext::TestSize.Level0) 12654d6c458bSopenharmony_ci{ 12664d6c458bSopenharmony_ci OHOS::buffer::Blob *blob = new OHOS::buffer::Blob(); 12674d6c458bSopenharmony_ci uint8_t data[4] = {1, 2, 3, 4}; 12684d6c458bSopenharmony_ci blob->Init(data, 4); 12694d6c458bSopenharmony_ci 12704d6c458bSopenharmony_ci unsigned int len = blob->GetLength(); 12714d6c458bSopenharmony_ci 12724d6c458bSopenharmony_ci ASSERT_EQ(len, 4); 12734d6c458bSopenharmony_ci} 12744d6c458bSopenharmony_ci 12754d6c458bSopenharmony_ci/** 12764d6c458bSopenharmony_ci * @tc.name: BlobGetLengthTest001 12774d6c458bSopenharmony_ci * @tc.desc: Read blob object bytes 12784d6c458bSopenharmony_ci * @tc.type: FUNC 12794d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 12804d6c458bSopenharmony_ci */ 12814d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, BlobReadBytesTest001, testing::ext::TestSize.Level0) 12824d6c458bSopenharmony_ci{ 12834d6c458bSopenharmony_ci OHOS::buffer::Blob *blob = new OHOS::buffer::Blob(); 12844d6c458bSopenharmony_ci uint8_t data[10] = {0}; 12854d6c458bSopenharmony_ci for (int i = 0; i < 10; i++) { 12864d6c458bSopenharmony_ci data[i] = i; 12874d6c458bSopenharmony_ci } 12884d6c458bSopenharmony_ci blob->Init(data, 10); 12894d6c458bSopenharmony_ci 12904d6c458bSopenharmony_ci uint8_t dat[10] = {0}; 12914d6c458bSopenharmony_ci blob->ReadBytes(dat, 10); 12924d6c458bSopenharmony_ci 12934d6c458bSopenharmony_ci for (int i = 0; i < 10; i++) { 12944d6c458bSopenharmony_ci ASSERT_EQ(dat[i], i); 12954d6c458bSopenharmony_ci } 12964d6c458bSopenharmony_ci} 12974d6c458bSopenharmony_ci 12984d6c458bSopenharmony_ci/** 12994d6c458bSopenharmony_ci * @tc.name: Utf8ToUtf16BETest001 13004d6c458bSopenharmony_ci * @tc.desc: convert utf8 bytes to utf16 bytes 13014d6c458bSopenharmony_ci * @tc.type: FUNC 13024d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 13034d6c458bSopenharmony_ci */ 13044d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, Utf8ToUtf16BETest001, testing::ext::TestSize.Level0) 13054d6c458bSopenharmony_ci{ 13064d6c458bSopenharmony_ci std::string str8 = ""; 13074d6c458bSopenharmony_ci // one byte 13084d6c458bSopenharmony_ci str8.append(1, 0x41); 13094d6c458bSopenharmony_ci // two bytes 13104d6c458bSopenharmony_ci str8.append(1, 0xC3); 13114d6c458bSopenharmony_ci str8.append(1, 0x84); 13124d6c458bSopenharmony_ci // three bytes 13134d6c458bSopenharmony_ci str8.append(1, 0xE5); 13144d6c458bSopenharmony_ci str8.append(1, 0x88); 13154d6c458bSopenharmony_ci str8.append(1, 0x98); 13164d6c458bSopenharmony_ci // four bytes 13174d6c458bSopenharmony_ci str8.append(1, 0xf0); 13184d6c458bSopenharmony_ci str8.append(1, 0x9f); 13194d6c458bSopenharmony_ci str8.append(1, 0x90); 13204d6c458bSopenharmony_ci str8.append(1, 0x85); 13214d6c458bSopenharmony_ci 13224d6c458bSopenharmony_ci // another four bytes 13234d6c458bSopenharmony_ci str8.append(1, 0xf0); 13244d6c458bSopenharmony_ci str8.append(1, 0x8f); 13254d6c458bSopenharmony_ci str8.append(1, 0x90); 13264d6c458bSopenharmony_ci str8.append(1, 0x85); 13274d6c458bSopenharmony_ci 13284d6c458bSopenharmony_ci bool isOk = false; 13294d6c458bSopenharmony_ci std::u16string str16 = OHOS::buffer::Utf8ToUtf16BE(str8, &isOk); 13304d6c458bSopenharmony_ci 13314d6c458bSopenharmony_ci char16_t results[] = {0x41, 0xc4, 0x5218, 0xd83d, 0xdc05, 0xf405}; 13324d6c458bSopenharmony_ci for (int i = 0; i < 6; i++) { 13334d6c458bSopenharmony_ci ASSERT_EQ(results[i], str16[i]); 13344d6c458bSopenharmony_ci } 13354d6c458bSopenharmony_ci} 13364d6c458bSopenharmony_ci 13374d6c458bSopenharmony_ci/** 13384d6c458bSopenharmony_ci * @tc.name: HexDecodeTest001 13394d6c458bSopenharmony_ci * @tc.desc: decode a hex string 13404d6c458bSopenharmony_ci * @tc.type: FUNC 13414d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 13424d6c458bSopenharmony_ci */ 13434d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, HexDecodeTest001, testing::ext::TestSize.Level0) 13444d6c458bSopenharmony_ci{ 13454d6c458bSopenharmony_ci std::string ret = OHOS::buffer::HexDecode("313g"); 13464d6c458bSopenharmony_ci ASSERT_EQ(ret, "1"); 13474d6c458bSopenharmony_ci} 13484d6c458bSopenharmony_ci 13494d6c458bSopenharmony_ci/** 13504d6c458bSopenharmony_ci * @tc.name: Utf16BEToLETest001 13514d6c458bSopenharmony_ci * @tc.desc: Utf16BEToLE 13524d6c458bSopenharmony_ci * @tc.type: FUNC 13534d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 13544d6c458bSopenharmony_ci */ 13554d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, Utf16BEToLETest001, testing::ext::TestSize.Level0) 13564d6c458bSopenharmony_ci{ 13574d6c458bSopenharmony_ci std::u16string wstrBE = u"\x0041\x0042\x0043"; 13584d6c458bSopenharmony_ci std::u16string re = OHOS::buffer::Utf16BEToLE(wstrBE); 13594d6c458bSopenharmony_ci char16_t results[] = {0x4100, 0x4200, 0x4300}; 13604d6c458bSopenharmony_ci for (int i = 0; i < 3; i++) { 13614d6c458bSopenharmony_ci ASSERT_EQ(results[i], re[i]); 13624d6c458bSopenharmony_ci } 13634d6c458bSopenharmony_ci} 13644d6c458bSopenharmony_ci 13654d6c458bSopenharmony_ci/** 13664d6c458bSopenharmony_ci * @tc.name: Base64EncodeTest001 13674d6c458bSopenharmony_ci * @tc.desc: Base64 encode with max size_t 13684d6c458bSopenharmony_ci * @tc.type: FUNC 13694d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 13704d6c458bSopenharmony_ci */ 13714d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, Base64EncodeTest001, testing::ext::TestSize.Level0) 13724d6c458bSopenharmony_ci{ 13734d6c458bSopenharmony_ci unsigned char data[] = {0x1A, 0x2B, 0x3C, 0x4D}; 13744d6c458bSopenharmony_ci size_t len = std::numeric_limits<size_t>::max(); 13754d6c458bSopenharmony_ci std::string stra = OHOS::buffer::Base64Encode(data, len, OHOS::buffer::BASE64URL); 13764d6c458bSopenharmony_ci ASSERT_EQ(stra, ""); 13774d6c458bSopenharmony_ci} 13784d6c458bSopenharmony_ci 13794d6c458bSopenharmony_ci/** 13804d6c458bSopenharmony_ci * @tc.name: Base64EncodeTest002 13814d6c458bSopenharmony_ci * @tc.desc: Base64 encode 13824d6c458bSopenharmony_ci * @tc.type: FUNC 13834d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 13844d6c458bSopenharmony_ci */ 13854d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, Base64EncodeTest002, testing::ext::TestSize.Level0) 13864d6c458bSopenharmony_ci{ 13874d6c458bSopenharmony_ci std::string value = "abc"; 13884d6c458bSopenharmony_ci std::string strb = OHOS::buffer::Base64Decode(value, OHOS::buffer::BASE64URL); 13894d6c458bSopenharmony_ci 13904d6c458bSopenharmony_ci unsigned char data[] = {0x1A, 0x2B, 0x3C, 0x4D}; 13914d6c458bSopenharmony_ci std::string stra = OHOS::buffer::Base64Encode(data, 4, OHOS::buffer::BASE64URL); 13924d6c458bSopenharmony_ci ASSERT_EQ(stra, "Gis8TQ"); 13934d6c458bSopenharmony_ci} 13944d6c458bSopenharmony_ci 13954d6c458bSopenharmony_ci/** 13964d6c458bSopenharmony_ci * @tc.name: GetGoodSuffixLengthByLastCharTest001 13974d6c458bSopenharmony_ci * @tc.desc: Get good suffix length by last char 13984d6c458bSopenharmony_ci * @tc.type: FUNC 13994d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 14004d6c458bSopenharmony_ci */ 14014d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, GetGoodSuffixLengthByLastCharTest001, testing::ext::TestSize.Level0) 14024d6c458bSopenharmony_ci{ 14034d6c458bSopenharmony_ci uint8_t pat[] = "ababcab"; 14044d6c458bSopenharmony_ci int patLen = sizeof(pat) - 1; 14054d6c458bSopenharmony_ci int patIndex = 4; 14064d6c458bSopenharmony_ci 14074d6c458bSopenharmony_ci int length = OHOS::buffer::GetGoodSuffixLengthByLastChar(pat, patIndex, patLen); 14084d6c458bSopenharmony_ci ASSERT_EQ(length, 3); 14094d6c458bSopenharmony_ci} 14104d6c458bSopenharmony_ci 14114d6c458bSopenharmony_ci/** 14124d6c458bSopenharmony_ci * @tc.name: FindLastIndexTest001 14134d6c458bSopenharmony_ci * @tc.desc: Find last index with error 14144d6c458bSopenharmony_ci * @tc.type: FUNC 14154d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 14164d6c458bSopenharmony_ci */ 14174d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, FindLastIndexTest001, testing::ext::TestSize.Level0) 14184d6c458bSopenharmony_ci{ 14194d6c458bSopenharmony_ci int rel1 = OHOS::buffer::FindLastIndex(nullptr, nullptr, 2, 1); 14204d6c458bSopenharmony_ci ASSERT_EQ(rel1, -1); 14214d6c458bSopenharmony_ci 14224d6c458bSopenharmony_ci uint8_t data[] = "abc"; 14234d6c458bSopenharmony_ci int rel2 = OHOS::buffer::FindLastIndex(data, data, 2, 0); 14244d6c458bSopenharmony_ci ASSERT_EQ(rel2, -1); 14254d6c458bSopenharmony_ci} 14264d6c458bSopenharmony_ci 14274d6c458bSopenharmony_ci/** 14284d6c458bSopenharmony_ci * @tc.name: FindIndex005 14294d6c458bSopenharmony_ci * @tc.desc: Find index with error. 14304d6c458bSopenharmony_ci * @tc.type: FUNC 14314d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 14324d6c458bSopenharmony_ci */ 14334d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, FindIndex005, testing::ext::TestSize.Level0) 14344d6c458bSopenharmony_ci{ 14354d6c458bSopenharmony_ci int rel1 = OHOS::buffer::FindIndex(nullptr, nullptr, 2, 1); 14364d6c458bSopenharmony_ci ASSERT_EQ(rel1, -1); 14374d6c458bSopenharmony_ci 14384d6c458bSopenharmony_ci uint8_t data[] = "abc"; 14394d6c458bSopenharmony_ci int rel2 = OHOS::buffer::FindIndex(data, data, 2, 0); 14404d6c458bSopenharmony_ci ASSERT_EQ(rel2, -1); 14414d6c458bSopenharmony_ci} 14424d6c458bSopenharmony_ci 14434d6c458bSopenharmony_ci/** 14444d6c458bSopenharmony_ci * @tc.name: FindIndex001 14454d6c458bSopenharmony_ci * @tc.desc: Buffer FindIndex. 14464d6c458bSopenharmony_ci * @tc.type: FUNC 14474d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 14484d6c458bSopenharmony_ci */ 14494d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, FindIndex001, testing::ext::TestSize.Level0) 14504d6c458bSopenharmony_ci{ 14514d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 14524d6c458bSopenharmony_ci buf->Init(15); 14534d6c458bSopenharmony_ci buf->WriteString("This is a buffer", 15); 14544d6c458bSopenharmony_ci uint64_t resultIndex = 0; 14554d6c458bSopenharmony_ci int index = buf->IndexOf("2623", 0, 4, resultIndex); 14564d6c458bSopenharmony_ci ASSERT_EQ(index, -1); 14574d6c458bSopenharmony_ci} 14584d6c458bSopenharmony_ci 14594d6c458bSopenharmony_ci/** 14604d6c458bSopenharmony_ci * @tc.name: FindIndex002 14614d6c458bSopenharmony_ci * @tc.desc: Buffer FindIndex. 14624d6c458bSopenharmony_ci * @tc.type: FUNC 14634d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 14644d6c458bSopenharmony_ci */ 14654d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, FindIndex002, testing::ext::TestSize.Level0) 14664d6c458bSopenharmony_ci{ 14674d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 14684d6c458bSopenharmony_ci buf->Init(15); 14694d6c458bSopenharmony_ci buf->WriteString("This is a buffer", 15); 14704d6c458bSopenharmony_ci uint64_t resultIndex = 0; 14714d6c458bSopenharmony_ci int index = buf->IndexOf("f", 0, 1, resultIndex); 14724d6c458bSopenharmony_ci ASSERT_EQ(index, -2); 14734d6c458bSopenharmony_ci ASSERT_EQ(resultIndex, 12); 14744d6c458bSopenharmony_ci} 14754d6c458bSopenharmony_ci 14764d6c458bSopenharmony_ci/** 14774d6c458bSopenharmony_ci * @tc.name: FindIndex003 14784d6c458bSopenharmony_ci * @tc.desc: Buffer FindIndex. 14794d6c458bSopenharmony_ci * @tc.type: FUNC 14804d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 14814d6c458bSopenharmony_ci */ 14824d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, FindIndex003, testing::ext::TestSize.Level0) 14834d6c458bSopenharmony_ci{ 14844d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 14854d6c458bSopenharmony_ci buf->Init(15); 14864d6c458bSopenharmony_ci buf->WriteString("23456789abcdefg", 15); 14874d6c458bSopenharmony_ci uint64_t resultIndex = 0; 14884d6c458bSopenharmony_ci int index = buf->IndexOf("3", 0, 1, resultIndex); 14894d6c458bSopenharmony_ci ASSERT_EQ(index, -2); 14904d6c458bSopenharmony_ci ASSERT_EQ(resultIndex, 1); 14914d6c458bSopenharmony_ci} 14924d6c458bSopenharmony_ci 14934d6c458bSopenharmony_ci/** 14944d6c458bSopenharmony_ci * @tc.name: FindIndex004 14954d6c458bSopenharmony_ci * @tc.desc: Buffer FindIndex. 14964d6c458bSopenharmony_ci * @tc.type: FUNC 14974d6c458bSopenharmony_ci * @tc.require:issueI5J5Z3 14984d6c458bSopenharmony_ci */ 14994d6c458bSopenharmony_ciHWTEST_F(NativeEngineTest, FindIndex004, testing::ext::TestSize.Level0) 15004d6c458bSopenharmony_ci{ 15014d6c458bSopenharmony_ci OHOS::buffer::Buffer *buf = new OHOS::buffer::Buffer(); 15024d6c458bSopenharmony_ci buf->Init(15); 15034d6c458bSopenharmony_ci buf->WriteString("23456789abcdefg", 15); 15044d6c458bSopenharmony_ci uint64_t resultIndex = 0; 15054d6c458bSopenharmony_ci int index = buf->IndexOf("3", 10, 1, resultIndex); 15064d6c458bSopenharmony_ci ASSERT_EQ(index, -1); 15074d6c458bSopenharmony_ci} 1508