133eb0b6dSopenharmony_ci/*
233eb0b6dSopenharmony_ci * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
333eb0b6dSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
433eb0b6dSopenharmony_ci * you may not use this file except in compliance with the License.
533eb0b6dSopenharmony_ci * You may obtain a copy of the License at
633eb0b6dSopenharmony_ci *
733eb0b6dSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
833eb0b6dSopenharmony_ci *
933eb0b6dSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1033eb0b6dSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1133eb0b6dSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1233eb0b6dSopenharmony_ci * See the License for the specific language governing permissions and
1333eb0b6dSopenharmony_ci * limitations under the License.
1433eb0b6dSopenharmony_ci */
1533eb0b6dSopenharmony_ci
1633eb0b6dSopenharmony_ci#include <cstddef>
1733eb0b6dSopenharmony_ci#define private public
1833eb0b6dSopenharmony_ci#define protected public
1933eb0b6dSopenharmony_ci
2033eb0b6dSopenharmony_ci#include <chrono>
2133eb0b6dSopenharmony_ci#include <thread>
2233eb0b6dSopenharmony_ci
2333eb0b6dSopenharmony_ci#include "test.h"
2433eb0b6dSopenharmony_ci#include "test_common.h"
2533eb0b6dSopenharmony_ci#include "gtest/gtest.h"
2633eb0b6dSopenharmony_ci#include "napi/native_api.h"
2733eb0b6dSopenharmony_ci#include "napi/native_node_api.h"
2833eb0b6dSopenharmony_ci#include "napi/native_common.h"
2933eb0b6dSopenharmony_ci#include "securec.h"
3033eb0b6dSopenharmony_ci#include "utils/log.h"
3133eb0b6dSopenharmony_ci#include "native_engine/impl/ark/ark_native_engine.h"
3233eb0b6dSopenharmony_ci#include "napi/native_engine/native_create_env.h"
3333eb0b6dSopenharmony_ci
3433eb0b6dSopenharmony_ciusing panda::RuntimeOption;
3533eb0b6dSopenharmony_ci
3633eb0b6dSopenharmony_cistatic constexpr int MAX_BUFFER_SIZE = 2;
3733eb0b6dSopenharmony_cistatic constexpr int BUFFER_SIZE_FIVE = 5;
3833eb0b6dSopenharmony_cistatic constexpr size_t TEST_STR_LENGTH = 30;
3933eb0b6dSopenharmony_cistatic int g_hookTagcp = 0;
4033eb0b6dSopenharmony_cistatic int g_hookTag = 0;
4133eb0b6dSopenharmony_cistatic int g_hookArgOne = 1;
4233eb0b6dSopenharmony_cistatic int g_hookArgTwo = 2;
4333eb0b6dSopenharmony_cistatic int g_hookArgThree = 3;
4433eb0b6dSopenharmony_cistatic constexpr int INT_ZERO = 0;
4533eb0b6dSopenharmony_cistatic constexpr int INT_ONE = 1;
4633eb0b6dSopenharmony_cistatic constexpr int INT_TWO = 2;
4733eb0b6dSopenharmony_cistatic constexpr int INT_THREE = 3;
4833eb0b6dSopenharmony_cistatic constexpr int THREAD_SIZE = 5;
4933eb0b6dSopenharmony_ci
5033eb0b6dSopenharmony_cistatic constexpr double TEST_DOUBLE = 1.1;
5133eb0b6dSopenharmony_cistatic constexpr char TEST_STRING[5] = "test";
5233eb0b6dSopenharmony_cistatic constexpr size_t MAX_BYTE_LENGTH = 2097152;
5333eb0b6dSopenharmony_cistatic constexpr int32_t TEST_INT32_MINUS_1 = -1;
5433eb0b6dSopenharmony_cistatic constexpr int32_t TEST_INT32_500 = 500;
5533eb0b6dSopenharmony_cistatic constexpr uint32_t TEST_UINT32_1000 = 1000;
5633eb0b6dSopenharmony_cistatic constexpr int64_t TEST_INT64 = 9007199254740991;
5733eb0b6dSopenharmony_cistatic constexpr const char TEST_CHAR_STRING[] = "TestString";
5833eb0b6dSopenharmony_cistatic constexpr const char16_t TEST_CHAR16_STRING[] = u"TestString";
5933eb0b6dSopenharmony_ci
6033eb0b6dSopenharmony_ciclass NapiBasicTest : public NativeEngineTest {
6133eb0b6dSopenharmony_cipublic:
6233eb0b6dSopenharmony_ci    static void SetUpTestCase()
6333eb0b6dSopenharmony_ci    {
6433eb0b6dSopenharmony_ci        GTEST_LOG_(INFO) << "NapiBasicTest SetUpTestCase";
6533eb0b6dSopenharmony_ci    }
6633eb0b6dSopenharmony_ci
6733eb0b6dSopenharmony_ci    static void TearDownTestCase()
6833eb0b6dSopenharmony_ci    {
6933eb0b6dSopenharmony_ci        GTEST_LOG_(INFO) << "NapiBasicTest TearDownTestCase";
7033eb0b6dSopenharmony_ci    }
7133eb0b6dSopenharmony_ci
7233eb0b6dSopenharmony_ci    void SetUp() override
7333eb0b6dSopenharmony_ci    {
7433eb0b6dSopenharmony_ci        napi_env env = reinterpret_cast<napi_env>(engine_);
7533eb0b6dSopenharmony_ci        napi_open_handle_scope(env, &scope_);
7633eb0b6dSopenharmony_ci    }
7733eb0b6dSopenharmony_ci
7833eb0b6dSopenharmony_ci    void TearDown() override
7933eb0b6dSopenharmony_ci    {
8033eb0b6dSopenharmony_ci        napi_env env = reinterpret_cast<napi_env>(engine_);
8133eb0b6dSopenharmony_ci        napi_value exception = nullptr;
8233eb0b6dSopenharmony_ci        napi_get_and_clear_last_exception(env, &exception);
8333eb0b6dSopenharmony_ci        napi_close_handle_scope(env, scope_);
8433eb0b6dSopenharmony_ci    }
8533eb0b6dSopenharmony_ciprivate:
8633eb0b6dSopenharmony_ci    napi_handle_scope scope_ = nullptr;
8733eb0b6dSopenharmony_ci};
8833eb0b6dSopenharmony_ci
8933eb0b6dSopenharmony_ciclass NativeEngineProxy {
9033eb0b6dSopenharmony_cipublic:
9133eb0b6dSopenharmony_ci    NativeEngineProxy()
9233eb0b6dSopenharmony_ci    {
9333eb0b6dSopenharmony_ci        // Setup
9433eb0b6dSopenharmony_ci        RuntimeOption option;
9533eb0b6dSopenharmony_ci        option.SetGcType(RuntimeOption::GC_TYPE::GEN_GC);
9633eb0b6dSopenharmony_ci        const int64_t poolSize = 0x1000000;  // 16M
9733eb0b6dSopenharmony_ci        option.SetGcPoolSize(poolSize);
9833eb0b6dSopenharmony_ci        option.SetLogLevel(RuntimeOption::LOG_LEVEL::ERROR);
9933eb0b6dSopenharmony_ci        option.SetDebuggerLibraryPath("");
10033eb0b6dSopenharmony_ci        vm_ = panda::JSNApi::CreateJSVM(option);
10133eb0b6dSopenharmony_ci        if (vm_ == nullptr) {
10233eb0b6dSopenharmony_ci            return;
10333eb0b6dSopenharmony_ci        }
10433eb0b6dSopenharmony_ci
10533eb0b6dSopenharmony_ci        engine_ = new ArkNativeEngine(vm_, nullptr);
10633eb0b6dSopenharmony_ci    }
10733eb0b6dSopenharmony_ci
10833eb0b6dSopenharmony_ci    ~NativeEngineProxy()
10933eb0b6dSopenharmony_ci    {
11033eb0b6dSopenharmony_ci        delete engine_;
11133eb0b6dSopenharmony_ci        panda::JSNApi::DestroyJSVM(vm_);
11233eb0b6dSopenharmony_ci    }
11333eb0b6dSopenharmony_ci
11433eb0b6dSopenharmony_ci    inline ArkNativeEngine* operator->() const
11533eb0b6dSopenharmony_ci    {
11633eb0b6dSopenharmony_ci        return engine_;
11733eb0b6dSopenharmony_ci    }
11833eb0b6dSopenharmony_ci
11933eb0b6dSopenharmony_ci    inline operator napi_env() const
12033eb0b6dSopenharmony_ci    {
12133eb0b6dSopenharmony_ci        return reinterpret_cast<napi_env>(engine_);
12233eb0b6dSopenharmony_ci    }
12333eb0b6dSopenharmony_ci
12433eb0b6dSopenharmony_ciprivate:
12533eb0b6dSopenharmony_ci    EcmaVM* vm_ {nullptr};
12633eb0b6dSopenharmony_ci    ArkNativeEngine* engine_ {nullptr};
12733eb0b6dSopenharmony_ci};
12833eb0b6dSopenharmony_ci
12933eb0b6dSopenharmony_cistatic const napi_type_tag typeTags[5] = { // 5:array element size is 5.
13033eb0b6dSopenharmony_ci    {0xdaf987b3cc62481a, 0xb745b0497f299531},
13133eb0b6dSopenharmony_ci    {0xbb7936c374084d9b, 0xa9548d0762eeedb9},
13233eb0b6dSopenharmony_ci    {0xa5ed9ce2e4c00c38, 0},
13333eb0b6dSopenharmony_ci    {0, 0},
13433eb0b6dSopenharmony_ci    {0xa5ed9ce2e4c00c34, 0xdaf987b3cc62481a},
13533eb0b6dSopenharmony_ci};
13633eb0b6dSopenharmony_ci
13733eb0b6dSopenharmony_cistatic void* TestDetachCallback(napi_env env, void* nativeObject, void* hint)
13833eb0b6dSopenharmony_ci{
13933eb0b6dSopenharmony_ci    HILOG_INFO("this is detach callback");
14033eb0b6dSopenharmony_ci    return nativeObject;
14133eb0b6dSopenharmony_ci}
14233eb0b6dSopenharmony_ci
14333eb0b6dSopenharmony_cistatic napi_value TestAttachCallback(napi_env env, void* nativeObject, void* hint)
14433eb0b6dSopenharmony_ci{
14533eb0b6dSopenharmony_ci    HILOG_INFO("this is attach callback");
14633eb0b6dSopenharmony_ci    napi_value object = nullptr;
14733eb0b6dSopenharmony_ci    napi_value number = nullptr;
14833eb0b6dSopenharmony_ci    uint32_t data = 0;
14933eb0b6dSopenharmony_ci    if (hint != nullptr) {
15033eb0b6dSopenharmony_ci        object = reinterpret_cast<napi_value>(nativeObject);
15133eb0b6dSopenharmony_ci        data = 2000; // 2000 : test number
15233eb0b6dSopenharmony_ci        napi_create_uint32(env, data, &number);
15333eb0b6dSopenharmony_ci    } else {
15433eb0b6dSopenharmony_ci        napi_create_object(env, &object);
15533eb0b6dSopenharmony_ci        data = 1000; // 1000 : test number
15633eb0b6dSopenharmony_ci        napi_create_uint32(env, data, &number);
15733eb0b6dSopenharmony_ci    }
15833eb0b6dSopenharmony_ci    napi_set_named_property(env, object, "number", number);
15933eb0b6dSopenharmony_ci    return object;
16033eb0b6dSopenharmony_ci}
16133eb0b6dSopenharmony_ci
16233eb0b6dSopenharmony_ci/**
16333eb0b6dSopenharmony_ci * @tc.name: ToNativeBindingObjectTest001
16433eb0b6dSopenharmony_ci * @tc.desc: Test nativeBinding object type.
16533eb0b6dSopenharmony_ci * @tc.type: FUNC
16633eb0b6dSopenharmony_ci */
16733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ToNativeBindingObjectTest001, testing::ext::TestSize.Level1)
16833eb0b6dSopenharmony_ci{
16933eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
17033eb0b6dSopenharmony_ci    napi_value object = nullptr;
17133eb0b6dSopenharmony_ci    napi_create_object(env, &object);
17233eb0b6dSopenharmony_ci    napi_value object1 = nullptr;
17333eb0b6dSopenharmony_ci    napi_create_object(env, &object1);
17433eb0b6dSopenharmony_ci    napi_status status = napi_coerce_to_native_binding_object(
17533eb0b6dSopenharmony_ci        env, object, TestDetachCallback, TestAttachCallback, reinterpret_cast<void*>(object1), nullptr);
17633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_status::napi_ok);
17733eb0b6dSopenharmony_ci}
17833eb0b6dSopenharmony_ci
17933eb0b6dSopenharmony_ci/**
18033eb0b6dSopenharmony_ci * @tc.name: ToNativeBindingObjectTest002
18133eb0b6dSopenharmony_ci * @tc.desc: Test nativeBinding object type.
18233eb0b6dSopenharmony_ci * @tc.type: FUNC
18333eb0b6dSopenharmony_ci */
18433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ToNativeBindingObjectTest002, testing::ext::TestSize.Level1)
18533eb0b6dSopenharmony_ci{
18633eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
18733eb0b6dSopenharmony_ci    napi_value object = nullptr;
18833eb0b6dSopenharmony_ci    napi_create_object(env, &object);
18933eb0b6dSopenharmony_ci    napi_value object1 = nullptr;
19033eb0b6dSopenharmony_ci    napi_create_object(env, &object1);
19133eb0b6dSopenharmony_ci    napi_coerce_to_native_binding_object(
19233eb0b6dSopenharmony_ci        env, object, TestDetachCallback, TestAttachCallback, reinterpret_cast<void*>(object1), nullptr);
19333eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
19433eb0b6dSopenharmony_ci    napi_get_undefined(env, &undefined);
19533eb0b6dSopenharmony_ci    void* data = nullptr;
19633eb0b6dSopenharmony_ci    napi_serialize_inner(env, object, undefined, undefined, false, true, &data);
19733eb0b6dSopenharmony_ci    ASSERT_NE(data, nullptr);
19833eb0b6dSopenharmony_ci    napi_value result = nullptr;
19933eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result);
20033eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_object);
20133eb0b6dSopenharmony_ci    napi_delete_serialization_data(env, data);
20233eb0b6dSopenharmony_ci    napi_value number = nullptr;
20333eb0b6dSopenharmony_ci    napi_get_named_property(env, result, "number", &number);
20433eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, number, napi_number);
20533eb0b6dSopenharmony_ci    uint32_t numData = 0;
20633eb0b6dSopenharmony_ci    napi_get_value_uint32(env, number, &numData);
20733eb0b6dSopenharmony_ci    ASSERT_EQ(numData, 1000);
20833eb0b6dSopenharmony_ci}
20933eb0b6dSopenharmony_ci
21033eb0b6dSopenharmony_ci/**
21133eb0b6dSopenharmony_ci * @tc.name: ToNativeBindingObjectTest003
21233eb0b6dSopenharmony_ci * @tc.desc: Test nativeBinding object type.
21333eb0b6dSopenharmony_ci * @tc.type: FUNC
21433eb0b6dSopenharmony_ci */
21533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ToNativeBindingObjectTest003, testing::ext::TestSize.Level1)
21633eb0b6dSopenharmony_ci{
21733eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
21833eb0b6dSopenharmony_ci    napi_value object = nullptr;
21933eb0b6dSopenharmony_ci    napi_create_object(env, &object);
22033eb0b6dSopenharmony_ci    napi_status status = napi_coerce_to_native_binding_object(
22133eb0b6dSopenharmony_ci        env, object, TestDetachCallback, TestAttachCallback, nullptr, nullptr);
22233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_status::napi_invalid_arg);
22333eb0b6dSopenharmony_ci    napi_value object1 = nullptr;
22433eb0b6dSopenharmony_ci    napi_create_object(env, &object1);
22533eb0b6dSopenharmony_ci    status = napi_coerce_to_native_binding_object(
22633eb0b6dSopenharmony_ci        env, object, nullptr, nullptr, reinterpret_cast<void*>(object1), nullptr);
22733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_status::napi_invalid_arg);
22833eb0b6dSopenharmony_ci}
22933eb0b6dSopenharmony_ci
23033eb0b6dSopenharmony_ci/**
23133eb0b6dSopenharmony_ci * @tc.name: ToNativeBindingObjectTest004
23233eb0b6dSopenharmony_ci * @tc.desc: Test nativeBinding object type.
23333eb0b6dSopenharmony_ci * @tc.type: FUNC
23433eb0b6dSopenharmony_ci */
23533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ToNativeBindingObjectTest004, testing::ext::TestSize.Level1)
23633eb0b6dSopenharmony_ci{
23733eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
23833eb0b6dSopenharmony_ci    napi_value object = nullptr;
23933eb0b6dSopenharmony_ci    napi_create_object(env, &object);
24033eb0b6dSopenharmony_ci    napi_value hint = nullptr;
24133eb0b6dSopenharmony_ci    napi_create_object(env, &hint);
24233eb0b6dSopenharmony_ci    napi_value object1 = nullptr;
24333eb0b6dSopenharmony_ci    napi_create_object(env, &object1);
24433eb0b6dSopenharmony_ci    napi_status status = napi_coerce_to_native_binding_object(env, object,
24533eb0b6dSopenharmony_ci        TestDetachCallback, TestAttachCallback, reinterpret_cast<void*>(object1), reinterpret_cast<void*>(hint));
24633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_status::napi_ok);
24733eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
24833eb0b6dSopenharmony_ci    napi_get_undefined(env, &undefined);
24933eb0b6dSopenharmony_ci    void* data = nullptr;
25033eb0b6dSopenharmony_ci    napi_serialize_inner(env, object, undefined, undefined, false, true, &data);
25133eb0b6dSopenharmony_ci    ASSERT_NE(data, nullptr);
25233eb0b6dSopenharmony_ci    napi_value result = nullptr;
25333eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result);
25433eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_object);
25533eb0b6dSopenharmony_ci    napi_delete_serialization_data(env, data);
25633eb0b6dSopenharmony_ci    napi_value number = nullptr;
25733eb0b6dSopenharmony_ci    napi_get_named_property(env, result, "number", &number);
25833eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, number, napi_number);
25933eb0b6dSopenharmony_ci    uint32_t numData = 0;
26033eb0b6dSopenharmony_ci    napi_get_value_uint32(env, number, &numData);
26133eb0b6dSopenharmony_ci    ASSERT_EQ(numData, 2000);
26233eb0b6dSopenharmony_ci}
26333eb0b6dSopenharmony_ci
26433eb0b6dSopenharmony_ci/**
26533eb0b6dSopenharmony_ci * @tc.name: UndefinedTest001
26633eb0b6dSopenharmony_ci * @tc.desc: Test undefined type.
26733eb0b6dSopenharmony_ci * @tc.type: FUNC
26833eb0b6dSopenharmony_ci */
26933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, UndefinedTest001, testing::ext::TestSize.Level1)
27033eb0b6dSopenharmony_ci{
27133eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
27233eb0b6dSopenharmony_ci    napi_value result = nullptr;
27333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_undefined(env, &result));
27433eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_undefined);
27533eb0b6dSopenharmony_ci}
27633eb0b6dSopenharmony_ci
27733eb0b6dSopenharmony_ci/**
27833eb0b6dSopenharmony_ci * @tc.name: NullTest001
27933eb0b6dSopenharmony_ci * @tc.desc: Test null type.
28033eb0b6dSopenharmony_ci * @tc.type: FUNC
28133eb0b6dSopenharmony_ci */
28233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NullTest001, testing::ext::TestSize.Level1)
28333eb0b6dSopenharmony_ci{
28433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
28533eb0b6dSopenharmony_ci    napi_value result = nullptr;
28633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_null(env, &result));
28733eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_null);
28833eb0b6dSopenharmony_ci}
28933eb0b6dSopenharmony_ci
29033eb0b6dSopenharmony_ci/**
29133eb0b6dSopenharmony_ci * @tc.name: BooleanTest001
29233eb0b6dSopenharmony_ci * @tc.desc: Test boolean type.
29333eb0b6dSopenharmony_ci * @tc.type: FUNC
29433eb0b6dSopenharmony_ci */
29533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, BooleanTest001, testing::ext::TestSize.Level1)
29633eb0b6dSopenharmony_ci{
29733eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
29833eb0b6dSopenharmony_ci    napi_value result = nullptr;
29933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &result));
30033eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_boolean);
30133eb0b6dSopenharmony_ci
30233eb0b6dSopenharmony_ci    bool resultValue = false;
30333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_bool(env, result, &resultValue));
30433eb0b6dSopenharmony_ci    ASSERT_TRUE(resultValue);
30533eb0b6dSopenharmony_ci}
30633eb0b6dSopenharmony_ci
30733eb0b6dSopenharmony_ci/**
30833eb0b6dSopenharmony_ci * @tc.name: NumberTest001
30933eb0b6dSopenharmony_ci * @tc.desc: Test number type.
31033eb0b6dSopenharmony_ci * @tc.type: FUNC
31133eb0b6dSopenharmony_ci */
31233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NumberTest001, testing::ext::TestSize.Level1)
31333eb0b6dSopenharmony_ci{
31433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
31533eb0b6dSopenharmony_ci    {
31633eb0b6dSopenharmony_ci        int32_t testValue = INT32_MAX;
31733eb0b6dSopenharmony_ci        napi_value result = nullptr;
31833eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_create_int32(env, testValue, &result));
31933eb0b6dSopenharmony_ci        ASSERT_CHECK_VALUE_TYPE(env, result, napi_number);
32033eb0b6dSopenharmony_ci
32133eb0b6dSopenharmony_ci        int32_t resultValue = 0;
32233eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_get_value_int32(env, result, &resultValue));
32333eb0b6dSopenharmony_ci        ASSERT_EQ(resultValue, INT32_MAX);
32433eb0b6dSopenharmony_ci    }
32533eb0b6dSopenharmony_ci    {
32633eb0b6dSopenharmony_ci        uint32_t testValue = UINT32_MAX;
32733eb0b6dSopenharmony_ci        napi_value result = nullptr;
32833eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_create_uint32(env, testValue, &result));
32933eb0b6dSopenharmony_ci        ASSERT_CHECK_VALUE_TYPE(env, result, napi_number);
33033eb0b6dSopenharmony_ci
33133eb0b6dSopenharmony_ci        uint32_t resultValue = 0;
33233eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_get_value_uint32(env, result, &resultValue));
33333eb0b6dSopenharmony_ci        ASSERT_EQ(resultValue, UINT32_MAX);
33433eb0b6dSopenharmony_ci    }
33533eb0b6dSopenharmony_ci    {
33633eb0b6dSopenharmony_ci        int64_t testValue = 9007199254740991;
33733eb0b6dSopenharmony_ci        napi_value result = nullptr;
33833eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_create_int64(env, testValue, &result));
33933eb0b6dSopenharmony_ci        ASSERT_CHECK_VALUE_TYPE(env, result, napi_number);
34033eb0b6dSopenharmony_ci
34133eb0b6dSopenharmony_ci        int64_t resultValue = 0;
34233eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_get_value_int64(env, result, &resultValue));
34333eb0b6dSopenharmony_ci        ASSERT_EQ(resultValue, testValue);
34433eb0b6dSopenharmony_ci    }
34533eb0b6dSopenharmony_ci    {
34633eb0b6dSopenharmony_ci        double testValue = DBL_MAX;
34733eb0b6dSopenharmony_ci        napi_value result = nullptr;
34833eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_create_double(env, testValue, &result));
34933eb0b6dSopenharmony_ci        ASSERT_CHECK_VALUE_TYPE(env, result, napi_number);
35033eb0b6dSopenharmony_ci
35133eb0b6dSopenharmony_ci        double resultValue = 0;
35233eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_get_value_double(env, result, &resultValue));
35333eb0b6dSopenharmony_ci        ASSERT_EQ(resultValue, DBL_MAX);
35433eb0b6dSopenharmony_ci    }
35533eb0b6dSopenharmony_ci}
35633eb0b6dSopenharmony_ci
35733eb0b6dSopenharmony_ci/**
35833eb0b6dSopenharmony_ci * @tc.name: StringTest001
35933eb0b6dSopenharmony_ci * @tc.desc: Test string type.
36033eb0b6dSopenharmony_ci * @tc.type: FUNC
36133eb0b6dSopenharmony_ci */
36233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringTest001, testing::ext::TestSize.Level1)
36333eb0b6dSopenharmony_ci{
36433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
36533eb0b6dSopenharmony_ci    const char testStr[] = "中文,English,123456,!@#$%$#^%&";
36633eb0b6dSopenharmony_ci    size_t testStrLength = strlen(testStr);
36733eb0b6dSopenharmony_ci    napi_value result = nullptr;
36833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, testStr, testStrLength, &result));
36933eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_string);
37033eb0b6dSopenharmony_ci
37133eb0b6dSopenharmony_ci    char* buffer = nullptr;
37233eb0b6dSopenharmony_ci    size_t bufferSize = 0;
37333eb0b6dSopenharmony_ci    size_t strLength = 0;
37433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, result, nullptr, 0, &bufferSize));
37533eb0b6dSopenharmony_ci    ASSERT_GT(bufferSize, static_cast<size_t>(0));
37633eb0b6dSopenharmony_ci    buffer = new char[bufferSize + 1]{ 0 };
37733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, result, buffer, bufferSize + 1, &strLength));
37833eb0b6dSopenharmony_ci    ASSERT_STREQ(testStr, buffer);
37933eb0b6dSopenharmony_ci    ASSERT_EQ(testStrLength, strLength);
38033eb0b6dSopenharmony_ci    delete []buffer;
38133eb0b6dSopenharmony_ci    buffer = nullptr;
38233eb0b6dSopenharmony_ci}
38333eb0b6dSopenharmony_ci
38433eb0b6dSopenharmony_ci/**
38533eb0b6dSopenharmony_ci * @tc.name: StringTest002
38633eb0b6dSopenharmony_ci * @tc.desc: Test string type.
38733eb0b6dSopenharmony_ci * @tc.type: FUNC
38833eb0b6dSopenharmony_ci */
38933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringTest002, testing::ext::TestSize.Level1)
39033eb0b6dSopenharmony_ci{
39133eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
39233eb0b6dSopenharmony_ci    const char testStr[] = "中测";
39333eb0b6dSopenharmony_ci    size_t testStrLength = strlen(testStr);
39433eb0b6dSopenharmony_ci    napi_value result = nullptr;
39533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, testStr, testStrLength, &result));
39633eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_string);
39733eb0b6dSopenharmony_ci
39833eb0b6dSopenharmony_ci    std::string str = "";
39933eb0b6dSopenharmony_ci    size_t strSize = 0;
40033eb0b6dSopenharmony_ci    napi_get_value_string_latin1(env, result, nullptr, 0, &strSize);
40133eb0b6dSopenharmony_ci    str.reserve(strSize + 1);
40233eb0b6dSopenharmony_ci    str.resize(strSize);
40333eb0b6dSopenharmony_ci    napi_get_value_string_latin1(env, result, str.data(), strSize + 1, &strSize);
40433eb0b6dSopenharmony_ci
40533eb0b6dSopenharmony_ci    ASSERT_EQ(str, "-K");
40633eb0b6dSopenharmony_ci}
40733eb0b6dSopenharmony_ci
40833eb0b6dSopenharmony_ci/**
40933eb0b6dSopenharmony_ci * @tc.name: StringTest003
41033eb0b6dSopenharmony_ci * @tc.desc: Test string type.
41133eb0b6dSopenharmony_ci * @tc.type: FUNC
41233eb0b6dSopenharmony_ci */
41333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringTest003, testing::ext::TestSize.Level1)
41433eb0b6dSopenharmony_ci{
41533eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
41633eb0b6dSopenharmony_ci    const char16_t testStr[] = u"abc56";
41733eb0b6dSopenharmony_ci    size_t testStrLength = std::char_traits<char16_t>::length(testStr);
41833eb0b6dSopenharmony_ci    napi_value res = nullptr;
41933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf16(env, testStr, testStrLength, &res));
42033eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, res, napi_string);
42133eb0b6dSopenharmony_ci
42233eb0b6dSopenharmony_ci    char16_t* buffer = nullptr;
42333eb0b6dSopenharmony_ci    size_t bufSize = 0;
42433eb0b6dSopenharmony_ci    size_t copied = 0;
42533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, res, nullptr, 0, &bufSize));
42633eb0b6dSopenharmony_ci    ASSERT_EQ(bufSize, testStrLength);
42733eb0b6dSopenharmony_ci    buffer = new char16_t[bufSize + 1]{ 0 };
42833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, res, buffer, bufSize + 1, &copied));
42933eb0b6dSopenharmony_ci    for (size_t i = 0; i < copied; i++) {
43033eb0b6dSopenharmony_ci        ASSERT_TRUE(testStr[i] == buffer[i]);
43133eb0b6dSopenharmony_ci    }
43233eb0b6dSopenharmony_ci    ASSERT_EQ(testStrLength, copied);
43333eb0b6dSopenharmony_ci    delete []buffer;
43433eb0b6dSopenharmony_ci    buffer = nullptr;
43533eb0b6dSopenharmony_ci}
43633eb0b6dSopenharmony_ci
43733eb0b6dSopenharmony_ci/**
43833eb0b6dSopenharmony_ci * @tc.name: StringTest004
43933eb0b6dSopenharmony_ci * @tc.desc: Test string type.
44033eb0b6dSopenharmony_ci * @tc.type: FUNC
44133eb0b6dSopenharmony_ci */
44233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringTest004, testing::ext::TestSize.Level1)
44333eb0b6dSopenharmony_ci{
44433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
44533eb0b6dSopenharmony_ci    const char16_t testStr[] = u"abc56";
44633eb0b6dSopenharmony_ci    size_t testStrLength = std::char_traits<char16_t>::length(testStr);
44733eb0b6dSopenharmony_ci    napi_value result = nullptr;
44833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf16(env, testStr, testStrLength, &result));
44933eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_string);
45033eb0b6dSopenharmony_ci
45133eb0b6dSopenharmony_ci    char16_t buffer[4]; // 4: char16_t type of array size
45233eb0b6dSopenharmony_ci    size_t bufferSize = 4; // 4: char16_t type of array size
45333eb0b6dSopenharmony_ci    size_t copied;
45433eb0b6dSopenharmony_ci
45533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, result, buffer, bufferSize, &copied));
45633eb0b6dSopenharmony_ci    for (size_t i = 0; i < copied; i++) {
45733eb0b6dSopenharmony_ci        ASSERT_TRUE(testStr[i] == buffer[i]);
45833eb0b6dSopenharmony_ci    }
45933eb0b6dSopenharmony_ci    ASSERT_EQ(copied, 3);
46033eb0b6dSopenharmony_ci}
46133eb0b6dSopenharmony_ci
46233eb0b6dSopenharmony_ci/**
46333eb0b6dSopenharmony_ci * @tc.name: TypetagTest001
46433eb0b6dSopenharmony_ci * @tc.desc: Test typetag type.
46533eb0b6dSopenharmony_ci * @tc.type: FUNC
46633eb0b6dSopenharmony_ci */
46733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, TypetagTest001, testing::ext::TestSize.Level1)
46833eb0b6dSopenharmony_ci{
46933eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
47033eb0b6dSopenharmony_ci    napi_value instance = nullptr;
47133eb0b6dSopenharmony_ci    bool result;
47233eb0b6dSopenharmony_ci    for (size_t i = 0; i < 5; i++) {
47333eb0b6dSopenharmony_ci        napi_create_object(env, &instance);
47433eb0b6dSopenharmony_ci        napi_type_tag_object(env, instance, &typeTags[i]);
47533eb0b6dSopenharmony_ci        napi_check_object_type_tag(env, instance, &typeTags[i], &result);
47633eb0b6dSopenharmony_ci        ASSERT_TRUE(result);
47733eb0b6dSopenharmony_ci    }
47833eb0b6dSopenharmony_ci}
47933eb0b6dSopenharmony_ci
48033eb0b6dSopenharmony_ci/**
48133eb0b6dSopenharmony_ci * @tc.name: TypetagTest002
48233eb0b6dSopenharmony_ci * @tc.desc: Test typetag type.
48333eb0b6dSopenharmony_ci * @tc.type: FUNC
48433eb0b6dSopenharmony_ci */
48533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, TypetagTest002, testing::ext::TestSize.Level1)
48633eb0b6dSopenharmony_ci{
48733eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
48833eb0b6dSopenharmony_ci    uint32_t typeIndex = 0;
48933eb0b6dSopenharmony_ci    napi_value instance = nullptr;
49033eb0b6dSopenharmony_ci    bool result;
49133eb0b6dSopenharmony_ci    napi_create_object(env, &instance);
49233eb0b6dSopenharmony_ci
49333eb0b6dSopenharmony_ci    napi_type_tag_object(env, instance, &typeTags[typeIndex]);
49433eb0b6dSopenharmony_ci    napi_check_object_type_tag(env, instance, &typeTags[typeIndex + 1], &result);
49533eb0b6dSopenharmony_ci
49633eb0b6dSopenharmony_ci    ASSERT_FALSE(result);
49733eb0b6dSopenharmony_ci}
49833eb0b6dSopenharmony_ci
49933eb0b6dSopenharmony_ci/**
50033eb0b6dSopenharmony_ci * @tc.name: SymbolTest001
50133eb0b6dSopenharmony_ci * @tc.desc: Test symbol type.
50233eb0b6dSopenharmony_ci * @tc.type: FUNC
50333eb0b6dSopenharmony_ci */
50433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, SymbolTest001, testing::ext::TestSize.Level1)
50533eb0b6dSopenharmony_ci{
50633eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
50733eb0b6dSopenharmony_ci
50833eb0b6dSopenharmony_ci    const char testStr[] = "testSymbol";
50933eb0b6dSopenharmony_ci    napi_value result = nullptr;
51033eb0b6dSopenharmony_ci
51133eb0b6dSopenharmony_ci    napi_create_string_latin1(env, testStr, strlen(testStr), &result);
51233eb0b6dSopenharmony_ci
51333eb0b6dSopenharmony_ci    napi_value symbolVal = nullptr;
51433eb0b6dSopenharmony_ci    napi_create_symbol(env, result, &symbolVal);
51533eb0b6dSopenharmony_ci
51633eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, symbolVal, napi_symbol);
51733eb0b6dSopenharmony_ci}
51833eb0b6dSopenharmony_ci
51933eb0b6dSopenharmony_ci/**
52033eb0b6dSopenharmony_ci * @tc.name: ExternalTest001
52133eb0b6dSopenharmony_ci * @tc.desc: Test external type.
52233eb0b6dSopenharmony_ci * @tc.type: FUNC
52333eb0b6dSopenharmony_ci */
52433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ExternalTest001, testing::ext::TestSize.Level1)
52533eb0b6dSopenharmony_ci{
52633eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
52733eb0b6dSopenharmony_ci    const char testStr[] = "test";
52833eb0b6dSopenharmony_ci    napi_value external = nullptr;
52933eb0b6dSopenharmony_ci    napi_create_external(
53033eb0b6dSopenharmony_ci        env, (void*)testStr,
53133eb0b6dSopenharmony_ci        [](napi_env env, void* data, void* hint) { ASSERT_STREQ((const char*)data, (const char*)hint); },
53233eb0b6dSopenharmony_ci        (void*)testStr, &external);
53333eb0b6dSopenharmony_ci
53433eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, external, napi_external);
53533eb0b6dSopenharmony_ci    void* tmpExternal = nullptr;
53633eb0b6dSopenharmony_ci    napi_get_value_external(env, external, &tmpExternal);
53733eb0b6dSopenharmony_ci    ASSERT_TRUE(tmpExternal);
53833eb0b6dSopenharmony_ci    ASSERT_EQ(tmpExternal, testStr);
53933eb0b6dSopenharmony_ci}
54033eb0b6dSopenharmony_ci
54133eb0b6dSopenharmony_ci/**
54233eb0b6dSopenharmony_ci * @tc.name: ObjectTest001
54333eb0b6dSopenharmony_ci * @tc.desc: Test object type.
54433eb0b6dSopenharmony_ci * @tc.type: FUNC
54533eb0b6dSopenharmony_ci */
54633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ObjectTest001, testing::ext::TestSize.Level1)
54733eb0b6dSopenharmony_ci{
54833eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
54933eb0b6dSopenharmony_ci
55033eb0b6dSopenharmony_ci    napi_value result = nullptr;
55133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object(env, &result));
55233eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_object);
55333eb0b6dSopenharmony_ci
55433eb0b6dSopenharmony_ci    const char testStr[] = "1234567";
55533eb0b6dSopenharmony_ci    napi_value strAttribute = nullptr;
55633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, testStr, strlen(testStr), &strAttribute));
55733eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, strAttribute, napi_string);
55833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_set_named_property(env, result, "strAttribute", strAttribute));
55933eb0b6dSopenharmony_ci
56033eb0b6dSopenharmony_ci    napi_value retStrAttribute = nullptr;
56133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_named_property(env, result, "strAttribute", &retStrAttribute));
56233eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, retStrAttribute, napi_string);
56333eb0b6dSopenharmony_ci
56433eb0b6dSopenharmony_ci    int32_t testNumber = 12345;
56533eb0b6dSopenharmony_ci    napi_value numberAttribute = nullptr;
56633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_int32(env, testNumber, &numberAttribute));
56733eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, numberAttribute, napi_number);
56833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_set_named_property(env, result, "numberAttribute", numberAttribute));
56933eb0b6dSopenharmony_ci
57033eb0b6dSopenharmony_ci    napi_value propNames = nullptr;
57133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_property_names(env, result, &propNames));
57233eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, propNames, napi_object);
57333eb0b6dSopenharmony_ci    bool isArray = false;
57433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_is_array(env, propNames, &isArray));
57533eb0b6dSopenharmony_ci    ASSERT_TRUE(isArray);
57633eb0b6dSopenharmony_ci    uint32_t arrayLength = 0;
57733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_array_length(env, propNames, &arrayLength));
57833eb0b6dSopenharmony_ci    ASSERT_EQ(arrayLength, static_cast<uint32_t>(2));
57933eb0b6dSopenharmony_ci
58033eb0b6dSopenharmony_ci    for (uint32_t i = 0; i < arrayLength; i++) {
58133eb0b6dSopenharmony_ci        bool hasElement = false;
58233eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_has_element(env, propNames, i, &hasElement));
58333eb0b6dSopenharmony_ci
58433eb0b6dSopenharmony_ci        napi_value propName = nullptr;
58533eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_get_element(env, propNames, i, &propName));
58633eb0b6dSopenharmony_ci        ASSERT_CHECK_VALUE_TYPE(env, propName, napi_string);
58733eb0b6dSopenharmony_ci
58833eb0b6dSopenharmony_ci        bool hasProperty = false;
58933eb0b6dSopenharmony_ci        napi_has_property(env, result, propName, &hasProperty);
59033eb0b6dSopenharmony_ci        ASSERT_TRUE(hasProperty);
59133eb0b6dSopenharmony_ci
59233eb0b6dSopenharmony_ci        napi_value propValue = nullptr;
59333eb0b6dSopenharmony_ci        napi_get_property(env, result, propName, &propValue);
59433eb0b6dSopenharmony_ci        ASSERT_TRUE(propValue != nullptr);
59533eb0b6dSopenharmony_ci    }
59633eb0b6dSopenharmony_ci}
59733eb0b6dSopenharmony_ci
59833eb0b6dSopenharmony_ci/**
59933eb0b6dSopenharmony_ci * @tc.name: ObjectTest002
60033eb0b6dSopenharmony_ci * @tc.desc: Test Object Type.
60133eb0b6dSopenharmony_ci * @tc.type: FUNC
60233eb0b6dSopenharmony_ci */
60333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ObjectTest002, testing::ext::TestSize.Level1)
60433eb0b6dSopenharmony_ci{
60533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
60633eb0b6dSopenharmony_ci
60733eb0b6dSopenharmony_ci    napi_value result = nullptr;
60833eb0b6dSopenharmony_ci    napi_create_object(env, &result);
60933eb0b6dSopenharmony_ci    napi_value messageKey = nullptr;
61033eb0b6dSopenharmony_ci    const char* messageKeyStr = "message";
61133eb0b6dSopenharmony_ci    napi_create_string_latin1(env, messageKeyStr, strlen(messageKeyStr), &messageKey);
61233eb0b6dSopenharmony_ci    napi_value messageValue = nullptr;
61333eb0b6dSopenharmony_ci    const char* messageValueStr = "OK";
61433eb0b6dSopenharmony_ci    napi_create_string_latin1(env, messageValueStr, strlen(messageValueStr), &messageValue);
61533eb0b6dSopenharmony_ci    napi_set_property(env, result, messageKey, messageValue);
61633eb0b6dSopenharmony_ci
61733eb0b6dSopenharmony_ci    napi_value propValue = nullptr;
61833eb0b6dSopenharmony_ci    napi_get_property(env, result, messageKey, &propValue);
61933eb0b6dSopenharmony_ci    ASSERT_TRUE(propValue != nullptr);
62033eb0b6dSopenharmony_ci
62133eb0b6dSopenharmony_ci    napi_delete_property(env, result, messageKey, nullptr);
62233eb0b6dSopenharmony_ci    bool resultVal = true;
62333eb0b6dSopenharmony_ci    napi_has_property(env, result, messageKey, &resultVal);
62433eb0b6dSopenharmony_ci    ASSERT_FALSE(resultVal);
62533eb0b6dSopenharmony_ci
62633eb0b6dSopenharmony_ci    napi_value newKey = nullptr;
62733eb0b6dSopenharmony_ci    const char* newKeyStr = "new";
62833eb0b6dSopenharmony_ci    napi_create_string_latin1(env, newKeyStr, strlen(newKeyStr), &newKey);
62933eb0b6dSopenharmony_ci    int32_t testnumber = 12345;
63033eb0b6dSopenharmony_ci    napi_value numberValue = nullptr;
63133eb0b6dSopenharmony_ci    napi_create_int32(env, testnumber, &numberValue);
63233eb0b6dSopenharmony_ci    napi_set_property(env, result, newKey, numberValue);
63333eb0b6dSopenharmony_ci
63433eb0b6dSopenharmony_ci    napi_value propNames = nullptr;
63533eb0b6dSopenharmony_ci    napi_get_property_names(env, result, &propNames);
63633eb0b6dSopenharmony_ci    uint32_t arrayLength = 0;
63733eb0b6dSopenharmony_ci    napi_get_array_length(env, propNames, &arrayLength);
63833eb0b6dSopenharmony_ci    ASSERT_EQ(arrayLength, static_cast<uint32_t>(1));
63933eb0b6dSopenharmony_ci}
64033eb0b6dSopenharmony_ci
64133eb0b6dSopenharmony_ci/**
64233eb0b6dSopenharmony_ci * @tc.name: ObjectTest003
64333eb0b6dSopenharmony_ci * @tc.desc: Test Object Type.
64433eb0b6dSopenharmony_ci * @tc.type: FUNC
64533eb0b6dSopenharmony_ci */
64633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ObjectTest003, testing::ext::TestSize.Level1)
64733eb0b6dSopenharmony_ci{
64833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
64933eb0b6dSopenharmony_ci
65033eb0b6dSopenharmony_ci    napi_value result = nullptr;
65133eb0b6dSopenharmony_ci    napi_create_object(env, &result);
65233eb0b6dSopenharmony_ci
65333eb0b6dSopenharmony_ci    auto func = [](napi_env env, napi_callback_info info) -> napi_value {
65433eb0b6dSopenharmony_ci        return nullptr;
65533eb0b6dSopenharmony_ci    };
65633eb0b6dSopenharmony_ci    napi_value funcAttribute = nullptr;
65733eb0b6dSopenharmony_ci    napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, func, nullptr, &funcAttribute);
65833eb0b6dSopenharmony_ci
65933eb0b6dSopenharmony_ci    napi_value funcKey = nullptr;
66033eb0b6dSopenharmony_ci    const char* funcKeyStr = "func";
66133eb0b6dSopenharmony_ci    napi_create_string_latin1(env, funcKeyStr, strlen(funcKeyStr), &funcKey);
66233eb0b6dSopenharmony_ci    napi_status status = napi_set_property(env, result, funcKey, funcAttribute);
66333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_status::napi_ok);
66433eb0b6dSopenharmony_ci
66533eb0b6dSopenharmony_ci    bool isFuncExist = false;
66633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_has_property(env, result, funcKey, &isFuncExist));
66733eb0b6dSopenharmony_ci    ASSERT_TRUE(isFuncExist);
66833eb0b6dSopenharmony_ci
66933eb0b6dSopenharmony_ci    napi_value propFuncValue = nullptr;
67033eb0b6dSopenharmony_ci    napi_get_property_names(env, result, &propFuncValue);
67133eb0b6dSopenharmony_ci    uint32_t arrayLength = 0;
67233eb0b6dSopenharmony_ci    napi_get_array_length(env, propFuncValue, &arrayLength);
67333eb0b6dSopenharmony_ci    ASSERT_EQ(arrayLength, static_cast<uint32_t>(1));
67433eb0b6dSopenharmony_ci
67533eb0b6dSopenharmony_ci    bool isFuncDelete = false;
67633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_delete_property(env, result, funcKey, &isFuncDelete));
67733eb0b6dSopenharmony_ci    ASSERT_TRUE(isFuncDelete);
67833eb0b6dSopenharmony_ci}
67933eb0b6dSopenharmony_ci
68033eb0b6dSopenharmony_ci/**
68133eb0b6dSopenharmony_ci * @tc.name: FunctionTest001
68233eb0b6dSopenharmony_ci * @tc.desc: Test function type.
68333eb0b6dSopenharmony_ci * @tc.type: FUNC
68433eb0b6dSopenharmony_ci */
68533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, FunctionTest001, testing::ext::TestSize.Level1)
68633eb0b6dSopenharmony_ci{
68733eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
68833eb0b6dSopenharmony_ci
68933eb0b6dSopenharmony_ci    auto func = [](napi_env env, napi_callback_info info) -> napi_value {
69033eb0b6dSopenharmony_ci        napi_value thisVar;
69133eb0b6dSopenharmony_ci        napi_value* argv = nullptr;
69233eb0b6dSopenharmony_ci        size_t argc = 0;
69333eb0b6dSopenharmony_ci        void* data = nullptr;
69433eb0b6dSopenharmony_ci
69533eb0b6dSopenharmony_ci        napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr);
69633eb0b6dSopenharmony_ci        if (argc > 0) {
69733eb0b6dSopenharmony_ci            argv = new napi_value[argc];
69833eb0b6dSopenharmony_ci        }
69933eb0b6dSopenharmony_ci        napi_get_cb_info(env, info, &argc, argv, &thisVar, &data);
70033eb0b6dSopenharmony_ci
70133eb0b6dSopenharmony_ci        napi_value result = nullptr;
70233eb0b6dSopenharmony_ci        napi_create_object(env, &result);
70333eb0b6dSopenharmony_ci
70433eb0b6dSopenharmony_ci        napi_value messageKey = nullptr;
70533eb0b6dSopenharmony_ci        const char* messageKeyStr = "message";
70633eb0b6dSopenharmony_ci        napi_create_string_latin1(env, messageKeyStr, strlen(messageKeyStr), &messageKey);
70733eb0b6dSopenharmony_ci        napi_value messageValue = nullptr;
70833eb0b6dSopenharmony_ci        const char* messageValueStr = "OK";
70933eb0b6dSopenharmony_ci        napi_create_string_latin1(env, messageValueStr, strlen(messageValueStr), &messageValue);
71033eb0b6dSopenharmony_ci        napi_set_property(env, result, messageKey, messageValue);
71133eb0b6dSopenharmony_ci
71233eb0b6dSopenharmony_ci        if (argv != nullptr) {
71333eb0b6dSopenharmony_ci            delete []argv;
71433eb0b6dSopenharmony_ci        }
71533eb0b6dSopenharmony_ci
71633eb0b6dSopenharmony_ci        return result;
71733eb0b6dSopenharmony_ci    };
71833eb0b6dSopenharmony_ci
71933eb0b6dSopenharmony_ci    napi_value recv = nullptr;
72033eb0b6dSopenharmony_ci    napi_value funcValue = nullptr;
72133eb0b6dSopenharmony_ci    napi_get_undefined(env, &recv);
72233eb0b6dSopenharmony_ci    ASSERT_NE(recv, nullptr);
72333eb0b6dSopenharmony_ci
72433eb0b6dSopenharmony_ci    napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, func, nullptr, &funcValue);
72533eb0b6dSopenharmony_ci    ASSERT_NE(funcValue, nullptr);
72633eb0b6dSopenharmony_ci
72733eb0b6dSopenharmony_ci    napi_handle_scope parentScope = nullptr;
72833eb0b6dSopenharmony_ci    napi_open_handle_scope(env, &parentScope);
72933eb0b6dSopenharmony_ci    ASSERT_NE(parentScope, nullptr);
73033eb0b6dSopenharmony_ci
73133eb0b6dSopenharmony_ci    napi_escapable_handle_scope childScope = nullptr;
73233eb0b6dSopenharmony_ci    napi_open_escapable_handle_scope(env, &childScope);
73333eb0b6dSopenharmony_ci    ASSERT_NE(childScope, nullptr);
73433eb0b6dSopenharmony_ci
73533eb0b6dSopenharmony_ci    napi_value funcResultValue = nullptr;
73633eb0b6dSopenharmony_ci    napi_value newFuncResultValue = nullptr;
73733eb0b6dSopenharmony_ci    napi_call_function(env, recv, funcValue, 0, nullptr, &funcResultValue);
73833eb0b6dSopenharmony_ci    ASSERT_NE(funcResultValue, nullptr);
73933eb0b6dSopenharmony_ci
74033eb0b6dSopenharmony_ci    napi_escape_handle(env, childScope, funcResultValue, &newFuncResultValue);
74133eb0b6dSopenharmony_ci    napi_close_escapable_handle_scope(env, childScope);
74233eb0b6dSopenharmony_ci    ASSERT_TRUE(newFuncResultValue != nullptr);
74333eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, newFuncResultValue, napi_object);
74433eb0b6dSopenharmony_ci    napi_close_handle_scope(env, parentScope);
74533eb0b6dSopenharmony_ci}
74633eb0b6dSopenharmony_ci
74733eb0b6dSopenharmony_ci/**
74833eb0b6dSopenharmony_ci * @tc.name: FunctionTest002
74933eb0b6dSopenharmony_ci * @tc.desc: Test function type.
75033eb0b6dSopenharmony_ci * @tc.type: FUNC
75133eb0b6dSopenharmony_ci */
75233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, FunctionTest002, testing::ext::TestSize.Level1)
75333eb0b6dSopenharmony_ci{
75433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
75533eb0b6dSopenharmony_ci
75633eb0b6dSopenharmony_ci    auto func = [](napi_env env, napi_callback_info info) -> napi_value {
75733eb0b6dSopenharmony_ci        return nullptr;
75833eb0b6dSopenharmony_ci    };
75933eb0b6dSopenharmony_ci    napi_value fn;
76033eb0b6dSopenharmony_ci    const char data[] = "data";
76133eb0b6dSopenharmony_ci    napi_status status = napi_create_function(nullptr, nullptr, 0, nullptr, nullptr, &fn);
76233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
76333eb0b6dSopenharmony_ci    status = napi_create_function(env, nullptr, 0, nullptr, nullptr, &fn);
76433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
76533eb0b6dSopenharmony_ci    status = napi_create_function(env, nullptr, 0, func, (void*)data, nullptr);
76633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
76733eb0b6dSopenharmony_ci    status = napi_create_function(env, nullptr, 0, func, nullptr, &fn);
76833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
76933eb0b6dSopenharmony_ci    status = napi_create_function(env, nullptr, 0, func, (void*)data, &fn);
77033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
77133eb0b6dSopenharmony_ci}
77233eb0b6dSopenharmony_ci
77333eb0b6dSopenharmony_ci/**
77433eb0b6dSopenharmony_ci * @tc.name: FunctionTest003
77533eb0b6dSopenharmony_ci * @tc.desc: Test function type.
77633eb0b6dSopenharmony_ci * @tc.type: FUNC
77733eb0b6dSopenharmony_ci */
77833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, FunctionTest003, testing::ext::TestSize.Level1)
77933eb0b6dSopenharmony_ci{
78033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
78133eb0b6dSopenharmony_ci    auto func = [](napi_env env, napi_callback_info info) -> napi_value {
78233eb0b6dSopenharmony_ci        napi_value thisVar;
78333eb0b6dSopenharmony_ci        napi_value* argv = nullptr;
78433eb0b6dSopenharmony_ci        size_t argc = 0;
78533eb0b6dSopenharmony_ci        void* innerData = nullptr;
78633eb0b6dSopenharmony_ci
78733eb0b6dSopenharmony_ci        napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr);
78833eb0b6dSopenharmony_ci        if (argc > 0) {
78933eb0b6dSopenharmony_ci            argv = new napi_value[argc];
79033eb0b6dSopenharmony_ci        }
79133eb0b6dSopenharmony_ci        napi_get_cb_info(env, info, &argc, argv, &thisVar, &innerData);
79233eb0b6dSopenharmony_ci        napi_value result;
79333eb0b6dSopenharmony_ci        if (argv) {
79433eb0b6dSopenharmony_ci            result = argv[0];
79533eb0b6dSopenharmony_ci            delete[] argv;
79633eb0b6dSopenharmony_ci        } else {
79733eb0b6dSopenharmony_ci            napi_get_undefined(env, &result);
79833eb0b6dSopenharmony_ci        }
79933eb0b6dSopenharmony_ci        return result;
80033eb0b6dSopenharmony_ci    };
80133eb0b6dSopenharmony_ci
80233eb0b6dSopenharmony_ci    napi_value fn;
80333eb0b6dSopenharmony_ci    napi_value funcResultValue;
80433eb0b6dSopenharmony_ci    napi_value recv;
80533eb0b6dSopenharmony_ci    napi_value jsNumber;
80633eb0b6dSopenharmony_ci    const static char data[] = "data";
80733eb0b6dSopenharmony_ci    napi_status status = napi_create_function(env, nullptr, 0, func, (void*)data, &fn);
80833eb0b6dSopenharmony_ci    ASSERT_EQ(napi_ok, status);
80933eb0b6dSopenharmony_ci
81033eb0b6dSopenharmony_ci    const int32_t testNumber = 1;
81133eb0b6dSopenharmony_ci    napi_create_int32(env, testNumber, &jsNumber);
81233eb0b6dSopenharmony_ci    napi_value argv[] = { jsNumber };
81333eb0b6dSopenharmony_ci    napi_get_undefined(env, &recv);
81433eb0b6dSopenharmony_ci    status = napi_call_function(env, recv, fn, 1, argv, &funcResultValue);
81533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
81633eb0b6dSopenharmony_ci
81733eb0b6dSopenharmony_ci    int32_t cNumber;
81833eb0b6dSopenharmony_ci    napi_get_value_int32(env, funcResultValue, &cNumber);
81933eb0b6dSopenharmony_ci    ASSERT_EQ(cNumber, testNumber);
82033eb0b6dSopenharmony_ci
82133eb0b6dSopenharmony_ci    status = napi_call_function(env, nullptr, fn, 1, argv, &funcResultValue);
82233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
82333eb0b6dSopenharmony_ci
82433eb0b6dSopenharmony_ci    status = napi_call_function(env, nullptr, nullptr, 1, argv, &funcResultValue);
82533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
82633eb0b6dSopenharmony_ci
82733eb0b6dSopenharmony_ci    status = napi_call_function(env, nullptr, nullptr, 0, nullptr, &funcResultValue);
82833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
82933eb0b6dSopenharmony_ci
83033eb0b6dSopenharmony_ci    status = napi_call_function(env, nullptr, fn, 1, argv, nullptr);
83133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
83233eb0b6dSopenharmony_ci}
83333eb0b6dSopenharmony_ci
83433eb0b6dSopenharmony_cistatic napi_value TestCreateFunc(napi_env env, napi_callback_info info)
83533eb0b6dSopenharmony_ci{
83633eb0b6dSopenharmony_ci    napi_value result = nullptr;
83733eb0b6dSopenharmony_ci    napi_create_object(env, &result);
83833eb0b6dSopenharmony_ci    return result;
83933eb0b6dSopenharmony_ci}
84033eb0b6dSopenharmony_ci
84133eb0b6dSopenharmony_ci/**
84233eb0b6dSopenharmony_ci * @tc.name: FunctionTest004
84333eb0b6dSopenharmony_ci * @tc.desc: Test the second parameter as null
84433eb0b6dSopenharmony_ci * @tc.type: FUNC
84533eb0b6dSopenharmony_ci */
84633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, FunctionTest004, testing::ext::TestSize.Level1)
84733eb0b6dSopenharmony_ci{
84833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
84933eb0b6dSopenharmony_ci    napi_value funcValue = nullptr;
85033eb0b6dSopenharmony_ci    napi_create_function(env, nullptr, NAPI_AUTO_LENGTH, TestCreateFunc, nullptr, &funcValue);
85133eb0b6dSopenharmony_ci    ASSERT_NE(funcValue, nullptr);
85233eb0b6dSopenharmony_ci
85333eb0b6dSopenharmony_ci    napi_value recv = nullptr;
85433eb0b6dSopenharmony_ci    napi_get_undefined(env, &recv);
85533eb0b6dSopenharmony_ci    ASSERT_NE(recv, nullptr);
85633eb0b6dSopenharmony_ci    napi_value funcResultValue = nullptr;
85733eb0b6dSopenharmony_ci    napi_call_function(env, recv, funcValue, 0, nullptr, &funcResultValue);
85833eb0b6dSopenharmony_ci    ASSERT_NE(funcResultValue, nullptr);
85933eb0b6dSopenharmony_ci}
86033eb0b6dSopenharmony_ci
86133eb0b6dSopenharmony_cistatic napi_value TestCallFunc(napi_env env, napi_callback_info info)
86233eb0b6dSopenharmony_ci{
86333eb0b6dSopenharmony_ci    napi_value error = nullptr;
86433eb0b6dSopenharmony_ci    napi_throw_error(env, "500", "Common error");
86533eb0b6dSopenharmony_ci    return error;
86633eb0b6dSopenharmony_ci}
86733eb0b6dSopenharmony_ci
86833eb0b6dSopenharmony_ci/**
86933eb0b6dSopenharmony_ci * @tc.name: FunctionTest005
87033eb0b6dSopenharmony_ci * @tc.desc: Test callfunction throw error
87133eb0b6dSopenharmony_ci * @tc.type: FUNC
87233eb0b6dSopenharmony_ci */
87333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, FunctionTest005, testing::ext::TestSize.Level1)
87433eb0b6dSopenharmony_ci{
87533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
87633eb0b6dSopenharmony_ci    napi_value funcValue = nullptr;
87733eb0b6dSopenharmony_ci    napi_value exception = nullptr;
87833eb0b6dSopenharmony_ci    napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, TestCallFunc, nullptr, &funcValue);
87933eb0b6dSopenharmony_ci    ASSERT_NE(funcValue, nullptr);
88033eb0b6dSopenharmony_ci
88133eb0b6dSopenharmony_ci    napi_value recv = nullptr;
88233eb0b6dSopenharmony_ci    napi_get_undefined(env, &recv);
88333eb0b6dSopenharmony_ci    ASSERT_NE(recv, nullptr);
88433eb0b6dSopenharmony_ci    napi_value funcResultValue = nullptr;
88533eb0b6dSopenharmony_ci    bool isExceptionPending = false;
88633eb0b6dSopenharmony_ci    napi_call_function(env, recv, funcValue, 0, nullptr, &funcResultValue);
88733eb0b6dSopenharmony_ci    napi_is_exception_pending(env, &isExceptionPending);
88833eb0b6dSopenharmony_ci    ASSERT_TRUE(isExceptionPending);
88933eb0b6dSopenharmony_ci
89033eb0b6dSopenharmony_ci    napi_get_and_clear_last_exception(env, &exception);
89133eb0b6dSopenharmony_ci}
89233eb0b6dSopenharmony_ci
89333eb0b6dSopenharmony_ci/**
89433eb0b6dSopenharmony_ci * @tc.name: ArrayTest001
89533eb0b6dSopenharmony_ci * @tc.desc: Test array type.
89633eb0b6dSopenharmony_ci * @tc.type: FUNC
89733eb0b6dSopenharmony_ci */
89833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ArrayTest001, testing::ext::TestSize.Level1) {
89933eb0b6dSopenharmony_ci    napi_env env = (napi_env) engine_;
90033eb0b6dSopenharmony_ci
90133eb0b6dSopenharmony_ci    napi_value array = nullptr;
90233eb0b6dSopenharmony_ci    napi_create_array(env, &array);
90333eb0b6dSopenharmony_ci    ASSERT_NE(array, nullptr);
90433eb0b6dSopenharmony_ci    bool isArray = false;
90533eb0b6dSopenharmony_ci    napi_is_array(env, array, &isArray);
90633eb0b6dSopenharmony_ci    ASSERT_TRUE(isArray);
90733eb0b6dSopenharmony_ci
90833eb0b6dSopenharmony_ci    for (size_t i = 0; i < 10; i++) {
90933eb0b6dSopenharmony_ci        napi_value num = nullptr;
91033eb0b6dSopenharmony_ci        napi_create_uint32(env, i, &num);
91133eb0b6dSopenharmony_ci        napi_set_element(env, array, i, num);
91233eb0b6dSopenharmony_ci    }
91333eb0b6dSopenharmony_ci
91433eb0b6dSopenharmony_ci    uint32_t arrayLength = 0;
91533eb0b6dSopenharmony_ci    napi_get_array_length(env, array, &arrayLength);
91633eb0b6dSopenharmony_ci
91733eb0b6dSopenharmony_ci    ASSERT_EQ(arrayLength, static_cast<uint32_t>(10));
91833eb0b6dSopenharmony_ci
91933eb0b6dSopenharmony_ci    for (size_t i = 0; i < arrayLength; i++) {
92033eb0b6dSopenharmony_ci        bool hasIndex = false;
92133eb0b6dSopenharmony_ci        napi_has_element(env, array, i, &hasIndex);
92233eb0b6dSopenharmony_ci        ASSERT_TRUE(hasIndex);
92333eb0b6dSopenharmony_ci    }
92433eb0b6dSopenharmony_ci
92533eb0b6dSopenharmony_ci    for (size_t i = 0; i < arrayLength; i++) {
92633eb0b6dSopenharmony_ci        bool isDelete = false;
92733eb0b6dSopenharmony_ci        napi_delete_element(env, array, i, &isDelete);
92833eb0b6dSopenharmony_ci        ASSERT_TRUE(isDelete);
92933eb0b6dSopenharmony_ci    }
93033eb0b6dSopenharmony_ci}
93133eb0b6dSopenharmony_ci
93233eb0b6dSopenharmony_ci/**
93333eb0b6dSopenharmony_ci * @tc.name: ArrayBufferTest001
93433eb0b6dSopenharmony_ci * @tc.desc: Test array buffer type.
93533eb0b6dSopenharmony_ci * @tc.type: FUNC
93633eb0b6dSopenharmony_ci */
93733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ArrayBufferTest001, testing::ext::TestSize.Level1)
93833eb0b6dSopenharmony_ci{
93933eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
94033eb0b6dSopenharmony_ci
94133eb0b6dSopenharmony_ci    napi_value arrayBuffer = nullptr;
94233eb0b6dSopenharmony_ci    void* arrayBufferPtr = nullptr;
94333eb0b6dSopenharmony_ci    size_t arrayBufferSize = 1024;
94433eb0b6dSopenharmony_ci    napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer);
94533eb0b6dSopenharmony_ci
94633eb0b6dSopenharmony_ci    void* tmpArrayBufferPtr = nullptr;
94733eb0b6dSopenharmony_ci    size_t arrayBufferLength = 0;
94833eb0b6dSopenharmony_ci    napi_get_arraybuffer_info(env, arrayBuffer, &tmpArrayBufferPtr, &arrayBufferLength);
94933eb0b6dSopenharmony_ci
95033eb0b6dSopenharmony_ci    ASSERT_EQ(arrayBufferPtr, tmpArrayBufferPtr);
95133eb0b6dSopenharmony_ci    ASSERT_EQ(arrayBufferSize, arrayBufferLength);
95233eb0b6dSopenharmony_ci}
95333eb0b6dSopenharmony_ci
95433eb0b6dSopenharmony_ci/**
95533eb0b6dSopenharmony_ci * @tc.name: TypedArrayTest001
95633eb0b6dSopenharmony_ci * @tc.desc: Test typed array type.
95733eb0b6dSopenharmony_ci * @tc.type: FUNC
95833eb0b6dSopenharmony_ci */
95933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, TypedArrayTest001, testing::ext::TestSize.Level1)
96033eb0b6dSopenharmony_ci{
96133eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
96233eb0b6dSopenharmony_ci
96333eb0b6dSopenharmony_ci    {
96433eb0b6dSopenharmony_ci        napi_value arrayBuffer = nullptr;
96533eb0b6dSopenharmony_ci        void* arrayBufferPtr = nullptr;
96633eb0b6dSopenharmony_ci        size_t arrayBufferSize = 1024;
96733eb0b6dSopenharmony_ci        napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer);
96833eb0b6dSopenharmony_ci
96933eb0b6dSopenharmony_ci        void* tmpArrayBufferPtr = nullptr;
97033eb0b6dSopenharmony_ci        size_t arrayBufferLength = 0;
97133eb0b6dSopenharmony_ci        napi_get_arraybuffer_info(env, arrayBuffer, &tmpArrayBufferPtr, &arrayBufferLength);
97233eb0b6dSopenharmony_ci
97333eb0b6dSopenharmony_ci        ASSERT_EQ(arrayBufferPtr, tmpArrayBufferPtr);
97433eb0b6dSopenharmony_ci        ASSERT_EQ(arrayBufferSize, arrayBufferLength);
97533eb0b6dSopenharmony_ci
97633eb0b6dSopenharmony_ci        napi_value typedarray = nullptr;
97733eb0b6dSopenharmony_ci        napi_create_typedarray(env, napi_int8_array, arrayBufferSize, arrayBuffer, 0, &typedarray);
97833eb0b6dSopenharmony_ci        ASSERT_NE(typedarray, nullptr);
97933eb0b6dSopenharmony_ci        bool isTypedArray = false;
98033eb0b6dSopenharmony_ci        napi_is_typedarray(env, typedarray, &isTypedArray);
98133eb0b6dSopenharmony_ci        ASSERT_TRUE(isTypedArray);
98233eb0b6dSopenharmony_ci
98333eb0b6dSopenharmony_ci        napi_typedarray_type typedarrayType;
98433eb0b6dSopenharmony_ci        size_t typedarrayLength = 0;
98533eb0b6dSopenharmony_ci        void* typedarrayBufferPtr = nullptr;
98633eb0b6dSopenharmony_ci        napi_value tmpArrayBuffer = nullptr;
98733eb0b6dSopenharmony_ci        size_t byteOffset = 0;
98833eb0b6dSopenharmony_ci
98933eb0b6dSopenharmony_ci        napi_get_typedarray_info(env, typedarray, &typedarrayType, &typedarrayLength, &typedarrayBufferPtr,
99033eb0b6dSopenharmony_ci                                 &tmpArrayBuffer, &byteOffset);
99133eb0b6dSopenharmony_ci
99233eb0b6dSopenharmony_ci        ASSERT_EQ(typedarrayBufferPtr, arrayBufferPtr);
99333eb0b6dSopenharmony_ci        ASSERT_EQ(arrayBufferSize, typedarrayLength);
99433eb0b6dSopenharmony_ci    }
99533eb0b6dSopenharmony_ci}
99633eb0b6dSopenharmony_ci
99733eb0b6dSopenharmony_ci/**
99833eb0b6dSopenharmony_ci * @tc.name: DataViewTest001
99933eb0b6dSopenharmony_ci * @tc.desc: Test data view type.
100033eb0b6dSopenharmony_ci * @tc.type: FUNC
100133eb0b6dSopenharmony_ci */
100233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, DataViewTest001, testing::ext::TestSize.Level1)
100333eb0b6dSopenharmony_ci{
100433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
100533eb0b6dSopenharmony_ci
100633eb0b6dSopenharmony_ci    napi_value arrayBuffer = nullptr;
100733eb0b6dSopenharmony_ci    void* arrayBufferPtr = nullptr;
100833eb0b6dSopenharmony_ci    size_t arrayBufferSize = 1024;
100933eb0b6dSopenharmony_ci    napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer);
101033eb0b6dSopenharmony_ci    ASSERT_NE(arrayBuffer, nullptr);
101133eb0b6dSopenharmony_ci    ASSERT_NE(arrayBufferPtr, nullptr);
101233eb0b6dSopenharmony_ci    bool isArrayBuffer = false;
101333eb0b6dSopenharmony_ci    napi_is_arraybuffer(env, arrayBuffer, &isArrayBuffer);
101433eb0b6dSopenharmony_ci    ASSERT_TRUE(isArrayBuffer);
101533eb0b6dSopenharmony_ci
101633eb0b6dSopenharmony_ci    napi_value result = nullptr;
101733eb0b6dSopenharmony_ci    napi_create_dataview(env, arrayBufferSize, arrayBuffer, 0, &result);
101833eb0b6dSopenharmony_ci
101933eb0b6dSopenharmony_ci    bool isDataView = false;
102033eb0b6dSopenharmony_ci    napi_is_dataview(env, result, &isDataView);
102133eb0b6dSopenharmony_ci
102233eb0b6dSopenharmony_ci    napi_value retArrayBuffer = nullptr;
102333eb0b6dSopenharmony_ci    void* data = nullptr;
102433eb0b6dSopenharmony_ci    size_t byteLength = 0;
102533eb0b6dSopenharmony_ci    size_t byteOffset = 0;
102633eb0b6dSopenharmony_ci    napi_get_dataview_info(env, result, &byteLength, &data, &retArrayBuffer, &byteOffset);
102733eb0b6dSopenharmony_ci
102833eb0b6dSopenharmony_ci    bool retIsArrayBuffer = false;
102933eb0b6dSopenharmony_ci    napi_is_arraybuffer(env, arrayBuffer, &retIsArrayBuffer);
103033eb0b6dSopenharmony_ci    ASSERT_TRUE(retIsArrayBuffer);
103133eb0b6dSopenharmony_ci    ASSERT_EQ(arrayBufferPtr, data);
103233eb0b6dSopenharmony_ci    ASSERT_EQ(arrayBufferSize, byteLength);
103333eb0b6dSopenharmony_ci    ASSERT_EQ(static_cast<size_t>(0), byteOffset);
103433eb0b6dSopenharmony_ci}
103533eb0b6dSopenharmony_ci
103633eb0b6dSopenharmony_ci/**
103733eb0b6dSopenharmony_ci * @tc.name: PromiseTest001
103833eb0b6dSopenharmony_ci * @tc.desc: Test promise type.
103933eb0b6dSopenharmony_ci * @tc.type: FUNC
104033eb0b6dSopenharmony_ci */
104133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, PromiseTest001, testing::ext::TestSize.Level1)
104233eb0b6dSopenharmony_ci{
104333eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
104433eb0b6dSopenharmony_ci    {
104533eb0b6dSopenharmony_ci        napi_deferred deferred = nullptr;
104633eb0b6dSopenharmony_ci        napi_value promise = nullptr;
104733eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_create_promise(env, &deferred, &promise));
104833eb0b6dSopenharmony_ci        ASSERT_NE(deferred, nullptr);
104933eb0b6dSopenharmony_ci        ASSERT_NE(promise, nullptr);
105033eb0b6dSopenharmony_ci
105133eb0b6dSopenharmony_ci        bool isPromise = false;
105233eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_is_promise(env, promise, &isPromise));
105333eb0b6dSopenharmony_ci        ASSERT_TRUE(isPromise);
105433eb0b6dSopenharmony_ci
105533eb0b6dSopenharmony_ci        napi_value undefined = nullptr;
105633eb0b6dSopenharmony_ci        napi_get_undefined(env, &undefined);
105733eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_resolve_deferred(env, deferred, undefined));
105833eb0b6dSopenharmony_ci    }
105933eb0b6dSopenharmony_ci    {
106033eb0b6dSopenharmony_ci        napi_deferred deferred = nullptr;
106133eb0b6dSopenharmony_ci        napi_value promise = nullptr;
106233eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_create_promise(env, &deferred, &promise));
106333eb0b6dSopenharmony_ci        ASSERT_NE(deferred, nullptr);
106433eb0b6dSopenharmony_ci        ASSERT_NE(promise, nullptr);
106533eb0b6dSopenharmony_ci
106633eb0b6dSopenharmony_ci        bool isPromise = false;
106733eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_is_promise(env, promise, &isPromise));
106833eb0b6dSopenharmony_ci        ASSERT_TRUE(isPromise);
106933eb0b6dSopenharmony_ci
107033eb0b6dSopenharmony_ci        napi_value undefined = nullptr;
107133eb0b6dSopenharmony_ci        napi_get_undefined(env, &undefined);
107233eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_reject_deferred(env, deferred, undefined));
107333eb0b6dSopenharmony_ci    }
107433eb0b6dSopenharmony_ci    {
107533eb0b6dSopenharmony_ci        napi_deferred deferred = nullptr;
107633eb0b6dSopenharmony_ci        napi_value promise = nullptr;
107733eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_throw_error(env, "500", "common error"));
107833eb0b6dSopenharmony_ci        ASSERT_NE(napi_create_promise(env, &deferred, &promise), napi_ok);
107933eb0b6dSopenharmony_ci        ASSERT_EQ(deferred, nullptr);
108033eb0b6dSopenharmony_ci        ASSERT_EQ(promise, nullptr);
108133eb0b6dSopenharmony_ci        napi_value error = nullptr;
108233eb0b6dSopenharmony_ci        napi_get_and_clear_last_exception(env, &error);
108333eb0b6dSopenharmony_ci    }
108433eb0b6dSopenharmony_ci}
108533eb0b6dSopenharmony_ci
108633eb0b6dSopenharmony_ci/**
108733eb0b6dSopenharmony_ci * @tc.name: PromiseTest002
108833eb0b6dSopenharmony_ci * @tc.desc: Test promise type.
108933eb0b6dSopenharmony_ci * @tc.type: FUNC
109033eb0b6dSopenharmony_ci */
109133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, PromiseTest002, testing::ext::TestSize.Level1)
109233eb0b6dSopenharmony_ci{
109333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
109433eb0b6dSopenharmony_ci    {
109533eb0b6dSopenharmony_ci        napi_deferred deferred = nullptr;
109633eb0b6dSopenharmony_ci        napi_value promise = nullptr;
109733eb0b6dSopenharmony_ci        napi_status status = napi_create_promise(nullptr, &deferred, &promise);
109833eb0b6dSopenharmony_ci        ASSERT_EQ(status, napi_status::napi_invalid_arg);
109933eb0b6dSopenharmony_ci        status = napi_create_promise(env, nullptr, &promise);
110033eb0b6dSopenharmony_ci        ASSERT_EQ(status, napi_status::napi_invalid_arg);
110133eb0b6dSopenharmony_ci        status = napi_create_promise(env, &deferred, nullptr);
110233eb0b6dSopenharmony_ci        ASSERT_EQ(status, napi_status::napi_invalid_arg);
110333eb0b6dSopenharmony_ci    }
110433eb0b6dSopenharmony_ci    {
110533eb0b6dSopenharmony_ci        napi_deferred deferred = nullptr;
110633eb0b6dSopenharmony_ci        napi_value promise = nullptr;
110733eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_create_promise(env, &deferred, &promise));
110833eb0b6dSopenharmony_ci
110933eb0b6dSopenharmony_ci        bool isPromise = false;
111033eb0b6dSopenharmony_ci        napi_status status = napi_is_promise(nullptr, promise, &isPromise);
111133eb0b6dSopenharmony_ci        ASSERT_EQ(status, napi_status::napi_invalid_arg);
111233eb0b6dSopenharmony_ci        status = napi_is_promise(env, nullptr, &isPromise);
111333eb0b6dSopenharmony_ci        ASSERT_EQ(status, napi_status::napi_invalid_arg);
111433eb0b6dSopenharmony_ci        status = napi_is_promise(env, promise, nullptr);
111533eb0b6dSopenharmony_ci        ASSERT_EQ(status, napi_status::napi_invalid_arg);
111633eb0b6dSopenharmony_ci    }
111733eb0b6dSopenharmony_ci    {
111833eb0b6dSopenharmony_ci        napi_deferred deferred = nullptr;
111933eb0b6dSopenharmony_ci        napi_value promise = nullptr;
112033eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_create_promise(env, &deferred, &promise));
112133eb0b6dSopenharmony_ci
112233eb0b6dSopenharmony_ci        napi_value undefined = nullptr;
112333eb0b6dSopenharmony_ci        napi_get_undefined(env, &undefined);
112433eb0b6dSopenharmony_ci        napi_status status = napi_resolve_deferred(nullptr, deferred, undefined);
112533eb0b6dSopenharmony_ci        ASSERT_EQ(status, napi_status::napi_invalid_arg);
112633eb0b6dSopenharmony_ci        status = napi_resolve_deferred(env, nullptr, undefined);
112733eb0b6dSopenharmony_ci        ASSERT_EQ(status, napi_status::napi_invalid_arg);
112833eb0b6dSopenharmony_ci        status = napi_resolve_deferred(env, deferred, nullptr);
112933eb0b6dSopenharmony_ci        ASSERT_EQ(status, napi_status::napi_invalid_arg);
113033eb0b6dSopenharmony_ci    }
113133eb0b6dSopenharmony_ci    {
113233eb0b6dSopenharmony_ci        napi_deferred deferred = nullptr;
113333eb0b6dSopenharmony_ci        napi_value promise = nullptr;
113433eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_create_promise(env, &deferred, &promise));
113533eb0b6dSopenharmony_ci
113633eb0b6dSopenharmony_ci        napi_value undefined = nullptr;
113733eb0b6dSopenharmony_ci        napi_get_undefined(env, &undefined);
113833eb0b6dSopenharmony_ci        napi_status status = napi_reject_deferred(nullptr, deferred, undefined);
113933eb0b6dSopenharmony_ci        ASSERT_EQ(status, napi_status::napi_invalid_arg);
114033eb0b6dSopenharmony_ci        status = napi_reject_deferred(env, nullptr, undefined);
114133eb0b6dSopenharmony_ci        ASSERT_EQ(status, napi_status::napi_invalid_arg);
114233eb0b6dSopenharmony_ci        status = napi_reject_deferred(env, deferred, nullptr);
114333eb0b6dSopenharmony_ci        ASSERT_EQ(status, napi_status::napi_invalid_arg);
114433eb0b6dSopenharmony_ci    }
114533eb0b6dSopenharmony_ci}
114633eb0b6dSopenharmony_ci
114733eb0b6dSopenharmony_ci/**
114833eb0b6dSopenharmony_ci * @tc.name: ErrorTest001
114933eb0b6dSopenharmony_ci * @tc.desc: Test error type.
115033eb0b6dSopenharmony_ci * @tc.type: FUNC
115133eb0b6dSopenharmony_ci */
115233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ErrorTest001, testing::ext::TestSize.Level1)
115333eb0b6dSopenharmony_ci{
115433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
115533eb0b6dSopenharmony_ci    bool isExceptionPending = false;
115633eb0b6dSopenharmony_ci    napi_value exception = nullptr;
115733eb0b6dSopenharmony_ci
115833eb0b6dSopenharmony_ci    {
115933eb0b6dSopenharmony_ci        napi_value code = nullptr;
116033eb0b6dSopenharmony_ci        napi_value message = nullptr;
116133eb0b6dSopenharmony_ci
116233eb0b6dSopenharmony_ci        napi_create_string_latin1(env, "500", NAPI_AUTO_LENGTH, &code);
116333eb0b6dSopenharmony_ci        napi_create_string_latin1(env, "common error", NAPI_AUTO_LENGTH, &message);
116433eb0b6dSopenharmony_ci
116533eb0b6dSopenharmony_ci        napi_value error = nullptr;
116633eb0b6dSopenharmony_ci        napi_create_error(env, code, message, &error);
116733eb0b6dSopenharmony_ci        ASSERT_TRUE(error != nullptr);
116833eb0b6dSopenharmony_ci        bool isError = false;
116933eb0b6dSopenharmony_ci        napi_is_error(env, error, &isError);
117033eb0b6dSopenharmony_ci        ASSERT_TRUE(isError);
117133eb0b6dSopenharmony_ci        napi_throw(env, error);
117233eb0b6dSopenharmony_ci        napi_is_exception_pending(env, &isExceptionPending);
117333eb0b6dSopenharmony_ci        ASSERT_TRUE(isExceptionPending);
117433eb0b6dSopenharmony_ci        napi_get_and_clear_last_exception(env, &exception);
117533eb0b6dSopenharmony_ci        napi_is_exception_pending(env, &isExceptionPending);
117633eb0b6dSopenharmony_ci        ASSERT_FALSE(isExceptionPending);
117733eb0b6dSopenharmony_ci    }
117833eb0b6dSopenharmony_ci
117933eb0b6dSopenharmony_ci    {
118033eb0b6dSopenharmony_ci        napi_value code = nullptr;
118133eb0b6dSopenharmony_ci        napi_value message = nullptr;
118233eb0b6dSopenharmony_ci        napi_create_string_latin1(env, "500", NAPI_AUTO_LENGTH, &code);
118333eb0b6dSopenharmony_ci        napi_create_string_latin1(env, "range error", NAPI_AUTO_LENGTH, &message);
118433eb0b6dSopenharmony_ci        napi_value error = nullptr;
118533eb0b6dSopenharmony_ci        napi_create_range_error(env, code, message, &error);
118633eb0b6dSopenharmony_ci        ASSERT_TRUE(error != nullptr);
118733eb0b6dSopenharmony_ci        bool isError = false;
118833eb0b6dSopenharmony_ci        napi_is_error(env, error, &isError);
118933eb0b6dSopenharmony_ci        ASSERT_TRUE(isError);
119033eb0b6dSopenharmony_ci
119133eb0b6dSopenharmony_ci        napi_throw_range_error(env, "500", "Range error");
119233eb0b6dSopenharmony_ci        napi_is_exception_pending(env, &isExceptionPending);
119333eb0b6dSopenharmony_ci        ASSERT_TRUE(isExceptionPending);
119433eb0b6dSopenharmony_ci        napi_get_and_clear_last_exception(env, &exception);
119533eb0b6dSopenharmony_ci        napi_is_exception_pending(env, &isExceptionPending);
119633eb0b6dSopenharmony_ci        ASSERT_FALSE(isExceptionPending);
119733eb0b6dSopenharmony_ci    }
119833eb0b6dSopenharmony_ci
119933eb0b6dSopenharmony_ci    {
120033eb0b6dSopenharmony_ci        napi_value code = nullptr;
120133eb0b6dSopenharmony_ci        napi_value message = nullptr;
120233eb0b6dSopenharmony_ci        napi_create_string_latin1(env, "500", NAPI_AUTO_LENGTH, &code);
120333eb0b6dSopenharmony_ci        napi_create_string_latin1(env, "type error", NAPI_AUTO_LENGTH, &message);
120433eb0b6dSopenharmony_ci        napi_value error = nullptr;
120533eb0b6dSopenharmony_ci        napi_create_type_error(env, code, message, &error);
120633eb0b6dSopenharmony_ci        ASSERT_TRUE(error != nullptr);
120733eb0b6dSopenharmony_ci        bool isError = false;
120833eb0b6dSopenharmony_ci        napi_is_error(env, error, &isError);
120933eb0b6dSopenharmony_ci        ASSERT_TRUE(isError);
121033eb0b6dSopenharmony_ci
121133eb0b6dSopenharmony_ci        napi_throw_type_error(env, "500", "Type error");
121233eb0b6dSopenharmony_ci        napi_is_exception_pending(env, &isExceptionPending);
121333eb0b6dSopenharmony_ci        ASSERT_TRUE(isExceptionPending);
121433eb0b6dSopenharmony_ci        napi_get_and_clear_last_exception(env, &exception);
121533eb0b6dSopenharmony_ci        napi_is_exception_pending(env, &isExceptionPending);
121633eb0b6dSopenharmony_ci        ASSERT_FALSE(isExceptionPending);
121733eb0b6dSopenharmony_ci    }
121833eb0b6dSopenharmony_ci
121933eb0b6dSopenharmony_ci    napi_throw_error(env, "500", "Common error");
122033eb0b6dSopenharmony_ci    napi_is_exception_pending(env, &isExceptionPending);
122133eb0b6dSopenharmony_ci    ASSERT_TRUE(isExceptionPending);
122233eb0b6dSopenharmony_ci    napi_get_and_clear_last_exception(env, &exception);
122333eb0b6dSopenharmony_ci    napi_is_exception_pending(env, &isExceptionPending);
122433eb0b6dSopenharmony_ci    ASSERT_FALSE(isExceptionPending);
122533eb0b6dSopenharmony_ci}
122633eb0b6dSopenharmony_ci
122733eb0b6dSopenharmony_ci/**
122833eb0b6dSopenharmony_ci * @tc.name: ReferenceTest001
122933eb0b6dSopenharmony_ci * @tc.desc: Test reference type.
123033eb0b6dSopenharmony_ci * @tc.type: FUNC
123133eb0b6dSopenharmony_ci */
123233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ReferenceTest001, testing::ext::TestSize.Level1)
123333eb0b6dSopenharmony_ci{
123433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
123533eb0b6dSopenharmony_ci
123633eb0b6dSopenharmony_ci    napi_value result = nullptr;
123733eb0b6dSopenharmony_ci    napi_ref resultRef = nullptr;
123833eb0b6dSopenharmony_ci
123933eb0b6dSopenharmony_ci    napi_create_object(env, &result);
124033eb0b6dSopenharmony_ci    napi_create_reference(env, result, 1, &resultRef);
124133eb0b6dSopenharmony_ci
124233eb0b6dSopenharmony_ci    uint32_t resultRefCount = 0;
124333eb0b6dSopenharmony_ci
124433eb0b6dSopenharmony_ci    napi_reference_ref(env, resultRef, &resultRefCount);
124533eb0b6dSopenharmony_ci    ASSERT_EQ(resultRefCount, static_cast<uint32_t>(2));
124633eb0b6dSopenharmony_ci
124733eb0b6dSopenharmony_ci    napi_reference_unref(env, resultRef, &resultRefCount);
124833eb0b6dSopenharmony_ci    ASSERT_EQ(resultRefCount, static_cast<uint32_t>(1));
124933eb0b6dSopenharmony_ci
125033eb0b6dSopenharmony_ci    napi_value refValue = nullptr;
125133eb0b6dSopenharmony_ci    napi_get_reference_value(env, resultRef, &refValue);
125233eb0b6dSopenharmony_ci
125333eb0b6dSopenharmony_ci    ASSERT_NE(refValue, nullptr);
125433eb0b6dSopenharmony_ci
125533eb0b6dSopenharmony_ci    napi_delete_reference(env, resultRef);
125633eb0b6dSopenharmony_ci}
125733eb0b6dSopenharmony_ci
125833eb0b6dSopenharmony_ci/**
125933eb0b6dSopenharmony_ci * @tc.name: CustomClassTest001
126033eb0b6dSopenharmony_ci * @tc.desc: Test define class.
126133eb0b6dSopenharmony_ci * @tc.type: FUNC
126233eb0b6dSopenharmony_ci */
126333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CustomClassTest001, testing::ext::TestSize.Level1)
126433eb0b6dSopenharmony_ci{
126533eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
126633eb0b6dSopenharmony_ci
126733eb0b6dSopenharmony_ci    auto constructor = [](napi_env env, napi_callback_info info) -> napi_value {
126833eb0b6dSopenharmony_ci        napi_value thisVar = nullptr;
126933eb0b6dSopenharmony_ci        napi_value* argv = nullptr;
127033eb0b6dSopenharmony_ci        size_t argc = 0;
127133eb0b6dSopenharmony_ci        void* data = nullptr;
127233eb0b6dSopenharmony_ci        napi_value constructor = nullptr;
127333eb0b6dSopenharmony_ci        napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr);
127433eb0b6dSopenharmony_ci        if (argc > 0) {
127533eb0b6dSopenharmony_ci            argv = new napi_value[argc];
127633eb0b6dSopenharmony_ci        }
127733eb0b6dSopenharmony_ci        napi_get_cb_info(env, info, &argc, argv, &thisVar, &data);
127833eb0b6dSopenharmony_ci        napi_get_new_target(env, info, &constructor);
127933eb0b6dSopenharmony_ci        if (constructor == nullptr) {
128033eb0b6dSopenharmony_ci            napi_throw_error(env, nullptr, "is not new instance");
128133eb0b6dSopenharmony_ci        }
128233eb0b6dSopenharmony_ci        if (argv != nullptr) {
128333eb0b6dSopenharmony_ci            delete []argv;
128433eb0b6dSopenharmony_ci        }
128533eb0b6dSopenharmony_ci        return thisVar;
128633eb0b6dSopenharmony_ci    };
128733eb0b6dSopenharmony_ci
128833eb0b6dSopenharmony_ci    napi_value ln2 = nullptr;
128933eb0b6dSopenharmony_ci    napi_value e = nullptr;
129033eb0b6dSopenharmony_ci
129133eb0b6dSopenharmony_ci    napi_create_double(env, 2.718281828459045, &e);
129233eb0b6dSopenharmony_ci    napi_create_double(env, 0.6931471805599453, &ln2);
129333eb0b6dSopenharmony_ci
129433eb0b6dSopenharmony_ci    napi_property_descriptor desc[] = {
129533eb0b6dSopenharmony_ci        DECLARE_NAPI_FUNCTION("add", [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }),
129633eb0b6dSopenharmony_ci        DECLARE_NAPI_FUNCTION("sub", [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }),
129733eb0b6dSopenharmony_ci        DECLARE_NAPI_FUNCTION("mul", [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }),
129833eb0b6dSopenharmony_ci        DECLARE_NAPI_FUNCTION("div", [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }),
129933eb0b6dSopenharmony_ci        DECLARE_NAPI_STATIC_FUNCTION("getTime",
130033eb0b6dSopenharmony_ci                                     [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }),
130133eb0b6dSopenharmony_ci        DECLARE_NAPI_GETTER_SETTER(
130233eb0b6dSopenharmony_ci            "pi", [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; },
130333eb0b6dSopenharmony_ci            [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }),
130433eb0b6dSopenharmony_ci
130533eb0b6dSopenharmony_ci    };
130633eb0b6dSopenharmony_ci
130733eb0b6dSopenharmony_ci    napi_value customClass = nullptr;
130833eb0b6dSopenharmony_ci
130933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_define_class(env, "CustomClass", NAPI_AUTO_LENGTH, constructor, nullptr,
131033eb0b6dSopenharmony_ci                                        sizeof(desc) / sizeof(desc[0]), desc, &customClass));
131133eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, customClass, napi_function);
131233eb0b6dSopenharmony_ci    napi_value customClassPrototype = nullptr;
131333eb0b6dSopenharmony_ci    napi_get_prototype(env, customClass, &customClassPrototype);
131433eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, customClassPrototype, napi_function);
131533eb0b6dSopenharmony_ci
131633eb0b6dSopenharmony_ci    napi_value customInstance = nullptr;
131733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_new_instance(env, customClass, 0, nullptr, &customInstance));
131833eb0b6dSopenharmony_ci
131933eb0b6dSopenharmony_ci    bool isInstanceOf = false;
132033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_instanceof(env, customInstance, customClass, &isInstanceOf));
132133eb0b6dSopenharmony_ci    ASSERT_TRUE(isInstanceOf);
132233eb0b6dSopenharmony_ci}
132333eb0b6dSopenharmony_ci
132433eb0b6dSopenharmony_ci/**
132533eb0b6dSopenharmony_ci * @tc.name: CreateMap001
132633eb0b6dSopenharmony_ci * @tc.desc: Test napi_create_map.
132733eb0b6dSopenharmony_ci * @tc.type: FUNC
132833eb0b6dSopenharmony_ci */
132933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CreateMap001, testing::ext::TestSize.Level1)
133033eb0b6dSopenharmony_ci{
133133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
133233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
133333eb0b6dSopenharmony_ci    napi_status res = napi_ok;
133433eb0b6dSopenharmony_ci
133533eb0b6dSopenharmony_ci    res = napi_create_map(env, nullptr);
133633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
133733eb0b6dSopenharmony_ci
133833eb0b6dSopenharmony_ci    napi_value result = nullptr;
133933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_map(env, &result));
134033eb0b6dSopenharmony_ci
134133eb0b6dSopenharmony_ci    bool isMap = false;
134233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_is_map(env, result, &isMap));
134333eb0b6dSopenharmony_ci    ASSERT_EQ(isMap, true);
134433eb0b6dSopenharmony_ci}
134533eb0b6dSopenharmony_ci
134633eb0b6dSopenharmony_ci/**
134733eb0b6dSopenharmony_ci * @tc.name: CreateMap002
134833eb0b6dSopenharmony_ci * @tc.desc: Test napi_create_map.
134933eb0b6dSopenharmony_ci * @tc.type: FUNC
135033eb0b6dSopenharmony_ci */
135133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CreateMap002, testing::ext::TestSize.Level1)
135233eb0b6dSopenharmony_ci{
135333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
135433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
135533eb0b6dSopenharmony_ci
135633eb0b6dSopenharmony_ci    napi_value result = nullptr;
135733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_map(env, &result));
135833eb0b6dSopenharmony_ci
135933eb0b6dSopenharmony_ci    uint32_t length = 0;
136033eb0b6dSopenharmony_ci    napi_value value = nullptr;
136133eb0b6dSopenharmony_ci    bool hasKey = false;
136233eb0b6dSopenharmony_ci
136333eb0b6dSopenharmony_ci    napi_value key = nullptr;
136433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, "null", NAPI_AUTO_LENGTH, &key));
136533eb0b6dSopenharmony_ci    napi_value null = nullptr;
136633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_null(env, &null));
136733eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
136833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_undefined(env, &undefined));
136933eb0b6dSopenharmony_ci
137033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_set_property(env, result, key, null));
137133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_get_size(env, result, &length));
137233eb0b6dSopenharmony_ci    ASSERT_EQ(length, 1);
137333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_has_property(env, result, key, &hasKey));
137433eb0b6dSopenharmony_ci    ASSERT_TRUE(hasKey);
137533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_get_property(env, result, key, &value));
137633eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, value, napi_null);
137733eb0b6dSopenharmony_ci
137833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_delete_property(env, result, key));
137933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_get_size(env, result, &length));
138033eb0b6dSopenharmony_ci    ASSERT_EQ(length, 0);
138133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_has_property(env, result, key, &hasKey));
138233eb0b6dSopenharmony_ci    ASSERT_FALSE(hasKey);
138333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_get_property(env, result, key, &value));
138433eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, value, napi_undefined);
138533eb0b6dSopenharmony_ci}
138633eb0b6dSopenharmony_ci
138733eb0b6dSopenharmony_ci/**
138833eb0b6dSopenharmony_ci * @tc.name: CreateMap003
138933eb0b6dSopenharmony_ci * @tc.desc: Test napi_create_map.
139033eb0b6dSopenharmony_ci * @tc.type: FUNC
139133eb0b6dSopenharmony_ci */
139233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CreateMap003, testing::ext::TestSize.Level1)
139333eb0b6dSopenharmony_ci{
139433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
139533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
139633eb0b6dSopenharmony_ci
139733eb0b6dSopenharmony_ci    napi_value result = nullptr;
139833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_map(env, &result));
139933eb0b6dSopenharmony_ci
140033eb0b6dSopenharmony_ci    uint32_t length = 0;
140133eb0b6dSopenharmony_ci    napi_value value = nullptr;
140233eb0b6dSopenharmony_ci    bool hasKey = false;
140333eb0b6dSopenharmony_ci
140433eb0b6dSopenharmony_ci    const char* key = "null";
140533eb0b6dSopenharmony_ci    napi_value null = nullptr;
140633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_null(env, &null));
140733eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
140833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_undefined(env, &undefined));
140933eb0b6dSopenharmony_ci
141033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_set_named_property(env, result, key, null));
141133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_get_size(env, result, &length));
141233eb0b6dSopenharmony_ci    ASSERT_EQ(length, 1);
141333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_has_named_property(env, result, key, &hasKey));
141433eb0b6dSopenharmony_ci    ASSERT_TRUE(hasKey);
141533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_get_named_property(env, result, key, &value));
141633eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, value, napi_null);
141733eb0b6dSopenharmony_ci
141833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_clear(env, result));
141933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_get_size(env, result, &length));
142033eb0b6dSopenharmony_ci    ASSERT_EQ(length, 0);
142133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_has_named_property(env, result, key, &hasKey));
142233eb0b6dSopenharmony_ci    ASSERT_FALSE(hasKey);
142333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_get_named_property(env, result, key, &value));
142433eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, value, napi_undefined);
142533eb0b6dSopenharmony_ci
142633eb0b6dSopenharmony_ci    napi_value object = nullptr;
142733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object(env, &object));
142833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_set_named_property(env, result, key, object));
142933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_get_named_property(env, result, key, &value));
143033eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, value, napi_object);
143133eb0b6dSopenharmony_ci}
143233eb0b6dSopenharmony_ci
143333eb0b6dSopenharmony_ci/**
143433eb0b6dSopenharmony_ci * @tc.name: CreateMap004
143533eb0b6dSopenharmony_ci * @tc.desc: Test napi_create_map.
143633eb0b6dSopenharmony_ci * @tc.type: FUNC
143733eb0b6dSopenharmony_ci */
143833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CreateMap004, testing::ext::TestSize.Level1)
143933eb0b6dSopenharmony_ci{
144033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
144133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
144233eb0b6dSopenharmony_ci
144333eb0b6dSopenharmony_ci    napi_value map = nullptr;
144433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_map(env, &map));
144533eb0b6dSopenharmony_ci
144633eb0b6dSopenharmony_ci    napi_value zero = nullptr;
144733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_int32(env, 0, &zero));
144833eb0b6dSopenharmony_ci    napi_value one = nullptr;
144933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_int32(env, 1, &one));
145033eb0b6dSopenharmony_ci
145133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_set_property(env, map, zero, one));
145233eb0b6dSopenharmony_ci
145333eb0b6dSopenharmony_ci    napi_value entries;
145433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_get_entries(env, map, &entries));
145533eb0b6dSopenharmony_ci
145633eb0b6dSopenharmony_ci    napi_value entries0;
145733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_iterator_get_next(env, entries, &entries0));
145833eb0b6dSopenharmony_ci    napi_value entries0Value = nullptr;
145933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_named_property(env, entries0, "value", &entries0Value));
146033eb0b6dSopenharmony_ci    napi_value key = nullptr;
146133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_element(env, entries0Value, 0, &key));
146233eb0b6dSopenharmony_ci    int32_t nativeKey;
146333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_int32(env, key, &nativeKey));
146433eb0b6dSopenharmony_ci    ASSERT_EQ(nativeKey, 0);
146533eb0b6dSopenharmony_ci    napi_value value = nullptr;
146633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_element(env, entries0Value, 1, &value));
146733eb0b6dSopenharmony_ci    int32_t nativeValue;
146833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_int32(env, value, &nativeValue));
146933eb0b6dSopenharmony_ci    ASSERT_EQ(nativeValue, 1);
147033eb0b6dSopenharmony_ci
147133eb0b6dSopenharmony_ci    napi_value end;
147233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_iterator_get_next(env, entries, &end));
147333eb0b6dSopenharmony_ci    napi_value done = nullptr;
147433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_named_property(env, end, "done", &done));
147533eb0b6dSopenharmony_ci    bool isDone;
147633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_bool(env, done, &isDone));
147733eb0b6dSopenharmony_ci    ASSERT_TRUE(isDone);
147833eb0b6dSopenharmony_ci}
147933eb0b6dSopenharmony_ci
148033eb0b6dSopenharmony_ci/**
148133eb0b6dSopenharmony_ci * @tc.name: CreateMap005
148233eb0b6dSopenharmony_ci * @tc.desc: Test napi_create_map.
148333eb0b6dSopenharmony_ci * @tc.type: FUNC
148433eb0b6dSopenharmony_ci */
148533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CreateMap005, testing::ext::TestSize.Level1)
148633eb0b6dSopenharmony_ci{
148733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
148833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
148933eb0b6dSopenharmony_ci
149033eb0b6dSopenharmony_ci    napi_value map = nullptr;
149133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_map(env, &map));
149233eb0b6dSopenharmony_ci
149333eb0b6dSopenharmony_ci    napi_value zero = nullptr;
149433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_int32(env, 0, &zero));
149533eb0b6dSopenharmony_ci    napi_value one = nullptr;
149633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_int32(env, 1, &one));
149733eb0b6dSopenharmony_ci
149833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_set_property(env, map, zero, one));
149933eb0b6dSopenharmony_ci
150033eb0b6dSopenharmony_ci    napi_value keys;
150133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_get_keys(env, map, &keys));
150233eb0b6dSopenharmony_ci
150333eb0b6dSopenharmony_ci    napi_value keys0;
150433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_iterator_get_next(env, keys, &keys0));
150533eb0b6dSopenharmony_ci    napi_value key = nullptr;
150633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_named_property(env, keys0, "value", &key));
150733eb0b6dSopenharmony_ci    int32_t nativeKey;
150833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_int32(env, key, &nativeKey));
150933eb0b6dSopenharmony_ci    ASSERT_EQ(nativeKey, 0);
151033eb0b6dSopenharmony_ci
151133eb0b6dSopenharmony_ci    napi_value end;
151233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_iterator_get_next(env, keys, &end));
151333eb0b6dSopenharmony_ci    napi_value done = nullptr;
151433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_named_property(env, end, "done", &done));
151533eb0b6dSopenharmony_ci    bool isDone;
151633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_bool(env, done, &isDone));
151733eb0b6dSopenharmony_ci    ASSERT_TRUE(isDone);
151833eb0b6dSopenharmony_ci}
151933eb0b6dSopenharmony_ci
152033eb0b6dSopenharmony_ci/**
152133eb0b6dSopenharmony_ci * @tc.name: CreateMap006
152233eb0b6dSopenharmony_ci * @tc.desc: Test napi_create_map.
152333eb0b6dSopenharmony_ci * @tc.type: FUNC
152433eb0b6dSopenharmony_ci */
152533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CreateMap006, testing::ext::TestSize.Level1)
152633eb0b6dSopenharmony_ci{
152733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
152833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
152933eb0b6dSopenharmony_ci
153033eb0b6dSopenharmony_ci    napi_value map = nullptr;
153133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_map(env, &map));
153233eb0b6dSopenharmony_ci
153333eb0b6dSopenharmony_ci    napi_value zero = nullptr;
153433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_int32(env, 0, &zero));
153533eb0b6dSopenharmony_ci    napi_value one = nullptr;
153633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_int32(env, 1, &one));
153733eb0b6dSopenharmony_ci
153833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_set_property(env, map, zero, one));
153933eb0b6dSopenharmony_ci
154033eb0b6dSopenharmony_ci    napi_value values;
154133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_get_values(env, map, &values));
154233eb0b6dSopenharmony_ci
154333eb0b6dSopenharmony_ci    napi_value values0;
154433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_iterator_get_next(env, values, &values0));
154533eb0b6dSopenharmony_ci    napi_value value = nullptr;
154633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_named_property(env, values0, "value", &value));
154733eb0b6dSopenharmony_ci    int32_t nativeValue;
154833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_int32(env, value, &nativeValue));
154933eb0b6dSopenharmony_ci    ASSERT_EQ(nativeValue, 1);
155033eb0b6dSopenharmony_ci
155133eb0b6dSopenharmony_ci    napi_value end;
155233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_map_iterator_get_next(env, values, &end));
155333eb0b6dSopenharmony_ci    napi_value done = nullptr;
155433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_named_property(env, end, "done", &done));
155533eb0b6dSopenharmony_ci    bool isDone;
155633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_bool(env, done, &isDone));
155733eb0b6dSopenharmony_ci    ASSERT_TRUE(isDone);
155833eb0b6dSopenharmony_ci}
155933eb0b6dSopenharmony_ci
156033eb0b6dSopenharmony_ci/**
156133eb0b6dSopenharmony_ci * @tc.name: AsyncWorkTest001
156233eb0b6dSopenharmony_ci * @tc.desc: Test async work.
156333eb0b6dSopenharmony_ci * @tc.type: FUNC
156433eb0b6dSopenharmony_ci */
156533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AsyncWorkTest001, testing::ext::TestSize.Level1)
156633eb0b6dSopenharmony_ci{
156733eb0b6dSopenharmony_ci    struct AsyncWorkContext {
156833eb0b6dSopenharmony_ci        napi_async_work work = nullptr;
156933eb0b6dSopenharmony_ci    };
157033eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
157133eb0b6dSopenharmony_ci    {
157233eb0b6dSopenharmony_ci        auto asyncWorkContext = new AsyncWorkContext();
157333eb0b6dSopenharmony_ci        napi_value resourceName = nullptr;
157433eb0b6dSopenharmony_ci        napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName);
157533eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_create_async_work(
157633eb0b6dSopenharmony_ci            env, nullptr, resourceName, [](napi_env value, void* data) {},
157733eb0b6dSopenharmony_ci            [](napi_env env, napi_status status, void* data) {
157833eb0b6dSopenharmony_ci                AsyncWorkContext* asyncWorkContext = (AsyncWorkContext*)data;
157933eb0b6dSopenharmony_ci                ASSERT_CHECK_CALL(napi_delete_async_work(env, asyncWorkContext->work));
158033eb0b6dSopenharmony_ci                delete asyncWorkContext;
158133eb0b6dSopenharmony_ci                STOP_EVENT_LOOP(env);
158233eb0b6dSopenharmony_ci            },
158333eb0b6dSopenharmony_ci            asyncWorkContext, &asyncWorkContext->work));
158433eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_queue_async_work(env, asyncWorkContext->work));
158533eb0b6dSopenharmony_ci        RUN_EVENT_LOOP(env);
158633eb0b6dSopenharmony_ci    }
158733eb0b6dSopenharmony_ci    {
158833eb0b6dSopenharmony_ci        auto asyncWorkContext = new AsyncWorkContext();
158933eb0b6dSopenharmony_ci        napi_value resourceName = nullptr;
159033eb0b6dSopenharmony_ci        napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName);
159133eb0b6dSopenharmony_ci        napi_create_async_work(
159233eb0b6dSopenharmony_ci            env, nullptr, resourceName, [](napi_env value, void* data) {},
159333eb0b6dSopenharmony_ci            [](napi_env env, napi_status status, void* data) {
159433eb0b6dSopenharmony_ci                AsyncWorkContext* asyncWorkContext = (AsyncWorkContext*)data;
159533eb0b6dSopenharmony_ci                ASSERT_EQ(status, napi_status::napi_cancelled);
159633eb0b6dSopenharmony_ci                napi_delete_async_work(env, asyncWorkContext->work);
159733eb0b6dSopenharmony_ci                delete asyncWorkContext;
159833eb0b6dSopenharmony_ci                STOP_EVENT_LOOP(env);
159933eb0b6dSopenharmony_ci            },
160033eb0b6dSopenharmony_ci            asyncWorkContext, &asyncWorkContext->work);
160133eb0b6dSopenharmony_ci        napi_queue_async_work(env, asyncWorkContext->work);
160233eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_cancel_async_work(env, asyncWorkContext->work));
160333eb0b6dSopenharmony_ci        RUN_EVENT_LOOP(env);
160433eb0b6dSopenharmony_ci    }
160533eb0b6dSopenharmony_ci}
160633eb0b6dSopenharmony_ci
160733eb0b6dSopenharmony_ci/**
160833eb0b6dSopenharmony_ci * @tc.name: AsyncWorkTest003
160933eb0b6dSopenharmony_ci * @tc.desc: Test async work.
161033eb0b6dSopenharmony_ci * @tc.type: FUNC
161133eb0b6dSopenharmony_ci */
161233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AsyncWorkTest003, testing::ext::TestSize.Level1)
161333eb0b6dSopenharmony_ci{
161433eb0b6dSopenharmony_ci    struct AsyncWorkContext {
161533eb0b6dSopenharmony_ci        napi_async_work work = nullptr;
161633eb0b6dSopenharmony_ci    };
161733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
161833eb0b6dSopenharmony_ci    std::unique_ptr<AsyncWorkContext> asyncWorkContext = std::make_unique<AsyncWorkContext>();
161933eb0b6dSopenharmony_ci    napi_value resourceName = nullptr;
162033eb0b6dSopenharmony_ci    napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName);
162133eb0b6dSopenharmony_ci    napi_status status = napi_create_async_work(
162233eb0b6dSopenharmony_ci        env, nullptr, nullptr, [](napi_env env, void* data) {},
162333eb0b6dSopenharmony_ci        [](napi_env env, napi_status status, void* data) {},
162433eb0b6dSopenharmony_ci        asyncWorkContext.get(), &asyncWorkContext->work);
162533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
162633eb0b6dSopenharmony_ci
162733eb0b6dSopenharmony_ci    status = napi_create_async_work(
162833eb0b6dSopenharmony_ci        env, nullptr, resourceName, nullptr,
162933eb0b6dSopenharmony_ci        [](napi_env env, napi_status status, void* data) {},
163033eb0b6dSopenharmony_ci        asyncWorkContext.get(), &asyncWorkContext->work);
163133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
163233eb0b6dSopenharmony_ci
163333eb0b6dSopenharmony_ci    status = napi_create_async_work(
163433eb0b6dSopenharmony_ci        env, nullptr, resourceName, [](napi_env env, void* data) {},
163533eb0b6dSopenharmony_ci        nullptr,
163633eb0b6dSopenharmony_ci        asyncWorkContext.get(), &asyncWorkContext->work);
163733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
163833eb0b6dSopenharmony_ci
163933eb0b6dSopenharmony_ci    status = napi_create_async_work(
164033eb0b6dSopenharmony_ci        env, nullptr, resourceName, [](napi_env env, void* data) {},
164133eb0b6dSopenharmony_ci        [](napi_env env, napi_status status, void* data) {},
164233eb0b6dSopenharmony_ci        nullptr, &asyncWorkContext->work);
164333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
164433eb0b6dSopenharmony_ci
164533eb0b6dSopenharmony_ci    status = napi_create_async_work(
164633eb0b6dSopenharmony_ci        env, nullptr, resourceName, [](napi_env env, void* data) {},
164733eb0b6dSopenharmony_ci        [](napi_env env, napi_status status, void* data) {},
164833eb0b6dSopenharmony_ci        asyncWorkContext.get(), nullptr);
164933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
165033eb0b6dSopenharmony_ci}
165133eb0b6dSopenharmony_ci
165233eb0b6dSopenharmony_ci/**
165333eb0b6dSopenharmony_ci * @tc.name: AsyncWorkTest004
165433eb0b6dSopenharmony_ci * @tc.desc: Test async work.
165533eb0b6dSopenharmony_ci * @tc.type: FUNC
165633eb0b6dSopenharmony_ci */
165733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AsyncWorkTest004, testing::ext::TestSize.Level1)
165833eb0b6dSopenharmony_ci{
165933eb0b6dSopenharmony_ci    struct AsyncWorkContext {
166033eb0b6dSopenharmony_ci        napi_async_work work = nullptr;
166133eb0b6dSopenharmony_ci    };
166233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
166333eb0b6dSopenharmony_ci    auto asyncWorkContext = new AsyncWorkContext();
166433eb0b6dSopenharmony_ci    napi_value resourceName = nullptr;
166533eb0b6dSopenharmony_ci    napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName);
166633eb0b6dSopenharmony_ci    napi_create_async_work(
166733eb0b6dSopenharmony_ci        env, nullptr, resourceName, [](napi_env env, void* data) {},
166833eb0b6dSopenharmony_ci        [](napi_env env, napi_status status, void* data) {
166933eb0b6dSopenharmony_ci            AsyncWorkContext* asyncWorkContext = reinterpret_cast<AsyncWorkContext*>(data);
167033eb0b6dSopenharmony_ci            ASSERT_NE(asyncWorkContext, nullptr);
167133eb0b6dSopenharmony_ci            delete asyncWorkContext;
167233eb0b6dSopenharmony_ci        },
167333eb0b6dSopenharmony_ci        nullptr, &asyncWorkContext->work);
167433eb0b6dSopenharmony_ci    napi_delete_async_work(env, asyncWorkContext->work);
167533eb0b6dSopenharmony_ci}
167633eb0b6dSopenharmony_ci
167733eb0b6dSopenharmony_ci/**
167833eb0b6dSopenharmony_ci * @tc.name: AsyncWorkTest005
167933eb0b6dSopenharmony_ci * @tc.desc: Test async work.
168033eb0b6dSopenharmony_ci * @tc.type: FUNC
168133eb0b6dSopenharmony_ci */
168233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AsyncWorkTest005, testing::ext::TestSize.Level1)
168333eb0b6dSopenharmony_ci{
168433eb0b6dSopenharmony_ci    struct AsyncWorkContext {
168533eb0b6dSopenharmony_ci        napi_async_work work = nullptr;
168633eb0b6dSopenharmony_ci    };
168733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
168833eb0b6dSopenharmony_ci    auto asyncWorkContext = new AsyncWorkContext();
168933eb0b6dSopenharmony_ci    napi_value resourceName = nullptr;
169033eb0b6dSopenharmony_ci    napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName);
169133eb0b6dSopenharmony_ci    napi_create_async_work(
169233eb0b6dSopenharmony_ci        env, nullptr, resourceName, [](napi_env env, void* data) {},
169333eb0b6dSopenharmony_ci        [](napi_env env, napi_status status, void* data) {
169433eb0b6dSopenharmony_ci            AsyncWorkContext* asyncWorkContext = reinterpret_cast<AsyncWorkContext*>(data);
169533eb0b6dSopenharmony_ci            ASSERT_NE(asyncWorkContext, nullptr);
169633eb0b6dSopenharmony_ci            delete asyncWorkContext;
169733eb0b6dSopenharmony_ci            STOP_EVENT_LOOP(env);
169833eb0b6dSopenharmony_ci        },
169933eb0b6dSopenharmony_ci        asyncWorkContext, &asyncWorkContext->work);
170033eb0b6dSopenharmony_ci    napi_status status = napi_queue_async_work(env, asyncWorkContext->work);
170133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
170233eb0b6dSopenharmony_ci    status = napi_queue_async_work(env, nullptr);
170333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
170433eb0b6dSopenharmony_ci    RUN_EVENT_LOOP(env);
170533eb0b6dSopenharmony_ci}
170633eb0b6dSopenharmony_ci
170733eb0b6dSopenharmony_ci/**
170833eb0b6dSopenharmony_ci * @tc.name: ObjectWrapperTest001
170933eb0b6dSopenharmony_ci * @tc.desc: Test object wrapper.
171033eb0b6dSopenharmony_ci * @tc.type: FUNC
171133eb0b6dSopenharmony_ci */
171233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ObjectWrapperTest001, testing::ext::TestSize.Level1)
171333eb0b6dSopenharmony_ci{
171433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
171533eb0b6dSopenharmony_ci
171633eb0b6dSopenharmony_ci    napi_value testClass = nullptr;
171733eb0b6dSopenharmony_ci    napi_define_class(
171833eb0b6dSopenharmony_ci        env, "TestClass", NAPI_AUTO_LENGTH,
171933eb0b6dSopenharmony_ci        [](napi_env env, napi_callback_info info) -> napi_value {
172033eb0b6dSopenharmony_ci            napi_value thisVar = nullptr;
172133eb0b6dSopenharmony_ci            napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr);
172233eb0b6dSopenharmony_ci
172333eb0b6dSopenharmony_ci            return thisVar;
172433eb0b6dSopenharmony_ci        },
172533eb0b6dSopenharmony_ci        nullptr, 0, nullptr, &testClass);
172633eb0b6dSopenharmony_ci
172733eb0b6dSopenharmony_ci    napi_value instanceValue = nullptr;
172833eb0b6dSopenharmony_ci    napi_new_instance(env, testClass, 0, nullptr, &instanceValue);
172933eb0b6dSopenharmony_ci
173033eb0b6dSopenharmony_ci    const char* testStr = "test";
173133eb0b6dSopenharmony_ci    napi_wrap(
173233eb0b6dSopenharmony_ci        env, instanceValue, (void*)testStr, [](napi_env env, void* data, void* hint) {}, nullptr, nullptr);
173333eb0b6dSopenharmony_ci
173433eb0b6dSopenharmony_ci    char* tmpTestStr = nullptr;
173533eb0b6dSopenharmony_ci    napi_unwrap(env, instanceValue, (void**)&tmpTestStr);
173633eb0b6dSopenharmony_ci    ASSERT_STREQ(testStr, tmpTestStr);
173733eb0b6dSopenharmony_ci
173833eb0b6dSopenharmony_ci    char* tmpTestStr1 = nullptr;
173933eb0b6dSopenharmony_ci    napi_remove_wrap(env, instanceValue, (void**)&tmpTestStr1);
174033eb0b6dSopenharmony_ci    ASSERT_STREQ(testStr, tmpTestStr1);
174133eb0b6dSopenharmony_ci}
174233eb0b6dSopenharmony_ci
174333eb0b6dSopenharmony_ci/**
174433eb0b6dSopenharmony_ci * @tc.name: StrictEqualsTest001
174533eb0b6dSopenharmony_ci * @tc.desc: Test date type.
174633eb0b6dSopenharmony_ci * @tc.type: FUNC
174733eb0b6dSopenharmony_ci */
174833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StrictEqualsTest001, testing::ext::TestSize.Level1)
174933eb0b6dSopenharmony_ci{
175033eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
175133eb0b6dSopenharmony_ci
175233eb0b6dSopenharmony_ci    const char* testStringStr = "test";
175333eb0b6dSopenharmony_ci    napi_value testString = nullptr;
175433eb0b6dSopenharmony_ci    napi_create_string_utf8(env, testStringStr, strlen(testStringStr), &testString);
175533eb0b6dSopenharmony_ci    bool isStrictEquals = false;
175633eb0b6dSopenharmony_ci    napi_strict_equals(env, testString, testString, &isStrictEquals);
175733eb0b6dSopenharmony_ci    ASSERT_TRUE(isStrictEquals);
175833eb0b6dSopenharmony_ci
175933eb0b6dSopenharmony_ci    napi_value testObject = nullptr;
176033eb0b6dSopenharmony_ci    napi_create_object(env, &testObject);
176133eb0b6dSopenharmony_ci    isStrictEquals = false;
176233eb0b6dSopenharmony_ci    napi_strict_equals(env, testObject, testObject, &isStrictEquals);
176333eb0b6dSopenharmony_ci    ASSERT_TRUE(isStrictEquals);
176433eb0b6dSopenharmony_ci}
176533eb0b6dSopenharmony_ci
176633eb0b6dSopenharmony_ci/**
176733eb0b6dSopenharmony_ci * @tc.name: CreateRuntimeTest001
176833eb0b6dSopenharmony_ci * @tc.desc: Test create runtime.
176933eb0b6dSopenharmony_ci * @tc.type: FUNC
177033eb0b6dSopenharmony_ci */
177133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CreateRuntimeTest001, testing::ext::TestSize.Level1)
177233eb0b6dSopenharmony_ci{
177333eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
177433eb0b6dSopenharmony_ci
177533eb0b6dSopenharmony_ci    napi_env newEnv = nullptr;
177633eb0b6dSopenharmony_ci    napi_create_runtime(env, &newEnv);
177733eb0b6dSopenharmony_ci}
177833eb0b6dSopenharmony_ci
177933eb0b6dSopenharmony_ci/**
178033eb0b6dSopenharmony_ci * @tc.name: SerializeDeSerializeTest001
178133eb0b6dSopenharmony_ci * @tc.desc: Test serialize & deserialize.
178233eb0b6dSopenharmony_ci * @tc.type: FUNC
178333eb0b6dSopenharmony_ci */
178433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, SerializeDeSerializeTest001, testing::ext::TestSize.Level1)
178533eb0b6dSopenharmony_ci{
178633eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
178733eb0b6dSopenharmony_ci
178833eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
178933eb0b6dSopenharmony_ci    napi_get_undefined(env, &undefined);
179033eb0b6dSopenharmony_ci
179133eb0b6dSopenharmony_ci    napi_value num = nullptr;
179233eb0b6dSopenharmony_ci    uint32_t value = 1000;
179333eb0b6dSopenharmony_ci    napi_create_uint32(env, value, &num);
179433eb0b6dSopenharmony_ci    void* data = nullptr;
179533eb0b6dSopenharmony_ci    napi_serialize_inner(env, num, undefined, undefined, false, true, &data);
179633eb0b6dSopenharmony_ci    ASSERT_NE(data, nullptr);
179733eb0b6dSopenharmony_ci
179833eb0b6dSopenharmony_ci    napi_value result = nullptr;
179933eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result);
180033eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_number);
180133eb0b6dSopenharmony_ci    napi_delete_serialization_data(env, data);
180233eb0b6dSopenharmony_ci    int32_t resultData = 0;
180333eb0b6dSopenharmony_ci    napi_get_value_int32(env, result, &resultData);
180433eb0b6dSopenharmony_ci    ASSERT_EQ(resultData, 1000);
180533eb0b6dSopenharmony_ci}
180633eb0b6dSopenharmony_ci
180733eb0b6dSopenharmony_ci/**
180833eb0b6dSopenharmony_ci * @tc.name: SerializeDeSerializeTest002
180933eb0b6dSopenharmony_ci * @tc.desc: Test serialize & deserialize.
181033eb0b6dSopenharmony_ci * @tc.type: FUNC
181133eb0b6dSopenharmony_ci */
181233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, SerializeDeSerializeTest002, testing::ext::TestSize.Level1)
181333eb0b6dSopenharmony_ci{
181433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
181533eb0b6dSopenharmony_ci
181633eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
181733eb0b6dSopenharmony_ci    napi_get_undefined(env, &undefined);
181833eb0b6dSopenharmony_ci
181933eb0b6dSopenharmony_ci    napi_value num = nullptr;
182033eb0b6dSopenharmony_ci    uint32_t value = 1000;
182133eb0b6dSopenharmony_ci    napi_create_uint32(env, value, &num);
182233eb0b6dSopenharmony_ci    void* data = nullptr;
182333eb0b6dSopenharmony_ci    napi_serialize_inner(env, num, undefined, undefined, false, true, &data);
182433eb0b6dSopenharmony_ci    ASSERT_NE(data, nullptr);
182533eb0b6dSopenharmony_ci
182633eb0b6dSopenharmony_ci    napi_value result1 = nullptr;
182733eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result1);
182833eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result1, napi_number);
182933eb0b6dSopenharmony_ci    int32_t resultData1 = 0;
183033eb0b6dSopenharmony_ci    napi_get_value_int32(env, result1, &resultData1);
183133eb0b6dSopenharmony_ci    ASSERT_EQ(resultData1, 1000);
183233eb0b6dSopenharmony_ci
183333eb0b6dSopenharmony_ci    napi_value result2 = nullptr;
183433eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result2);
183533eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result2, napi_number);
183633eb0b6dSopenharmony_ci    int32_t resultData2 = 0;
183733eb0b6dSopenharmony_ci    napi_get_value_int32(env, result2, &resultData2);
183833eb0b6dSopenharmony_ci    ASSERT_EQ(resultData2, 1000);
183933eb0b6dSopenharmony_ci
184033eb0b6dSopenharmony_ci    napi_delete_serialization_data(env, data);
184133eb0b6dSopenharmony_ci}
184233eb0b6dSopenharmony_ci
184333eb0b6dSopenharmony_ci/**
184433eb0b6dSopenharmony_ci * @tc.name: SerializeDeSerializeTest003
184533eb0b6dSopenharmony_ci * @tc.desc: Test nativeBinding object type.
184633eb0b6dSopenharmony_ci * @tc.type: FUNC
184733eb0b6dSopenharmony_ci */
184833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, SerializeDeSerializeTest003, testing::ext::TestSize.Level1)
184933eb0b6dSopenharmony_ci{
185033eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
185133eb0b6dSopenharmony_ci    napi_value object = nullptr;
185233eb0b6dSopenharmony_ci    napi_create_object(env, &object);
185333eb0b6dSopenharmony_ci    napi_value hint = nullptr;
185433eb0b6dSopenharmony_ci    napi_create_object(env, &hint);
185533eb0b6dSopenharmony_ci    napi_value object1 = nullptr;
185633eb0b6dSopenharmony_ci    napi_create_object(env, &object1);
185733eb0b6dSopenharmony_ci    napi_status status = napi_coerce_to_native_binding_object(env, object,
185833eb0b6dSopenharmony_ci        TestDetachCallback, TestAttachCallback, reinterpret_cast<void*>(object1), reinterpret_cast<void*>(hint));
185933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_status::napi_ok);
186033eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
186133eb0b6dSopenharmony_ci    napi_get_undefined(env, &undefined);
186233eb0b6dSopenharmony_ci    void* data = nullptr;
186333eb0b6dSopenharmony_ci    napi_serialize_inner(env, object, undefined, undefined, false, true, &data);
186433eb0b6dSopenharmony_ci    ASSERT_NE(data, nullptr);
186533eb0b6dSopenharmony_ci
186633eb0b6dSopenharmony_ci    napi_value result1 = nullptr;
186733eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result1);
186833eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result1, napi_object);
186933eb0b6dSopenharmony_ci    napi_value number1 = nullptr;
187033eb0b6dSopenharmony_ci    napi_get_named_property(env, result1, "number", &number1);
187133eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, number1, napi_number);
187233eb0b6dSopenharmony_ci    uint32_t numData1 = 0;
187333eb0b6dSopenharmony_ci    napi_get_value_uint32(env, number1, &numData1);
187433eb0b6dSopenharmony_ci    ASSERT_EQ(numData1, 2000);
187533eb0b6dSopenharmony_ci
187633eb0b6dSopenharmony_ci    napi_value result2 = nullptr;
187733eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result2);
187833eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result2, napi_object);
187933eb0b6dSopenharmony_ci    napi_value number2 = nullptr;
188033eb0b6dSopenharmony_ci    napi_get_named_property(env, result2, "number", &number2);
188133eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, number2, napi_number);
188233eb0b6dSopenharmony_ci    uint32_t numData2 = 0;
188333eb0b6dSopenharmony_ci    napi_get_value_uint32(env, number2, &numData2);
188433eb0b6dSopenharmony_ci    ASSERT_EQ(numData2, 2000);
188533eb0b6dSopenharmony_ci
188633eb0b6dSopenharmony_ci    napi_delete_serialization_data(env, data);
188733eb0b6dSopenharmony_ci}
188833eb0b6dSopenharmony_ci
188933eb0b6dSopenharmony_ci/**
189033eb0b6dSopenharmony_ci * @tc.name: SerializeDeSerializeTest004
189133eb0b6dSopenharmony_ci * @tc.desc: Test nativeBinding object type.
189233eb0b6dSopenharmony_ci * @tc.type: FUNC
189333eb0b6dSopenharmony_ci */
189433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, SerializeDeSerializeTest004, testing::ext::TestSize.Level1)
189533eb0b6dSopenharmony_ci{
189633eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
189733eb0b6dSopenharmony_ci
189833eb0b6dSopenharmony_ci    napi_value object = nullptr;
189933eb0b6dSopenharmony_ci    napi_create_object(env, &object);
190033eb0b6dSopenharmony_ci    napi_value num = nullptr;
190133eb0b6dSopenharmony_ci    uint32_t value = 1000;
190233eb0b6dSopenharmony_ci    napi_create_uint32(env, value, &num);
190333eb0b6dSopenharmony_ci    napi_set_named_property(env, object, "numKey", num);
190433eb0b6dSopenharmony_ci    napi_value obj = nullptr;
190533eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
190633eb0b6dSopenharmony_ci    napi_set_named_property(env, object, "objKey", obj);
190733eb0b6dSopenharmony_ci
190833eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
190933eb0b6dSopenharmony_ci    napi_get_undefined(env, &undefined);
191033eb0b6dSopenharmony_ci    void* data = nullptr;
191133eb0b6dSopenharmony_ci    napi_serialize_inner(env, object, undefined, undefined, false, true, &data);
191233eb0b6dSopenharmony_ci    ASSERT_NE(data, nullptr);
191333eb0b6dSopenharmony_ci
191433eb0b6dSopenharmony_ci    napi_value result1 = nullptr;
191533eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result1);
191633eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result1, napi_object);
191733eb0b6dSopenharmony_ci    napi_value obj1 = nullptr;
191833eb0b6dSopenharmony_ci    napi_get_named_property(env, result1, "objKey", &obj1);
191933eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, obj1, napi_object);
192033eb0b6dSopenharmony_ci
192133eb0b6dSopenharmony_ci    napi_value result2 = nullptr;
192233eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result2);
192333eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result2, napi_object);
192433eb0b6dSopenharmony_ci    napi_value num1 = nullptr;
192533eb0b6dSopenharmony_ci    napi_get_named_property(env, result2, "numKey", &num1);
192633eb0b6dSopenharmony_ci    uint32_t value1 = 0;
192733eb0b6dSopenharmony_ci    napi_get_value_uint32(env, num1, &value1);
192833eb0b6dSopenharmony_ci    ASSERT_EQ(value1, 1000);
192933eb0b6dSopenharmony_ci
193033eb0b6dSopenharmony_ci    napi_delete_serialization_data(env, data);
193133eb0b6dSopenharmony_ci}
193233eb0b6dSopenharmony_ci
193333eb0b6dSopenharmony_ci/**
193433eb0b6dSopenharmony_ci * @tc.name: SerializeDeSerializeTest005
193533eb0b6dSopenharmony_ci * @tc.desc: Test serialize & deserialize.
193633eb0b6dSopenharmony_ci * @tc.type: FUNC
193733eb0b6dSopenharmony_ci */
193833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, SerializeDeSerializeTest005, testing::ext::TestSize.Level1)
193933eb0b6dSopenharmony_ci{
194033eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
194133eb0b6dSopenharmony_ci
194233eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
194333eb0b6dSopenharmony_ci    napi_get_undefined(env, &undefined);
194433eb0b6dSopenharmony_ci
194533eb0b6dSopenharmony_ci    napi_value num = nullptr;
194633eb0b6dSopenharmony_ci    uint32_t value = 1000;
194733eb0b6dSopenharmony_ci    napi_create_uint32(env, value, &num);
194833eb0b6dSopenharmony_ci    void* data = nullptr;
194933eb0b6dSopenharmony_ci    napi_serialize(env, num, undefined, undefined, &data);
195033eb0b6dSopenharmony_ci    ASSERT_NE(data, nullptr);
195133eb0b6dSopenharmony_ci
195233eb0b6dSopenharmony_ci    napi_value result = nullptr;
195333eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result);
195433eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_number);
195533eb0b6dSopenharmony_ci    napi_delete_serialization_data(env, data);
195633eb0b6dSopenharmony_ci    int32_t resultData = 0;
195733eb0b6dSopenharmony_ci    napi_get_value_int32(env, result, &resultData);
195833eb0b6dSopenharmony_ci    ASSERT_EQ(resultData, 1000);
195933eb0b6dSopenharmony_ci}
196033eb0b6dSopenharmony_ci
196133eb0b6dSopenharmony_ci/**
196233eb0b6dSopenharmony_ci * @tc.name: SerializeDeSerializeTest006
196333eb0b6dSopenharmony_ci * @tc.desc: Test serialize & deserialize.
196433eb0b6dSopenharmony_ci * @tc.type: FUNC
196533eb0b6dSopenharmony_ci */
196633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, SerializeDeSerializeTest006, testing::ext::TestSize.Level1)
196733eb0b6dSopenharmony_ci{
196833eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
196933eb0b6dSopenharmony_ci
197033eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
197133eb0b6dSopenharmony_ci    napi_get_undefined(env, &undefined);
197233eb0b6dSopenharmony_ci
197333eb0b6dSopenharmony_ci    napi_value num = nullptr;
197433eb0b6dSopenharmony_ci    uint32_t value = 1000;
197533eb0b6dSopenharmony_ci    napi_create_uint32(env, value, &num);
197633eb0b6dSopenharmony_ci    void* data = nullptr;
197733eb0b6dSopenharmony_ci    napi_serialize(env, num, undefined, undefined, &data);
197833eb0b6dSopenharmony_ci    ASSERT_NE(data, nullptr);
197933eb0b6dSopenharmony_ci
198033eb0b6dSopenharmony_ci    napi_value result1 = nullptr;
198133eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result1);
198233eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result1, napi_number);
198333eb0b6dSopenharmony_ci    int32_t resultData1 = 0;
198433eb0b6dSopenharmony_ci    napi_get_value_int32(env, result1, &resultData1);
198533eb0b6dSopenharmony_ci    ASSERT_EQ(resultData1, 1000);
198633eb0b6dSopenharmony_ci
198733eb0b6dSopenharmony_ci    napi_value result2 = nullptr;
198833eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result2);
198933eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result2, napi_number);
199033eb0b6dSopenharmony_ci    int32_t resultData2 = 0;
199133eb0b6dSopenharmony_ci    napi_get_value_int32(env, result2, &resultData2);
199233eb0b6dSopenharmony_ci    ASSERT_EQ(resultData2, 1000);
199333eb0b6dSopenharmony_ci
199433eb0b6dSopenharmony_ci    napi_delete_serialization_data(env, data);
199533eb0b6dSopenharmony_ci}
199633eb0b6dSopenharmony_ci
199733eb0b6dSopenharmony_ci/**
199833eb0b6dSopenharmony_ci * @tc.name: SerializeDeSerializeTest007
199933eb0b6dSopenharmony_ci * @tc.desc: Test nativeBinding object type.
200033eb0b6dSopenharmony_ci * @tc.type: FUNC
200133eb0b6dSopenharmony_ci */
200233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, SerializeDeSerializeTest007, testing::ext::TestSize.Level1)
200333eb0b6dSopenharmony_ci{
200433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
200533eb0b6dSopenharmony_ci    napi_value object = nullptr;
200633eb0b6dSopenharmony_ci    napi_create_object(env, &object);
200733eb0b6dSopenharmony_ci    napi_value hint = nullptr;
200833eb0b6dSopenharmony_ci    napi_create_object(env, &hint);
200933eb0b6dSopenharmony_ci    napi_value object1 = nullptr;
201033eb0b6dSopenharmony_ci    napi_create_object(env, &object1);
201133eb0b6dSopenharmony_ci    napi_status status = napi_coerce_to_native_binding_object(env, object,
201233eb0b6dSopenharmony_ci        TestDetachCallback, TestAttachCallback, reinterpret_cast<void*>(object1), reinterpret_cast<void*>(hint));
201333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_status::napi_ok);
201433eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
201533eb0b6dSopenharmony_ci    napi_get_undefined(env, &undefined);
201633eb0b6dSopenharmony_ci    void* data = nullptr;
201733eb0b6dSopenharmony_ci    napi_serialize(env, object, undefined, undefined, &data);
201833eb0b6dSopenharmony_ci    ASSERT_NE(data, nullptr);
201933eb0b6dSopenharmony_ci
202033eb0b6dSopenharmony_ci    napi_value result1 = nullptr;
202133eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result1);
202233eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result1, napi_object);
202333eb0b6dSopenharmony_ci    napi_value number1 = nullptr;
202433eb0b6dSopenharmony_ci    napi_get_named_property(env, result1, "number", &number1);
202533eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, number1, napi_number);
202633eb0b6dSopenharmony_ci    uint32_t numData1 = 0;
202733eb0b6dSopenharmony_ci    napi_get_value_uint32(env, number1, &numData1);
202833eb0b6dSopenharmony_ci    ASSERT_EQ(numData1, 2000);
202933eb0b6dSopenharmony_ci
203033eb0b6dSopenharmony_ci    napi_value result2 = nullptr;
203133eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result2);
203233eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result2, napi_object);
203333eb0b6dSopenharmony_ci    napi_value number2 = nullptr;
203433eb0b6dSopenharmony_ci    napi_get_named_property(env, result2, "number", &number2);
203533eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, number2, napi_number);
203633eb0b6dSopenharmony_ci    uint32_t numData2 = 0;
203733eb0b6dSopenharmony_ci    napi_get_value_uint32(env, number2, &numData2);
203833eb0b6dSopenharmony_ci    ASSERT_EQ(numData2, 2000);
203933eb0b6dSopenharmony_ci
204033eb0b6dSopenharmony_ci    napi_delete_serialization_data(env, data);
204133eb0b6dSopenharmony_ci}
204233eb0b6dSopenharmony_ci
204333eb0b6dSopenharmony_ci/**
204433eb0b6dSopenharmony_ci * @tc.name: SerializeDeSerializeTest008
204533eb0b6dSopenharmony_ci * @tc.desc: Test nativeBinding object type.
204633eb0b6dSopenharmony_ci * @tc.type: FUNC
204733eb0b6dSopenharmony_ci */
204833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, SerializeDeSerializeTest008, testing::ext::TestSize.Level1)
204933eb0b6dSopenharmony_ci{
205033eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
205133eb0b6dSopenharmony_ci
205233eb0b6dSopenharmony_ci    napi_value object = nullptr;
205333eb0b6dSopenharmony_ci    napi_create_object(env, &object);
205433eb0b6dSopenharmony_ci    napi_value num = nullptr;
205533eb0b6dSopenharmony_ci    uint32_t value = 1000;
205633eb0b6dSopenharmony_ci    napi_create_uint32(env, value, &num);
205733eb0b6dSopenharmony_ci    napi_set_named_property(env, object, "numKey", num);
205833eb0b6dSopenharmony_ci    napi_value obj = nullptr;
205933eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
206033eb0b6dSopenharmony_ci    napi_set_named_property(env, object, "objKey", obj);
206133eb0b6dSopenharmony_ci
206233eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
206333eb0b6dSopenharmony_ci    napi_get_undefined(env, &undefined);
206433eb0b6dSopenharmony_ci    void* data = nullptr;
206533eb0b6dSopenharmony_ci    napi_serialize(env, object, undefined, undefined, &data);
206633eb0b6dSopenharmony_ci    ASSERT_NE(data, nullptr);
206733eb0b6dSopenharmony_ci
206833eb0b6dSopenharmony_ci    napi_value result1 = nullptr;
206933eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result1);
207033eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result1, napi_object);
207133eb0b6dSopenharmony_ci    napi_value obj1 = nullptr;
207233eb0b6dSopenharmony_ci    napi_get_named_property(env, result1, "objKey", &obj1);
207333eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, obj1, napi_object);
207433eb0b6dSopenharmony_ci
207533eb0b6dSopenharmony_ci    napi_value result2 = nullptr;
207633eb0b6dSopenharmony_ci    napi_deserialize(env, data, &result2);
207733eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result2, napi_object);
207833eb0b6dSopenharmony_ci    napi_value num1 = nullptr;
207933eb0b6dSopenharmony_ci    napi_get_named_property(env, result2, "numKey", &num1);
208033eb0b6dSopenharmony_ci    uint32_t value1 = 0;
208133eb0b6dSopenharmony_ci    napi_get_value_uint32(env, num1, &value1);
208233eb0b6dSopenharmony_ci    ASSERT_EQ(value1, 1000);
208333eb0b6dSopenharmony_ci
208433eb0b6dSopenharmony_ci    napi_delete_serialization_data(env, data);
208533eb0b6dSopenharmony_ci}
208633eb0b6dSopenharmony_ci
208733eb0b6dSopenharmony_ci/**
208833eb0b6dSopenharmony_ci * @tc.name: IsCallableTest001
208933eb0b6dSopenharmony_ci * @tc.desc: Test is callable.
209033eb0b6dSopenharmony_ci * @tc.type: FUNC
209133eb0b6dSopenharmony_ci */
209233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, IsCallableTest001, testing::ext::TestSize.Level1)
209333eb0b6dSopenharmony_ci{
209433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
209533eb0b6dSopenharmony_ci
209633eb0b6dSopenharmony_ci    auto func = [](napi_env env, napi_callback_info info) -> napi_value {
209733eb0b6dSopenharmony_ci        napi_value thisVar;
209833eb0b6dSopenharmony_ci        napi_value* argv = nullptr;
209933eb0b6dSopenharmony_ci        size_t argc = 0;
210033eb0b6dSopenharmony_ci        void* data = nullptr;
210133eb0b6dSopenharmony_ci
210233eb0b6dSopenharmony_ci        napi_get_cb_info(env, info, &argc, nullptr, nullptr, nullptr);
210333eb0b6dSopenharmony_ci        if (argc > 0) {
210433eb0b6dSopenharmony_ci            argv = new napi_value[argc];
210533eb0b6dSopenharmony_ci        }
210633eb0b6dSopenharmony_ci        napi_get_cb_info(env, info, &argc, argv, &thisVar, &data);
210733eb0b6dSopenharmony_ci
210833eb0b6dSopenharmony_ci        napi_value result = nullptr;
210933eb0b6dSopenharmony_ci        napi_create_object(env, &result);
211033eb0b6dSopenharmony_ci
211133eb0b6dSopenharmony_ci        napi_value messageKey = nullptr;
211233eb0b6dSopenharmony_ci        const char* messageKeyStr = "message";
211333eb0b6dSopenharmony_ci        napi_create_string_latin1(env, messageKeyStr, strlen(messageKeyStr), &messageKey);
211433eb0b6dSopenharmony_ci        napi_value messageValue = nullptr;
211533eb0b6dSopenharmony_ci        const char* messageValueStr = "OK";
211633eb0b6dSopenharmony_ci        napi_create_string_latin1(env, messageValueStr, strlen(messageValueStr), &messageValue);
211733eb0b6dSopenharmony_ci        napi_set_property(env, result, messageKey, messageValue);
211833eb0b6dSopenharmony_ci
211933eb0b6dSopenharmony_ci        if (argv != nullptr) {
212033eb0b6dSopenharmony_ci            delete []argv;
212133eb0b6dSopenharmony_ci        }
212233eb0b6dSopenharmony_ci        return result;
212333eb0b6dSopenharmony_ci    };
212433eb0b6dSopenharmony_ci
212533eb0b6dSopenharmony_ci    napi_value funcValue = nullptr;
212633eb0b6dSopenharmony_ci    napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, func, nullptr, &funcValue);
212733eb0b6dSopenharmony_ci    ASSERT_NE(funcValue, nullptr);
212833eb0b6dSopenharmony_ci
212933eb0b6dSopenharmony_ci    bool result = false;
213033eb0b6dSopenharmony_ci    napi_is_callable(env, funcValue, &result);
213133eb0b6dSopenharmony_ci    ASSERT_TRUE(result);
213233eb0b6dSopenharmony_ci}
213333eb0b6dSopenharmony_ci
213433eb0b6dSopenharmony_ci/**
213533eb0b6dSopenharmony_ci * @tc.name: EncodeToUtf8Test001
213633eb0b6dSopenharmony_ci * @tc.desc: Test EncodeToUtf8 Func.
213733eb0b6dSopenharmony_ci * @tc.type: FUNC
213833eb0b6dSopenharmony_ci */
213933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, EncodeToUtf8Test001, testing::ext::TestSize.Level1)
214033eb0b6dSopenharmony_ci{
214133eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
214233eb0b6dSopenharmony_ci    std::string str = "encode";
214333eb0b6dSopenharmony_ci    napi_value testStr = nullptr;
214433eb0b6dSopenharmony_ci    napi_create_string_utf8(env, str.c_str(), str.length(), &testStr);
214533eb0b6dSopenharmony_ci    char* buffer = new char[str.length()];
214633eb0b6dSopenharmony_ci    size_t bufferSize = str.length();
214733eb0b6dSopenharmony_ci    uint32_t written = 0;
214833eb0b6dSopenharmony_ci    int32_t nchars = 0;
214933eb0b6dSopenharmony_ci    ASSERT_EQ(memset_s(buffer, str.length(), 0, str.length()), EOK);
215033eb0b6dSopenharmony_ci    engine_->EncodeToUtf8(testStr, buffer, &written, bufferSize, &nchars);
215133eb0b6dSopenharmony_ci    ASSERT_EQ(written, 6);
215233eb0b6dSopenharmony_ci    ASSERT_EQ(nchars, 6);
215333eb0b6dSopenharmony_ci    delete[] buffer;
215433eb0b6dSopenharmony_ci
215533eb0b6dSopenharmony_ci    str = "encode\xc2\xab\xe2\x98\x80";
215633eb0b6dSopenharmony_ci    testStr = nullptr;
215733eb0b6dSopenharmony_ci    napi_create_string_utf8(env, str.c_str(), str.length(), &testStr);
215833eb0b6dSopenharmony_ci    buffer = new char[str.length()];
215933eb0b6dSopenharmony_ci    bufferSize = str.length();
216033eb0b6dSopenharmony_ci    ASSERT_EQ(memset_s(buffer, str.length(), 0, str.length()), EOK);
216133eb0b6dSopenharmony_ci    engine_->EncodeToUtf8(testStr, buffer, &written, bufferSize, &nchars);
216233eb0b6dSopenharmony_ci    ASSERT_EQ(written, 11);
216333eb0b6dSopenharmony_ci    ASSERT_EQ(nchars, 8);
216433eb0b6dSopenharmony_ci    delete[] buffer;
216533eb0b6dSopenharmony_ci
216633eb0b6dSopenharmony_ci    buffer = new char[str.length()];
216733eb0b6dSopenharmony_ci    bufferSize = str.length();
216833eb0b6dSopenharmony_ci    ASSERT_EQ(memset_s(buffer, str.length(), 0, str.length()), EOK);
216933eb0b6dSopenharmony_ci    bufferSize--;
217033eb0b6dSopenharmony_ci    engine_->EncodeToUtf8(testStr, buffer, &written, bufferSize, &nchars);
217133eb0b6dSopenharmony_ci    ASSERT_EQ(written, 8);
217233eb0b6dSopenharmony_ci    ASSERT_EQ(nchars, 7);
217333eb0b6dSopenharmony_ci    delete[] buffer;
217433eb0b6dSopenharmony_ci
217533eb0b6dSopenharmony_ci    buffer = new char[str.length()];
217633eb0b6dSopenharmony_ci    bufferSize = str.length();
217733eb0b6dSopenharmony_ci    ASSERT_EQ(memset_s(buffer, str.length(), 0, str.length()), EOK);
217833eb0b6dSopenharmony_ci    bufferSize -= 4;
217933eb0b6dSopenharmony_ci    engine_->EncodeToUtf8(testStr, buffer, &written, bufferSize, &nchars);
218033eb0b6dSopenharmony_ci    ASSERT_EQ(written, 6);
218133eb0b6dSopenharmony_ci    ASSERT_EQ(nchars, 6);
218233eb0b6dSopenharmony_ci    delete[] buffer;
218333eb0b6dSopenharmony_ci
218433eb0b6dSopenharmony_ci    str = "encode\xc2\xab\xe2\x98\x80t";
218533eb0b6dSopenharmony_ci    testStr = nullptr;
218633eb0b6dSopenharmony_ci    napi_create_string_utf8(env, str.c_str(), str.length(), &testStr);
218733eb0b6dSopenharmony_ci    buffer = new char[str.length()];
218833eb0b6dSopenharmony_ci    bufferSize = str.length();
218933eb0b6dSopenharmony_ci    ASSERT_EQ(memset_s(buffer, str.length(), 0, str.length()), EOK);
219033eb0b6dSopenharmony_ci    bufferSize--;
219133eb0b6dSopenharmony_ci    engine_->EncodeToUtf8(testStr, buffer, &written, bufferSize, &nchars);
219233eb0b6dSopenharmony_ci    ASSERT_EQ(written, 11);
219333eb0b6dSopenharmony_ci    ASSERT_EQ(nchars, 8);
219433eb0b6dSopenharmony_ci    delete[] buffer;
219533eb0b6dSopenharmony_ci
219633eb0b6dSopenharmony_ci    str = "";
219733eb0b6dSopenharmony_ci    testStr = nullptr;
219833eb0b6dSopenharmony_ci    napi_create_string_utf8(env, str.c_str(), str.length(), &testStr);
219933eb0b6dSopenharmony_ci    buffer = new char[str.length() + 1];
220033eb0b6dSopenharmony_ci    bufferSize = str.length() + 1;
220133eb0b6dSopenharmony_ci    ASSERT_EQ(memset_s(buffer, str.length(), 0, str.length()), EOK);
220233eb0b6dSopenharmony_ci    engine_->EncodeToUtf8(testStr, buffer, &written, bufferSize, &nchars);
220333eb0b6dSopenharmony_ci    ASSERT_EQ(written, 0);
220433eb0b6dSopenharmony_ci    ASSERT_EQ(nchars, 0);
220533eb0b6dSopenharmony_ci    delete[] buffer;
220633eb0b6dSopenharmony_ci}
220733eb0b6dSopenharmony_ci
220833eb0b6dSopenharmony_ci/**
220933eb0b6dSopenharmony_ci * @tc.name: WrapWithSizeTest001
221033eb0b6dSopenharmony_ci * @tc.desc: Test wrap with size.
221133eb0b6dSopenharmony_ci * @tc.type: FUNC
221233eb0b6dSopenharmony_ci */
221333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, WrapWithSizeTest001, testing::ext::TestSize.Level1)
221433eb0b6dSopenharmony_ci{
221533eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
221633eb0b6dSopenharmony_ci
221733eb0b6dSopenharmony_ci    napi_value testWrapClass = nullptr;
221833eb0b6dSopenharmony_ci    napi_define_class(
221933eb0b6dSopenharmony_ci        env, "TestWrapClass", NAPI_AUTO_LENGTH,
222033eb0b6dSopenharmony_ci        [](napi_env env, napi_callback_info info) -> napi_value {
222133eb0b6dSopenharmony_ci            napi_value thisVar = nullptr;
222233eb0b6dSopenharmony_ci            napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr);
222333eb0b6dSopenharmony_ci
222433eb0b6dSopenharmony_ci            return thisVar;
222533eb0b6dSopenharmony_ci        },
222633eb0b6dSopenharmony_ci        nullptr, 0, nullptr, &testWrapClass);
222733eb0b6dSopenharmony_ci
222833eb0b6dSopenharmony_ci    napi_value instanceValue = nullptr;
222933eb0b6dSopenharmony_ci    napi_new_instance(env, testWrapClass, 0, nullptr, &instanceValue);
223033eb0b6dSopenharmony_ci
223133eb0b6dSopenharmony_ci    const char* testWrapStr = "testWrapStr";
223233eb0b6dSopenharmony_ci    size_t size = sizeof(*testWrapStr) / sizeof(char);
223333eb0b6dSopenharmony_ci    napi_wrap_with_size(
223433eb0b6dSopenharmony_ci        env, instanceValue, (void*)testWrapStr, [](napi_env env, void* data, void* hint) {}, nullptr, nullptr, size);
223533eb0b6dSopenharmony_ci
223633eb0b6dSopenharmony_ci    char* tempTestStr = nullptr;
223733eb0b6dSopenharmony_ci    napi_unwrap(env, instanceValue, (void**)&tempTestStr);
223833eb0b6dSopenharmony_ci    ASSERT_STREQ(testWrapStr, tempTestStr);
223933eb0b6dSopenharmony_ci
224033eb0b6dSopenharmony_ci    char* tempTestStr1 = nullptr;
224133eb0b6dSopenharmony_ci    napi_remove_wrap(env, instanceValue, (void**)&tempTestStr1);
224233eb0b6dSopenharmony_ci    ASSERT_STREQ(testWrapStr, tempTestStr1);
224333eb0b6dSopenharmony_ci
224433eb0b6dSopenharmony_ci}
224533eb0b6dSopenharmony_ci
224633eb0b6dSopenharmony_ci/**
224733eb0b6dSopenharmony_ci * @tc.name: CreateExternalWithSizeTest001
224833eb0b6dSopenharmony_ci * @tc.desc: Test create external with size.
224933eb0b6dSopenharmony_ci * @tc.type: FUNC
225033eb0b6dSopenharmony_ci */
225133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CreateExternalWithSizeTest001, testing::ext::TestSize.Level1)
225233eb0b6dSopenharmony_ci{
225333eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
225433eb0b6dSopenharmony_ci    const char testStr[] = "test";
225533eb0b6dSopenharmony_ci    size_t size = sizeof(testStr) / sizeof(char);
225633eb0b6dSopenharmony_ci    napi_value external = nullptr;
225733eb0b6dSopenharmony_ci    napi_create_external_with_size(
225833eb0b6dSopenharmony_ci        env, (void*)testStr,
225933eb0b6dSopenharmony_ci        [](napi_env env, void* data, void* hint) { ASSERT_STREQ((const char*)data, (const char*)hint); },
226033eb0b6dSopenharmony_ci        (void*)testStr, &external, size);
226133eb0b6dSopenharmony_ci
226233eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, external, napi_external);
226333eb0b6dSopenharmony_ci    void* tempExternal = nullptr;
226433eb0b6dSopenharmony_ci    napi_get_value_external(env, external, &tempExternal);
226533eb0b6dSopenharmony_ci    ASSERT_TRUE(tempExternal);
226633eb0b6dSopenharmony_ci    ASSERT_EQ(tempExternal, testStr);
226733eb0b6dSopenharmony_ci}
226833eb0b6dSopenharmony_ci
226933eb0b6dSopenharmony_ci/**
227033eb0b6dSopenharmony_ci * @tc.name: BigArrayTest001
227133eb0b6dSopenharmony_ci * @tc.desc: Test is big int64 array and big uint64 array.
227233eb0b6dSopenharmony_ci * @tc.type: FUNC
227333eb0b6dSopenharmony_ci */
227433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, BigArrayTest001, testing::ext::TestSize.Level1) {
227533eb0b6dSopenharmony_ci    napi_env env = (napi_env) engine_;
227633eb0b6dSopenharmony_ci
227733eb0b6dSopenharmony_ci    napi_value array = nullptr;
227833eb0b6dSopenharmony_ci    napi_create_array(env, &array);
227933eb0b6dSopenharmony_ci    ASSERT_NE(array, nullptr);
228033eb0b6dSopenharmony_ci    bool isArray = false;
228133eb0b6dSopenharmony_ci    napi_is_array(env, array, &isArray);
228233eb0b6dSopenharmony_ci    ASSERT_TRUE(isArray);
228333eb0b6dSopenharmony_ci
228433eb0b6dSopenharmony_ci    bool isBigInt64Array = true;
228533eb0b6dSopenharmony_ci    napi_is_big_int64_array(env, array, &isBigInt64Array);
228633eb0b6dSopenharmony_ci    ASSERT_EQ(isBigInt64Array, false);
228733eb0b6dSopenharmony_ci
228833eb0b6dSopenharmony_ci    bool isBigUInt64Array = true;
228933eb0b6dSopenharmony_ci    napi_is_big_uint64_array(env, array, &isBigUInt64Array);
229033eb0b6dSopenharmony_ci    ASSERT_EQ(isBigUInt64Array, false);
229133eb0b6dSopenharmony_ci}
229233eb0b6dSopenharmony_ci
229333eb0b6dSopenharmony_ci/**
229433eb0b6dSopenharmony_ci * @tc.name: CreateBufferTest001
229533eb0b6dSopenharmony_ci * @tc.desc: Test is CreateBuffer.
229633eb0b6dSopenharmony_ci * @tc.type: FUNC
229733eb0b6dSopenharmony_ci */
229833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CreateBufferTest001, testing::ext::TestSize.Level1)
229933eb0b6dSopenharmony_ci{
230033eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
230133eb0b6dSopenharmony_ci
230233eb0b6dSopenharmony_ci    napi_value buffer = nullptr;
230333eb0b6dSopenharmony_ci    void* bufferPtr = nullptr;
230433eb0b6dSopenharmony_ci    size_t bufferSize = -1;
230533eb0b6dSopenharmony_ci    napi_status creatresult = napi_create_buffer(env, bufferSize, &bufferPtr, &buffer);
230633eb0b6dSopenharmony_ci
230733eb0b6dSopenharmony_ci    ASSERT_EQ(creatresult, napi_status::napi_invalid_arg);
230833eb0b6dSopenharmony_ci    ASSERT_EQ(bufferPtr, nullptr);
230933eb0b6dSopenharmony_ci}
231033eb0b6dSopenharmony_ci
231133eb0b6dSopenharmony_ci/**
231233eb0b6dSopenharmony_ci * @tc.name: CreateBufferTest002
231333eb0b6dSopenharmony_ci * @tc.desc: Test is CreateBuffer.
231433eb0b6dSopenharmony_ci * @tc.type: FUNC
231533eb0b6dSopenharmony_ci */
231633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CreateBufferTest002, testing::ext::TestSize.Level1)
231733eb0b6dSopenharmony_ci{
231833eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
231933eb0b6dSopenharmony_ci
232033eb0b6dSopenharmony_ci    napi_value buffer = nullptr;
232133eb0b6dSopenharmony_ci    void* bufferPtr = nullptr;
232233eb0b6dSopenharmony_ci    const char* data = nullptr;
232333eb0b6dSopenharmony_ci    size_t bufferSize = -1;
232433eb0b6dSopenharmony_ci    napi_status creatresult = napi_create_buffer_copy(env, bufferSize, data, &bufferPtr, &buffer);
232533eb0b6dSopenharmony_ci
232633eb0b6dSopenharmony_ci    ASSERT_EQ(creatresult, napi_status::napi_invalid_arg);
232733eb0b6dSopenharmony_ci    ASSERT_EQ(bufferPtr, nullptr);
232833eb0b6dSopenharmony_ci}
232933eb0b6dSopenharmony_ci
233033eb0b6dSopenharmony_ci/**
233133eb0b6dSopenharmony_ci * @tc.name: CreateBufferTest003
233233eb0b6dSopenharmony_ci * @tc.desc: Test is CreateBuffer.
233333eb0b6dSopenharmony_ci * @tc.type: FUNC
233433eb0b6dSopenharmony_ci */
233533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CreateBufferTest003, testing::ext::TestSize.Level1)
233633eb0b6dSopenharmony_ci{
233733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
233833eb0b6dSopenharmony_ci    napi_value buffer = nullptr;
233933eb0b6dSopenharmony_ci    void* bufferPtr = nullptr;
234033eb0b6dSopenharmony_ci    size_t bufferSize = 1;
234133eb0b6dSopenharmony_ci    napi_status creatresult = napi_create_buffer(env, bufferSize, &bufferPtr, &buffer);
234233eb0b6dSopenharmony_ci    ASSERT_EQ(creatresult, napi_status::napi_ok);
234333eb0b6dSopenharmony_ci    creatresult = napi_create_buffer(env, bufferSize, nullptr, &buffer);
234433eb0b6dSopenharmony_ci    ASSERT_EQ(creatresult, napi_status::napi_invalid_arg);
234533eb0b6dSopenharmony_ci}
234633eb0b6dSopenharmony_ci
234733eb0b6dSopenharmony_ci/**
234833eb0b6dSopenharmony_ci * @tc.name: CreateBufferTest004
234933eb0b6dSopenharmony_ci * @tc.desc: Test is CreateBufferCopy.
235033eb0b6dSopenharmony_ci * @tc.type: FUNC
235133eb0b6dSopenharmony_ci */
235233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CreateBufferTest004, testing::ext::TestSize.Level1)
235333eb0b6dSopenharmony_ci{
235433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
235533eb0b6dSopenharmony_ci
235633eb0b6dSopenharmony_ci    napi_value buffer = nullptr;
235733eb0b6dSopenharmony_ci    void* bufferPtr = nullptr;
235833eb0b6dSopenharmony_ci    const char* data = nullptr;
235933eb0b6dSopenharmony_ci    size_t bufferSize = 1;
236033eb0b6dSopenharmony_ci    napi_status creatresult = napi_create_buffer_copy(env, bufferSize, nullptr, &bufferPtr, &buffer);
236133eb0b6dSopenharmony_ci    ASSERT_EQ(creatresult, napi_status::napi_invalid_arg);
236233eb0b6dSopenharmony_ci    creatresult = napi_create_buffer_copy(env, bufferSize, data, &bufferPtr, nullptr);
236333eb0b6dSopenharmony_ci    ASSERT_EQ(creatresult, napi_status::napi_invalid_arg);
236433eb0b6dSopenharmony_ci}
236533eb0b6dSopenharmony_ci
236633eb0b6dSopenharmony_ci/**
236733eb0b6dSopenharmony_ci * @tc.name: IsDetachedArrayBufferTest001
236833eb0b6dSopenharmony_ci * @tc.desc: Test is DetachedArrayBuffer.
236933eb0b6dSopenharmony_ci * @tc.type: FUNC
237033eb0b6dSopenharmony_ci */
237133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, IsDetachedArrayBufferTest001, testing::ext::TestSize.Level1)
237233eb0b6dSopenharmony_ci{
237333eb0b6dSopenharmony_ci    static constexpr size_t arrayBufferSize = 1024;
237433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
237533eb0b6dSopenharmony_ci    napi_value arrayBuffer = nullptr;
237633eb0b6dSopenharmony_ci    void* arrayBufferPtr = nullptr;
237733eb0b6dSopenharmony_ci    napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer);
237833eb0b6dSopenharmony_ci
237933eb0b6dSopenharmony_ci    bool result = false;
238033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_is_detached_arraybuffer(env, arrayBuffer, &result));
238133eb0b6dSopenharmony_ci
238233eb0b6dSopenharmony_ci    auto out = napi_detach_arraybuffer(env, arrayBuffer);
238333eb0b6dSopenharmony_ci    if (out == napi_ok) {
238433eb0b6dSopenharmony_ci        arrayBufferPtr = nullptr;
238533eb0b6dSopenharmony_ci    }
238633eb0b6dSopenharmony_ci    ASSERT_EQ(out, napi_ok);
238733eb0b6dSopenharmony_ci
238833eb0b6dSopenharmony_ci    result = false;
238933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_is_detached_arraybuffer(env, arrayBuffer, &result));
239033eb0b6dSopenharmony_ci    ASSERT_TRUE(result);
239133eb0b6dSopenharmony_ci}
239233eb0b6dSopenharmony_ci
239333eb0b6dSopenharmony_ci/**
239433eb0b6dSopenharmony_ci * @tc.name: FreezeObjectTest001
239533eb0b6dSopenharmony_ci * @tc.desc: Test is FreezeObject.
239633eb0b6dSopenharmony_ci * @tc.type: FUNC
239733eb0b6dSopenharmony_ci */
239833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, FreezeObjectTest001, testing::ext::TestSize.Level1)
239933eb0b6dSopenharmony_ci{
240033eb0b6dSopenharmony_ci    constexpr int dataSize = 60;
240133eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
240233eb0b6dSopenharmony_ci    napi_value object = nullptr;
240333eb0b6dSopenharmony_ci    napi_create_object(env, &object);
240433eb0b6dSopenharmony_ci
240533eb0b6dSopenharmony_ci    const char testStr[] = "1234567";
240633eb0b6dSopenharmony_ci    napi_value strAttribute = nullptr;
240733eb0b6dSopenharmony_ci    napi_create_string_utf8(env, testStr, strlen(testStr), &strAttribute);
240833eb0b6dSopenharmony_ci    napi_set_named_property(env, object, "strAttribute", strAttribute);
240933eb0b6dSopenharmony_ci
241033eb0b6dSopenharmony_ci    int32_t testNumber = 1;
241133eb0b6dSopenharmony_ci    napi_value numberAttribute = nullptr;
241233eb0b6dSopenharmony_ci    napi_create_int32(env, testNumber, &numberAttribute);
241333eb0b6dSopenharmony_ci    napi_set_named_property(env, object, "numberAttribute", numberAttribute);
241433eb0b6dSopenharmony_ci
241533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_object_freeze(env, object));
241633eb0b6dSopenharmony_ci
241733eb0b6dSopenharmony_ci    int32_t testNumber2 = 0;
241833eb0b6dSopenharmony_ci    napi_value numberAttribute2 = nullptr;
241933eb0b6dSopenharmony_ci    napi_create_int32(env, testNumber2, &numberAttribute2);
242033eb0b6dSopenharmony_ci    // Set property after freezed will throw 'Cannot add property in prevent extensions'.
242133eb0b6dSopenharmony_ci    napi_status status = napi_set_named_property(env, object, "test", numberAttribute2);
242233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_pending_exception);
242333eb0b6dSopenharmony_ci
242433eb0b6dSopenharmony_ci    napi_value ex;
242533eb0b6dSopenharmony_ci    napi_get_and_clear_last_exception(env, &ex);
242633eb0b6dSopenharmony_ci
242733eb0b6dSopenharmony_ci    napi_key_collection_mode keyMode = napi_key_own_only;
242833eb0b6dSopenharmony_ci    napi_key_filter keyFilter = napi_key_all_properties;
242933eb0b6dSopenharmony_ci    napi_key_conversion keyConversion = napi_key_keep_numbers;
243033eb0b6dSopenharmony_ci    napi_value propNames = nullptr;
243133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_all_property_names(env, object, keyMode, keyFilter, keyConversion, &propNames));
243233eb0b6dSopenharmony_ci
243333eb0b6dSopenharmony_ci    uint32_t arrayLength = 0;
243433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_array_length(env, propNames, &arrayLength));
243533eb0b6dSopenharmony_ci    ASSERT_EQ(arrayLength, MAX_BUFFER_SIZE);
243633eb0b6dSopenharmony_ci
243733eb0b6dSopenharmony_ci    char names[2][30];
243833eb0b6dSopenharmony_ci    memset_s(names, dataSize, 0, dataSize);
243933eb0b6dSopenharmony_ci    auto ret = memcpy_s(names[0], strlen("strAttribute"), "strAttribute", strlen("strAttribute"));
244033eb0b6dSopenharmony_ci    ASSERT_EQ(ret, EOK);
244133eb0b6dSopenharmony_ci    ret = memcpy_s(names[1], strlen("numberAttribute"), "numberAttribute", strlen("numberAttribute"));
244233eb0b6dSopenharmony_ci    ASSERT_EQ(ret, EOK);
244333eb0b6dSopenharmony_ci    for (uint32_t i = 0; i < arrayLength; i++) {
244433eb0b6dSopenharmony_ci        bool hasElement = false;
244533eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_has_element(env, propNames, i, &hasElement));
244633eb0b6dSopenharmony_ci
244733eb0b6dSopenharmony_ci        napi_value propName = nullptr;
244833eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_get_element(env, propNames, i, &propName));
244933eb0b6dSopenharmony_ci        ASSERT_CHECK_VALUE_TYPE(env, propName, napi_string);
245033eb0b6dSopenharmony_ci
245133eb0b6dSopenharmony_ci        size_t testStrLength = TEST_STR_LENGTH;
245233eb0b6dSopenharmony_ci        char testStrInner[TEST_STR_LENGTH + 1];
245333eb0b6dSopenharmony_ci        size_t outStrLength = 0;
245433eb0b6dSopenharmony_ci        memset_s(testStrInner, testStrLength + 1, 0, testStrLength + 1);
245533eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, propName, testStrInner, testStrLength, &outStrLength));
245633eb0b6dSopenharmony_ci
245733eb0b6dSopenharmony_ci        int ret = strcmp(testStrInner, names[i]);
245833eb0b6dSopenharmony_ci        ASSERT_EQ(ret, 0);
245933eb0b6dSopenharmony_ci    }
246033eb0b6dSopenharmony_ci}
246133eb0b6dSopenharmony_ci
246233eb0b6dSopenharmony_ci/**
246333eb0b6dSopenharmony_ci * @tc.name: SealObjectTest001
246433eb0b6dSopenharmony_ci * @tc.desc: Test is SealObject.
246533eb0b6dSopenharmony_ci * @tc.type: FUNC
246633eb0b6dSopenharmony_ci */
246733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, SealObjectTest001, testing::ext::TestSize.Level1)
246833eb0b6dSopenharmony_ci{
246933eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
247033eb0b6dSopenharmony_ci    napi_value object = nullptr;
247133eb0b6dSopenharmony_ci
247233eb0b6dSopenharmony_ci    napi_create_object(env, &object);
247333eb0b6dSopenharmony_ci
247433eb0b6dSopenharmony_ci    const char testStr[] = "1234567";
247533eb0b6dSopenharmony_ci    napi_value strAttribute = nullptr;
247633eb0b6dSopenharmony_ci    napi_create_string_utf8(env, testStr, strlen(testStr), &strAttribute);
247733eb0b6dSopenharmony_ci    napi_set_named_property(env, object, "strAttribute", strAttribute);
247833eb0b6dSopenharmony_ci
247933eb0b6dSopenharmony_ci    int32_t testNumber = 1;
248033eb0b6dSopenharmony_ci    napi_value numberAttribute = nullptr;
248133eb0b6dSopenharmony_ci    napi_create_int32(env, testNumber, &numberAttribute);
248233eb0b6dSopenharmony_ci    napi_set_named_property(env, object, "numberAttribute", numberAttribute);
248333eb0b6dSopenharmony_ci
248433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_object_seal(env, object));
248533eb0b6dSopenharmony_ci
248633eb0b6dSopenharmony_ci    bool testDeleted = false;
248733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_delete_property(env, object, strAttribute, &testDeleted));
248833eb0b6dSopenharmony_ci    ASSERT_TRUE(testDeleted);
248933eb0b6dSopenharmony_ci
249033eb0b6dSopenharmony_ci    const char modifiedStr[] = "modified";
249133eb0b6dSopenharmony_ci    napi_value modifiedValue = nullptr;
249233eb0b6dSopenharmony_ci    napi_create_string_utf8(env, modifiedStr, strlen(modifiedStr), &modifiedValue);
249333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_set_named_property(env, object, "strAttribute", modifiedValue));
249433eb0b6dSopenharmony_ci
249533eb0b6dSopenharmony_ci    napi_value strAttribute2 = nullptr;
249633eb0b6dSopenharmony_ci    napi_get_named_property(env, object, "strAttribute", &strAttribute2);
249733eb0b6dSopenharmony_ci    char buffer[TEST_STR_LENGTH] = {0};
249833eb0b6dSopenharmony_ci    size_t length = 0;
249933eb0b6dSopenharmony_ci    napi_status status = napi_get_value_string_utf8(env, strAttribute2, buffer, sizeof(buffer) - 1, &length);
250033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
250133eb0b6dSopenharmony_ci    ASSERT_EQ(length, strlen(modifiedStr));
250233eb0b6dSopenharmony_ci    ASSERT_EQ(strcmp(buffer, modifiedStr), 0);
250333eb0b6dSopenharmony_ci
250433eb0b6dSopenharmony_ci    napi_key_collection_mode keyMode = napi_key_own_only;
250533eb0b6dSopenharmony_ci    napi_key_filter keyFilter = napi_key_all_properties;
250633eb0b6dSopenharmony_ci    napi_key_conversion keyConversion = napi_key_keep_numbers;
250733eb0b6dSopenharmony_ci    napi_value propNames = nullptr;
250833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_all_property_names(env, object, keyMode, keyFilter, keyConversion, &propNames));
250933eb0b6dSopenharmony_ci
251033eb0b6dSopenharmony_ci    uint32_t arrayLength = 0;
251133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_array_length(env, propNames, &arrayLength));
251233eb0b6dSopenharmony_ci    ASSERT_EQ(arrayLength, MAX_BUFFER_SIZE);
251333eb0b6dSopenharmony_ci
251433eb0b6dSopenharmony_ci    char names[2][TEST_STR_LENGTH];
251533eb0b6dSopenharmony_ci    // There are 2 elements in the string array,
251633eb0b6dSopenharmony_ci    // so the parameter is set to TEST_STR_LENGTH * 2 to clear the entire array.
251733eb0b6dSopenharmony_ci    memset_s(names, TEST_STR_LENGTH * 2, 0, TEST_STR_LENGTH * 2);
251833eb0b6dSopenharmony_ci    auto ret = memcpy_s(names[0], strlen("strAttribute"), "strAttribute", strlen("strAttribute"));
251933eb0b6dSopenharmony_ci    ASSERT_EQ(ret, EOK);
252033eb0b6dSopenharmony_ci    ret = memcpy_s(names[1], strlen("numberAttribute"), "numberAttribute", strlen("numberAttribute"));
252133eb0b6dSopenharmony_ci    ASSERT_EQ(ret, EOK);
252233eb0b6dSopenharmony_ci
252333eb0b6dSopenharmony_ci    for (uint32_t i = 0; i < arrayLength; i++) {
252433eb0b6dSopenharmony_ci        bool hasElement = false;
252533eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_has_element(env, propNames, i, &hasElement));
252633eb0b6dSopenharmony_ci
252733eb0b6dSopenharmony_ci        napi_value propName = nullptr;
252833eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_get_element(env, propNames, i, &propName));
252933eb0b6dSopenharmony_ci        ASSERT_CHECK_VALUE_TYPE(env, propName, napi_string);
253033eb0b6dSopenharmony_ci
253133eb0b6dSopenharmony_ci        size_t testStrLength = TEST_STR_LENGTH;
253233eb0b6dSopenharmony_ci        char testStrInner[TEST_STR_LENGTH + 1];
253333eb0b6dSopenharmony_ci        size_t outStrLength = 0;
253433eb0b6dSopenharmony_ci        memset_s(testStrInner, testStrLength + 1, 0, testStrLength + 1);
253533eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, propName, testStrInner, testStrLength, &outStrLength));
253633eb0b6dSopenharmony_ci
253733eb0b6dSopenharmony_ci        int ret = strcmp(testStrInner, names[i]);
253833eb0b6dSopenharmony_ci        ASSERT_EQ(ret, 0);
253933eb0b6dSopenharmony_ci    }
254033eb0b6dSopenharmony_ci}
254133eb0b6dSopenharmony_ci
254233eb0b6dSopenharmony_ci/**
254333eb0b6dSopenharmony_ci * @tc.name: AllPropertyNamesTest001
254433eb0b6dSopenharmony_ci * @tc.desc: Test is AllPropertyNames.
254533eb0b6dSopenharmony_ci * @tc.type: FUNC
254633eb0b6dSopenharmony_ci */
254733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AllPropertyNamesTest001, testing::ext::TestSize.Level1)
254833eb0b6dSopenharmony_ci{
254933eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
255033eb0b6dSopenharmony_ci    napi_key_collection_mode keyMode = napi_key_own_only;
255133eb0b6dSopenharmony_ci    napi_key_filter keyFilter = napi_key_all_properties;
255233eb0b6dSopenharmony_ci    napi_key_conversion keyConversion = napi_key_keep_numbers;
255333eb0b6dSopenharmony_ci    napi_value result = nullptr;
255433eb0b6dSopenharmony_ci    napi_value propNames = nullptr;
255533eb0b6dSopenharmony_ci
255633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object(env, &result));
255733eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_object);
255833eb0b6dSopenharmony_ci
255933eb0b6dSopenharmony_ci    const char testStr[] = "1234567";
256033eb0b6dSopenharmony_ci    napi_value strAttribute = nullptr;
256133eb0b6dSopenharmony_ci    napi_create_string_utf8(env, testStr, strlen(testStr), &strAttribute);
256233eb0b6dSopenharmony_ci    napi_set_named_property(env, result, "strAttribute", strAttribute);
256333eb0b6dSopenharmony_ci
256433eb0b6dSopenharmony_ci    int32_t testNumber = 1;
256533eb0b6dSopenharmony_ci    napi_value numberAttribute = nullptr;
256633eb0b6dSopenharmony_ci    napi_create_int32(env, testNumber, &numberAttribute);
256733eb0b6dSopenharmony_ci    napi_set_named_property(env, result, "numberAttribute", numberAttribute);
256833eb0b6dSopenharmony_ci
256933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_all_property_names(env, result, keyMode, keyFilter, keyConversion, &propNames));
257033eb0b6dSopenharmony_ci
257133eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, propNames, napi_object);
257233eb0b6dSopenharmony_ci    bool isArray = false;
257333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_is_array(env, propNames, &isArray));
257433eb0b6dSopenharmony_ci    ASSERT_TRUE(isArray);
257533eb0b6dSopenharmony_ci    uint32_t arrayLength = 0;
257633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_array_length(env, propNames, &arrayLength));
257733eb0b6dSopenharmony_ci    ASSERT_EQ(arrayLength, MAX_BUFFER_SIZE);
257833eb0b6dSopenharmony_ci
257933eb0b6dSopenharmony_ci    char names[2][TEST_STR_LENGTH];
258033eb0b6dSopenharmony_ci    // There are 2 elements in the string array,
258133eb0b6dSopenharmony_ci    // so the parameter is set to TEST_STR_LENGTH * 2 to clear the entire array.
258233eb0b6dSopenharmony_ci    memset_s(names, TEST_STR_LENGTH * 2, 0, TEST_STR_LENGTH * 2);
258333eb0b6dSopenharmony_ci    auto ret = memcpy_s(names[0], strlen("strAttribute"), "strAttribute", strlen("strAttribute"));
258433eb0b6dSopenharmony_ci    ASSERT_EQ(ret, EOK);
258533eb0b6dSopenharmony_ci    ret = memcpy_s(names[1], strlen("numberAttribute"), "numberAttribute", strlen("numberAttribute"));
258633eb0b6dSopenharmony_ci    ASSERT_EQ(ret, EOK);
258733eb0b6dSopenharmony_ci
258833eb0b6dSopenharmony_ci    for (uint32_t i = 0; i < arrayLength; i++) {
258933eb0b6dSopenharmony_ci        bool hasElement = false;
259033eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_has_element(env, propNames, i, &hasElement));
259133eb0b6dSopenharmony_ci
259233eb0b6dSopenharmony_ci        napi_value propName = nullptr;
259333eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_get_element(env, propNames, i, &propName));
259433eb0b6dSopenharmony_ci        ASSERT_CHECK_VALUE_TYPE(env, propName, napi_string);
259533eb0b6dSopenharmony_ci
259633eb0b6dSopenharmony_ci        size_t testStrLength = TEST_STR_LENGTH;
259733eb0b6dSopenharmony_ci        char testStrInner[TEST_STR_LENGTH + 1];
259833eb0b6dSopenharmony_ci        size_t outStrLength = 0;
259933eb0b6dSopenharmony_ci        memset_s(testStrInner, testStrLength + 1, 0, testStrLength + 1);
260033eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, propName, testStrInner, testStrLength, &outStrLength));
260133eb0b6dSopenharmony_ci
260233eb0b6dSopenharmony_ci        int ret = strcmp(testStrInner, names[i]);
260333eb0b6dSopenharmony_ci        ASSERT_EQ(ret, 0);
260433eb0b6dSopenharmony_ci    }
260533eb0b6dSopenharmony_ci}
260633eb0b6dSopenharmony_ci
260733eb0b6dSopenharmony_ci/**
260833eb0b6dSopenharmony_ci * @tc.name: AllPropertyNamesTest002
260933eb0b6dSopenharmony_ci * @tc.desc: Test is AllPropertyNames.
261033eb0b6dSopenharmony_ci * @tc.type: FUNC
261133eb0b6dSopenharmony_ci */
261233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AllPropertyNamesTest002, testing::ext::TestSize.Level1)
261333eb0b6dSopenharmony_ci{
261433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
261533eb0b6dSopenharmony_ci    napi_key_collection_mode keyMode = napi_key_own_only;
261633eb0b6dSopenharmony_ci    napi_key_filter keyFilter = napi_key_writable;
261733eb0b6dSopenharmony_ci    napi_key_conversion keyConversion = napi_key_keep_numbers;
261833eb0b6dSopenharmony_ci    napi_value result = nullptr;
261933eb0b6dSopenharmony_ci    napi_value propNames = nullptr;
262033eb0b6dSopenharmony_ci    // Create napi_values for 123, 456 and 789
262133eb0b6dSopenharmony_ci    napi_value unenumerAble, writAble, configurAble;
262233eb0b6dSopenharmony_ci    napi_create_int32(env, 123, &unenumerAble);
262333eb0b6dSopenharmony_ci    napi_create_int32(env, 456, &writAble);
262433eb0b6dSopenharmony_ci    napi_create_int32(env, 789, &configurAble);
262533eb0b6dSopenharmony_ci
262633eb0b6dSopenharmony_ci    napi_property_descriptor descriptors[] = {
262733eb0b6dSopenharmony_ci        {"unenumerable",
262833eb0b6dSopenharmony_ci         nullptr, nullptr, nullptr, nullptr, unenumerAble,
262933eb0b6dSopenharmony_ci         napi_default_method, nullptr},
263033eb0b6dSopenharmony_ci        {"writable",
263133eb0b6dSopenharmony_ci         nullptr, nullptr, nullptr, nullptr, writAble,
263233eb0b6dSopenharmony_ci         static_cast<napi_property_attributes>(napi_enumerable | napi_writable), nullptr},
263333eb0b6dSopenharmony_ci        {"configurable",
263433eb0b6dSopenharmony_ci         nullptr, nullptr, nullptr, nullptr, configurAble,
263533eb0b6dSopenharmony_ci         static_cast<napi_property_attributes>(napi_enumerable | napi_configurable), nullptr}
263633eb0b6dSopenharmony_ci    };
263733eb0b6dSopenharmony_ci
263833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object(env, &result));
263933eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_object);
264033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_define_properties(env, result, sizeof(descriptors) / sizeof(descriptors[0]), descriptors));
264133eb0b6dSopenharmony_ci
264233eb0b6dSopenharmony_ci    const char testStr[] = "1234567";
264333eb0b6dSopenharmony_ci    napi_value strAttribute = nullptr;
264433eb0b6dSopenharmony_ci    napi_create_string_utf8(env, testStr, strlen(testStr), &strAttribute);
264533eb0b6dSopenharmony_ci    napi_set_named_property(env, result, "strAttribute", strAttribute);
264633eb0b6dSopenharmony_ci
264733eb0b6dSopenharmony_ci    int32_t testNumber = 1;
264833eb0b6dSopenharmony_ci    napi_value numberAttribute = nullptr;
264933eb0b6dSopenharmony_ci    napi_create_int32(env, testNumber, &numberAttribute);
265033eb0b6dSopenharmony_ci    napi_set_named_property(env, result, "numberAttribute", numberAttribute);
265133eb0b6dSopenharmony_ci
265233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_all_property_names(env, result, keyMode, keyFilter, keyConversion, &propNames));
265333eb0b6dSopenharmony_ci
265433eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, propNames, napi_object);
265533eb0b6dSopenharmony_ci    bool isArray = false;
265633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_is_array(env, propNames, &isArray));
265733eb0b6dSopenharmony_ci    ASSERT_TRUE(isArray);
265833eb0b6dSopenharmony_ci    uint32_t arrayLength = 0;
265933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_array_length(env, propNames, &arrayLength));
266033eb0b6dSopenharmony_ci    ASSERT_EQ(arrayLength, 4); // 4 means array length.
266133eb0b6dSopenharmony_ci
266233eb0b6dSopenharmony_ci    char names[4][TEST_STR_LENGTH];
266333eb0b6dSopenharmony_ci    // There are 4 elements in the string array,
266433eb0b6dSopenharmony_ci    // so the parameter is set to TEST_STR_LENGTH * 4 to clear the entire array.
266533eb0b6dSopenharmony_ci    memset_s(names, TEST_STR_LENGTH * 4, 0, TEST_STR_LENGTH * 4);
266633eb0b6dSopenharmony_ci    auto ret = memcpy_s(names[0], strlen("unenumerable"), "unenumerable", strlen("unenumerable"));
266733eb0b6dSopenharmony_ci    ASSERT_EQ(ret, EOK);
266833eb0b6dSopenharmony_ci    ret = memcpy_s(names[1], strlen("writable"), "writable", strlen("writable"));
266933eb0b6dSopenharmony_ci    ASSERT_EQ(ret, EOK);
267033eb0b6dSopenharmony_ci    ret = memcpy_s(names[2], strlen("strAttribute"), "strAttribute", strlen("strAttribute"));
267133eb0b6dSopenharmony_ci    ASSERT_EQ(ret, EOK);
267233eb0b6dSopenharmony_ci    ret = memcpy_s(names[3], strlen("numberAttribute"), "numberAttribute", strlen("numberAttribute"));
267333eb0b6dSopenharmony_ci    ASSERT_EQ(ret, EOK);
267433eb0b6dSopenharmony_ci
267533eb0b6dSopenharmony_ci    for (uint32_t i = 0; i < arrayLength; i++) {
267633eb0b6dSopenharmony_ci        bool hasElement = false;
267733eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_has_element(env, propNames, i, &hasElement));
267833eb0b6dSopenharmony_ci
267933eb0b6dSopenharmony_ci        napi_value propName = nullptr;
268033eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_get_element(env, propNames, i, &propName));
268133eb0b6dSopenharmony_ci        ASSERT_CHECK_VALUE_TYPE(env, propName, napi_string);
268233eb0b6dSopenharmony_ci
268333eb0b6dSopenharmony_ci        size_t testStrLength = TEST_STR_LENGTH;
268433eb0b6dSopenharmony_ci        char testStrInner[TEST_STR_LENGTH + 1];
268533eb0b6dSopenharmony_ci        size_t outStrLength = 0;
268633eb0b6dSopenharmony_ci        memset_s(testStrInner, testStrLength + 1, 0, testStrLength + 1);
268733eb0b6dSopenharmony_ci        ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, propName, testStrInner, testStrLength, &outStrLength));
268833eb0b6dSopenharmony_ci
268933eb0b6dSopenharmony_ci        int ret = strcmp(testStrInner, names[i]);
269033eb0b6dSopenharmony_ci        ASSERT_EQ(ret, 0);
269133eb0b6dSopenharmony_ci    }
269233eb0b6dSopenharmony_ci}
269333eb0b6dSopenharmony_ci
269433eb0b6dSopenharmony_ci/**
269533eb0b6dSopenharmony_ci * @tc.name: StringUtf16Test001
269633eb0b6dSopenharmony_ci * @tc.desc: Test is Chinese space character special character truncation.
269733eb0b6dSopenharmony_ci * @tc.type: FUNC
269833eb0b6dSopenharmony_ci */
269933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringUtf16Test001, testing::ext::TestSize.Level1)
270033eb0b6dSopenharmony_ci{
270133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
270233eb0b6dSopenharmony_ci    const char16_t testStr[] = u"中文,English,123456,!@#$%$#^%&12345     ";
270333eb0b6dSopenharmony_ci    int testStrLength = static_cast<int>(std::char_traits<char16_t>::length(testStr));
270433eb0b6dSopenharmony_ci    napi_value result = nullptr;
270533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf16(env, testStr, testStrLength, &result));
270633eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_string);
270733eb0b6dSopenharmony_ci
270833eb0b6dSopenharmony_ci    char16_t* buffer = nullptr;
270933eb0b6dSopenharmony_ci    size_t bufferSize = 0;
271033eb0b6dSopenharmony_ci    size_t strLength = 0;
271133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, result, nullptr, 0, &bufferSize));
271233eb0b6dSopenharmony_ci    ASSERT_GT(bufferSize, 0);
271333eb0b6dSopenharmony_ci    buffer = new char16_t[bufferSize + 1] { 0 };
271433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, result, buffer, bufferSize + 1, &strLength));
271533eb0b6dSopenharmony_ci    for (int i = 0; i < testStrLength; i++) {
271633eb0b6dSopenharmony_ci        ASSERT_EQ(testStr[i], buffer[i]);
271733eb0b6dSopenharmony_ci    }
271833eb0b6dSopenharmony_ci    ASSERT_EQ(testStrLength, strLength);
271933eb0b6dSopenharmony_ci    delete[] buffer;
272033eb0b6dSopenharmony_ci    buffer = nullptr;
272133eb0b6dSopenharmony_ci
272233eb0b6dSopenharmony_ci    char16_t* bufferShort = nullptr;
272333eb0b6dSopenharmony_ci    int bufferShortSize = 3;
272433eb0b6dSopenharmony_ci    bufferShort = new char16_t[bufferShortSize] { 0 };
272533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, result, bufferShort, bufferShortSize, &strLength));
272633eb0b6dSopenharmony_ci    for (int i = 0; i < bufferShortSize; i++) {
272733eb0b6dSopenharmony_ci        if (i == (bufferShortSize - 1)) {
272833eb0b6dSopenharmony_ci            ASSERT_EQ(0, bufferShort[i]);
272933eb0b6dSopenharmony_ci        } else {
273033eb0b6dSopenharmony_ci            ASSERT_EQ(testStr[i], bufferShort[i]);
273133eb0b6dSopenharmony_ci        }
273233eb0b6dSopenharmony_ci    }
273333eb0b6dSopenharmony_ci    ASSERT_EQ(strLength, MAX_BUFFER_SIZE);
273433eb0b6dSopenharmony_ci    delete[] bufferShort;
273533eb0b6dSopenharmony_ci    bufferShort = nullptr;
273633eb0b6dSopenharmony_ci}
273733eb0b6dSopenharmony_ci
273833eb0b6dSopenharmony_ci/**
273933eb0b6dSopenharmony_ci * @tc.name: StringUtf16Test002
274033eb0b6dSopenharmony_ci * @tc.desc: Test string type.
274133eb0b6dSopenharmony_ci * @tc.type: FUNC
274233eb0b6dSopenharmony_ci */
274333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringUtf16Test002, testing::ext::TestSize.Level2)
274433eb0b6dSopenharmony_ci{
274533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
274633eb0b6dSopenharmony_ci    char16_t testStr[] = u"ut.utf16test.napi.!@#%中^&*()6666";
274733eb0b6dSopenharmony_ci    int testStrLength = static_cast<int>(std::char_traits<char16_t>::length(testStr));
274833eb0b6dSopenharmony_ci    napi_value result = nullptr;
274933eb0b6dSopenharmony_ci    {
275033eb0b6dSopenharmony_ci        napi_status ret = napi_create_string_utf16(env, nullptr, testStrLength, &result);
275133eb0b6dSopenharmony_ci        ASSERT_EQ(ret, napi_status::napi_invalid_arg);
275233eb0b6dSopenharmony_ci    }
275333eb0b6dSopenharmony_ci    {
275433eb0b6dSopenharmony_ci        napi_status ret = napi_create_string_utf16(env, testStr, (size_t)INT_MAX + 1, &result);
275533eb0b6dSopenharmony_ci        ASSERT_EQ(ret, napi_status::napi_invalid_arg);
275633eb0b6dSopenharmony_ci    }
275733eb0b6dSopenharmony_ci}
275833eb0b6dSopenharmony_ci
275933eb0b6dSopenharmony_ci/**
276033eb0b6dSopenharmony_ci * @tc.name: StringUtf16Test003
276133eb0b6dSopenharmony_ci * @tc.desc: Test string type.
276233eb0b6dSopenharmony_ci * @tc.type: FUNC
276333eb0b6dSopenharmony_ci */
276433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringUtf16Test003, testing::ext::TestSize.Level2)
276533eb0b6dSopenharmony_ci{
276633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
276733eb0b6dSopenharmony_ci    char16_t testStr[] = u"ut.utf16test.napi.!@#$%^&*123";
276833eb0b6dSopenharmony_ci    size_t testStrLength = static_cast<size_t>(std::char_traits<char16_t>::length(testStr));
276933eb0b6dSopenharmony_ci    char16_t buffer[] = u"12345";
277033eb0b6dSopenharmony_ci    size_t bufferSize = 0;
277133eb0b6dSopenharmony_ci    size_t copied = 0;
277233eb0b6dSopenharmony_ci    napi_value result = nullptr;
277333eb0b6dSopenharmony_ci
277433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf16(env, testStr, testStrLength, &result));
277533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, result, buffer, bufferSize, &copied));
277633eb0b6dSopenharmony_ci
277733eb0b6dSopenharmony_ci    for (size_t i = 0; i < MAX_BUFFER_SIZE; i++) {
277833eb0b6dSopenharmony_ci        ASSERT_NE(buffer[i], testStr[i]);
277933eb0b6dSopenharmony_ci    }
278033eb0b6dSopenharmony_ci}
278133eb0b6dSopenharmony_ci
278233eb0b6dSopenharmony_ci/**
278333eb0b6dSopenharmony_ci * @tc.name: StringUtf16Test004
278433eb0b6dSopenharmony_ci * @tc.desc: Test string type.
278533eb0b6dSopenharmony_ci * @tc.type: FUNC
278633eb0b6dSopenharmony_ci */
278733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringUtf16Test004, testing::ext::TestSize.Level2)
278833eb0b6dSopenharmony_ci{
278933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
279033eb0b6dSopenharmony_ci    char16_t buffer[BUFFER_SIZE_FIVE];
279133eb0b6dSopenharmony_ci    int testStrLength = static_cast<int>(std::char_traits<char16_t>::length(buffer));
279233eb0b6dSopenharmony_ci    size_t copied;
279333eb0b6dSopenharmony_ci    int64_t testValue = INT64_MAX;
279433eb0b6dSopenharmony_ci    napi_value result = nullptr;
279533eb0b6dSopenharmony_ci
279633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_bigint_int64(env, testValue, &result));
279733eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_bigint);
279833eb0b6dSopenharmony_ci
279933eb0b6dSopenharmony_ci    napi_status ret = napi_get_value_string_utf16(env, result, buffer, testStrLength, &copied);
280033eb0b6dSopenharmony_ci    ASSERT_EQ(ret, napi_status::napi_string_expected);
280133eb0b6dSopenharmony_ci}
280233eb0b6dSopenharmony_ci
280333eb0b6dSopenharmony_ci/**
280433eb0b6dSopenharmony_ci * @tc.name: StringUtf16Test005
280533eb0b6dSopenharmony_ci * @tc.desc: Test string type.
280633eb0b6dSopenharmony_ci * @tc.type: FUNC
280733eb0b6dSopenharmony_ci */
280833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringUtf16Test005, testing::ext::TestSize.Level2)
280933eb0b6dSopenharmony_ci{
281033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
281133eb0b6dSopenharmony_ci    char16_t testStr[] = u"ut.utf16test.napi.!@#$%^&*123";
281233eb0b6dSopenharmony_ci    int testStrLength = static_cast<int>(std::char_traits<char16_t>::length(testStr));
281333eb0b6dSopenharmony_ci    char16_t buffer[testStrLength];
281433eb0b6dSopenharmony_ci    size_t copied;
281533eb0b6dSopenharmony_ci    napi_value result = nullptr;
281633eb0b6dSopenharmony_ci
281733eb0b6dSopenharmony_ci    napi_status ret = napi_get_value_string_utf16(env, result, buffer, testStrLength, &copied);
281833eb0b6dSopenharmony_ci    ASSERT_EQ(ret, napi_status::napi_invalid_arg);
281933eb0b6dSopenharmony_ci}
282033eb0b6dSopenharmony_ci
282133eb0b6dSopenharmony_ci/**
282233eb0b6dSopenharmony_ci * @tc.name: StringUtf16Test006
282333eb0b6dSopenharmony_ci * @tc.desc: Test string length.
282433eb0b6dSopenharmony_ci * @tc.type: FUNC
282533eb0b6dSopenharmony_ci */
282633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringUtf16Test006, testing::ext::TestSize.Level1)
282733eb0b6dSopenharmony_ci{
282833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
282933eb0b6dSopenharmony_ci    char16_t testStr[] = u"ut.utf16test.napi.!@#$%^&*123";
283033eb0b6dSopenharmony_ci    size_t testStrLength = static_cast<size_t>(std::char_traits<char16_t>::length(testStr));
283133eb0b6dSopenharmony_ci    size_t copied = 0;
283233eb0b6dSopenharmony_ci    napi_value result = nullptr;
283333eb0b6dSopenharmony_ci
283433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf16(env, testStr, testStrLength, &result));
283533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_utf16(env, result, nullptr, testStrLength, &copied));
283633eb0b6dSopenharmony_ci
283733eb0b6dSopenharmony_ci    ASSERT_EQ(testStrLength, copied);
283833eb0b6dSopenharmony_ci}
283933eb0b6dSopenharmony_ci
284033eb0b6dSopenharmony_ci/**
284133eb0b6dSopenharmony_ci * @tc.name: StringUtf8Test001
284233eb0b6dSopenharmony_ci * @tc.desc: Test string type.
284333eb0b6dSopenharmony_ci * @tc.type: FUNC
284433eb0b6dSopenharmony_ci */
284533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringUtf8Test001, testing::ext::TestSize.Level2)
284633eb0b6dSopenharmony_ci{
284733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
284833eb0b6dSopenharmony_ci    const char testStr[] = "ut.utf8test.napi.!@#%中^&*()6666";
284933eb0b6dSopenharmony_ci    size_t testStrLength = strlen(testStr);
285033eb0b6dSopenharmony_ci
285133eb0b6dSopenharmony_ci    napi_status ret = napi_create_string_utf8(env, testStr, testStrLength, nullptr);
285233eb0b6dSopenharmony_ci    ASSERT_EQ(ret, napi_status::napi_invalid_arg);
285333eb0b6dSopenharmony_ci}
285433eb0b6dSopenharmony_ci
285533eb0b6dSopenharmony_ci/**
285633eb0b6dSopenharmony_ci * @tc.name: StringUtf8Test002
285733eb0b6dSopenharmony_ci * @tc.desc: Test string type.
285833eb0b6dSopenharmony_ci * @tc.type: FUNC
285933eb0b6dSopenharmony_ci */
286033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringUtf8Test002, testing::ext::TestSize.Level2)
286133eb0b6dSopenharmony_ci{
286233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
286333eb0b6dSopenharmony_ci    char buffer[BUFFER_SIZE_FIVE] = { 0 };
286433eb0b6dSopenharmony_ci    size_t testStrLength = strlen(buffer);
286533eb0b6dSopenharmony_ci    size_t copied;
286633eb0b6dSopenharmony_ci    napi_value result = nullptr;
286733eb0b6dSopenharmony_ci    napi_get_boolean(env, true, &result);
286833eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_boolean);
286933eb0b6dSopenharmony_ci
287033eb0b6dSopenharmony_ci    napi_status ret = napi_get_value_string_utf8(env, result, buffer, testStrLength, &copied);
287133eb0b6dSopenharmony_ci    ASSERT_EQ(ret, napi_status::napi_string_expected);
287233eb0b6dSopenharmony_ci}
287333eb0b6dSopenharmony_ci
287433eb0b6dSopenharmony_ci/**
287533eb0b6dSopenharmony_ci * @tc.name: StringUtf8Test003
287633eb0b6dSopenharmony_ci * @tc.desc: Test string type.
287733eb0b6dSopenharmony_ci * @tc.type: FUNC
287833eb0b6dSopenharmony_ci */
287933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringUtf8Test003, testing::ext::TestSize.Level2)
288033eb0b6dSopenharmony_ci{
288133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
288233eb0b6dSopenharmony_ci    const char testStr[] = "ut.utf8test.napi.!@#$%^&*123";
288333eb0b6dSopenharmony_ci    size_t testStrLength = strlen(testStr);
288433eb0b6dSopenharmony_ci    char buffer[testStrLength];
288533eb0b6dSopenharmony_ci    size_t copied;
288633eb0b6dSopenharmony_ci    napi_value result = nullptr;
288733eb0b6dSopenharmony_ci
288833eb0b6dSopenharmony_ci    napi_status ret = napi_get_value_string_utf8(env, result, buffer, testStrLength, &copied);
288933eb0b6dSopenharmony_ci    ASSERT_EQ(ret, napi_status::napi_invalid_arg);
289033eb0b6dSopenharmony_ci}
289133eb0b6dSopenharmony_ci
289233eb0b6dSopenharmony_ci/**
289333eb0b6dSopenharmony_ci * @tc.name: StringUtf8Test004
289433eb0b6dSopenharmony_ci * @tc.desc: Test string length.
289533eb0b6dSopenharmony_ci * @tc.type: FUNC
289633eb0b6dSopenharmony_ci */
289733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringUtf8Test004, testing::ext::TestSize.Level1)
289833eb0b6dSopenharmony_ci{
289933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
290033eb0b6dSopenharmony_ci    const char testStr[] = "ut.utf8test.napi.!@#$%^&*123";
290133eb0b6dSopenharmony_ci    size_t testStrLength = strlen(testStr);
290233eb0b6dSopenharmony_ci    size_t copied = 0;
290333eb0b6dSopenharmony_ci    napi_value result = nullptr;
290433eb0b6dSopenharmony_ci
290533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, testStr, testStrLength, &result));
290633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, result, nullptr, testStrLength, &copied));
290733eb0b6dSopenharmony_ci
290833eb0b6dSopenharmony_ci    ASSERT_EQ(testStrLength, copied);
290933eb0b6dSopenharmony_ci}
291033eb0b6dSopenharmony_ci
291133eb0b6dSopenharmony_ci/**
291233eb0b6dSopenharmony_ci * @tc.name: StringLatin1Test001
291333eb0b6dSopenharmony_ci * @tc.desc: Test string type.
291433eb0b6dSopenharmony_ci * @tc.type: FUNC
291533eb0b6dSopenharmony_ci */
291633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringLatin1Test001, testing::ext::TestSize.Level1)
291733eb0b6dSopenharmony_ci{
291833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
291933eb0b6dSopenharmony_ci    const char testStr[] = "ut.latin1test.napi.!@#%^&*()6666";
292033eb0b6dSopenharmony_ci    size_t testStrLength = strlen(testStr);
292133eb0b6dSopenharmony_ci    napi_value result = nullptr;
292233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_latin1(env, testStr, testStrLength, &result));
292333eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_string);
292433eb0b6dSopenharmony_ci
292533eb0b6dSopenharmony_ci    char* buffer = nullptr;
292633eb0b6dSopenharmony_ci    size_t bufferSize = 0;
292733eb0b6dSopenharmony_ci    size_t strLength = 0;
292833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_latin1(env, result, nullptr, 0, &bufferSize));
292933eb0b6dSopenharmony_ci    ASSERT_GT(bufferSize, 0);
293033eb0b6dSopenharmony_ci    buffer = new char[bufferSize + 1]{ 0 };
293133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_latin1(env, result, buffer, bufferSize + 1, &strLength));
293233eb0b6dSopenharmony_ci    ASSERT_STREQ(testStr, buffer);
293333eb0b6dSopenharmony_ci    ASSERT_EQ(testStrLength, strLength);
293433eb0b6dSopenharmony_ci    delete []buffer;
293533eb0b6dSopenharmony_ci    buffer = nullptr;
293633eb0b6dSopenharmony_ci}
293733eb0b6dSopenharmony_ci
293833eb0b6dSopenharmony_ci/**
293933eb0b6dSopenharmony_ci * @tc.name: StringLatin1Test002
294033eb0b6dSopenharmony_ci * @tc.desc: Test string type.
294133eb0b6dSopenharmony_ci * @tc.type: FUNC
294233eb0b6dSopenharmony_ci */
294333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringLatin1Test002, testing::ext::TestSize.Level1)
294433eb0b6dSopenharmony_ci{
294533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
294633eb0b6dSopenharmony_ci    const char testStr[] = "ut.latin1test.中文测试";
294733eb0b6dSopenharmony_ci    size_t testStrLength = strlen(testStr);
294833eb0b6dSopenharmony_ci    napi_value result = nullptr;
294933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_latin1(env, testStr, testStrLength, &result));
295033eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_string);
295133eb0b6dSopenharmony_ci
295233eb0b6dSopenharmony_ci    char* buffer = nullptr;
295333eb0b6dSopenharmony_ci    size_t bufferSize = 0;
295433eb0b6dSopenharmony_ci    size_t strLength = 0;
295533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_latin1(env, result, nullptr, 0, &bufferSize));
295633eb0b6dSopenharmony_ci    ASSERT_GT(bufferSize, 0);
295733eb0b6dSopenharmony_ci    buffer = new char[bufferSize + 1]{ 0 };
295833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_latin1(env, result, buffer, bufferSize + 1, &strLength));
295933eb0b6dSopenharmony_ci    ASSERT_STRNE(testStr, buffer);
296033eb0b6dSopenharmony_ci    ASSERT_GT(testStrLength, strLength);
296133eb0b6dSopenharmony_ci    delete []buffer;
296233eb0b6dSopenharmony_ci    buffer = nullptr;
296333eb0b6dSopenharmony_ci}
296433eb0b6dSopenharmony_ci
296533eb0b6dSopenharmony_ci/**
296633eb0b6dSopenharmony_ci * @tc.name: StringLatin1Test003
296733eb0b6dSopenharmony_ci * @tc.desc: Test string type.
296833eb0b6dSopenharmony_ci * @tc.type: FUNC
296933eb0b6dSopenharmony_ci */
297033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringLatin1Test003, testing::ext::TestSize.Level2)
297133eb0b6dSopenharmony_ci{
297233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
297333eb0b6dSopenharmony_ci    napi_value result = nullptr;
297433eb0b6dSopenharmony_ci
297533eb0b6dSopenharmony_ci    const char testStr[] = "ut.latin1test.napi.!@#%^&*()6666";
297633eb0b6dSopenharmony_ci    size_t testStrLength = strlen(testStr);
297733eb0b6dSopenharmony_ci
297833eb0b6dSopenharmony_ci    napi_status ret = napi_create_string_latin1(env, nullptr, testStrLength, &result);
297933eb0b6dSopenharmony_ci    ASSERT_EQ(ret, napi_status::napi_invalid_arg);
298033eb0b6dSopenharmony_ci}
298133eb0b6dSopenharmony_ci
298233eb0b6dSopenharmony_ci/**
298333eb0b6dSopenharmony_ci * @tc.name: StringLatin1Test004
298433eb0b6dSopenharmony_ci * @tc.desc: Test string type.
298533eb0b6dSopenharmony_ci * @tc.type: FUNC
298633eb0b6dSopenharmony_ci */
298733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringLatin1Test004, testing::ext::TestSize.Level2)
298833eb0b6dSopenharmony_ci{
298933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
299033eb0b6dSopenharmony_ci    napi_value result = nullptr;
299133eb0b6dSopenharmony_ci
299233eb0b6dSopenharmony_ci    const char testStr[] = "ut.latin1test.napi.!@#%^&*()6666";
299333eb0b6dSopenharmony_ci
299433eb0b6dSopenharmony_ci    napi_status ret = napi_create_string_latin1(env, testStr, 0, &result);
299533eb0b6dSopenharmony_ci    ASSERT_EQ(ret, napi_status::napi_ok);
299633eb0b6dSopenharmony_ci
299733eb0b6dSopenharmony_ci    size_t bufferSize = 0;
299833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_latin1(env, result, nullptr, 0, &bufferSize));
299933eb0b6dSopenharmony_ci    ASSERT_EQ(bufferSize, 0);
300033eb0b6dSopenharmony_ci}
300133eb0b6dSopenharmony_ci
300233eb0b6dSopenharmony_ci/**
300333eb0b6dSopenharmony_ci * @tc.name: StringLatin1Test005
300433eb0b6dSopenharmony_ci * @tc.desc: Test string type.
300533eb0b6dSopenharmony_ci * @tc.type: FUNC
300633eb0b6dSopenharmony_ci */
300733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringLatin1Test005, testing::ext::TestSize.Level2)
300833eb0b6dSopenharmony_ci{
300933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
301033eb0b6dSopenharmony_ci    char buffer[BUFFER_SIZE_FIVE] = { 0 };
301133eb0b6dSopenharmony_ci    size_t testStrLength = strlen(buffer);
301233eb0b6dSopenharmony_ci    size_t copied;
301333eb0b6dSopenharmony_ci    napi_value result = nullptr;
301433eb0b6dSopenharmony_ci    napi_get_boolean(env, true, &result);
301533eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_boolean);
301633eb0b6dSopenharmony_ci
301733eb0b6dSopenharmony_ci    napi_status ret = napi_get_value_string_latin1(env, result, buffer, testStrLength, &copied);
301833eb0b6dSopenharmony_ci    ASSERT_EQ(ret, napi_status::napi_string_expected);
301933eb0b6dSopenharmony_ci}
302033eb0b6dSopenharmony_ci
302133eb0b6dSopenharmony_ci/**
302233eb0b6dSopenharmony_ci * @tc.name: StringLatin1Test006
302333eb0b6dSopenharmony_ci * @tc.desc: Test string type.
302433eb0b6dSopenharmony_ci * @tc.type: FUNC
302533eb0b6dSopenharmony_ci */
302633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringLatin1Test006, testing::ext::TestSize.Level2)
302733eb0b6dSopenharmony_ci{
302833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
302933eb0b6dSopenharmony_ci    const char testStr[] = "ut.latin1test.napi.!@#$%^&*123";
303033eb0b6dSopenharmony_ci    size_t testStrLength = strlen(testStr);
303133eb0b6dSopenharmony_ci    char buffer[testStrLength];
303233eb0b6dSopenharmony_ci    size_t copied;
303333eb0b6dSopenharmony_ci    napi_value result = nullptr;
303433eb0b6dSopenharmony_ci
303533eb0b6dSopenharmony_ci    napi_status ret = napi_get_value_string_latin1(env, result, buffer, testStrLength, &copied);
303633eb0b6dSopenharmony_ci    ASSERT_EQ(ret, napi_status::napi_invalid_arg);
303733eb0b6dSopenharmony_ci}
303833eb0b6dSopenharmony_ci
303933eb0b6dSopenharmony_ci/**
304033eb0b6dSopenharmony_ci * @tc.name: StringLatin1Test007
304133eb0b6dSopenharmony_ci * @tc.desc: Test string type.
304233eb0b6dSopenharmony_ci * @tc.type: FUNC
304333eb0b6dSopenharmony_ci */
304433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, StringLatin1Test007, testing::ext::TestSize.Level1)
304533eb0b6dSopenharmony_ci{
304633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
304733eb0b6dSopenharmony_ci    const char testStr[] = "ut.latin1test.napi.!@#$%^&*123";
304833eb0b6dSopenharmony_ci    size_t testStrLength = strlen(testStr);
304933eb0b6dSopenharmony_ci    size_t copied = 0;
305033eb0b6dSopenharmony_ci    napi_value result = nullptr;
305133eb0b6dSopenharmony_ci
305233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_latin1(env, testStr, testStrLength, &result));
305333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_latin1(env, result, nullptr, testStrLength, &copied));
305433eb0b6dSopenharmony_ci
305533eb0b6dSopenharmony_ci    ASSERT_EQ(testStrLength, copied);
305633eb0b6dSopenharmony_ci}
305733eb0b6dSopenharmony_ci
305833eb0b6dSopenharmony_ci/**
305933eb0b6dSopenharmony_ci * @tc.name: ToStringTest001
306033eb0b6dSopenharmony_ci * @tc.desc: Test string type of str.
306133eb0b6dSopenharmony_ci * @tc.type: FUNC
306233eb0b6dSopenharmony_ci */
306333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ToStringTest001, testing::ext::TestSize.Level1)
306433eb0b6dSopenharmony_ci{
306533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
306633eb0b6dSopenharmony_ci    const char testStr[] = "中文,English,123456,!@#$%$#^%&";
306733eb0b6dSopenharmony_ci    size_t testStrLength = strlen(testStr);
306833eb0b6dSopenharmony_ci    napi_value str = nullptr;
306933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, testStr, testStrLength, &str));
307033eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, str, napi_string);
307133eb0b6dSopenharmony_ci
307233eb0b6dSopenharmony_ci    napi_value result = nullptr;
307333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_coerce_to_string(env, str, &result));
307433eb0b6dSopenharmony_ci    char* buffer = nullptr;
307533eb0b6dSopenharmony_ci    size_t bufferSize = 0;
307633eb0b6dSopenharmony_ci    size_t strLength = 0;
307733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, result, nullptr, 0, &bufferSize));
307833eb0b6dSopenharmony_ci    ASSERT_GT(bufferSize, 0);
307933eb0b6dSopenharmony_ci    buffer = new char[bufferSize + 1]{ 0 };
308033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_string_utf8(env, result, buffer, bufferSize + 1, &strLength));
308133eb0b6dSopenharmony_ci    ASSERT_STREQ(testStr, buffer);
308233eb0b6dSopenharmony_ci    ASSERT_EQ(testStrLength, strLength);
308333eb0b6dSopenharmony_ci    delete []buffer;
308433eb0b6dSopenharmony_ci    buffer = nullptr;
308533eb0b6dSopenharmony_ci}
308633eb0b6dSopenharmony_ci
308733eb0b6dSopenharmony_ci/**
308833eb0b6dSopenharmony_ci * @tc.name: ToStringTest002
308933eb0b6dSopenharmony_ci * @tc.desc: Test string type of undefined.
309033eb0b6dSopenharmony_ci * @tc.type: FUNC
309133eb0b6dSopenharmony_ci */
309233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ToStringTest002, testing::ext::TestSize.Level1)
309333eb0b6dSopenharmony_ci{
309433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
309533eb0b6dSopenharmony_ci    napi_value argument;
309633eb0b6dSopenharmony_ci    napi_get_undefined(env, &argument);
309733eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, argument, napi_undefined);
309833eb0b6dSopenharmony_ci
309933eb0b6dSopenharmony_ci    napi_value result;
310033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_coerce_to_string(env, argument, &result));
310133eb0b6dSopenharmony_ci
310233eb0b6dSopenharmony_ci    const char expected[] = "undefined";
310333eb0b6dSopenharmony_ci    size_t expectedLength = strlen(expected);
310433eb0b6dSopenharmony_ci    char* buffer = nullptr;
310533eb0b6dSopenharmony_ci    size_t bufferSize = 0;
310633eb0b6dSopenharmony_ci    size_t strLength = 0;
310733eb0b6dSopenharmony_ci    napi_get_value_string_utf8(env, result, nullptr, 0, &bufferSize);
310833eb0b6dSopenharmony_ci    ASSERT_GT(bufferSize, 0);
310933eb0b6dSopenharmony_ci    buffer = new char[bufferSize + 1]{ 0 };
311033eb0b6dSopenharmony_ci    napi_get_value_string_utf8(env, result, buffer, bufferSize + 1, &strLength);
311133eb0b6dSopenharmony_ci    ASSERT_EQ(expectedLength, strLength);
311233eb0b6dSopenharmony_ci    ASSERT_STREQ(expected, buffer);
311333eb0b6dSopenharmony_ci    delete []buffer;
311433eb0b6dSopenharmony_ci    buffer = nullptr;
311533eb0b6dSopenharmony_ci}
311633eb0b6dSopenharmony_ci
311733eb0b6dSopenharmony_ci/**
311833eb0b6dSopenharmony_ci * @tc.name: ToStringTest003
311933eb0b6dSopenharmony_ci * @tc.desc: Test string type of null.
312033eb0b6dSopenharmony_ci * @tc.type: FUNC
312133eb0b6dSopenharmony_ci */
312233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ToStringTest003, testing::ext::TestSize.Level1)
312333eb0b6dSopenharmony_ci{
312433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
312533eb0b6dSopenharmony_ci    napi_value argument;
312633eb0b6dSopenharmony_ci    napi_get_null(env, &argument);
312733eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, argument, napi_null);
312833eb0b6dSopenharmony_ci
312933eb0b6dSopenharmony_ci    napi_value result;
313033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_coerce_to_string(env, argument, &result));
313133eb0b6dSopenharmony_ci
313233eb0b6dSopenharmony_ci    const char expected[] = "null";
313333eb0b6dSopenharmony_ci    size_t expectedLength = strlen(expected);
313433eb0b6dSopenharmony_ci    char* buffer = nullptr;
313533eb0b6dSopenharmony_ci    size_t bufferSize = 0;
313633eb0b6dSopenharmony_ci    size_t strLength = 0;
313733eb0b6dSopenharmony_ci    napi_get_value_string_utf8(env, result, nullptr, 0, &bufferSize);
313833eb0b6dSopenharmony_ci    ASSERT_GT(bufferSize, 0);
313933eb0b6dSopenharmony_ci    buffer = new char[bufferSize + 1]{ 0 };
314033eb0b6dSopenharmony_ci    napi_get_value_string_utf8(env, result, buffer, bufferSize + 1, &strLength);
314133eb0b6dSopenharmony_ci    ASSERT_EQ(expectedLength, strLength);
314233eb0b6dSopenharmony_ci    ASSERT_STREQ(expected, buffer);
314333eb0b6dSopenharmony_ci    delete []buffer;
314433eb0b6dSopenharmony_ci    buffer = nullptr;
314533eb0b6dSopenharmony_ci}
314633eb0b6dSopenharmony_ci
314733eb0b6dSopenharmony_ci/**
314833eb0b6dSopenharmony_ci * @tc.name: ToStringTest004
314933eb0b6dSopenharmony_ci * @tc.desc: Test string type of bool.
315033eb0b6dSopenharmony_ci * @tc.type: FUNC
315133eb0b6dSopenharmony_ci */
315233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ToStringTest004, testing::ext::TestSize.Level1)
315333eb0b6dSopenharmony_ci{
315433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
315533eb0b6dSopenharmony_ci    napi_value argument;
315633eb0b6dSopenharmony_ci    napi_get_boolean(env, true, &argument);
315733eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, argument, napi_boolean);
315833eb0b6dSopenharmony_ci
315933eb0b6dSopenharmony_ci    napi_value result;
316033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_coerce_to_string(env, argument, &result));
316133eb0b6dSopenharmony_ci
316233eb0b6dSopenharmony_ci    const char expected[] = "true";
316333eb0b6dSopenharmony_ci    size_t expectedLength = strlen(expected);
316433eb0b6dSopenharmony_ci    char* buffer = nullptr;
316533eb0b6dSopenharmony_ci    size_t bufferSize = 0;
316633eb0b6dSopenharmony_ci    size_t strLength = 0;
316733eb0b6dSopenharmony_ci    napi_get_value_string_utf8(env, result, nullptr, 0, &bufferSize);
316833eb0b6dSopenharmony_ci    ASSERT_GT(bufferSize, 0);
316933eb0b6dSopenharmony_ci    buffer = new char[bufferSize + 1]{ 0 };
317033eb0b6dSopenharmony_ci    napi_get_value_string_utf8(env, result, buffer, bufferSize + 1, &strLength);
317133eb0b6dSopenharmony_ci    ASSERT_EQ(expectedLength, strLength);
317233eb0b6dSopenharmony_ci    ASSERT_STREQ(expected, buffer);
317333eb0b6dSopenharmony_ci    delete []buffer;
317433eb0b6dSopenharmony_ci    buffer = nullptr;
317533eb0b6dSopenharmony_ci}
317633eb0b6dSopenharmony_ci
317733eb0b6dSopenharmony_ci/**
317833eb0b6dSopenharmony_ci * @tc.name: ToStringTest005
317933eb0b6dSopenharmony_ci * @tc.desc: Test string type of number.
318033eb0b6dSopenharmony_ci * @tc.type: FUNC
318133eb0b6dSopenharmony_ci */
318233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ToStringTest005, testing::ext::TestSize.Level1)
318333eb0b6dSopenharmony_ci{
318433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
318533eb0b6dSopenharmony_ci    napi_value argument;
318633eb0b6dSopenharmony_ci    double number = 0.1;
318733eb0b6dSopenharmony_ci    napi_create_double(env, number, &argument);
318833eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, argument, napi_number);
318933eb0b6dSopenharmony_ci
319033eb0b6dSopenharmony_ci    napi_value result;
319133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_coerce_to_string(env, argument, &result));
319233eb0b6dSopenharmony_ci
319333eb0b6dSopenharmony_ci    double numberValue;
319433eb0b6dSopenharmony_ci    napi_get_value_double(env, argument, &numberValue);
319533eb0b6dSopenharmony_ci    std::string expected = std::to_string(numberValue);
319633eb0b6dSopenharmony_ci    // Remove excess '0' after delimiter
319733eb0b6dSopenharmony_ci    while (!expected.empty() && expected.back() == '0')
319833eb0b6dSopenharmony_ci    {
319933eb0b6dSopenharmony_ci        expected.pop_back();
320033eb0b6dSopenharmony_ci    }
320133eb0b6dSopenharmony_ci
320233eb0b6dSopenharmony_ci    size_t expectedLength = expected.length();
320333eb0b6dSopenharmony_ci    char* buffer = nullptr;
320433eb0b6dSopenharmony_ci    size_t bufferSize = 0;
320533eb0b6dSopenharmony_ci    size_t strLength = 0;
320633eb0b6dSopenharmony_ci    napi_get_value_string_utf8(env, result, nullptr, 0, &bufferSize);
320733eb0b6dSopenharmony_ci    ASSERT_GT(bufferSize, 0);
320833eb0b6dSopenharmony_ci    buffer = new char[bufferSize + 1]{ 0 };
320933eb0b6dSopenharmony_ci    napi_get_value_string_utf8(env, result, buffer, bufferSize + 1, &strLength);
321033eb0b6dSopenharmony_ci    ASSERT_EQ(expectedLength, strLength);
321133eb0b6dSopenharmony_ci    ASSERT_STREQ(expected.c_str(), buffer);
321233eb0b6dSopenharmony_ci    delete []buffer;
321333eb0b6dSopenharmony_ci    buffer = nullptr;
321433eb0b6dSopenharmony_ci}
321533eb0b6dSopenharmony_ci
321633eb0b6dSopenharmony_ci/**
321733eb0b6dSopenharmony_ci * @tc.name: ToStringTest006
321833eb0b6dSopenharmony_ci * @tc.desc: Test string type of bigint.
321933eb0b6dSopenharmony_ci * @tc.type: FUNC
322033eb0b6dSopenharmony_ci */
322133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ToStringTest006, testing::ext::TestSize.Level1)
322233eb0b6dSopenharmony_ci{
322333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
322433eb0b6dSopenharmony_ci    int64_t testValue = INT64_MAX;
322533eb0b6dSopenharmony_ci    napi_value argument;
322633eb0b6dSopenharmony_ci    bool flag = false;
322733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_bigint_int64(env, testValue, &argument));
322833eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, argument, napi_bigint);
322933eb0b6dSopenharmony_ci
323033eb0b6dSopenharmony_ci    napi_value result;
323133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_coerce_to_string(env, argument, &result));
323233eb0b6dSopenharmony_ci
323333eb0b6dSopenharmony_ci    int64_t numberValue = 0;
323433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_value_bigint_int64(env, argument, &numberValue, &flag));
323533eb0b6dSopenharmony_ci    ASSERT_EQ(numberValue, INT64_MAX);
323633eb0b6dSopenharmony_ci    ASSERT_TRUE(flag);
323733eb0b6dSopenharmony_ci    std::string expected = std::to_string(numberValue);
323833eb0b6dSopenharmony_ci
323933eb0b6dSopenharmony_ci    size_t expectedLength = expected.length();
324033eb0b6dSopenharmony_ci    char* buffer = nullptr;
324133eb0b6dSopenharmony_ci    size_t bufferSize = 0;
324233eb0b6dSopenharmony_ci    size_t strLength = 0;
324333eb0b6dSopenharmony_ci    napi_get_value_string_utf8(env, result, nullptr, 0, &bufferSize);
324433eb0b6dSopenharmony_ci    ASSERT_GT(bufferSize, 0);
324533eb0b6dSopenharmony_ci    buffer = new char[bufferSize + 1]{ 0 };
324633eb0b6dSopenharmony_ci    napi_get_value_string_utf8(env, result, buffer, bufferSize + 1, &strLength);
324733eb0b6dSopenharmony_ci    ASSERT_EQ(expectedLength, strLength);
324833eb0b6dSopenharmony_ci    ASSERT_STREQ(expected.c_str(), buffer);
324933eb0b6dSopenharmony_ci    delete []buffer;
325033eb0b6dSopenharmony_ci    buffer = nullptr;
325133eb0b6dSopenharmony_ci}
325233eb0b6dSopenharmony_ci
325333eb0b6dSopenharmony_ci/**
325433eb0b6dSopenharmony_ci * @tc.name: ToStringTest007
325533eb0b6dSopenharmony_ci * @tc.desc: Test string type of symbol.
325633eb0b6dSopenharmony_ci * @tc.type: FUNC
325733eb0b6dSopenharmony_ci */
325833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ToStringTest007, testing::ext::TestSize.Level1)
325933eb0b6dSopenharmony_ci{
326033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
326133eb0b6dSopenharmony_ci    const char testStr[] = "testSymbol";
326233eb0b6dSopenharmony_ci    size_t testStrLength = strlen(testStr);
326333eb0b6dSopenharmony_ci    napi_value testSymbol = nullptr;
326433eb0b6dSopenharmony_ci    napi_create_string_utf8(env, testStr, testStrLength, &testSymbol);
326533eb0b6dSopenharmony_ci    napi_value symbolVal = nullptr;
326633eb0b6dSopenharmony_ci    napi_create_symbol(env, testSymbol, &symbolVal);
326733eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, symbolVal, napi_symbol);
326833eb0b6dSopenharmony_ci
326933eb0b6dSopenharmony_ci    napi_value result = nullptr;
327033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_coerce_to_string(env, symbolVal, &result));
327133eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, result, napi_undefined);
327233eb0b6dSopenharmony_ci}
327333eb0b6dSopenharmony_ci
327433eb0b6dSopenharmony_ci/**
327533eb0b6dSopenharmony_ci * @tc.name: ToStringTest001
327633eb0b6dSopenharmony_ci * @tc.desc: Test string type.
327733eb0b6dSopenharmony_ci * @tc.type: FUNC
327833eb0b6dSopenharmony_ci */
327933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ToStringTest008, testing::ext::TestSize.Level1)
328033eb0b6dSopenharmony_ci{
328133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
328233eb0b6dSopenharmony_ci
328333eb0b6dSopenharmony_ci    napi_value result;
328433eb0b6dSopenharmony_ci    napi_status status = napi_coerce_to_string(env, nullptr, &result);
328533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_status::napi_invalid_arg);
328633eb0b6dSopenharmony_ci}
328733eb0b6dSopenharmony_ci
328833eb0b6dSopenharmony_ci/**
328933eb0b6dSopenharmony_ci * @tc.name: InstanceDataTest_001
329033eb0b6dSopenharmony_ci * @tc.desc: Test instance type.
329133eb0b6dSopenharmony_ci * @tc.type: FUNC
329233eb0b6dSopenharmony_ci */
329333eb0b6dSopenharmony_cistruct AddonDataTest {
329433eb0b6dSopenharmony_ci    size_t value;
329533eb0b6dSopenharmony_ci    bool print;
329633eb0b6dSopenharmony_ci    napi_ref jsCbRef;
329733eb0b6dSopenharmony_ci};
329833eb0b6dSopenharmony_ci
329933eb0b6dSopenharmony_cistatic void DeleteAddonData(napi_env env, void* rawData, void* hint)
330033eb0b6dSopenharmony_ci{
330133eb0b6dSopenharmony_ci    AddonDataTest* data = reinterpret_cast<AddonDataTest*>(rawData);
330233eb0b6dSopenharmony_ci    if (data->print) {
330333eb0b6dSopenharmony_ci        printf("deleting addon data\n");
330433eb0b6dSopenharmony_ci    }
330533eb0b6dSopenharmony_ci    if (data->jsCbRef != nullptr) {
330633eb0b6dSopenharmony_ci        NAPI_CALL_RETURN_VOID(env, napi_delete_reference(env, data->jsCbRef));
330733eb0b6dSopenharmony_ci    }
330833eb0b6dSopenharmony_ci    free(data);
330933eb0b6dSopenharmony_ci}
331033eb0b6dSopenharmony_ci
331133eb0b6dSopenharmony_cistatic napi_value SetPrintOnDelete(napi_env env, napi_callback_info info)
331233eb0b6dSopenharmony_ci{
331333eb0b6dSopenharmony_ci    AddonDataTest* data;
331433eb0b6dSopenharmony_ci    NAPI_CALL(env, napi_get_instance_data(env, (void**)&data));
331533eb0b6dSopenharmony_ci    data->print = true;
331633eb0b6dSopenharmony_ci    return nullptr;
331733eb0b6dSopenharmony_ci}
331833eb0b6dSopenharmony_ci
331933eb0b6dSopenharmony_cistatic void TestFinalizer(napi_env env, void* rawData, void* hint)
332033eb0b6dSopenharmony_ci{
332133eb0b6dSopenharmony_ci    (void)rawData;
332233eb0b6dSopenharmony_ci    (void)hint;
332333eb0b6dSopenharmony_ci
332433eb0b6dSopenharmony_ci    AddonDataTest* data;
332533eb0b6dSopenharmony_ci    napi_value jsResult;
332633eb0b6dSopenharmony_ci    NAPI_CALL_RETURN_VOID(env, napi_get_instance_data(env, (void**)&data));
332733eb0b6dSopenharmony_ci    napi_value jsCb;
332833eb0b6dSopenharmony_ci    napi_value value;
332933eb0b6dSopenharmony_ci    NAPI_CALL_RETURN_VOID(env, napi_get_reference_value(env, data->jsCbRef, &jsCb));
333033eb0b6dSopenharmony_ci    NAPI_CALL_RETURN_VOID(env, napi_get_undefined(env, &value));
333133eb0b6dSopenharmony_ci    NAPI_CALL_RETURN_VOID(env, napi_call_function(env, value, jsCb, 0, nullptr, &jsResult));
333233eb0b6dSopenharmony_ci
333333eb0b6dSopenharmony_ci    NAPI_CALL_RETURN_VOID(env, napi_delete_reference(env, data->jsCbRef));
333433eb0b6dSopenharmony_ci    data->jsCbRef = nullptr;
333533eb0b6dSopenharmony_ci}
333633eb0b6dSopenharmony_ci
333733eb0b6dSopenharmony_cistatic napi_value ObjectWithFinalizer(napi_env env, napi_callback_info info)
333833eb0b6dSopenharmony_ci{
333933eb0b6dSopenharmony_ci    AddonDataTest* data;
334033eb0b6dSopenharmony_ci
334133eb0b6dSopenharmony_ci    napi_value value;
334233eb0b6dSopenharmony_ci    napi_value jsCb;
334333eb0b6dSopenharmony_ci    size_t argc = 1;
334433eb0b6dSopenharmony_ci
334533eb0b6dSopenharmony_ci    auto func = [](napi_env env, napi_callback_info info) -> napi_value {
334633eb0b6dSopenharmony_ci        return nullptr;
334733eb0b6dSopenharmony_ci    };
334833eb0b6dSopenharmony_ci
334933eb0b6dSopenharmony_ci    napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, func, nullptr, &jsCb);
335033eb0b6dSopenharmony_ci
335133eb0b6dSopenharmony_ci    NAPI_CALL(env, napi_get_instance_data(env, (void**)&data));
335233eb0b6dSopenharmony_ci    NAPI_ASSERT(env, data->jsCbRef == nullptr, "reference must be nullptr");
335333eb0b6dSopenharmony_ci    NAPI_CALL(env, napi_get_cb_info(env, info, &argc, &jsCb, nullptr, nullptr));
335433eb0b6dSopenharmony_ci    NAPI_CALL(env, napi_create_object(env, &value));
335533eb0b6dSopenharmony_ci    NAPI_CALL(env, napi_add_finalizer(env, value, nullptr, TestFinalizer, nullptr, nullptr));
335633eb0b6dSopenharmony_ci    NAPI_CALL(env, napi_create_reference(env, jsCb, 1, &data->jsCbRef));
335733eb0b6dSopenharmony_ci    return nullptr;
335833eb0b6dSopenharmony_ci}
335933eb0b6dSopenharmony_ci
336033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, InstanceDataTest_001, testing::ext::TestSize.Level1)
336133eb0b6dSopenharmony_ci{
336233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
336333eb0b6dSopenharmony_ci    // Set instance data
336433eb0b6dSopenharmony_ci    AddonDataTest* data = new AddonDataTest();
336533eb0b6dSopenharmony_ci    data->value = 41;
336633eb0b6dSopenharmony_ci    data->print = false;
336733eb0b6dSopenharmony_ci    data->jsCbRef = nullptr;
336833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_set_instance_data(env, data, DeleteAddonData, nullptr));
336933eb0b6dSopenharmony_ci
337033eb0b6dSopenharmony_ci    // Test get instance data
337133eb0b6dSopenharmony_ci    AddonDataTest* getData = nullptr;
337233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_instance_data(env, (void**)&getData));
337333eb0b6dSopenharmony_ci    ++getData->value;
337433eb0b6dSopenharmony_ci    const size_t expectValue = 42;
337533eb0b6dSopenharmony_ci    ASSERT_EQ(getData->value, expectValue);
337633eb0b6dSopenharmony_ci
337733eb0b6dSopenharmony_ci    // Test finalizer
337833eb0b6dSopenharmony_ci    SetPrintOnDelete(env, nullptr);
337933eb0b6dSopenharmony_ci    ObjectWithFinalizer(env, nullptr);
338033eb0b6dSopenharmony_ci}
338133eb0b6dSopenharmony_ci
338233eb0b6dSopenharmony_ci/**
338333eb0b6dSopenharmony_ci * @tc.name: AsyncInitTest001.
338433eb0b6dSopenharmony_ci * @tc.desc: Test napi_async_init, napi_async_destroy.
338533eb0b6dSopenharmony_ci * @tc.type: FUNC
338633eb0b6dSopenharmony_ci */
338733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AsyncInitTest001, testing::ext::TestSize.Level1)
338833eb0b6dSopenharmony_ci{
338933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
339033eb0b6dSopenharmony_ci
339133eb0b6dSopenharmony_ci    napi_value name;
339233eb0b6dSopenharmony_ci    NAPI_CALL_RETURN_VOID(env, napi_create_string_utf8(env, "ACE_napi_async_init_Test_001",
339333eb0b6dSopenharmony_ci        NAPI_AUTO_LENGTH, &name));
339433eb0b6dSopenharmony_ci
339533eb0b6dSopenharmony_ci    napi_async_context context = nullptr;
339633eb0b6dSopenharmony_ci    napi_status ret = napi_async_init(env, nullptr, name, &context);
339733eb0b6dSopenharmony_ci    ASSERT_EQ(ret, napi_ok);
339833eb0b6dSopenharmony_ci    EXPECT_NE(context, nullptr);
339933eb0b6dSopenharmony_ci
340033eb0b6dSopenharmony_ci    ret = napi_async_destroy(env, context);
340133eb0b6dSopenharmony_ci    ASSERT_EQ(ret, napi_ok);
340233eb0b6dSopenharmony_ci}
340333eb0b6dSopenharmony_ci
340433eb0b6dSopenharmony_ci/**
340533eb0b6dSopenharmony_ci * @tc.name: AsyncInitTest002
340633eb0b6dSopenharmony_ci * @tc.desc: Test napi_async_init with invalid arguments.
340733eb0b6dSopenharmony_ci * @tc.type: FUNC
340833eb0b6dSopenharmony_ci */
340933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AsyncInitTest002, testing::ext::TestSize.Level1)
341033eb0b6dSopenharmony_ci{
341133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
341233eb0b6dSopenharmony_ci
341333eb0b6dSopenharmony_ci    napi_value resourceName;
341433eb0b6dSopenharmony_ci    NAPI_CALL_RETURN_VOID(env, napi_create_string_utf8(env, "test", NAPI_AUTO_LENGTH, &resourceName));
341533eb0b6dSopenharmony_ci
341633eb0b6dSopenharmony_ci    napi_async_context* contextPtr = nullptr;
341733eb0b6dSopenharmony_ci    napi_status status = napi_async_init(env, nullptr, resourceName, contextPtr);
341833eb0b6dSopenharmony_ci    EXPECT_EQ(status, napi_invalid_arg);
341933eb0b6dSopenharmony_ci}
342033eb0b6dSopenharmony_ci
342133eb0b6dSopenharmony_ci/**
342233eb0b6dSopenharmony_ci * @tc.name: OpenCallbackScopeTest001
342333eb0b6dSopenharmony_ci * @tc.desc: Test napi_open_callback_scope, napi_close_callback_scope.
342433eb0b6dSopenharmony_ci * @tc.type: FUNC
342533eb0b6dSopenharmony_ci */
342633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, OpenCallbackScopeTest001, testing::ext::TestSize.Level1)
342733eb0b6dSopenharmony_ci{
342833eb0b6dSopenharmony_ci    napi_env envOne = reinterpret_cast<napi_env>(engine_);
342933eb0b6dSopenharmony_ci
343033eb0b6dSopenharmony_ci    auto callbackScopeManager = engine_->GetCallbackScopeManager();
343133eb0b6dSopenharmony_ci    ASSERT_NE(callbackScopeManager, nullptr);
343233eb0b6dSopenharmony_ci
343333eb0b6dSopenharmony_ci    int openCallbackScopesBefore = callbackScopeManager->GetOpenCallbackScopes();
343433eb0b6dSopenharmony_ci    int asyncCallbackScopeDepthBefore = callbackScopeManager->GetAsyncCallbackScopeDepth();
343533eb0b6dSopenharmony_ci
343633eb0b6dSopenharmony_ci    napi_value resourceName;
343733eb0b6dSopenharmony_ci    NAPI_CALL_RETURN_VOID(envOne, napi_create_string_utf8(envOne, "test", NAPI_AUTO_LENGTH, &resourceName));
343833eb0b6dSopenharmony_ci
343933eb0b6dSopenharmony_ci    napi_async_context context;
344033eb0b6dSopenharmony_ci    NAPI_CALL_RETURN_VOID(envOne, napi_async_init(envOne, nullptr, resourceName, &context));
344133eb0b6dSopenharmony_ci
344233eb0b6dSopenharmony_ci    napi_callback_scope scope = nullptr;
344333eb0b6dSopenharmony_ci    napi_status ret = napi_open_callback_scope(envOne, nullptr, context, &scope);
344433eb0b6dSopenharmony_ci    EXPECT_EQ(ret, napi_ok);
344533eb0b6dSopenharmony_ci    EXPECT_NE(scope, nullptr);
344633eb0b6dSopenharmony_ci
344733eb0b6dSopenharmony_ci    int openCallbackScopes = callbackScopeManager->GetOpenCallbackScopes();
344833eb0b6dSopenharmony_ci    int asyncCallbackScopeDepth = callbackScopeManager->GetAsyncCallbackScopeDepth();
344933eb0b6dSopenharmony_ci    EXPECT_EQ(openCallbackScopes, (openCallbackScopesBefore + 1));
345033eb0b6dSopenharmony_ci    EXPECT_EQ(asyncCallbackScopeDepth, (asyncCallbackScopeDepthBefore + 1));
345133eb0b6dSopenharmony_ci
345233eb0b6dSopenharmony_ci    ret = napi_close_callback_scope(envOne, scope);
345333eb0b6dSopenharmony_ci    EXPECT_EQ(ret, napi_ok);
345433eb0b6dSopenharmony_ci
345533eb0b6dSopenharmony_ci    int openCallbackScopesAfter = callbackScopeManager->GetOpenCallbackScopes();
345633eb0b6dSopenharmony_ci    int asyncCallbackScopeDepthAfter = callbackScopeManager->GetAsyncCallbackScopeDepth();
345733eb0b6dSopenharmony_ci    EXPECT_EQ(openCallbackScopesAfter, openCallbackScopesBefore);
345833eb0b6dSopenharmony_ci    EXPECT_EQ(asyncCallbackScopeDepthAfter, asyncCallbackScopeDepthBefore);
345933eb0b6dSopenharmony_ci
346033eb0b6dSopenharmony_ci    NAPI_CALL_RETURN_VOID(envOne, napi_async_destroy(envOne, context));
346133eb0b6dSopenharmony_ci}
346233eb0b6dSopenharmony_ci
346333eb0b6dSopenharmony_ci/**
346433eb0b6dSopenharmony_ci * @tc.name: OpenCallbackScopeTest002
346533eb0b6dSopenharmony_ci * @tc.desc: Test napi_open_callback_scope, napi_close_callback_scope.
346633eb0b6dSopenharmony_ci * @tc.type: FUNC
346733eb0b6dSopenharmony_ci */
346833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, OpenCallbackScopeTest002, testing::ext::TestSize.Level1)
346933eb0b6dSopenharmony_ci{
347033eb0b6dSopenharmony_ci    napi_env envOne = reinterpret_cast<napi_env>(engine_);
347133eb0b6dSopenharmony_ci
347233eb0b6dSopenharmony_ci    auto callbackScopeManager = engine_->GetCallbackScopeManager();
347333eb0b6dSopenharmony_ci    ASSERT_NE(callbackScopeManager, nullptr);
347433eb0b6dSopenharmony_ci
347533eb0b6dSopenharmony_ci    int openCallbackScopesBefore = callbackScopeManager->GetOpenCallbackScopes();
347633eb0b6dSopenharmony_ci    int asyncCallbackScopeDepthBefore = callbackScopeManager->GetAsyncCallbackScopeDepth();
347733eb0b6dSopenharmony_ci
347833eb0b6dSopenharmony_ci    napi_value resourceName;
347933eb0b6dSopenharmony_ci    NAPI_CALL_RETURN_VOID(envOne, napi_create_string_utf8(envOne, "test", NAPI_AUTO_LENGTH, &resourceName));
348033eb0b6dSopenharmony_ci
348133eb0b6dSopenharmony_ci    napi_async_context context;
348233eb0b6dSopenharmony_ci    NAPI_CALL_RETURN_VOID(envOne, napi_async_init(envOne, nullptr, resourceName, &context));
348333eb0b6dSopenharmony_ci
348433eb0b6dSopenharmony_ci    napi_callback_scope scope = nullptr;
348533eb0b6dSopenharmony_ci    napi_status res = napi_open_callback_scope(envOne, nullptr, context, &scope);
348633eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
348733eb0b6dSopenharmony_ci    EXPECT_NE(scope, nullptr);
348833eb0b6dSopenharmony_ci
348933eb0b6dSopenharmony_ci    int openCallbackScopesOne = callbackScopeManager->GetOpenCallbackScopes();
349033eb0b6dSopenharmony_ci    int asyncCallbackScopeDepthOne = callbackScopeManager->GetAsyncCallbackScopeDepth();
349133eb0b6dSopenharmony_ci
349233eb0b6dSopenharmony_ci    // Open a internal callback scope
349333eb0b6dSopenharmony_ci    panda::Local<panda::ObjectRef> obj = panda::ObjectRef::New(engine_->GetEcmaVm());
349433eb0b6dSopenharmony_ci    auto scopeTwo = callbackScopeManager->Open(engine_, obj, {0, 0});
349533eb0b6dSopenharmony_ci    int openCallbackScopesTwo = callbackScopeManager->GetOpenCallbackScopes();
349633eb0b6dSopenharmony_ci    int asyncCallbackScopeDepthTwo = callbackScopeManager->GetAsyncCallbackScopeDepth();
349733eb0b6dSopenharmony_ci
349833eb0b6dSopenharmony_ci    EXPECT_NE(scopeTwo, nullptr);
349933eb0b6dSopenharmony_ci    EXPECT_EQ(openCallbackScopesTwo, openCallbackScopesOne);
350033eb0b6dSopenharmony_ci    EXPECT_EQ(asyncCallbackScopeDepthTwo, (asyncCallbackScopeDepthOne + 1));
350133eb0b6dSopenharmony_ci
350233eb0b6dSopenharmony_ci    callbackScopeManager->Close(scopeTwo);
350333eb0b6dSopenharmony_ci    obj->Delete(engine_->GetEcmaVm(), obj);
350433eb0b6dSopenharmony_ci    int openCallbackScopesAfterTwo = callbackScopeManager->GetOpenCallbackScopes();
350533eb0b6dSopenharmony_ci    int asyncCallbackScopeDepthAfterTwo = callbackScopeManager->GetAsyncCallbackScopeDepth();
350633eb0b6dSopenharmony_ci
350733eb0b6dSopenharmony_ci    EXPECT_EQ(openCallbackScopesAfterTwo, openCallbackScopesOne);
350833eb0b6dSopenharmony_ci    EXPECT_EQ(asyncCallbackScopeDepthAfterTwo, asyncCallbackScopeDepthOne);
350933eb0b6dSopenharmony_ci
351033eb0b6dSopenharmony_ci    res = napi_close_callback_scope(envOne, scope);
351133eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
351233eb0b6dSopenharmony_ci
351333eb0b6dSopenharmony_ci    int openCallbackScopesAfter = callbackScopeManager->GetOpenCallbackScopes();
351433eb0b6dSopenharmony_ci    int asyncCallbackScopeDepthAfter = callbackScopeManager->GetAsyncCallbackScopeDepth();
351533eb0b6dSopenharmony_ci
351633eb0b6dSopenharmony_ci    EXPECT_EQ(openCallbackScopesAfter, openCallbackScopesBefore);
351733eb0b6dSopenharmony_ci    EXPECT_EQ(asyncCallbackScopeDepthAfter, asyncCallbackScopeDepthBefore);
351833eb0b6dSopenharmony_ci
351933eb0b6dSopenharmony_ci    NAPI_CALL_RETURN_VOID(envOne, napi_async_destroy(envOne, context));
352033eb0b6dSopenharmony_ci}
352133eb0b6dSopenharmony_ci
352233eb0b6dSopenharmony_cistatic void ExpectCheckCall(napi_status call)
352333eb0b6dSopenharmony_ci{
352433eb0b6dSopenharmony_ci    EXPECT_EQ(call, napi_ok);
352533eb0b6dSopenharmony_ci}
352633eb0b6dSopenharmony_ci
352733eb0b6dSopenharmony_cistatic void Cleanup(void* arg)
352833eb0b6dSopenharmony_ci{
352933eb0b6dSopenharmony_ci    g_hookTag += INT_ONE;
353033eb0b6dSopenharmony_ci    if (arg != nullptr) {
353133eb0b6dSopenharmony_ci    }
353233eb0b6dSopenharmony_ci}
353333eb0b6dSopenharmony_ci
353433eb0b6dSopenharmony_cistatic void CleanupCopy(void* arg)
353533eb0b6dSopenharmony_ci{
353633eb0b6dSopenharmony_ci    g_hookTagcp += INT_ONE;
353733eb0b6dSopenharmony_ci    if (arg != nullptr) {
353833eb0b6dSopenharmony_ci    }
353933eb0b6dSopenharmony_ci}
354033eb0b6dSopenharmony_ci
354133eb0b6dSopenharmony_ci/**
354233eb0b6dSopenharmony_ci * @tc.name: AddEnvCleanupHook001
354333eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_env_cleanup_hook
354433eb0b6dSopenharmony_ci * @tc.type: FUNC
354533eb0b6dSopenharmony_ci */
354633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AddEnvCleanupHook001, testing::ext::TestSize.Level1)
354733eb0b6dSopenharmony_ci{
354833eb0b6dSopenharmony_ci    std::this_thread::sleep_for(std::chrono::seconds(2));
354933eb0b6dSopenharmony_ci    napi_env testEnv = reinterpret_cast<napi_env>(engine_);
355033eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
355133eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne));
355233eb0b6dSopenharmony_ci    engine_->RunCleanup();
355333eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_ONE);
355433eb0b6dSopenharmony_ci}
355533eb0b6dSopenharmony_ci
355633eb0b6dSopenharmony_ci/**
355733eb0b6dSopenharmony_ci * @tc.name: AddEnvCleanupHook002
355833eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_env_cleanup_hook
355933eb0b6dSopenharmony_ci * @tc.type: FUNC
356033eb0b6dSopenharmony_ci */
356133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AddEnvCleanupHook002, testing::ext::TestSize.Level2)
356233eb0b6dSopenharmony_ci{
356333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
356433eb0b6dSopenharmony_ci    napi_status res = napi_invalid_arg;
356533eb0b6dSopenharmony_ci    res = napi_add_env_cleanup_hook(env, Cleanup, nullptr);
356633eb0b6dSopenharmony_ci    engine_->RunCleanup();
356733eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
356833eb0b6dSopenharmony_ci}
356933eb0b6dSopenharmony_ci
357033eb0b6dSopenharmony_ci/**
357133eb0b6dSopenharmony_ci * @tc.name: AddEnvCleanupHook003
357233eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_env_cleanup_hook
357333eb0b6dSopenharmony_ci * @tc.type: FUNC
357433eb0b6dSopenharmony_ci */
357533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AddEnvCleanupHook003, testing::ext::TestSize.Level2)
357633eb0b6dSopenharmony_ci{
357733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
357833eb0b6dSopenharmony_ci    napi_status res = napi_ok;
357933eb0b6dSopenharmony_ci    res = napi_add_env_cleanup_hook(env, nullptr, &g_hookArgOne);
358033eb0b6dSopenharmony_ci
358133eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_invalid_arg);
358233eb0b6dSopenharmony_ci}
358333eb0b6dSopenharmony_ci
358433eb0b6dSopenharmony_ci/**
358533eb0b6dSopenharmony_ci * @tc.name: AddEnvCleanupHook004
358633eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_env_cleanup_hook
358733eb0b6dSopenharmony_ci * @tc.type: FUNC
358833eb0b6dSopenharmony_ci */
358933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AddEnvCleanupHook004, testing::ext::TestSize.Level2)
359033eb0b6dSopenharmony_ci{
359133eb0b6dSopenharmony_ci    napi_status res = napi_ok;
359233eb0b6dSopenharmony_ci    res = napi_add_env_cleanup_hook(nullptr, Cleanup, &g_hookArgOne);
359333eb0b6dSopenharmony_ci    engine_->RunCleanup();
359433eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_invalid_arg);
359533eb0b6dSopenharmony_ci}
359633eb0b6dSopenharmony_ci
359733eb0b6dSopenharmony_ci/**
359833eb0b6dSopenharmony_ci * @tc.name: AddEnvCleanupHook005
359933eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_env_cleanup_hook
360033eb0b6dSopenharmony_ci * @tc.type: FUNC
360133eb0b6dSopenharmony_ci */
360233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AddEnvCleanupHook005, testing::ext::TestSize.Level1)
360333eb0b6dSopenharmony_ci{
360433eb0b6dSopenharmony_ci    napi_env testEnv = reinterpret_cast<napi_env>(engine_);
360533eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
360633eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne));
360733eb0b6dSopenharmony_ci    ExpectCheckCall(napi_remove_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne));
360833eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne));
360933eb0b6dSopenharmony_ci    engine_->RunCleanup();
361033eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_ONE);
361133eb0b6dSopenharmony_ci}
361233eb0b6dSopenharmony_ci
361333eb0b6dSopenharmony_ci/**
361433eb0b6dSopenharmony_ci * @tc.name: AddEnvCleanupHook006
361533eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_env_cleanup_hook
361633eb0b6dSopenharmony_ci * @tc.type: FUNC
361733eb0b6dSopenharmony_ci */
361833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AddEnvCleanupHook006, testing::ext::TestSize.Level1)
361933eb0b6dSopenharmony_ci{
362033eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
362133eb0b6dSopenharmony_ci    napi_env testEnv = reinterpret_cast<napi_env>(engine_);
362233eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne));
362333eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgTwo));
362433eb0b6dSopenharmony_ci    engine_->RunCleanup();
362533eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_TWO);
362633eb0b6dSopenharmony_ci}
362733eb0b6dSopenharmony_ci
362833eb0b6dSopenharmony_ci/**
362933eb0b6dSopenharmony_ci * @tc.name: AddEnvCleanupHook007
363033eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_env_cleanup_hook
363133eb0b6dSopenharmony_ci * @tc.type: FUNC
363233eb0b6dSopenharmony_ci */
363333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AddEnvCleanupHook007, testing::ext::TestSize.Level1)
363433eb0b6dSopenharmony_ci{
363533eb0b6dSopenharmony_ci    napi_env testEnv = reinterpret_cast<napi_env>(engine_);
363633eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
363733eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne));
363833eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgTwo));
363933eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgThree));
364033eb0b6dSopenharmony_ci    engine_->RunCleanup();
364133eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_THREE);
364233eb0b6dSopenharmony_ci}
364333eb0b6dSopenharmony_ci
364433eb0b6dSopenharmony_ci/**
364533eb0b6dSopenharmony_ci * @tc.name: EnvCleanupHook008
364633eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_env_cleanup_hook napi_remove_env_cleanup_hook
364733eb0b6dSopenharmony_ci * @tc.type: FUNC
364833eb0b6dSopenharmony_ci */
364933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, EnvCleanupHook008, testing::ext::TestSize.Level1)
365033eb0b6dSopenharmony_ci{
365133eb0b6dSopenharmony_ci    napi_env testEnv = reinterpret_cast<napi_env>(engine_);
365233eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
365333eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne));
365433eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgTwo));
365533eb0b6dSopenharmony_ci    ExpectCheckCall(napi_remove_env_cleanup_hook(testEnv, Cleanup, &g_hookArgTwo));
365633eb0b6dSopenharmony_ci    engine_->RunCleanup();
365733eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_ONE);
365833eb0b6dSopenharmony_ci}
365933eb0b6dSopenharmony_ci
366033eb0b6dSopenharmony_ci/**
366133eb0b6dSopenharmony_ci * @tc.name: EnvCleanupHook0009
366233eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_env_cleanup_hook napi_remove_env_cleanup_hook
366333eb0b6dSopenharmony_ci * @tc.type: FUNC
366433eb0b6dSopenharmony_ci */
366533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, EnvCleanupHook0009, testing::ext::TestSize.Level2)
366633eb0b6dSopenharmony_ci{
366733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
366833eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
366933eb0b6dSopenharmony_ci    napi_status res = napi_invalid_arg;
367033eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(env, Cleanup, &g_hookArgOne));
367133eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(env, Cleanup, &g_hookArgTwo));
367233eb0b6dSopenharmony_ci    res = napi_remove_env_cleanup_hook(env, Cleanup, nullptr);
367333eb0b6dSopenharmony_ci    engine_->RunCleanup();
367433eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_TWO);
367533eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
367633eb0b6dSopenharmony_ci}
367733eb0b6dSopenharmony_ci
367833eb0b6dSopenharmony_ci/**
367933eb0b6dSopenharmony_ci * @tc.name: EnvCleanupHook0010
368033eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_env_cleanup_hook napi_remove_env_cleanup_hook
368133eb0b6dSopenharmony_ci * @tc.type: FUNC
368233eb0b6dSopenharmony_ci */
368333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, EnvCleanupHook0010, testing::ext::TestSize.Level2)
368433eb0b6dSopenharmony_ci{
368533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
368633eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
368733eb0b6dSopenharmony_ci    napi_status res = napi_ok;
368833eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(env, Cleanup, &g_hookArgOne));
368933eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(env, Cleanup, &g_hookArgTwo));
369033eb0b6dSopenharmony_ci    res = napi_remove_env_cleanup_hook(env, nullptr, &g_hookArgTwo);
369133eb0b6dSopenharmony_ci    engine_->RunCleanup();
369233eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_TWO);
369333eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_invalid_arg);
369433eb0b6dSopenharmony_ci}
369533eb0b6dSopenharmony_ci
369633eb0b6dSopenharmony_ci/**
369733eb0b6dSopenharmony_ci * @tc.name: EnvCleanupHook0011
369833eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_env_cleanup_hook napi_remove_env_cleanup_hook
369933eb0b6dSopenharmony_ci * @tc.type: FUNC
370033eb0b6dSopenharmony_ci */
370133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, EnvCleanupHook0011, testing::ext::TestSize.Level2)
370233eb0b6dSopenharmony_ci{
370333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
370433eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
370533eb0b6dSopenharmony_ci    napi_status res = napi_ok;
370633eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(env, Cleanup, &g_hookArgOne));
370733eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(env, Cleanup, &g_hookArgTwo));
370833eb0b6dSopenharmony_ci    res = napi_remove_env_cleanup_hook(nullptr, Cleanup, &g_hookArgTwo);
370933eb0b6dSopenharmony_ci    engine_->RunCleanup();
371033eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_TWO);
371133eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_invalid_arg);
371233eb0b6dSopenharmony_ci}
371333eb0b6dSopenharmony_ci
371433eb0b6dSopenharmony_ci/**
371533eb0b6dSopenharmony_ci * @tc.name: EnvCleanupHook0012
371633eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_env_cleanup_hook napi_remove_env_cleanup_hook
371733eb0b6dSopenharmony_ci * @tc.type: FUNC
371833eb0b6dSopenharmony_ci */
371933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, EnvCleanupHook0012, testing::ext::TestSize.Level2)
372033eb0b6dSopenharmony_ci{
372133eb0b6dSopenharmony_ci    napi_env testEnv = reinterpret_cast<napi_env>(engine_);
372233eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
372333eb0b6dSopenharmony_ci    g_hookTagcp = INT_ZERO;
372433eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne));
372533eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, CleanupCopy, &g_hookArgTwo));
372633eb0b6dSopenharmony_ci    ExpectCheckCall(napi_remove_env_cleanup_hook(testEnv, Cleanup, &g_hookArgTwo));
372733eb0b6dSopenharmony_ci    ExpectCheckCall(napi_remove_env_cleanup_hook(testEnv, CleanupCopy, &g_hookArgOne));
372833eb0b6dSopenharmony_ci    engine_->RunCleanup();
372933eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_ONE);
373033eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTagcp, INT_ONE);
373133eb0b6dSopenharmony_ci}
373233eb0b6dSopenharmony_ci
373333eb0b6dSopenharmony_ci/**
373433eb0b6dSopenharmony_ci * @tc.name: EnvCleanupHook0013
373533eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_env_cleanup_hook napi_remove_env_cleanup_hook
373633eb0b6dSopenharmony_ci * @tc.type: FUNC
373733eb0b6dSopenharmony_ci */
373833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, EnvCleanupHook0013, testing::ext::TestSize.Level1)
373933eb0b6dSopenharmony_ci{
374033eb0b6dSopenharmony_ci    napi_env testEnv = reinterpret_cast<napi_env>(engine_);
374133eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
374233eb0b6dSopenharmony_ci    g_hookTagcp = INT_ZERO;
374333eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne));
374433eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_env_cleanup_hook(testEnv, CleanupCopy, &g_hookArgTwo));
374533eb0b6dSopenharmony_ci    ExpectCheckCall(napi_remove_env_cleanup_hook(testEnv, Cleanup, &g_hookArgOne));
374633eb0b6dSopenharmony_ci    ExpectCheckCall(napi_remove_env_cleanup_hook(testEnv, CleanupCopy, &g_hookArgTwo));
374733eb0b6dSopenharmony_ci    engine_->RunCleanup();
374833eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_ZERO);
374933eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTagcp, INT_ZERO);
375033eb0b6dSopenharmony_ci}
375133eb0b6dSopenharmony_ci
375233eb0b6dSopenharmony_cistruct AsyncData {
375333eb0b6dSopenharmony_ci    uv_async_t async;
375433eb0b6dSopenharmony_ci    napi_env env;
375533eb0b6dSopenharmony_ci    napi_async_cleanup_hook_handle handle;
375633eb0b6dSopenharmony_ci};
375733eb0b6dSopenharmony_ci
375833eb0b6dSopenharmony_cistatic void MustNotCall(napi_async_cleanup_hook_handle hook, void* arg)
375933eb0b6dSopenharmony_ci{
376033eb0b6dSopenharmony_ci    EXPECT_EQ(1, 0);
376133eb0b6dSopenharmony_ci}
376233eb0b6dSopenharmony_ci
376333eb0b6dSopenharmony_cistatic struct AsyncData* CreateAsyncData()
376433eb0b6dSopenharmony_ci{
376533eb0b6dSopenharmony_ci    AsyncData* data = static_cast<AsyncData*>(malloc(sizeof(AsyncData)));
376633eb0b6dSopenharmony_ci    if (data == nullptr) {
376733eb0b6dSopenharmony_ci        return nullptr;
376833eb0b6dSopenharmony_ci    }
376933eb0b6dSopenharmony_ci    data->handle = nullptr;
377033eb0b6dSopenharmony_ci    return data;
377133eb0b6dSopenharmony_ci}
377233eb0b6dSopenharmony_ci
377333eb0b6dSopenharmony_cistatic void AfterCleanupHookTwo(uv_handle_t* handle)
377433eb0b6dSopenharmony_ci{
377533eb0b6dSopenharmony_ci    AsyncData* data = static_cast<AsyncData*>(handle->data);
377633eb0b6dSopenharmony_ci    ExpectCheckCall(napi_remove_async_cleanup_hook(data->handle));
377733eb0b6dSopenharmony_ci    g_hookTag += INT_ONE;
377833eb0b6dSopenharmony_ci    free(data);
377933eb0b6dSopenharmony_ci}
378033eb0b6dSopenharmony_ci
378133eb0b6dSopenharmony_cistatic void AfterCleanupHookOne(uv_async_t* async)
378233eb0b6dSopenharmony_ci{
378333eb0b6dSopenharmony_ci    uv_close((uv_handle_t*)async, AfterCleanupHookTwo);
378433eb0b6dSopenharmony_ci}
378533eb0b6dSopenharmony_ci
378633eb0b6dSopenharmony_cistatic void AsyncCleanupHook(napi_async_cleanup_hook_handle handle, void* arg)
378733eb0b6dSopenharmony_ci{
378833eb0b6dSopenharmony_ci    AsyncData* data = static_cast<AsyncData*>(arg);
378933eb0b6dSopenharmony_ci    uv_loop_t* loop;
379033eb0b6dSopenharmony_ci    ExpectCheckCall(napi_get_uv_event_loop(data->env, &loop));
379133eb0b6dSopenharmony_ci    int res = uv_async_init(loop, &data->async, AfterCleanupHookOne);
379233eb0b6dSopenharmony_ci    EXPECT_EQ(res, 0);
379333eb0b6dSopenharmony_ci
379433eb0b6dSopenharmony_ci    data->async.data = data;
379533eb0b6dSopenharmony_ci    data->handle = handle;
379633eb0b6dSopenharmony_ci    uv_async_send(&data->async);
379733eb0b6dSopenharmony_ci}
379833eb0b6dSopenharmony_ci
379933eb0b6dSopenharmony_ci/**
380033eb0b6dSopenharmony_ci * @tc.name: AsyncCleanupHook001
380133eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_async_cleanup_hook
380233eb0b6dSopenharmony_ci * @tc.type: FUNC
380333eb0b6dSopenharmony_ci */
380433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AsyncCleanupHook001, testing::ext::TestSize.Level1)
380533eb0b6dSopenharmony_ci{
380633eb0b6dSopenharmony_ci    napi_env testEnv = reinterpret_cast<napi_env>(engine_);
380733eb0b6dSopenharmony_ci    AsyncData* data = CreateAsyncData();
380833eb0b6dSopenharmony_ci    if (data == nullptr) {
380933eb0b6dSopenharmony_ci        return;
381033eb0b6dSopenharmony_ci    }
381133eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
381233eb0b6dSopenharmony_ci    data->env = testEnv;
381333eb0b6dSopenharmony_ci    napi_status res = napi_add_async_cleanup_hook(testEnv, AsyncCleanupHook, data, &data->handle);
381433eb0b6dSopenharmony_ci    engine_->RunCleanup();
381533eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
381633eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_ONE);
381733eb0b6dSopenharmony_ci}
381833eb0b6dSopenharmony_ci
381933eb0b6dSopenharmony_ci/**
382033eb0b6dSopenharmony_ci * @tc.name: AsyncCleanupHook002
382133eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_async_cleanup_hook
382233eb0b6dSopenharmony_ci * @tc.type: FUNC
382333eb0b6dSopenharmony_ci */
382433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AsyncCleanupHook002, testing::ext::TestSize.Level1)
382533eb0b6dSopenharmony_ci{
382633eb0b6dSopenharmony_ci    napi_env testEnv = reinterpret_cast<napi_env>(engine_);
382733eb0b6dSopenharmony_ci    AsyncData* data = CreateAsyncData();
382833eb0b6dSopenharmony_ci    if (data == nullptr) {
382933eb0b6dSopenharmony_ci        return;
383033eb0b6dSopenharmony_ci    }
383133eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
383233eb0b6dSopenharmony_ci    data->env = testEnv;
383333eb0b6dSopenharmony_ci    napi_status res = napi_add_async_cleanup_hook(testEnv, AsyncCleanupHook, data, nullptr);
383433eb0b6dSopenharmony_ci    engine_->RunCleanup();
383533eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_ONE);
383633eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
383733eb0b6dSopenharmony_ci}
383833eb0b6dSopenharmony_ci
383933eb0b6dSopenharmony_ci/**
384033eb0b6dSopenharmony_ci * @tc.name: AsyncCleanupHook003
384133eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_async_cleanup_hook napi_remove_async_cleanup_hook
384233eb0b6dSopenharmony_ci * @tc.type: FUNC
384333eb0b6dSopenharmony_ci */
384433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ACE_Napi_Add_Async_Cleanup_Hook_0300, testing::ext::TestSize.Level2)
384533eb0b6dSopenharmony_ci{
384633eb0b6dSopenharmony_ci    napi_env testEnv = reinterpret_cast<napi_env>(engine_);
384733eb0b6dSopenharmony_ci    napi_async_cleanup_hook_handle mustNotCallHandle;
384833eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
384933eb0b6dSopenharmony_ci    ExpectCheckCall(napi_add_async_cleanup_hook(testEnv, MustNotCall, nullptr, &mustNotCallHandle));
385033eb0b6dSopenharmony_ci    ExpectCheckCall(napi_remove_async_cleanup_hook(mustNotCallHandle));
385133eb0b6dSopenharmony_ci    engine_->RunCleanup();
385233eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_ZERO);
385333eb0b6dSopenharmony_ci}
385433eb0b6dSopenharmony_ci
385533eb0b6dSopenharmony_ci/**
385633eb0b6dSopenharmony_ci * @tc.name: AsyncCleanupHook004
385733eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_async_cleanup_hook
385833eb0b6dSopenharmony_ci * @tc.type: FUNC
385933eb0b6dSopenharmony_ci */
386033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ACE_Napi_Add_Async_Cleanup_Hook_0400, testing::ext::TestSize.Level2)
386133eb0b6dSopenharmony_ci{
386233eb0b6dSopenharmony_ci    napi_status res = napi_ok;
386333eb0b6dSopenharmony_ci    napi_async_cleanup_hook_handle mustNotCallHandle;
386433eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
386533eb0b6dSopenharmony_ci    res = napi_add_async_cleanup_hook(nullptr, MustNotCall, nullptr, &mustNotCallHandle);
386633eb0b6dSopenharmony_ci    engine_->RunCleanup();
386733eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_invalid_arg);
386833eb0b6dSopenharmony_ci}
386933eb0b6dSopenharmony_ci
387033eb0b6dSopenharmony_ci/**
387133eb0b6dSopenharmony_ci * @tc.name: AsyncCleanupHook005
387233eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_async_cleanup_hook
387333eb0b6dSopenharmony_ci * @tc.type: FUNC
387433eb0b6dSopenharmony_ci */
387533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ACE_Napi_Add_Async_Cleanup_Hook_0500, testing::ext::TestSize.Level2)
387633eb0b6dSopenharmony_ci{
387733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
387833eb0b6dSopenharmony_ci    napi_status res = napi_ok;
387933eb0b6dSopenharmony_ci    napi_async_cleanup_hook_handle mustNotCallHandle;
388033eb0b6dSopenharmony_ci    res = napi_add_async_cleanup_hook(env, nullptr, nullptr, &mustNotCallHandle);
388133eb0b6dSopenharmony_ci    engine_->RunCleanup();
388233eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_invalid_arg);
388333eb0b6dSopenharmony_ci}
388433eb0b6dSopenharmony_ci
388533eb0b6dSopenharmony_ci/**
388633eb0b6dSopenharmony_ci * @tc.name: AsyncCleanupHook006
388733eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_async_cleanup_hook napi_remove_async_cleanup_hook
388833eb0b6dSopenharmony_ci * @tc.type: FUNC
388933eb0b6dSopenharmony_ci */
389033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, ACE_Napi_Add_Async_Cleanup_Hook_0600, testing::ext::TestSize.Level1)
389133eb0b6dSopenharmony_ci{
389233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
389333eb0b6dSopenharmony_ci    AsyncData* data = CreateAsyncData();
389433eb0b6dSopenharmony_ci    if (data == nullptr) {
389533eb0b6dSopenharmony_ci        return;
389633eb0b6dSopenharmony_ci    }
389733eb0b6dSopenharmony_ci    data->env = env;
389833eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
389933eb0b6dSopenharmony_ci    napi_status res = napi_invalid_arg;
390033eb0b6dSopenharmony_ci    res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, data, &data->handle);
390133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
390233eb0b6dSopenharmony_ci    res = napi_remove_async_cleanup_hook(data->handle);
390333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
390433eb0b6dSopenharmony_ci    res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, data, &data->handle);
390533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
390633eb0b6dSopenharmony_ci    engine_->RunCleanup();
390733eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_ONE);
390833eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
390933eb0b6dSopenharmony_ci}
391033eb0b6dSopenharmony_ci
391133eb0b6dSopenharmony_ci/**
391233eb0b6dSopenharmony_ci * @tc.name: AsyncCleanupHook007
391333eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_async_cleanup_hook
391433eb0b6dSopenharmony_ci * @tc.type: FUNC
391533eb0b6dSopenharmony_ci */
391633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AsyncCleanupHook007, testing::ext::TestSize.Level1)
391733eb0b6dSopenharmony_ci{
391833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
391933eb0b6dSopenharmony_ci    napi_env envTwo = reinterpret_cast<napi_env>(engine_);
392033eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
392133eb0b6dSopenharmony_ci    AsyncData* data = CreateAsyncData();
392233eb0b6dSopenharmony_ci    if (data == nullptr) {
392333eb0b6dSopenharmony_ci        return;
392433eb0b6dSopenharmony_ci    }
392533eb0b6dSopenharmony_ci    data->env = env;
392633eb0b6dSopenharmony_ci    napi_status res = napi_invalid_arg;
392733eb0b6dSopenharmony_ci    res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, data, &data->handle);
392833eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
392933eb0b6dSopenharmony_ci    AsyncData* dataTwo = CreateAsyncData();
393033eb0b6dSopenharmony_ci    if (dataTwo == nullptr) {
393133eb0b6dSopenharmony_ci        return;
393233eb0b6dSopenharmony_ci    }
393333eb0b6dSopenharmony_ci    dataTwo->env = envTwo;
393433eb0b6dSopenharmony_ci    res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, dataTwo, &dataTwo->handle);
393533eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
393633eb0b6dSopenharmony_ci    engine_->RunCleanup();
393733eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_TWO);
393833eb0b6dSopenharmony_ci}
393933eb0b6dSopenharmony_ci
394033eb0b6dSopenharmony_ci/**
394133eb0b6dSopenharmony_ci * @tc.name: AsyncCleanupHook008
394233eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_async_cleanup_hook
394333eb0b6dSopenharmony_ci * @tc.type: FUNC
394433eb0b6dSopenharmony_ci */
394533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AsyncCleanupHook008, testing::ext::TestSize.Level1)
394633eb0b6dSopenharmony_ci{
394733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
394833eb0b6dSopenharmony_ci    napi_env envTwo = reinterpret_cast<napi_env>(engine_);
394933eb0b6dSopenharmony_ci    napi_env envThree = reinterpret_cast<napi_env>(engine_);
395033eb0b6dSopenharmony_ci    AsyncData* data = CreateAsyncData();
395133eb0b6dSopenharmony_ci    if (data == nullptr) {
395233eb0b6dSopenharmony_ci        return;
395333eb0b6dSopenharmony_ci    }
395433eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
395533eb0b6dSopenharmony_ci    data->env = env;
395633eb0b6dSopenharmony_ci    napi_status res = napi_invalid_arg;
395733eb0b6dSopenharmony_ci    res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, data, &data->handle);
395833eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
395933eb0b6dSopenharmony_ci
396033eb0b6dSopenharmony_ci    AsyncData* dataTwo = CreateAsyncData();
396133eb0b6dSopenharmony_ci    if (dataTwo == nullptr) {
396233eb0b6dSopenharmony_ci        return;
396333eb0b6dSopenharmony_ci    }
396433eb0b6dSopenharmony_ci    dataTwo->env = envTwo;
396533eb0b6dSopenharmony_ci    res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, dataTwo, &dataTwo->handle);
396633eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
396733eb0b6dSopenharmony_ci
396833eb0b6dSopenharmony_ci    AsyncData* dataThree = CreateAsyncData();
396933eb0b6dSopenharmony_ci    if (dataThree == nullptr) {
397033eb0b6dSopenharmony_ci        return;
397133eb0b6dSopenharmony_ci    }
397233eb0b6dSopenharmony_ci    dataThree->env = envThree;
397333eb0b6dSopenharmony_ci    res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, dataThree, &dataThree->handle);
397433eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
397533eb0b6dSopenharmony_ci    engine_->RunCleanup();
397633eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_THREE);
397733eb0b6dSopenharmony_ci}
397833eb0b6dSopenharmony_ci
397933eb0b6dSopenharmony_ci/**
398033eb0b6dSopenharmony_ci * @tc.name: AsyncCleanupHook009
398133eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_async_cleanup_hook napi_remove_async_cleanup_hook
398233eb0b6dSopenharmony_ci * @tc.type: FUNC
398333eb0b6dSopenharmony_ci */
398433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AsyncCleanupHook009, testing::ext::TestSize.Level1)
398533eb0b6dSopenharmony_ci{
398633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
398733eb0b6dSopenharmony_ci    AsyncData* data = CreateAsyncData();
398833eb0b6dSopenharmony_ci    if (data == nullptr) {
398933eb0b6dSopenharmony_ci        return;
399033eb0b6dSopenharmony_ci    }
399133eb0b6dSopenharmony_ci    napi_status res = napi_invalid_arg;
399233eb0b6dSopenharmony_ci    g_hookTag = INT_ZERO;
399333eb0b6dSopenharmony_ci    data->env = env;
399433eb0b6dSopenharmony_ci    res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, data, &data->handle);
399533eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
399633eb0b6dSopenharmony_ci    res = napi_remove_async_cleanup_hook(data->handle);
399733eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
399833eb0b6dSopenharmony_ci    engine_->RunCleanup();
399933eb0b6dSopenharmony_ci    EXPECT_EQ(g_hookTag, INT_ZERO);
400033eb0b6dSopenharmony_ci}
400133eb0b6dSopenharmony_ci
400233eb0b6dSopenharmony_ci/**
400333eb0b6dSopenharmony_ci * @tc.name: AsyncCleanupHook0010
400433eb0b6dSopenharmony_ci * @tc.desc: Test napi_remove_async_cleanup_hook
400533eb0b6dSopenharmony_ci * @tc.type: FUNC
400633eb0b6dSopenharmony_ci */
400733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AsyncCleanupHook0010, testing::ext::TestSize.Level2)
400833eb0b6dSopenharmony_ci{
400933eb0b6dSopenharmony_ci    napi_status res = napi_ok;
401033eb0b6dSopenharmony_ci    res = napi_remove_async_cleanup_hook(nullptr);
401133eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_invalid_arg);
401233eb0b6dSopenharmony_ci}
401333eb0b6dSopenharmony_ci
401433eb0b6dSopenharmony_ci/**
401533eb0b6dSopenharmony_ci * @tc.name: AsyncCleanupHook0011
401633eb0b6dSopenharmony_ci * @tc.desc: Test napi_add_async_cleanup_hook napi_remove_async_cleanup_hook
401733eb0b6dSopenharmony_ci * @tc.type: FUNC
401833eb0b6dSopenharmony_ci */
401933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AsyncCleanupHook0011, testing::ext::TestSize.Level2)
402033eb0b6dSopenharmony_ci{
402133eb0b6dSopenharmony_ci
402233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
402333eb0b6dSopenharmony_ci    napi_env envTwo = reinterpret_cast<napi_env>(engine_);
402433eb0b6dSopenharmony_ci    AsyncData* data = CreateAsyncData();
402533eb0b6dSopenharmony_ci    if (data == nullptr) {
402633eb0b6dSopenharmony_ci        return;
402733eb0b6dSopenharmony_ci    }
402833eb0b6dSopenharmony_ci    napi_status res = napi_invalid_arg;
402933eb0b6dSopenharmony_ci    data->env = env;
403033eb0b6dSopenharmony_ci    res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, data, nullptr);
403133eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
403233eb0b6dSopenharmony_ci    AsyncData* dataTwo = CreateAsyncData();
403333eb0b6dSopenharmony_ci    if (dataTwo == nullptr) {
403433eb0b6dSopenharmony_ci        return;
403533eb0b6dSopenharmony_ci    }
403633eb0b6dSopenharmony_ci    dataTwo->env = envTwo;
403733eb0b6dSopenharmony_ci    res = napi_add_async_cleanup_hook(env, AsyncCleanupHook, dataTwo, &dataTwo->handle);
403833eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
403933eb0b6dSopenharmony_ci    res = napi_remove_async_cleanup_hook(dataTwo->handle);
404033eb0b6dSopenharmony_ci    EXPECT_EQ(res, napi_ok);
404133eb0b6dSopenharmony_ci    engine_->RunCleanup();
404233eb0b6dSopenharmony_ci}
404333eb0b6dSopenharmony_ci
404433eb0b6dSopenharmony_ci/**
404533eb0b6dSopenharmony_ci * @tc.name: nodeApiGetModuleFileName0001
404633eb0b6dSopenharmony_ci * @tc.desc: Test node_api_get_module_file_name.
404733eb0b6dSopenharmony_ci * @tc.type: FUNC
404833eb0b6dSopenharmony_ci */
404933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, nodeApiGetModuleFileName0001, testing::ext::TestSize.Level1)
405033eb0b6dSopenharmony_ci{
405133eb0b6dSopenharmony_ci    const char *fileName;
405233eb0b6dSopenharmony_ci    napi_env testEnv = reinterpret_cast<napi_env>(engine_);
405333eb0b6dSopenharmony_ci    napi_value result;
405433eb0b6dSopenharmony_ci    node_api_get_module_file_name(testEnv, &fileName);
405533eb0b6dSopenharmony_ci    napi_create_string_utf8(testEnv, fileName, NAPI_AUTO_LENGTH, &result);
405633eb0b6dSopenharmony_ci    ASSERT_TRUE(strcmp(fileName, "") == 0);
405733eb0b6dSopenharmony_ci}
405833eb0b6dSopenharmony_ci
405933eb0b6dSopenharmony_ci/**
406033eb0b6dSopenharmony_ci * @tc.name: AsyncWorkTest002
406133eb0b6dSopenharmony_ci * @tc.desc: Test async work.
406233eb0b6dSopenharmony_ci * @tc.type: FUNC
406333eb0b6dSopenharmony_ci */
406433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, AsyncWorkTest002, testing::ext::TestSize.Level1)
406533eb0b6dSopenharmony_ci{
406633eb0b6dSopenharmony_ci    struct AsyncWorkContext {
406733eb0b6dSopenharmony_ci        napi_async_work work = nullptr;
406833eb0b6dSopenharmony_ci        bool executed = false;
406933eb0b6dSopenharmony_ci    };
407033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
407133eb0b6dSopenharmony_ci    auto asyncWorkContext = new AsyncWorkContext();
407233eb0b6dSopenharmony_ci    napi_value resourceName = nullptr;
407333eb0b6dSopenharmony_ci    napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName);
407433eb0b6dSopenharmony_ci    napi_create_async_work(
407533eb0b6dSopenharmony_ci        env, nullptr, resourceName, [](napi_env value, void* data) {
407633eb0b6dSopenharmony_ci            AsyncWorkContext* asyncWorkContext = (AsyncWorkContext*)data;
407733eb0b6dSopenharmony_ci            asyncWorkContext->executed = true;
407833eb0b6dSopenharmony_ci        },
407933eb0b6dSopenharmony_ci        [](napi_env env, napi_status status, void* data) {
408033eb0b6dSopenharmony_ci            AsyncWorkContext* asyncWorkContext = (AsyncWorkContext*)data;
408133eb0b6dSopenharmony_ci            ASSERT_EQ(status, napi_status::napi_cancelled);
408233eb0b6dSopenharmony_ci            std::cout << "status of task is: " << status << std::endl;
408333eb0b6dSopenharmony_ci            napi_delete_async_work(env, asyncWorkContext->work);
408433eb0b6dSopenharmony_ci            delete asyncWorkContext;
408533eb0b6dSopenharmony_ci            STOP_EVENT_LOOP(env);
408633eb0b6dSopenharmony_ci        },
408733eb0b6dSopenharmony_ci        asyncWorkContext, &asyncWorkContext->work);
408833eb0b6dSopenharmony_ci    napi_queue_async_work(env, asyncWorkContext->work);
408933eb0b6dSopenharmony_ci    napi_cancel_async_work(env, asyncWorkContext->work);
409033eb0b6dSopenharmony_ci    RUN_EVENT_LOOP(env);
409133eb0b6dSopenharmony_ci}
409233eb0b6dSopenharmony_ci
409333eb0b6dSopenharmony_cistatic napi_value CreateWithPropertiesTestGetter(napi_env env, napi_callback_info info)
409433eb0b6dSopenharmony_ci{
409533eb0b6dSopenharmony_ci    napi_value res;
409633eb0b6dSopenharmony_ci    napi_get_boolean(env, false, &res);
409733eb0b6dSopenharmony_ci    return res;
409833eb0b6dSopenharmony_ci}
409933eb0b6dSopenharmony_ci
410033eb0b6dSopenharmony_cistatic napi_value CreateWithPropertiesTestSetter(napi_env env, napi_callback_info info)
410133eb0b6dSopenharmony_ci{
410233eb0b6dSopenharmony_ci    napi_value res;
410333eb0b6dSopenharmony_ci    napi_get_boolean(env, true, &res);
410433eb0b6dSopenharmony_ci    return res;
410533eb0b6dSopenharmony_ci}
410633eb0b6dSopenharmony_ci
410733eb0b6dSopenharmony_ci/**
410833eb0b6dSopenharmony_ci * @tc.name: CreateObjectWithPropertiesTest001
410933eb0b6dSopenharmony_ci * @tc.desc: Test napi_create_object_with_properteis.
411033eb0b6dSopenharmony_ci * @tc.type: FUNC
411133eb0b6dSopenharmony_ci */
411233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CreateObjectWithPropertiesTest001, testing::ext::TestSize.Level1)
411333eb0b6dSopenharmony_ci{
411433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
411533eb0b6dSopenharmony_ci    napi_value excep;
411633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_and_clear_last_exception(env, &excep));
411733eb0b6dSopenharmony_ci    napi_value val_false;
411833eb0b6dSopenharmony_ci    napi_value val_true;
411933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, false, &val_false));
412033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &val_true));
412133eb0b6dSopenharmony_ci    napi_property_descriptor desc1[] = {
412233eb0b6dSopenharmony_ci        DECLARE_NAPI_DEFAULT_PROPERTY("x", val_true),
412333eb0b6dSopenharmony_ci    };
412433eb0b6dSopenharmony_ci    napi_value obj1;
412533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object_with_properties(env, &obj1, 1, desc1));
412633eb0b6dSopenharmony_ci    napi_value obj2;
412733eb0b6dSopenharmony_ci    napi_property_descriptor desc2[] = {
412833eb0b6dSopenharmony_ci        DECLARE_NAPI_DEFAULT_PROPERTY("a", val_false),
412933eb0b6dSopenharmony_ci        DECLARE_NAPI_GETTER_SETTER("b", CreateWithPropertiesTestGetter, CreateWithPropertiesTestSetter),
413033eb0b6dSopenharmony_ci        DECLARE_NAPI_DEFAULT_PROPERTY("c", obj1),
413133eb0b6dSopenharmony_ci    };
413233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object_with_properties(env, &obj2, 3, desc2));
413333eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, obj1, napi_object);
413433eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, obj2, napi_object);
413533eb0b6dSopenharmony_ci    auto checkPropertyEqualsTo = [env] (napi_value obj, const char *keyStr, napi_value expect) -> bool {
413633eb0b6dSopenharmony_ci        napi_value result;
413733eb0b6dSopenharmony_ci        napi_get_named_property(env, obj, keyStr, &result);
413833eb0b6dSopenharmony_ci        bool equal = false;
413933eb0b6dSopenharmony_ci        napi_strict_equals(env, result, expect, &equal);
414033eb0b6dSopenharmony_ci        return equal;
414133eb0b6dSopenharmony_ci    };
414233eb0b6dSopenharmony_ci    // get obj1.x == true
414333eb0b6dSopenharmony_ci    ASSERT_TRUE(checkPropertyEqualsTo(obj1, "x", val_true));
414433eb0b6dSopenharmony_ci    // set obj1.x = false
414533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_set_named_property(env, obj1, "x", val_false));
414633eb0b6dSopenharmony_ci    // get obj1.x == false
414733eb0b6dSopenharmony_ci    ASSERT_TRUE(checkPropertyEqualsTo(obj1, "x", val_false));
414833eb0b6dSopenharmony_ci    // get obj2.a == false
414933eb0b6dSopenharmony_ci    ASSERT_TRUE(checkPropertyEqualsTo(obj2, "a", val_false));
415033eb0b6dSopenharmony_ci    // get obj2.b == false
415133eb0b6dSopenharmony_ci    ASSERT_TRUE(checkPropertyEqualsTo(obj2, "b", val_false));
415233eb0b6dSopenharmony_ci    // set obj2.b = true (useless)
415333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_set_named_property(env, obj2, "b", val_true));
415433eb0b6dSopenharmony_ci    // get obj2.b == false
415533eb0b6dSopenharmony_ci    ASSERT_TRUE(checkPropertyEqualsTo(obj2, "b", val_false));
415633eb0b6dSopenharmony_ci    // get obj2.c == obj1
415733eb0b6dSopenharmony_ci    ASSERT_TRUE(checkPropertyEqualsTo(obj2, "c", obj1));
415833eb0b6dSopenharmony_ci    // get obj2.c.x == false
415933eb0b6dSopenharmony_ci    napi_value val_res;
416033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_named_property(env, obj2, "c", &val_res));
416133eb0b6dSopenharmony_ci    ASSERT_TRUE(checkPropertyEqualsTo(val_res, "x", val_false));
416233eb0b6dSopenharmony_ci}
416333eb0b6dSopenharmony_ci
416433eb0b6dSopenharmony_ci/**
416533eb0b6dSopenharmony_ci * @tc.name: CreateObjectWithNamedPropertiesTest001
416633eb0b6dSopenharmony_ci * @tc.desc: Test napi_create_object_with_named_properteis.
416733eb0b6dSopenharmony_ci * @tc.type: FUNC
416833eb0b6dSopenharmony_ci */
416933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, CreateObjectWithNamedPropertiesTest001, testing::ext::TestSize.Level1)
417033eb0b6dSopenharmony_ci{
417133eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
417233eb0b6dSopenharmony_ci    napi_value excep;
417333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_and_clear_last_exception(env, &excep));
417433eb0b6dSopenharmony_ci    napi_value val_false;
417533eb0b6dSopenharmony_ci    napi_value val_true;
417633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, false, &val_false));
417733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &val_true));
417833eb0b6dSopenharmony_ci    const char *keys1[] = {
417933eb0b6dSopenharmony_ci        "x",
418033eb0b6dSopenharmony_ci    };
418133eb0b6dSopenharmony_ci    const napi_value values1[] = {
418233eb0b6dSopenharmony_ci        val_true,
418333eb0b6dSopenharmony_ci    };
418433eb0b6dSopenharmony_ci    napi_value obj1;
418533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object_with_named_properties(env, &obj1, 1, keys1, values1));
418633eb0b6dSopenharmony_ci    napi_value obj2;
418733eb0b6dSopenharmony_ci    const char *keys2[] = {
418833eb0b6dSopenharmony_ci        "a",
418933eb0b6dSopenharmony_ci        "b",
419033eb0b6dSopenharmony_ci    };
419133eb0b6dSopenharmony_ci    const napi_value values2[] = {
419233eb0b6dSopenharmony_ci        val_false,
419333eb0b6dSopenharmony_ci        obj1,
419433eb0b6dSopenharmony_ci    };
419533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object_with_named_properties(env, &obj2, 2, keys2, values2));
419633eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, obj1, napi_object);
419733eb0b6dSopenharmony_ci    ASSERT_CHECK_VALUE_TYPE(env, obj2, napi_object);
419833eb0b6dSopenharmony_ci    auto checkPropertyEqualsTo = [env] (napi_value obj, const char *keyStr, napi_value expect) -> bool {
419933eb0b6dSopenharmony_ci        napi_value result;
420033eb0b6dSopenharmony_ci        napi_get_named_property(env, obj, keyStr, &result);
420133eb0b6dSopenharmony_ci        bool equal = false;
420233eb0b6dSopenharmony_ci        napi_strict_equals(env, result, expect, &equal);
420333eb0b6dSopenharmony_ci        return equal;
420433eb0b6dSopenharmony_ci    };
420533eb0b6dSopenharmony_ci    // get obj1.x == true
420633eb0b6dSopenharmony_ci    ASSERT_TRUE(checkPropertyEqualsTo(obj1, "x", val_true));
420733eb0b6dSopenharmony_ci    // set obj1.x = false
420833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_set_named_property(env, obj1, "x", val_false));
420933eb0b6dSopenharmony_ci    // get obj1.x == false
421033eb0b6dSopenharmony_ci    ASSERT_TRUE(checkPropertyEqualsTo(obj1, "x", val_false));
421133eb0b6dSopenharmony_ci    // get obj2.a == false
421233eb0b6dSopenharmony_ci    ASSERT_TRUE(checkPropertyEqualsTo(obj2, "a", val_false));
421333eb0b6dSopenharmony_ci    // get obj2.b == obj1
421433eb0b6dSopenharmony_ci    ASSERT_TRUE(checkPropertyEqualsTo(obj2, "b", obj1));
421533eb0b6dSopenharmony_ci    // get obj2.b.x == false
421633eb0b6dSopenharmony_ci    napi_value val_res;
421733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_named_property(env, obj2, "b", &val_res));
421833eb0b6dSopenharmony_ci    ASSERT_TRUE(checkPropertyEqualsTo(val_res, "x", val_false));
421933eb0b6dSopenharmony_ci}
422033eb0b6dSopenharmony_ci
422133eb0b6dSopenharmony_ci/**
422233eb0b6dSopenharmony_ci * @tc.name: loadModuleWithInfo001
422333eb0b6dSopenharmony_ci * @tc.desc: Test napi_load_module_with_info with nullptr env.
422433eb0b6dSopenharmony_ci * @tc.type: FUNC
422533eb0b6dSopenharmony_ci */
422633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, loadModuleWithInfo001, testing::ext::TestSize.Level1)
422733eb0b6dSopenharmony_ci{
422833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
422933eb0b6dSopenharmony_ci    napi_value result;
423033eb0b6dSopenharmony_ci    napi_status res = napi_load_module_with_info(nullptr, nullptr, nullptr, &result);
423133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
423233eb0b6dSopenharmony_ci}
423333eb0b6dSopenharmony_ci
423433eb0b6dSopenharmony_ci/**
423533eb0b6dSopenharmony_ci * @tc.name: loadModuleWithInfo002
423633eb0b6dSopenharmony_ci * @tc.desc: Test napi_load_module_with_info with nullptr result.
423733eb0b6dSopenharmony_ci * @tc.type: FUNC
423833eb0b6dSopenharmony_ci */
423933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, loadModuleWithInfo002, testing::ext::TestSize.Level1)
424033eb0b6dSopenharmony_ci{
424133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
424233eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
424333eb0b6dSopenharmony_ci    napi_status res = napi_load_module_with_info(env, "@ohos.hilog", nullptr, nullptr);
424433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
424533eb0b6dSopenharmony_ci}
424633eb0b6dSopenharmony_ci
424733eb0b6dSopenharmony_ci/**
424833eb0b6dSopenharmony_ci * @tc.name: runEventLoopTest001
424933eb0b6dSopenharmony_ci * @tc.desc: Test napi_run_event_loop with nullptr env.
425033eb0b6dSopenharmony_ci * @tc.type: FUNC
425133eb0b6dSopenharmony_ci */
425233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, runEventLoopTest001, testing::ext::TestSize.Level1)
425333eb0b6dSopenharmony_ci{
425433eb0b6dSopenharmony_ci    napi_status res = napi_run_event_loop(nullptr, napi_event_mode_default);
425533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
425633eb0b6dSopenharmony_ci}
425733eb0b6dSopenharmony_ci
425833eb0b6dSopenharmony_ci/**
425933eb0b6dSopenharmony_ci * @tc.name: runEventLoopTest002
426033eb0b6dSopenharmony_ci * @tc.desc: Test napi_run_event_loop with nullptr env.
426133eb0b6dSopenharmony_ci * @tc.type: FUNC
426233eb0b6dSopenharmony_ci */
426333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, runEventLoopTest002, testing::ext::TestSize.Level1)
426433eb0b6dSopenharmony_ci{
426533eb0b6dSopenharmony_ci    napi_status res = napi_run_event_loop(nullptr, napi_event_mode_nowait);
426633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
426733eb0b6dSopenharmony_ci}
426833eb0b6dSopenharmony_ci
426933eb0b6dSopenharmony_ci/**
427033eb0b6dSopenharmony_ci * @tc.name: runEventLoopTest003
427133eb0b6dSopenharmony_ci * @tc.desc: Test napi_run_event_loop with nullptr loop
427233eb0b6dSopenharmony_ci * @tc.type: FUNC
427333eb0b6dSopenharmony_ci */
427433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, runEventLoopTest003, testing::ext::TestSize.Level1)
427533eb0b6dSopenharmony_ci{
427633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
427733eb0b6dSopenharmony_ci    NativeEngineProxy engine;
427833eb0b6dSopenharmony_ci    engine->Deinit();
427933eb0b6dSopenharmony_ci    napi_status res = napi_run_event_loop(napi_env(engine), napi_event_mode_nowait);
428033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
428133eb0b6dSopenharmony_ci    engine->Init();
428233eb0b6dSopenharmony_ci}
428333eb0b6dSopenharmony_ci
428433eb0b6dSopenharmony_ci/**
428533eb0b6dSopenharmony_ci * @tc.name: runEventLoopTest004
428633eb0b6dSopenharmony_ci * @tc.desc: Test napi_run_event_loop with nullptr loop
428733eb0b6dSopenharmony_ci * @tc.type: FUNC
428833eb0b6dSopenharmony_ci */
428933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, runEventLoopTest004, testing::ext::TestSize.Level1)
429033eb0b6dSopenharmony_ci{
429133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
429233eb0b6dSopenharmony_ci    NativeEngineProxy engine;
429333eb0b6dSopenharmony_ci    engine->Deinit();
429433eb0b6dSopenharmony_ci    napi_status res = napi_run_event_loop(napi_env(engine), napi_event_mode_default);
429533eb0b6dSopenharmony_ci    engine->Init();
429633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
429733eb0b6dSopenharmony_ci}
429833eb0b6dSopenharmony_ci
429933eb0b6dSopenharmony_ci/**
430033eb0b6dSopenharmony_ci * @tc.name: runEventLoopTest005
430133eb0b6dSopenharmony_ci * @tc.desc: Test napi_run_event_loop with main thread.
430233eb0b6dSopenharmony_ci * @tc.type: FUNC
430333eb0b6dSopenharmony_ci */
430433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, runEventLoopTest005, testing::ext::TestSize.Level1)
430533eb0b6dSopenharmony_ci{
430633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
430733eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
430833eb0b6dSopenharmony_ci    // main thread does not support napi_run_event_loop func
430933eb0b6dSopenharmony_ci    napi_status res = napi_run_event_loop(env, napi_event_mode_default);
431033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_generic_failure);
431133eb0b6dSopenharmony_ci}
431233eb0b6dSopenharmony_ci
431333eb0b6dSopenharmony_ci/**
431433eb0b6dSopenharmony_ci * @tc.name: runEventLoopTest006
431533eb0b6dSopenharmony_ci * @tc.desc: Test napi_run_event_loop with main thread.
431633eb0b6dSopenharmony_ci * @tc.type: FUNC
431733eb0b6dSopenharmony_ci */
431833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, runEventLoopTest006, testing::ext::TestSize.Level1)
431933eb0b6dSopenharmony_ci{
432033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
432133eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
432233eb0b6dSopenharmony_ci    // main thread does not support napi_run_event_loop func
432333eb0b6dSopenharmony_ci    napi_status res = napi_run_event_loop(env, napi_event_mode_nowait);
432433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_generic_failure);
432533eb0b6dSopenharmony_ci}
432633eb0b6dSopenharmony_ci
432733eb0b6dSopenharmony_ci/**
432833eb0b6dSopenharmony_ci * @tc.name: runEventLoopTest007
432933eb0b6dSopenharmony_ci * @tc.desc: Test napi_run_event_loop with worker thread.
433033eb0b6dSopenharmony_ci * @tc.type: FUNC
433133eb0b6dSopenharmony_ci */
433233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, runEventLoopTest007, testing::ext::TestSize.Level1)
433333eb0b6dSopenharmony_ci{
433433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
433533eb0b6dSopenharmony_ci    engine_->MarkWorkerThread();
433633eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
433733eb0b6dSopenharmony_ci    // worker thread does not support napi_run_event_loop func
433833eb0b6dSopenharmony_ci    napi_status res = napi_run_event_loop(env, napi_event_mode_nowait);
433933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_generic_failure);
434033eb0b6dSopenharmony_ci    engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD));
434133eb0b6dSopenharmony_ci}
434233eb0b6dSopenharmony_ci
434333eb0b6dSopenharmony_ci/**
434433eb0b6dSopenharmony_ci * @tc.name: runEventLoopTest008
434533eb0b6dSopenharmony_ci * @tc.desc: Test napi_run_event_loop with worker thread.
434633eb0b6dSopenharmony_ci * @tc.type: FUNC
434733eb0b6dSopenharmony_ci */
434833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, runEventLoopTest008, testing::ext::TestSize.Level1)
434933eb0b6dSopenharmony_ci{
435033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
435133eb0b6dSopenharmony_ci    engine_->MarkWorkerThread();
435233eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
435333eb0b6dSopenharmony_ci    // worker thread does not support napi_run_event_loop func
435433eb0b6dSopenharmony_ci    napi_status res = napi_run_event_loop(env, napi_event_mode_default);
435533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_generic_failure);
435633eb0b6dSopenharmony_ci    engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD));
435733eb0b6dSopenharmony_ci}
435833eb0b6dSopenharmony_ci
435933eb0b6dSopenharmony_ci/**
436033eb0b6dSopenharmony_ci * @tc.name: runEventLoopTest009
436133eb0b6dSopenharmony_ci * @tc.desc: Test napi_run_event_loop with taskpool thread.
436233eb0b6dSopenharmony_ci * @tc.type: FUNC
436333eb0b6dSopenharmony_ci */
436433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, runEventLoopTest009, testing::ext::TestSize.Level1)
436533eb0b6dSopenharmony_ci{
436633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
436733eb0b6dSopenharmony_ci    engine_->MarkTaskPoolThread();
436833eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
436933eb0b6dSopenharmony_ci    // taskpool thread does not support napi_run_event_loop func
437033eb0b6dSopenharmony_ci    napi_status res = napi_run_event_loop(env, napi_event_mode_nowait);
437133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_generic_failure);
437233eb0b6dSopenharmony_ci    engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD));
437333eb0b6dSopenharmony_ci}
437433eb0b6dSopenharmony_ci
437533eb0b6dSopenharmony_ci/**
437633eb0b6dSopenharmony_ci * @tc.name: runEventLoopTest010
437733eb0b6dSopenharmony_ci * @tc.desc: Test napi_run_event_loop with taskpool thread.
437833eb0b6dSopenharmony_ci * @tc.type: FUNC
437933eb0b6dSopenharmony_ci */
438033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, runEventLoopTest010, testing::ext::TestSize.Level1)
438133eb0b6dSopenharmony_ci{
438233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
438333eb0b6dSopenharmony_ci    engine_->MarkTaskPoolThread();
438433eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
438533eb0b6dSopenharmony_ci    // taskpool thread does not support napi_run_event_loop func
438633eb0b6dSopenharmony_ci    napi_status res = napi_run_event_loop(env, napi_event_mode_default);
438733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_generic_failure);
438833eb0b6dSopenharmony_ci    engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD));
438933eb0b6dSopenharmony_ci}
439033eb0b6dSopenharmony_ci
439133eb0b6dSopenharmony_ci/**
439233eb0b6dSopenharmony_ci * @tc.name: stopEventLoopTest001
439333eb0b6dSopenharmony_ci * @tc.desc: Test napi_stop_event_loop with nullptr env.
439433eb0b6dSopenharmony_ci * @tc.type: FUNC
439533eb0b6dSopenharmony_ci */
439633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, stopEventLoopTest001, testing::ext::TestSize.Level1)
439733eb0b6dSopenharmony_ci{
439833eb0b6dSopenharmony_ci    napi_status res = napi_stop_event_loop(nullptr);
439933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
440033eb0b6dSopenharmony_ci}
440133eb0b6dSopenharmony_ci
440233eb0b6dSopenharmony_ci/**
440333eb0b6dSopenharmony_ci * @tc.name: stopEventLoopTest002
440433eb0b6dSopenharmony_ci * @tc.desc: Test napi_stop_event_loop with nullptr loop.
440533eb0b6dSopenharmony_ci * @tc.type: FUNC
440633eb0b6dSopenharmony_ci */
440733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, stopEventLoopTest002, testing::ext::TestSize.Level1)
440833eb0b6dSopenharmony_ci{
440933eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
441033eb0b6dSopenharmony_ci    NativeEngineProxy engine;
441133eb0b6dSopenharmony_ci    engine->Deinit();
441233eb0b6dSopenharmony_ci    napi_status res = napi_stop_event_loop(napi_env(engine));
441333eb0b6dSopenharmony_ci    engine->Init();
441433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
441533eb0b6dSopenharmony_ci}
441633eb0b6dSopenharmony_ci
441733eb0b6dSopenharmony_ci/**
441833eb0b6dSopenharmony_ci * @tc.name: stopEventLoopTest003
441933eb0b6dSopenharmony_ci * @tc.desc: Test napi_stop_event_loop with main thread.
442033eb0b6dSopenharmony_ci * @tc.type: FUNC
442133eb0b6dSopenharmony_ci */
442233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, stopEventLoopTest003, testing::ext::TestSize.Level1)
442333eb0b6dSopenharmony_ci{
442433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
442533eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
442633eb0b6dSopenharmony_ci    // main thread does not support napi_run_event_loop func
442733eb0b6dSopenharmony_ci    napi_status res = napi_stop_event_loop(env);
442833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_generic_failure);
442933eb0b6dSopenharmony_ci}
443033eb0b6dSopenharmony_ci
443133eb0b6dSopenharmony_ci/**
443233eb0b6dSopenharmony_ci * @tc.name: stopEventLoopTest004
443333eb0b6dSopenharmony_ci * @tc.desc: Test napi_stop_event_loop with worker thread.
443433eb0b6dSopenharmony_ci * @tc.type: FUNC
443533eb0b6dSopenharmony_ci */
443633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, stopEventLoopTest004, testing::ext::TestSize.Level1)
443733eb0b6dSopenharmony_ci{
443833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
443933eb0b6dSopenharmony_ci    engine_->MarkWorkerThread();
444033eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
444133eb0b6dSopenharmony_ci    // worker thread does not support napi_run_event_loop func
444233eb0b6dSopenharmony_ci    napi_status res = napi_stop_event_loop(env);
444333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_generic_failure);
444433eb0b6dSopenharmony_ci    engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD));
444533eb0b6dSopenharmony_ci}
444633eb0b6dSopenharmony_ci
444733eb0b6dSopenharmony_ci/**
444833eb0b6dSopenharmony_ci * @tc.name: stopEventLoopTest005
444933eb0b6dSopenharmony_ci * @tc.desc: Test napi_stop_event_loop with taskpool thread.
445033eb0b6dSopenharmony_ci * @tc.type: FUNC
445133eb0b6dSopenharmony_ci */
445233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, stopEventLoopTest005, testing::ext::TestSize.Level1)
445333eb0b6dSopenharmony_ci{
445433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
445533eb0b6dSopenharmony_ci    engine_->MarkTaskPoolThread();
445633eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
445733eb0b6dSopenharmony_ci    // taskpool thread does not support napi_run_event_loop func
445833eb0b6dSopenharmony_ci    napi_status res = napi_stop_event_loop(env);
445933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_generic_failure);
446033eb0b6dSopenharmony_ci    engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD));
446133eb0b6dSopenharmony_ci}
446233eb0b6dSopenharmony_ci
446333eb0b6dSopenharmony_ci/**
446433eb0b6dSopenharmony_ci * @tc.name: stopEventLoopTest006
446533eb0b6dSopenharmony_ci * @tc.desc: Test napi_stop_event_loop before running the loop.
446633eb0b6dSopenharmony_ci * @tc.type: FUNC
446733eb0b6dSopenharmony_ci */
446833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, stopEventLoopTest006, testing::ext::TestSize.Level1)
446933eb0b6dSopenharmony_ci{
447033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
447133eb0b6dSopenharmony_ci    engine_->MarkNativeThread();
447233eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
447333eb0b6dSopenharmony_ci    napi_status res = napi_stop_event_loop(env);
447433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
447533eb0b6dSopenharmony_ci    engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD));
447633eb0b6dSopenharmony_ci}
447733eb0b6dSopenharmony_ci
447833eb0b6dSopenharmony_ci/**
447933eb0b6dSopenharmony_ci * @tc.name: multipleThreadRunEventLoopTest001
448033eb0b6dSopenharmony_ci * @tc.desc: Test napi_run_event_loop with multiple threads.
448133eb0b6dSopenharmony_ci * @tc.type: FUNC
448233eb0b6dSopenharmony_ci */
448333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, multipleThreadRunEventLoopTest001, testing::ext::TestSize.Level1)
448433eb0b6dSopenharmony_ci{
448533eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
448633eb0b6dSopenharmony_ci    engine_->MarkNativeThread();
448733eb0b6dSopenharmony_ci    napi_env env = (napi_env)engine_;
448833eb0b6dSopenharmony_ci
448933eb0b6dSopenharmony_ci    // 1. create five child threads to call napi_run_event_loop
449033eb0b6dSopenharmony_ci    auto runFunc = [](const napi_env &env, napi_event_mode mode) {
449133eb0b6dSopenharmony_ci        napi_status res = napi_run_event_loop(env, mode);
449233eb0b6dSopenharmony_ci        ASSERT_EQ(res, napi_ok);
449333eb0b6dSopenharmony_ci    };
449433eb0b6dSopenharmony_ci
449533eb0b6dSopenharmony_ci    for (int32_t index = 0; index < THREAD_SIZE; ++index) {
449633eb0b6dSopenharmony_ci        std::thread runThread = std::thread(runFunc, std::ref(env), napi_event_mode_nowait);
449733eb0b6dSopenharmony_ci        runThread.detach();
449833eb0b6dSopenharmony_ci    }
449933eb0b6dSopenharmony_ci    // 2. create async work to stop the loop
450033eb0b6dSopenharmony_ci    struct AsyncWorkContext {
450133eb0b6dSopenharmony_ci        napi_async_work work = nullptr;
450233eb0b6dSopenharmony_ci    };
450333eb0b6dSopenharmony_ci    auto asyncWorkContext = new AsyncWorkContext();
450433eb0b6dSopenharmony_ci    napi_value resourceName = nullptr;
450533eb0b6dSopenharmony_ci    napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName);
450633eb0b6dSopenharmony_ci    napi_create_async_work(
450733eb0b6dSopenharmony_ci        env, nullptr, resourceName, [](napi_env env, void* data) { },
450833eb0b6dSopenharmony_ci        [](napi_env env, napi_status status, void* data) {
450933eb0b6dSopenharmony_ci            AsyncWorkContext* asyncWorkContext = (AsyncWorkContext*)data;
451033eb0b6dSopenharmony_ci            napi_delete_async_work(env, asyncWorkContext->work);
451133eb0b6dSopenharmony_ci            delete asyncWorkContext;
451233eb0b6dSopenharmony_ci            // stop the loop after the task is processed
451333eb0b6dSopenharmony_ci            napi_status res = napi_stop_event_loop(env);
451433eb0b6dSopenharmony_ci            ASSERT_EQ(res, napi_ok);
451533eb0b6dSopenharmony_ci        },
451633eb0b6dSopenharmony_ci        asyncWorkContext, &asyncWorkContext->work);
451733eb0b6dSopenharmony_ci    napi_queue_async_work(env, asyncWorkContext->work);
451833eb0b6dSopenharmony_ci    // 3. run the loop
451933eb0b6dSopenharmony_ci    napi_status res = napi_run_event_loop(env, napi_event_mode_default);
452033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
452133eb0b6dSopenharmony_ci    engine_->jsThreadType_ = panda::panda_file::DataProtect(uintptr_t(NativeEngine::JSThreadType::MAIN_THREAD));
452233eb0b6dSopenharmony_ci}
452333eb0b6dSopenharmony_ci
452433eb0b6dSopenharmony_ci/**
452533eb0b6dSopenharmony_ci * @tc.name: NapiFatalExceptionTest
452633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_fatal_exception
452733eb0b6dSopenharmony_ci * @tc.type: FUNC
452833eb0b6dSopenharmony_ci */
452933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiFatalExceptionTest001, testing::ext::TestSize.Level1)
453033eb0b6dSopenharmony_ci{
453133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
453233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
453333eb0b6dSopenharmony_ci    // create error object
453433eb0b6dSopenharmony_ci    napi_value code = nullptr;
453533eb0b6dSopenharmony_ci    constexpr char codeStr[] = "test code";
453633eb0b6dSopenharmony_ci    napi_status res = napi_create_string_utf8(env, codeStr, NAPI_AUTO_LENGTH, &code);
453733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
453833eb0b6dSopenharmony_ci
453933eb0b6dSopenharmony_ci    napi_value msg = nullptr;
454033eb0b6dSopenharmony_ci    constexpr char msgStr[] = "test message";
454133eb0b6dSopenharmony_ci    res = napi_create_string_utf8(env, msgStr, NAPI_AUTO_LENGTH, &msg);
454233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
454333eb0b6dSopenharmony_ci
454433eb0b6dSopenharmony_ci    napi_value error = nullptr;
454533eb0b6dSopenharmony_ci    res = napi_create_error(env, code, msg, &error);
454633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
454733eb0b6dSopenharmony_ci
454833eb0b6dSopenharmony_ci    // call napi_fatal_exception interface with nullptr env
454933eb0b6dSopenharmony_ci    res = napi_fatal_exception(nullptr, error);
455033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
455133eb0b6dSopenharmony_ci}
455233eb0b6dSopenharmony_ci
455333eb0b6dSopenharmony_ci/**
455433eb0b6dSopenharmony_ci * @tc.name: NapiFatalExceptionTest
455533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_fatal_exception
455633eb0b6dSopenharmony_ci * @tc.type: FUNC
455733eb0b6dSopenharmony_ci */
455833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiFatalExceptionTest002, testing::ext::TestSize.Level1)
455933eb0b6dSopenharmony_ci{
456033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
456133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
456233eb0b6dSopenharmony_ci    // create error object
456333eb0b6dSopenharmony_ci    napi_value code = nullptr;
456433eb0b6dSopenharmony_ci    constexpr char codeStr[] = "test code";
456533eb0b6dSopenharmony_ci    napi_status res = napi_create_string_utf8(env, codeStr, NAPI_AUTO_LENGTH, &code);
456633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
456733eb0b6dSopenharmony_ci
456833eb0b6dSopenharmony_ci    // call napi_fatal_exception interface with non-JSError object
456933eb0b6dSopenharmony_ci    res = napi_fatal_exception(env, code);
457033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
457133eb0b6dSopenharmony_ci}
457233eb0b6dSopenharmony_ci
457333eb0b6dSopenharmony_ci/**
457433eb0b6dSopenharmony_ci * @tc.name: NapiFatalExceptionTest
457533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_fatal_exception
457633eb0b6dSopenharmony_ci * @tc.type: FUNC
457733eb0b6dSopenharmony_ci */
457833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiFatalExceptionTest003, testing::ext::TestSize.Level1)
457933eb0b6dSopenharmony_ci{
458033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
458133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
458233eb0b6dSopenharmony_ci
458333eb0b6dSopenharmony_ci    // call napi_fatal_exception interface with nullptr error
458433eb0b6dSopenharmony_ci    auto res = napi_fatal_exception(env, nullptr);
458533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
458633eb0b6dSopenharmony_ci}
458733eb0b6dSopenharmony_ci
458833eb0b6dSopenharmony_ci/**
458933eb0b6dSopenharmony_ci * @tc.name: NapiFatalExceptionTest
459033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_coerce_to_bool
459133eb0b6dSopenharmony_ci * @tc.type: FUNC
459233eb0b6dSopenharmony_ci */
459333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToBoolTest001, testing::ext::TestSize.Level1)
459433eb0b6dSopenharmony_ci{
459533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
459633eb0b6dSopenharmony_ci    napi_value value = nullptr;
459733eb0b6dSopenharmony_ci    napi_value result;
459833eb0b6dSopenharmony_ci    napi_status status = napi_coerce_to_bool(env, value, &result);
459933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
460033eb0b6dSopenharmony_ci}
460133eb0b6dSopenharmony_ci
460233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToBoolTest002, testing::ext::TestSize.Level1)
460333eb0b6dSopenharmony_ci{
460433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
460533eb0b6dSopenharmony_ci    napi_value value;
460633eb0b6dSopenharmony_ci    napi_value *result = nullptr;
460733eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &value);
460833eb0b6dSopenharmony_ci    status = napi_coerce_to_bool(env, value, result);
460933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
461033eb0b6dSopenharmony_ci}
461133eb0b6dSopenharmony_ci
461233eb0b6dSopenharmony_ci/**
461333eb0b6dSopenharmony_ci * @tc.name: NapiFatalExceptionTest
461433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_coerce_to_bool
461533eb0b6dSopenharmony_ci * @tc.type: FUNC
461633eb0b6dSopenharmony_ci */
461733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToBoolTest003, testing::ext::TestSize.Level1)
461833eb0b6dSopenharmony_ci{
461933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
462033eb0b6dSopenharmony_ci    napi_value value;
462133eb0b6dSopenharmony_ci    napi_value result;
462233eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, NAN, &value);
462333eb0b6dSopenharmony_ci    status = napi_coerce_to_bool(env, value, &result);
462433eb0b6dSopenharmony_ci    bool ret = true;
462533eb0b6dSopenharmony_ci    napi_get_value_bool(env, result, &ret);
462633eb0b6dSopenharmony_ci    ASSERT_EQ(ret, false);
462733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
462833eb0b6dSopenharmony_ci}
462933eb0b6dSopenharmony_ci/**
463033eb0b6dSopenharmony_ci * @tc.name: NapiFatalExceptionTest
463133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_coerce_to_bool
463233eb0b6dSopenharmony_ci * @tc.type: FUNC
463333eb0b6dSopenharmony_ci */
463433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToBoolTest004, testing::ext::TestSize.Level1)
463533eb0b6dSopenharmony_ci{
463633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
463733eb0b6dSopenharmony_ci    napi_value value;
463833eb0b6dSopenharmony_ci    napi_value result;
463933eb0b6dSopenharmony_ci    napi_status status = napi_get_undefined(env, &value);
464033eb0b6dSopenharmony_ci    status = napi_coerce_to_bool(env, value, &result);
464133eb0b6dSopenharmony_ci    bool ret = true;
464233eb0b6dSopenharmony_ci    napi_get_value_bool(env, result, &ret);
464333eb0b6dSopenharmony_ci    ASSERT_EQ(ret, false);
464433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
464533eb0b6dSopenharmony_ci}
464633eb0b6dSopenharmony_ci
464733eb0b6dSopenharmony_ci/**
464833eb0b6dSopenharmony_ci * @tc.name: NapiFatalExceptionTest
464933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_coerce_to_bool
465033eb0b6dSopenharmony_ci * @tc.type: FUNC
465133eb0b6dSopenharmony_ci */
465233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToBoolTest005, testing::ext::TestSize.Level1)
465333eb0b6dSopenharmony_ci{
465433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
465533eb0b6dSopenharmony_ci    napi_value value;
465633eb0b6dSopenharmony_ci    napi_value result;
465733eb0b6dSopenharmony_ci    napi_status status = napi_get_null(env, &value);
465833eb0b6dSopenharmony_ci    status = napi_coerce_to_bool(env, value, &result);
465933eb0b6dSopenharmony_ci    bool ret = true;
466033eb0b6dSopenharmony_ci    napi_get_value_bool(env, result, &ret);
466133eb0b6dSopenharmony_ci    ASSERT_EQ(ret, false);
466233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
466333eb0b6dSopenharmony_ci}
466433eb0b6dSopenharmony_ci
466533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToNumberTest001, testing::ext::TestSize.Level1)
466633eb0b6dSopenharmony_ci{
466733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
466833eb0b6dSopenharmony_ci    napi_value value = nullptr;
466933eb0b6dSopenharmony_ci    napi_value result;
467033eb0b6dSopenharmony_ci    napi_status status = napi_coerce_to_number(env, value, &result);
467133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
467233eb0b6dSopenharmony_ci}
467333eb0b6dSopenharmony_ci
467433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToNumberTest002, testing::ext::TestSize.Level1)
467533eb0b6dSopenharmony_ci{
467633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
467733eb0b6dSopenharmony_ci    napi_value value;
467833eb0b6dSopenharmony_ci    napi_value *result = nullptr;
467933eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &value);
468033eb0b6dSopenharmony_ci    status = napi_coerce_to_number(env, value, result);
468133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
468233eb0b6dSopenharmony_ci}
468333eb0b6dSopenharmony_ci
468433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToNumberTest003, testing::ext::TestSize.Level1)
468533eb0b6dSopenharmony_ci{
468633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
468733eb0b6dSopenharmony_ci    napi_value value;
468833eb0b6dSopenharmony_ci    napi_value result;
468933eb0b6dSopenharmony_ci    napi_status status = napi_create_string_utf8(env, "", 0, &value);
469033eb0b6dSopenharmony_ci    status = napi_coerce_to_number(env, value, &result);
469133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
469233eb0b6dSopenharmony_ci    int32_t num;
469333eb0b6dSopenharmony_ci    status = napi_get_value_int32(env, result, &num);
469433eb0b6dSopenharmony_ci    ASSERT_EQ(num, 0);
469533eb0b6dSopenharmony_ci}
469633eb0b6dSopenharmony_ci
469733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToNumberTest004, testing::ext::TestSize.Level1)
469833eb0b6dSopenharmony_ci{
469933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
470033eb0b6dSopenharmony_ci    napi_value value;
470133eb0b6dSopenharmony_ci    napi_value result;
470233eb0b6dSopenharmony_ci    napi_status status = napi_create_string_utf8(env, TEST_STRING, 4, &value);
470333eb0b6dSopenharmony_ci    status = napi_coerce_to_number(env, value, &result);
470433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
470533eb0b6dSopenharmony_ci    double db;
470633eb0b6dSopenharmony_ci    status = napi_get_value_double(env, result, &db);
470733eb0b6dSopenharmony_ci    ASSERT_EQ(std::isnan(db), true);
470833eb0b6dSopenharmony_ci}
470933eb0b6dSopenharmony_ci
471033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToNumberTest005, testing::ext::TestSize.Level1)
471133eb0b6dSopenharmony_ci{
471233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
471333eb0b6dSopenharmony_ci    napi_value value;
471433eb0b6dSopenharmony_ci    napi_value result;
471533eb0b6dSopenharmony_ci    napi_status status = napi_get_undefined(env, &value);
471633eb0b6dSopenharmony_ci    status = napi_coerce_to_number(env, value, &result);
471733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
471833eb0b6dSopenharmony_ci    double db;
471933eb0b6dSopenharmony_ci    status = napi_get_value_double(env, result, &db);
472033eb0b6dSopenharmony_ci    ASSERT_EQ(std::isnan(db), true);
472133eb0b6dSopenharmony_ci}
472233eb0b6dSopenharmony_ci
472333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToNumberTest006, testing::ext::TestSize.Level1)
472433eb0b6dSopenharmony_ci{
472533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
472633eb0b6dSopenharmony_ci    napi_value value;
472733eb0b6dSopenharmony_ci    napi_value result;
472833eb0b6dSopenharmony_ci    napi_status status = napi_get_null(env, &value);
472933eb0b6dSopenharmony_ci    status = napi_coerce_to_number(env, value, &result);
473033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
473133eb0b6dSopenharmony_ci    int32_t num;
473233eb0b6dSopenharmony_ci    status = napi_get_value_int32(env, result, &num);
473333eb0b6dSopenharmony_ci    ASSERT_EQ(num, 0);
473433eb0b6dSopenharmony_ci}
473533eb0b6dSopenharmony_ci
473633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToNumberTest007, testing::ext::TestSize.Level1)
473733eb0b6dSopenharmony_ci{
473833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
473933eb0b6dSopenharmony_ci    napi_value value;
474033eb0b6dSopenharmony_ci    napi_value result;
474133eb0b6dSopenharmony_ci    napi_status status = napi_create_object(env, &value);
474233eb0b6dSopenharmony_ci    status = napi_coerce_to_number(env, value, &result);
474333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
474433eb0b6dSopenharmony_ci    double db;
474533eb0b6dSopenharmony_ci    status = napi_get_value_double(env, result, &db);
474633eb0b6dSopenharmony_ci    ASSERT_EQ(std::isnan(db), true);
474733eb0b6dSopenharmony_ci}
474833eb0b6dSopenharmony_ci
474933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToObjectTest001, testing::ext::TestSize.Level1)
475033eb0b6dSopenharmony_ci{
475133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
475233eb0b6dSopenharmony_ci    napi_value value = nullptr;
475333eb0b6dSopenharmony_ci    napi_value result;
475433eb0b6dSopenharmony_ci    napi_status status = napi_coerce_to_object(env, value, &result);
475533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
475633eb0b6dSopenharmony_ci}
475733eb0b6dSopenharmony_ci
475833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToObjectTest002, testing::ext::TestSize.Level1)
475933eb0b6dSopenharmony_ci{
476033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
476133eb0b6dSopenharmony_ci    napi_value value;
476233eb0b6dSopenharmony_ci    napi_value *result = nullptr;
476333eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &value);
476433eb0b6dSopenharmony_ci    status = napi_coerce_to_object(env, value, result);
476533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
476633eb0b6dSopenharmony_ci}
476733eb0b6dSopenharmony_ci
476833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToObjectTest003, testing::ext::TestSize.Level1)
476933eb0b6dSopenharmony_ci{
477033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
477133eb0b6dSopenharmony_ci    napi_value value;
477233eb0b6dSopenharmony_ci    napi_value result;
477333eb0b6dSopenharmony_ci    napi_status status = napi_get_undefined(env, &value);
477433eb0b6dSopenharmony_ci    status = napi_coerce_to_object(env, value, &result);
477533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
477633eb0b6dSopenharmony_ci    napi_valuetype type = napi_undefined;
477733eb0b6dSopenharmony_ci    status = napi_typeof(env, result, &type);
477833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
477933eb0b6dSopenharmony_ci    ASSERT_EQ(type, napi_undefined);
478033eb0b6dSopenharmony_ci}
478133eb0b6dSopenharmony_ci
478233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToObjectTest004, testing::ext::TestSize.Level1)
478333eb0b6dSopenharmony_ci{
478433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
478533eb0b6dSopenharmony_ci    napi_value value;
478633eb0b6dSopenharmony_ci    napi_value result;
478733eb0b6dSopenharmony_ci    napi_status status = napi_get_null(env, &value);
478833eb0b6dSopenharmony_ci    status = napi_coerce_to_object(env, value, &result);
478933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
479033eb0b6dSopenharmony_ci    napi_valuetype type = napi_undefined;
479133eb0b6dSopenharmony_ci    status = napi_typeof(env, result, &type);
479233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
479333eb0b6dSopenharmony_ci    ASSERT_EQ(type, napi_undefined);
479433eb0b6dSopenharmony_ci}
479533eb0b6dSopenharmony_ci
479633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToStringTest001, testing::ext::TestSize.Level1)
479733eb0b6dSopenharmony_ci{
479833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
479933eb0b6dSopenharmony_ci    napi_value value = nullptr;
480033eb0b6dSopenharmony_ci    napi_value result;
480133eb0b6dSopenharmony_ci    napi_status status = napi_coerce_to_string(env, value, &result);
480233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
480333eb0b6dSopenharmony_ci}
480433eb0b6dSopenharmony_ci
480533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToStringTest002, testing::ext::TestSize.Level1)
480633eb0b6dSopenharmony_ci{
480733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
480833eb0b6dSopenharmony_ci    napi_value value;
480933eb0b6dSopenharmony_ci    napi_value *result = nullptr;
481033eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &value);
481133eb0b6dSopenharmony_ci    status = napi_coerce_to_string(env, value, result);
481233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
481333eb0b6dSopenharmony_ci}
481433eb0b6dSopenharmony_ci
481533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiTypeofTest001, testing::ext::TestSize.Level1)
481633eb0b6dSopenharmony_ci{
481733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
481833eb0b6dSopenharmony_ci    napi_value value = nullptr;
481933eb0b6dSopenharmony_ci    napi_valuetype result;
482033eb0b6dSopenharmony_ci    napi_status status = napi_typeof(env, value, &result);
482133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
482233eb0b6dSopenharmony_ci}
482333eb0b6dSopenharmony_ci
482433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiTypeofTest002, testing::ext::TestSize.Level1)
482533eb0b6dSopenharmony_ci{
482633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
482733eb0b6dSopenharmony_ci    napi_value value;
482833eb0b6dSopenharmony_ci    napi_valuetype *result = nullptr;
482933eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &value);
483033eb0b6dSopenharmony_ci    status = napi_typeof(env, value, result);
483133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
483233eb0b6dSopenharmony_ci}
483333eb0b6dSopenharmony_ci
483433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiInstanceofTest001, testing::ext::TestSize.Level1)
483533eb0b6dSopenharmony_ci{
483633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
483733eb0b6dSopenharmony_ci    napi_value value = nullptr;
483833eb0b6dSopenharmony_ci    napi_value constructor;
483933eb0b6dSopenharmony_ci    bool result;
484033eb0b6dSopenharmony_ci    napi_status status = napi_create_object(env, &constructor);
484133eb0b6dSopenharmony_ci    status = napi_instanceof(env, value, constructor, &result);
484233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
484333eb0b6dSopenharmony_ci}
484433eb0b6dSopenharmony_ci
484533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiInstanceofTest002, testing::ext::TestSize.Level1)
484633eb0b6dSopenharmony_ci{
484733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
484833eb0b6dSopenharmony_ci    napi_value value;
484933eb0b6dSopenharmony_ci    napi_value constructor = nullptr;
485033eb0b6dSopenharmony_ci    bool result;
485133eb0b6dSopenharmony_ci    napi_status status = napi_create_object(env, &value);
485233eb0b6dSopenharmony_ci    status = napi_instanceof(env, value, constructor, &result);
485333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
485433eb0b6dSopenharmony_ci}
485533eb0b6dSopenharmony_ci
485633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiInstanceofTest003, testing::ext::TestSize.Level1)
485733eb0b6dSopenharmony_ci{
485833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
485933eb0b6dSopenharmony_ci    napi_value value;
486033eb0b6dSopenharmony_ci    napi_value constructor;
486133eb0b6dSopenharmony_ci    bool *result = nullptr;
486233eb0b6dSopenharmony_ci    napi_status status = napi_create_object(env, &value);
486333eb0b6dSopenharmony_ci    status = napi_create_object(env, &constructor);
486433eb0b6dSopenharmony_ci    status = napi_instanceof(env, value, constructor, result);
486533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
486633eb0b6dSopenharmony_ci}
486733eb0b6dSopenharmony_ci
486833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiInstanceofTest004, testing::ext::TestSize.Level1)
486933eb0b6dSopenharmony_ci{
487033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
487133eb0b6dSopenharmony_ci    napi_value value;
487233eb0b6dSopenharmony_ci    napi_value constructor;
487333eb0b6dSopenharmony_ci    bool result;
487433eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &value);
487533eb0b6dSopenharmony_ci    status = napi_create_object(env, &constructor);
487633eb0b6dSopenharmony_ci    status = napi_instanceof(env, value, constructor, &result);
487733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
487833eb0b6dSopenharmony_ci}
487933eb0b6dSopenharmony_ci
488033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiInstanceofTest005, testing::ext::TestSize.Level1)
488133eb0b6dSopenharmony_ci{
488233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
488333eb0b6dSopenharmony_ci    napi_value value;
488433eb0b6dSopenharmony_ci    napi_value constructor;
488533eb0b6dSopenharmony_ci    bool result;
488633eb0b6dSopenharmony_ci    napi_status status = napi_create_object(env, &value);
488733eb0b6dSopenharmony_ci    status = napi_create_double(env, TEST_DOUBLE, &constructor);
488833eb0b6dSopenharmony_ci    status = napi_instanceof(env, value, constructor, &result);
488933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_function_expected);
489033eb0b6dSopenharmony_ci}
489133eb0b6dSopenharmony_ci
489233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsArrayTest001, testing::ext::TestSize.Level1)
489333eb0b6dSopenharmony_ci{
489433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
489533eb0b6dSopenharmony_ci    napi_value value = nullptr;
489633eb0b6dSopenharmony_ci    bool result;
489733eb0b6dSopenharmony_ci    napi_status status = napi_is_array(env, value, &result);
489833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
489933eb0b6dSopenharmony_ci}
490033eb0b6dSopenharmony_ci
490133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsArrayTest002, testing::ext::TestSize.Level1)
490233eb0b6dSopenharmony_ci{
490333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
490433eb0b6dSopenharmony_ci    napi_value value;
490533eb0b6dSopenharmony_ci    bool *result = nullptr;
490633eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &value);
490733eb0b6dSopenharmony_ci    status = napi_is_array(env, value, result);
490833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
490933eb0b6dSopenharmony_ci}
491033eb0b6dSopenharmony_ci
491133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsArrayBufferTest001, testing::ext::TestSize.Level1)
491233eb0b6dSopenharmony_ci{
491333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
491433eb0b6dSopenharmony_ci    napi_value value = nullptr;
491533eb0b6dSopenharmony_ci    bool result;
491633eb0b6dSopenharmony_ci    napi_status status = napi_is_arraybuffer(env, value, &result);
491733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
491833eb0b6dSopenharmony_ci}
491933eb0b6dSopenharmony_ci
492033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsArrayBufferTest002, testing::ext::TestSize.Level1)
492133eb0b6dSopenharmony_ci{
492233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
492333eb0b6dSopenharmony_ci    napi_value value;
492433eb0b6dSopenharmony_ci    bool *result = nullptr;
492533eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &value);
492633eb0b6dSopenharmony_ci    status = napi_is_arraybuffer(env, value, result);
492733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
492833eb0b6dSopenharmony_ci}
492933eb0b6dSopenharmony_ci
493033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsTypeBufferTest001, testing::ext::TestSize.Level1)
493133eb0b6dSopenharmony_ci{
493233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
493333eb0b6dSopenharmony_ci    napi_value value = nullptr;
493433eb0b6dSopenharmony_ci    bool result;
493533eb0b6dSopenharmony_ci    napi_status status = napi_is_typedarray(env, value, &result);
493633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
493733eb0b6dSopenharmony_ci}
493833eb0b6dSopenharmony_ci
493933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsTypeBufferTest002, testing::ext::TestSize.Level1)
494033eb0b6dSopenharmony_ci{
494133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
494233eb0b6dSopenharmony_ci    napi_value value;
494333eb0b6dSopenharmony_ci    bool *result = nullptr;
494433eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &value);
494533eb0b6dSopenharmony_ci    status = napi_is_typedarray(env, value, result);
494633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
494733eb0b6dSopenharmony_ci}
494833eb0b6dSopenharmony_ci
494933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsDataViewTest001, testing::ext::TestSize.Level1)
495033eb0b6dSopenharmony_ci{
495133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
495233eb0b6dSopenharmony_ci    napi_value value = nullptr;
495333eb0b6dSopenharmony_ci    bool result;
495433eb0b6dSopenharmony_ci    napi_status status = napi_is_dataview(env, value, &result);
495533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
495633eb0b6dSopenharmony_ci}
495733eb0b6dSopenharmony_ci
495833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsDataViewTest002, testing::ext::TestSize.Level1)
495933eb0b6dSopenharmony_ci{
496033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
496133eb0b6dSopenharmony_ci    napi_value value;
496233eb0b6dSopenharmony_ci    bool *result = nullptr;
496333eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &value);
496433eb0b6dSopenharmony_ci    status = napi_is_dataview(env, value, result);
496533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
496633eb0b6dSopenharmony_ci}
496733eb0b6dSopenharmony_ci
496833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsDateTest001, testing::ext::TestSize.Level1)
496933eb0b6dSopenharmony_ci{
497033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
497133eb0b6dSopenharmony_ci    napi_value value = nullptr;
497233eb0b6dSopenharmony_ci    bool result;
497333eb0b6dSopenharmony_ci    napi_status status = napi_is_date(env, value, &result);
497433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
497533eb0b6dSopenharmony_ci}
497633eb0b6dSopenharmony_ci
497733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsDateTest002, testing::ext::TestSize.Level1)
497833eb0b6dSopenharmony_ci{
497933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
498033eb0b6dSopenharmony_ci    napi_value value;
498133eb0b6dSopenharmony_ci    bool *result = nullptr;
498233eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &value);
498333eb0b6dSopenharmony_ci    status = napi_is_date(env, value, result);
498433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
498533eb0b6dSopenharmony_ci}
498633eb0b6dSopenharmony_ci
498733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiStrictEqualsTest001, testing::ext::TestSize.Level1)
498833eb0b6dSopenharmony_ci{
498933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
499033eb0b6dSopenharmony_ci    napi_value lhs = nullptr;
499133eb0b6dSopenharmony_ci    napi_value rhs;
499233eb0b6dSopenharmony_ci    bool result;
499333eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &rhs);
499433eb0b6dSopenharmony_ci    status = napi_strict_equals(env, lhs, rhs, &result);
499533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
499633eb0b6dSopenharmony_ci}
499733eb0b6dSopenharmony_ci
499833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiStrictEqualsTest002, testing::ext::TestSize.Level1)
499933eb0b6dSopenharmony_ci{
500033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
500133eb0b6dSopenharmony_ci    napi_value lhs;
500233eb0b6dSopenharmony_ci    napi_value rhs = nullptr;
500333eb0b6dSopenharmony_ci    bool result;
500433eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &lhs);
500533eb0b6dSopenharmony_ci    status = napi_strict_equals(env, lhs, rhs, &result);
500633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
500733eb0b6dSopenharmony_ci}
500833eb0b6dSopenharmony_ci
500933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiStrictEqualsTest003, testing::ext::TestSize.Level1)
501033eb0b6dSopenharmony_ci{
501133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
501233eb0b6dSopenharmony_ci    napi_value lhs;
501333eb0b6dSopenharmony_ci    napi_value rhs;
501433eb0b6dSopenharmony_ci    bool *result = nullptr;
501533eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &lhs);
501633eb0b6dSopenharmony_ci    status = napi_create_double(env, TEST_DOUBLE, &rhs);
501733eb0b6dSopenharmony_ci    status = napi_strict_equals(env, lhs, rhs, result);
501833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
501933eb0b6dSopenharmony_ci}
502033eb0b6dSopenharmony_ci
502133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiStrictEqualsTest004, testing::ext::TestSize.Level1)
502233eb0b6dSopenharmony_ci{
502333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
502433eb0b6dSopenharmony_ci    napi_value lhs;
502533eb0b6dSopenharmony_ci    napi_value rhs;
502633eb0b6dSopenharmony_ci    bool result;
502733eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, NAN, &lhs);
502833eb0b6dSopenharmony_ci    status = napi_create_double(env, NAN, &rhs);
502933eb0b6dSopenharmony_ci    status = napi_strict_equals(env, lhs, rhs, &result);
503033eb0b6dSopenharmony_ci    ASSERT_EQ(status, false);
503133eb0b6dSopenharmony_ci}
503233eb0b6dSopenharmony_ci
503333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetPropertyNamesTest001, testing::ext::TestSize.Level1)
503433eb0b6dSopenharmony_ci{
503533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
503633eb0b6dSopenharmony_ci    napi_value value = nullptr;
503733eb0b6dSopenharmony_ci    napi_value result;
503833eb0b6dSopenharmony_ci    napi_status status = napi_get_property_names(env, value, &result);
503933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
504033eb0b6dSopenharmony_ci}
504133eb0b6dSopenharmony_ci
504233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetPropertyNamesTest002, testing::ext::TestSize.Level1)
504333eb0b6dSopenharmony_ci{
504433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
504533eb0b6dSopenharmony_ci    napi_value value;
504633eb0b6dSopenharmony_ci    napi_value *result = nullptr;
504733eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &value);
504833eb0b6dSopenharmony_ci    status = napi_get_property_names(env, value, result);
504933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
505033eb0b6dSopenharmony_ci}
505133eb0b6dSopenharmony_ci
505233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetPropertyNamesTest003, testing::ext::TestSize.Level1)
505333eb0b6dSopenharmony_ci{
505433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
505533eb0b6dSopenharmony_ci    napi_value value;
505633eb0b6dSopenharmony_ci    napi_value result;
505733eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &value);
505833eb0b6dSopenharmony_ci    status = napi_get_property_names(env, value, &result);
505933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
506033eb0b6dSopenharmony_ci}
506133eb0b6dSopenharmony_ci
506233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSetPropertyTest001, testing::ext::TestSize.Level1)
506333eb0b6dSopenharmony_ci{
506433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
506533eb0b6dSopenharmony_ci    napi_value obj = nullptr;
506633eb0b6dSopenharmony_ci    napi_value key;
506733eb0b6dSopenharmony_ci    napi_value value;
506833eb0b6dSopenharmony_ci
506933eb0b6dSopenharmony_ci    napi_create_int32(env, INT_ONE, &key);
507033eb0b6dSopenharmony_ci    napi_create_int32(env, INT_TWO, &value);
507133eb0b6dSopenharmony_ci    napi_status status = napi_set_property(env, obj, key, value);
507233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
507333eb0b6dSopenharmony_ci}
507433eb0b6dSopenharmony_ci
507533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSetPropertyTest002, testing::ext::TestSize.Level1)
507633eb0b6dSopenharmony_ci{
507733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
507833eb0b6dSopenharmony_ci    napi_value obj;
507933eb0b6dSopenharmony_ci    napi_value key = nullptr;
508033eb0b6dSopenharmony_ci    napi_value value;
508133eb0b6dSopenharmony_ci
508233eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
508333eb0b6dSopenharmony_ci    napi_create_int32(env, INT_TWO, &value);
508433eb0b6dSopenharmony_ci    napi_status status = napi_set_property(env, obj, key, value);
508533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
508633eb0b6dSopenharmony_ci}
508733eb0b6dSopenharmony_ci
508833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSetPropertyTest003, testing::ext::TestSize.Level1)
508933eb0b6dSopenharmony_ci{
509033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
509133eb0b6dSopenharmony_ci    napi_value obj;
509233eb0b6dSopenharmony_ci    napi_value key;
509333eb0b6dSopenharmony_ci    napi_value value = nullptr;
509433eb0b6dSopenharmony_ci
509533eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
509633eb0b6dSopenharmony_ci    napi_create_int32(env, INT_ONE, &key);
509733eb0b6dSopenharmony_ci    napi_status status = napi_set_property(env, obj, key, value);
509833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
509933eb0b6dSopenharmony_ci}
510033eb0b6dSopenharmony_ci
510133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSetPropertyTest004, testing::ext::TestSize.Level1)
510233eb0b6dSopenharmony_ci{
510333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
510433eb0b6dSopenharmony_ci    napi_value obj;
510533eb0b6dSopenharmony_ci    napi_value key;
510633eb0b6dSopenharmony_ci    napi_value value;
510733eb0b6dSopenharmony_ci
510833eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &obj);
510933eb0b6dSopenharmony_ci    napi_create_int32(env, INT_ONE, &key);
511033eb0b6dSopenharmony_ci    napi_create_int32(env, INT_TWO, &value);
511133eb0b6dSopenharmony_ci    status = napi_set_property(env, obj, key, value);
511233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
511333eb0b6dSopenharmony_ci}
511433eb0b6dSopenharmony_ci
511533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetPropertyTest001, testing::ext::TestSize.Level1)
511633eb0b6dSopenharmony_ci{
511733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
511833eb0b6dSopenharmony_ci    napi_value obj = nullptr;
511933eb0b6dSopenharmony_ci    napi_value key;
512033eb0b6dSopenharmony_ci    napi_value result;
512133eb0b6dSopenharmony_ci
512233eb0b6dSopenharmony_ci    napi_create_int32(env, INT_ONE, &key);
512333eb0b6dSopenharmony_ci    napi_status status = napi_get_property(env, obj, key, &result);
512433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
512533eb0b6dSopenharmony_ci}
512633eb0b6dSopenharmony_ci
512733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetPropertyTest002, testing::ext::TestSize.Level1)
512833eb0b6dSopenharmony_ci{
512933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
513033eb0b6dSopenharmony_ci    napi_value obj;
513133eb0b6dSopenharmony_ci    napi_value key = nullptr;
513233eb0b6dSopenharmony_ci    napi_value result;
513333eb0b6dSopenharmony_ci
513433eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
513533eb0b6dSopenharmony_ci    napi_status status = napi_get_property(env, obj, key, &result);
513633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
513733eb0b6dSopenharmony_ci}
513833eb0b6dSopenharmony_ci
513933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetPropertyTest003, testing::ext::TestSize.Level1)
514033eb0b6dSopenharmony_ci{
514133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
514233eb0b6dSopenharmony_ci    napi_value obj;
514333eb0b6dSopenharmony_ci    napi_value key;
514433eb0b6dSopenharmony_ci    napi_value *result = nullptr;
514533eb0b6dSopenharmony_ci
514633eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
514733eb0b6dSopenharmony_ci    napi_create_int32(env, INT_ONE, &key);
514833eb0b6dSopenharmony_ci    napi_status status = napi_get_property(env, obj, key, result);
514933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
515033eb0b6dSopenharmony_ci}
515133eb0b6dSopenharmony_ci
515233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetPropertyTest004, testing::ext::TestSize.Level1)
515333eb0b6dSopenharmony_ci{
515433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
515533eb0b6dSopenharmony_ci    napi_value obj;
515633eb0b6dSopenharmony_ci    napi_value key;
515733eb0b6dSopenharmony_ci    napi_value result;
515833eb0b6dSopenharmony_ci
515933eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &obj);
516033eb0b6dSopenharmony_ci    napi_create_int32(env, INT_ONE, &key);
516133eb0b6dSopenharmony_ci    status = napi_get_property(env, obj, key, &result);
516233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
516333eb0b6dSopenharmony_ci}
516433eb0b6dSopenharmony_ci
516533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasPropertyTest001, testing::ext::TestSize.Level1)
516633eb0b6dSopenharmony_ci{
516733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
516833eb0b6dSopenharmony_ci    napi_value obj = nullptr;
516933eb0b6dSopenharmony_ci    napi_value key;
517033eb0b6dSopenharmony_ci    bool result;
517133eb0b6dSopenharmony_ci
517233eb0b6dSopenharmony_ci    napi_create_int32(env, INT_ONE, &key);
517333eb0b6dSopenharmony_ci    napi_status status = napi_has_property(env, obj, key, &result);
517433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
517533eb0b6dSopenharmony_ci}
517633eb0b6dSopenharmony_ci
517733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasPropertyTest002, testing::ext::TestSize.Level1)
517833eb0b6dSopenharmony_ci{
517933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
518033eb0b6dSopenharmony_ci    napi_value obj;
518133eb0b6dSopenharmony_ci    napi_value key = nullptr;
518233eb0b6dSopenharmony_ci    bool result;
518333eb0b6dSopenharmony_ci
518433eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
518533eb0b6dSopenharmony_ci    napi_status status = napi_has_property(env, obj, key, &result);
518633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
518733eb0b6dSopenharmony_ci}
518833eb0b6dSopenharmony_ci
518933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasPropertyTest003, testing::ext::TestSize.Level1)
519033eb0b6dSopenharmony_ci{
519133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
519233eb0b6dSopenharmony_ci    napi_value obj;
519333eb0b6dSopenharmony_ci    napi_value key;
519433eb0b6dSopenharmony_ci    bool *result = nullptr;
519533eb0b6dSopenharmony_ci
519633eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
519733eb0b6dSopenharmony_ci    napi_create_int32(env, INT_ONE, &key);
519833eb0b6dSopenharmony_ci    napi_status status = napi_has_property(env, obj, key, result);
519933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
520033eb0b6dSopenharmony_ci}
520133eb0b6dSopenharmony_ci
520233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasPropertyTest004, testing::ext::TestSize.Level1)
520333eb0b6dSopenharmony_ci{
520433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
520533eb0b6dSopenharmony_ci    napi_value obj;
520633eb0b6dSopenharmony_ci    napi_value key;
520733eb0b6dSopenharmony_ci    bool result;
520833eb0b6dSopenharmony_ci
520933eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &obj);
521033eb0b6dSopenharmony_ci    napi_create_int32(env, INT_ONE, &key);
521133eb0b6dSopenharmony_ci    status = napi_has_property(env, obj, key, &result);
521233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
521333eb0b6dSopenharmony_ci}
521433eb0b6dSopenharmony_ci
521533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDeletePropertyTest001, testing::ext::TestSize.Level1)
521633eb0b6dSopenharmony_ci{
521733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
521833eb0b6dSopenharmony_ci    napi_value obj = nullptr;
521933eb0b6dSopenharmony_ci    napi_value key;
522033eb0b6dSopenharmony_ci    bool result;
522133eb0b6dSopenharmony_ci
522233eb0b6dSopenharmony_ci    napi_create_int32(env, INT_ONE, &key);
522333eb0b6dSopenharmony_ci    napi_status status = napi_delete_property(env, obj, key, &result);
522433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
522533eb0b6dSopenharmony_ci}
522633eb0b6dSopenharmony_ci
522733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDeletePropertyTest002, testing::ext::TestSize.Level1)
522833eb0b6dSopenharmony_ci{
522933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
523033eb0b6dSopenharmony_ci    napi_value obj;
523133eb0b6dSopenharmony_ci    napi_value key = nullptr;
523233eb0b6dSopenharmony_ci    bool result;
523333eb0b6dSopenharmony_ci
523433eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
523533eb0b6dSopenharmony_ci    napi_status status = napi_delete_property(env, obj, key, &result);
523633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
523733eb0b6dSopenharmony_ci}
523833eb0b6dSopenharmony_ci
523933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDeletePropertyTest004, testing::ext::TestSize.Level1)
524033eb0b6dSopenharmony_ci{
524133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
524233eb0b6dSopenharmony_ci    napi_value obj;
524333eb0b6dSopenharmony_ci    napi_value key;
524433eb0b6dSopenharmony_ci    bool result;
524533eb0b6dSopenharmony_ci
524633eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &obj);
524733eb0b6dSopenharmony_ci    napi_create_int32(env, INT_ONE, &key);
524833eb0b6dSopenharmony_ci    status = napi_delete_property(env, obj, key, &result);
524933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
525033eb0b6dSopenharmony_ci}
525133eb0b6dSopenharmony_ci
525233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasOwnPropertyTest001, testing::ext::TestSize.Level1)
525333eb0b6dSopenharmony_ci{
525433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
525533eb0b6dSopenharmony_ci    napi_value obj = nullptr;
525633eb0b6dSopenharmony_ci    napi_value key;
525733eb0b6dSopenharmony_ci    bool result;
525833eb0b6dSopenharmony_ci
525933eb0b6dSopenharmony_ci    napi_create_int32(env, INT_ONE, &key);
526033eb0b6dSopenharmony_ci    napi_status status = napi_has_own_property(env, obj, key, &result);
526133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
526233eb0b6dSopenharmony_ci}
526333eb0b6dSopenharmony_ci
526433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasOwnPropertyTest002, testing::ext::TestSize.Level1)
526533eb0b6dSopenharmony_ci{
526633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
526733eb0b6dSopenharmony_ci    napi_value obj;
526833eb0b6dSopenharmony_ci    napi_value key = nullptr;
526933eb0b6dSopenharmony_ci    bool result;
527033eb0b6dSopenharmony_ci
527133eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
527233eb0b6dSopenharmony_ci    napi_status status = napi_has_own_property(env, obj, key, &result);
527333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
527433eb0b6dSopenharmony_ci}
527533eb0b6dSopenharmony_ci
527633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasOwnPropertyTest003, testing::ext::TestSize.Level1)
527733eb0b6dSopenharmony_ci{
527833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
527933eb0b6dSopenharmony_ci    napi_value obj;
528033eb0b6dSopenharmony_ci    napi_value key;
528133eb0b6dSopenharmony_ci    bool *result = nullptr;
528233eb0b6dSopenharmony_ci
528333eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
528433eb0b6dSopenharmony_ci    napi_create_int32(env, INT_ONE, &key);
528533eb0b6dSopenharmony_ci    napi_status status = napi_has_own_property(env, obj, key, result);
528633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
528733eb0b6dSopenharmony_ci}
528833eb0b6dSopenharmony_ci
528933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasOwnPropertyTest004, testing::ext::TestSize.Level1)
529033eb0b6dSopenharmony_ci{
529133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
529233eb0b6dSopenharmony_ci    napi_value obj;
529333eb0b6dSopenharmony_ci    napi_value key;
529433eb0b6dSopenharmony_ci    bool result;
529533eb0b6dSopenharmony_ci
529633eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &obj);
529733eb0b6dSopenharmony_ci    napi_create_int32(env, INT_ONE, &key);
529833eb0b6dSopenharmony_ci    status = napi_has_own_property(env, obj, key, &result);
529933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
530033eb0b6dSopenharmony_ci}
530133eb0b6dSopenharmony_ci
530233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSetNamedPropertyTest001, testing::ext::TestSize.Level1)
530333eb0b6dSopenharmony_ci{
530433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
530533eb0b6dSopenharmony_ci    napi_value obj = nullptr;
530633eb0b6dSopenharmony_ci    napi_value value;
530733eb0b6dSopenharmony_ci
530833eb0b6dSopenharmony_ci    napi_create_int32(env, INT_TWO, &value);
530933eb0b6dSopenharmony_ci    napi_status status = napi_set_named_property(env, obj, TEST_STRING, value);
531033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
531133eb0b6dSopenharmony_ci}
531233eb0b6dSopenharmony_ci
531333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSetNamedPropertyTest002, testing::ext::TestSize.Level1)
531433eb0b6dSopenharmony_ci{
531533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
531633eb0b6dSopenharmony_ci    napi_value obj;
531733eb0b6dSopenharmony_ci    char* utf8name = nullptr;
531833eb0b6dSopenharmony_ci    napi_value value;
531933eb0b6dSopenharmony_ci
532033eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
532133eb0b6dSopenharmony_ci    napi_create_int32(env, INT_TWO, &value);
532233eb0b6dSopenharmony_ci    napi_status status = napi_set_named_property(env, obj, utf8name, value);
532333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
532433eb0b6dSopenharmony_ci}
532533eb0b6dSopenharmony_ci
532633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSetNamedPropertyTest003, testing::ext::TestSize.Level1)
532733eb0b6dSopenharmony_ci{
532833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
532933eb0b6dSopenharmony_ci    napi_value obj;
533033eb0b6dSopenharmony_ci    napi_value value = nullptr;
533133eb0b6dSopenharmony_ci
533233eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
533333eb0b6dSopenharmony_ci    napi_status status = napi_set_named_property(env, obj, TEST_STRING, value);
533433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
533533eb0b6dSopenharmony_ci}
533633eb0b6dSopenharmony_ci
533733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSetNamedPropertyTest004, testing::ext::TestSize.Level1)
533833eb0b6dSopenharmony_ci{
533933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
534033eb0b6dSopenharmony_ci    napi_value obj;
534133eb0b6dSopenharmony_ci    napi_value value;
534233eb0b6dSopenharmony_ci
534333eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &obj);
534433eb0b6dSopenharmony_ci    napi_create_int32(env, INT_TWO, &value);
534533eb0b6dSopenharmony_ci    status = napi_set_named_property(env, obj, TEST_STRING, value);
534633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
534733eb0b6dSopenharmony_ci}
534833eb0b6dSopenharmony_ci
534933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetNamedPropertyTest001, testing::ext::TestSize.Level1)
535033eb0b6dSopenharmony_ci{
535133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
535233eb0b6dSopenharmony_ci    napi_value obj = nullptr;
535333eb0b6dSopenharmony_ci    napi_value value;
535433eb0b6dSopenharmony_ci
535533eb0b6dSopenharmony_ci    napi_status status = napi_get_named_property(env, obj, TEST_STRING, &value);
535633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
535733eb0b6dSopenharmony_ci}
535833eb0b6dSopenharmony_ci
535933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetNamedPropertyTest002, testing::ext::TestSize.Level1)
536033eb0b6dSopenharmony_ci{
536133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
536233eb0b6dSopenharmony_ci    napi_value obj;
536333eb0b6dSopenharmony_ci    char* utf8name = nullptr;
536433eb0b6dSopenharmony_ci    napi_value value;
536533eb0b6dSopenharmony_ci
536633eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
536733eb0b6dSopenharmony_ci    napi_status status = napi_get_named_property(env, obj, utf8name, &value);
536833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
536933eb0b6dSopenharmony_ci}
537033eb0b6dSopenharmony_ci
537133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetNamedPropertyTest003, testing::ext::TestSize.Level1)
537233eb0b6dSopenharmony_ci{
537333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
537433eb0b6dSopenharmony_ci    napi_value obj;
537533eb0b6dSopenharmony_ci    napi_value *value = nullptr;
537633eb0b6dSopenharmony_ci
537733eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
537833eb0b6dSopenharmony_ci    napi_status status = napi_get_named_property(env, obj, TEST_STRING, value);
537933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
538033eb0b6dSopenharmony_ci}
538133eb0b6dSopenharmony_ci
538233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetNamedPropertyTest004, testing::ext::TestSize.Level1)
538333eb0b6dSopenharmony_ci{
538433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
538533eb0b6dSopenharmony_ci    napi_value obj;
538633eb0b6dSopenharmony_ci    napi_value value;
538733eb0b6dSopenharmony_ci
538833eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &obj);
538933eb0b6dSopenharmony_ci    status = napi_get_named_property(env, obj, TEST_STRING, &value);
539033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
539133eb0b6dSopenharmony_ci}
539233eb0b6dSopenharmony_ci
539333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasNamedPropertyTest001, testing::ext::TestSize.Level1)
539433eb0b6dSopenharmony_ci{
539533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
539633eb0b6dSopenharmony_ci    napi_value obj = nullptr;
539733eb0b6dSopenharmony_ci    bool result;
539833eb0b6dSopenharmony_ci
539933eb0b6dSopenharmony_ci    napi_status status = napi_has_named_property(env, obj, TEST_STRING, &result);
540033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
540133eb0b6dSopenharmony_ci}
540233eb0b6dSopenharmony_ci
540333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasNamedPropertyTest002, testing::ext::TestSize.Level1)
540433eb0b6dSopenharmony_ci{
540533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
540633eb0b6dSopenharmony_ci    napi_value obj;
540733eb0b6dSopenharmony_ci    char* utf8name = nullptr;
540833eb0b6dSopenharmony_ci    bool result;
540933eb0b6dSopenharmony_ci
541033eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
541133eb0b6dSopenharmony_ci    napi_status status = napi_has_named_property(env, obj, utf8name, &result);
541233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
541333eb0b6dSopenharmony_ci}
541433eb0b6dSopenharmony_ci
541533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasNamedPropertyTest003, testing::ext::TestSize.Level1)
541633eb0b6dSopenharmony_ci{
541733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
541833eb0b6dSopenharmony_ci    napi_value obj;
541933eb0b6dSopenharmony_ci    bool *result = nullptr;
542033eb0b6dSopenharmony_ci
542133eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
542233eb0b6dSopenharmony_ci    napi_status status = napi_has_named_property(env, obj, TEST_STRING, result);
542333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
542433eb0b6dSopenharmony_ci}
542533eb0b6dSopenharmony_ci
542633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasNamedPropertyTest004, testing::ext::TestSize.Level1)
542733eb0b6dSopenharmony_ci{
542833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
542933eb0b6dSopenharmony_ci    napi_value obj;
543033eb0b6dSopenharmony_ci    bool result;
543133eb0b6dSopenharmony_ci
543233eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &obj);
543333eb0b6dSopenharmony_ci    status = napi_has_named_property(env, obj, TEST_STRING, &result);
543433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
543533eb0b6dSopenharmony_ci}
543633eb0b6dSopenharmony_ci
543733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSetElementTest001, testing::ext::TestSize.Level1)
543833eb0b6dSopenharmony_ci{
543933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
544033eb0b6dSopenharmony_ci    napi_value obj = nullptr;
544133eb0b6dSopenharmony_ci    uint32_t index = 1;
544233eb0b6dSopenharmony_ci    napi_value value;
544333eb0b6dSopenharmony_ci
544433eb0b6dSopenharmony_ci    napi_create_int32(env, INT_TWO, &value);
544533eb0b6dSopenharmony_ci    napi_status status = napi_set_element(env, obj, index, value);
544633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
544733eb0b6dSopenharmony_ci}
544833eb0b6dSopenharmony_ci
544933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSetElementTest002, testing::ext::TestSize.Level1)
545033eb0b6dSopenharmony_ci{
545133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
545233eb0b6dSopenharmony_ci    napi_value obj;
545333eb0b6dSopenharmony_ci    uint32_t index = 1;
545433eb0b6dSopenharmony_ci    napi_value value = nullptr;
545533eb0b6dSopenharmony_ci
545633eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
545733eb0b6dSopenharmony_ci    napi_status status = napi_set_element(env, obj, index, value);
545833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
545933eb0b6dSopenharmony_ci}
546033eb0b6dSopenharmony_ci
546133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSetElementTest003, testing::ext::TestSize.Level1)
546233eb0b6dSopenharmony_ci{
546333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
546433eb0b6dSopenharmony_ci    napi_value obj;
546533eb0b6dSopenharmony_ci    uint32_t index = 1;
546633eb0b6dSopenharmony_ci    napi_value value;
546733eb0b6dSopenharmony_ci
546833eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &obj);
546933eb0b6dSopenharmony_ci    napi_create_int32(env, INT_TWO, &value);
547033eb0b6dSopenharmony_ci    status = napi_set_element(env, obj, index, value);
547133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
547233eb0b6dSopenharmony_ci}
547333eb0b6dSopenharmony_ci
547433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetElementTest001, testing::ext::TestSize.Level1)
547533eb0b6dSopenharmony_ci{
547633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
547733eb0b6dSopenharmony_ci    napi_value obj = nullptr;
547833eb0b6dSopenharmony_ci    uint32_t index = 1;
547933eb0b6dSopenharmony_ci    napi_value value;
548033eb0b6dSopenharmony_ci
548133eb0b6dSopenharmony_ci    napi_status status = napi_get_element(env, obj, index, &value);
548233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
548333eb0b6dSopenharmony_ci}
548433eb0b6dSopenharmony_ci
548533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetElementTest002, testing::ext::TestSize.Level1)
548633eb0b6dSopenharmony_ci{
548733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
548833eb0b6dSopenharmony_ci    napi_value obj;
548933eb0b6dSopenharmony_ci    uint32_t index = 1;
549033eb0b6dSopenharmony_ci    napi_value *value = nullptr;
549133eb0b6dSopenharmony_ci
549233eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
549333eb0b6dSopenharmony_ci    napi_status status = napi_get_element(env, obj, index, value);
549433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
549533eb0b6dSopenharmony_ci}
549633eb0b6dSopenharmony_ci
549733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetElementTest003, testing::ext::TestSize.Level1)
549833eb0b6dSopenharmony_ci{
549933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
550033eb0b6dSopenharmony_ci    napi_value obj;
550133eb0b6dSopenharmony_ci    uint32_t index = 1;
550233eb0b6dSopenharmony_ci    napi_value value;
550333eb0b6dSopenharmony_ci
550433eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &obj);
550533eb0b6dSopenharmony_ci    status = napi_get_element(env, obj, index, &value);
550633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
550733eb0b6dSopenharmony_ci}
550833eb0b6dSopenharmony_ci
550933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasElementTest001, testing::ext::TestSize.Level1)
551033eb0b6dSopenharmony_ci{
551133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
551233eb0b6dSopenharmony_ci    napi_value obj = nullptr;
551333eb0b6dSopenharmony_ci    uint32_t index = 1;
551433eb0b6dSopenharmony_ci    bool result;
551533eb0b6dSopenharmony_ci
551633eb0b6dSopenharmony_ci    napi_status status = napi_has_element(env, obj, index, &result);
551733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
551833eb0b6dSopenharmony_ci}
551933eb0b6dSopenharmony_ci
552033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasElementTest002, testing::ext::TestSize.Level1)
552133eb0b6dSopenharmony_ci{
552233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
552333eb0b6dSopenharmony_ci    napi_value obj;
552433eb0b6dSopenharmony_ci    uint32_t index = 1;
552533eb0b6dSopenharmony_ci    bool *result = nullptr;
552633eb0b6dSopenharmony_ci
552733eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
552833eb0b6dSopenharmony_ci    napi_status status = napi_has_element(env, obj, index, result);
552933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
553033eb0b6dSopenharmony_ci}
553133eb0b6dSopenharmony_ci
553233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiHasElementTest003, testing::ext::TestSize.Level1)
553333eb0b6dSopenharmony_ci{
553433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
553533eb0b6dSopenharmony_ci    napi_value obj;
553633eb0b6dSopenharmony_ci    uint32_t index = 1;
553733eb0b6dSopenharmony_ci    bool result;
553833eb0b6dSopenharmony_ci
553933eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &obj);
554033eb0b6dSopenharmony_ci    status = napi_has_element(env, obj, index, &result);
554133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
554233eb0b6dSopenharmony_ci}
554333eb0b6dSopenharmony_ci
554433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDeleteElementTest001, testing::ext::TestSize.Level1)
554533eb0b6dSopenharmony_ci{
554633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
554733eb0b6dSopenharmony_ci    napi_value obj = nullptr;
554833eb0b6dSopenharmony_ci    uint32_t index = 1;
554933eb0b6dSopenharmony_ci    bool result;
555033eb0b6dSopenharmony_ci
555133eb0b6dSopenharmony_ci    napi_status status = napi_delete_element(env, obj, index, &result);
555233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
555333eb0b6dSopenharmony_ci}
555433eb0b6dSopenharmony_ci
555533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDeleteElementTest002, testing::ext::TestSize.Level1)
555633eb0b6dSopenharmony_ci{
555733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
555833eb0b6dSopenharmony_ci    napi_value obj;
555933eb0b6dSopenharmony_ci    uint32_t index = 1;
556033eb0b6dSopenharmony_ci    bool result;
556133eb0b6dSopenharmony_ci
556233eb0b6dSopenharmony_ci    napi_status status = napi_create_double(env, TEST_DOUBLE, &obj);
556333eb0b6dSopenharmony_ci    status = napi_delete_element(env, obj, index, &result);
556433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
556533eb0b6dSopenharmony_ci}
556633eb0b6dSopenharmony_ci
556733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDefinePropertiesTest001, testing::ext::TestSize.Level1)
556833eb0b6dSopenharmony_ci{
556933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
557033eb0b6dSopenharmony_ci    napi_property_descriptor desc[] = {
557133eb0b6dSopenharmony_ci        {"testMethod", nullptr, [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; },
557233eb0b6dSopenharmony_ci         nullptr, nullptr, nullptr, napi_default, nullptr},
557333eb0b6dSopenharmony_ci    };
557433eb0b6dSopenharmony_ci    napi_value result = nullptr;
557533eb0b6dSopenharmony_ci
557633eb0b6dSopenharmony_ci    napi_status status = napi_define_properties(env, result, sizeof(desc)/sizeof(desc[0]), desc);
557733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
557833eb0b6dSopenharmony_ci}
557933eb0b6dSopenharmony_ci
558033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDefinePropertiesTest002, testing::ext::TestSize.Level1)
558133eb0b6dSopenharmony_ci{
558233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
558333eb0b6dSopenharmony_ci    napi_property_descriptor *desc = nullptr;
558433eb0b6dSopenharmony_ci    napi_value result;
558533eb0b6dSopenharmony_ci    napi_create_object(env, &result);
558633eb0b6dSopenharmony_ci
558733eb0b6dSopenharmony_ci    napi_status status = napi_define_properties(env, result, INT_ONE, desc);
558833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
558933eb0b6dSopenharmony_ci}
559033eb0b6dSopenharmony_ci
559133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDefinePropertiesTest003, testing::ext::TestSize.Level1)
559233eb0b6dSopenharmony_ci{
559333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
559433eb0b6dSopenharmony_ci    napi_property_descriptor desc[] = {
559533eb0b6dSopenharmony_ci        {"testMethod", nullptr, [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; },
559633eb0b6dSopenharmony_ci         nullptr, nullptr, nullptr, napi_default, nullptr},
559733eb0b6dSopenharmony_ci    };
559833eb0b6dSopenharmony_ci    napi_value result;
559933eb0b6dSopenharmony_ci    napi_create_double(env, TEST_DOUBLE, &result);
560033eb0b6dSopenharmony_ci
560133eb0b6dSopenharmony_ci    napi_status status = napi_define_properties(env, result, INT_ONE, desc);
560233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
560333eb0b6dSopenharmony_ci}
560433eb0b6dSopenharmony_ci
560533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDefinePropertiesTest004, testing::ext::TestSize.Level1)
560633eb0b6dSopenharmony_ci{
560733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
560833eb0b6dSopenharmony_ci    napi_property_descriptor desc[] = {
560933eb0b6dSopenharmony_ci        {nullptr, nullptr, [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; },
561033eb0b6dSopenharmony_ci         nullptr, nullptr, nullptr, napi_default, nullptr},
561133eb0b6dSopenharmony_ci    };
561233eb0b6dSopenharmony_ci    napi_value result;
561333eb0b6dSopenharmony_ci    napi_create_object(env, &result);
561433eb0b6dSopenharmony_ci
561533eb0b6dSopenharmony_ci    napi_status status = napi_define_properties(env, result, INT_ONE, desc);
561633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_name_expected);
561733eb0b6dSopenharmony_ci}
561833eb0b6dSopenharmony_ci
561933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDefinePropertiesTest005, testing::ext::TestSize.Level1)
562033eb0b6dSopenharmony_ci{
562133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
562233eb0b6dSopenharmony_ci    napi_value name;
562333eb0b6dSopenharmony_ci    napi_create_object(env, &name);
562433eb0b6dSopenharmony_ci    napi_property_descriptor desc[] = {
562533eb0b6dSopenharmony_ci        {nullptr, name, [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; },
562633eb0b6dSopenharmony_ci         nullptr, nullptr, nullptr, napi_default, nullptr},
562733eb0b6dSopenharmony_ci    };
562833eb0b6dSopenharmony_ci    napi_value result;
562933eb0b6dSopenharmony_ci    napi_create_object(env, &result);
563033eb0b6dSopenharmony_ci
563133eb0b6dSopenharmony_ci    napi_status status = napi_define_properties(env, result, INT_ONE, desc);
563233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_name_expected);
563333eb0b6dSopenharmony_ci}
563433eb0b6dSopenharmony_ci
563533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiTypeTagObjectTest001, testing::ext::TestSize.Level1)
563633eb0b6dSopenharmony_ci{
563733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
563833eb0b6dSopenharmony_ci    napi_value obj = nullptr;
563933eb0b6dSopenharmony_ci    napi_type_tag tag;
564033eb0b6dSopenharmony_ci
564133eb0b6dSopenharmony_ci    napi_status status = napi_type_tag_object(env, obj, &tag);
564233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
564333eb0b6dSopenharmony_ci}
564433eb0b6dSopenharmony_ci
564533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiTypeTagObjectTest002, testing::ext::TestSize.Level1)
564633eb0b6dSopenharmony_ci{
564733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
564833eb0b6dSopenharmony_ci    napi_value obj;
564933eb0b6dSopenharmony_ci    napi_type_tag* tag = nullptr;
565033eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
565133eb0b6dSopenharmony_ci
565233eb0b6dSopenharmony_ci    napi_status status = napi_type_tag_object(env, obj, tag);
565333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
565433eb0b6dSopenharmony_ci}
565533eb0b6dSopenharmony_ci
565633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiTypeTagObjectTest003, testing::ext::TestSize.Level1)
565733eb0b6dSopenharmony_ci{
565833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
565933eb0b6dSopenharmony_ci    napi_value obj;
566033eb0b6dSopenharmony_ci    napi_type_tag tag;
566133eb0b6dSopenharmony_ci    napi_create_double(env, TEST_DOUBLE, &obj);
566233eb0b6dSopenharmony_ci
566333eb0b6dSopenharmony_ci    napi_status status = napi_type_tag_object(env, obj, &tag);
566433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
566533eb0b6dSopenharmony_ci}
566633eb0b6dSopenharmony_ci
566733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCheckObjectTypeTagTest001, testing::ext::TestSize.Level1)
566833eb0b6dSopenharmony_ci{
566933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
567033eb0b6dSopenharmony_ci    napi_value obj = nullptr;
567133eb0b6dSopenharmony_ci    napi_type_tag tag;
567233eb0b6dSopenharmony_ci    bool result;
567333eb0b6dSopenharmony_ci
567433eb0b6dSopenharmony_ci    napi_status status = napi_check_object_type_tag(env, obj, &tag, &result);
567533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
567633eb0b6dSopenharmony_ci}
567733eb0b6dSopenharmony_ci
567833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCheckObjectTypeTagTest002, testing::ext::TestSize.Level1)
567933eb0b6dSopenharmony_ci{
568033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
568133eb0b6dSopenharmony_ci    napi_value obj;
568233eb0b6dSopenharmony_ci    napi_type_tag *tag = nullptr;
568333eb0b6dSopenharmony_ci    bool result;
568433eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
568533eb0b6dSopenharmony_ci
568633eb0b6dSopenharmony_ci    napi_status status = napi_check_object_type_tag(env, obj, tag, &result);
568733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
568833eb0b6dSopenharmony_ci}
568933eb0b6dSopenharmony_ci
569033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCheckObjectTypeTagTest003, testing::ext::TestSize.Level1)
569133eb0b6dSopenharmony_ci{
569233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
569333eb0b6dSopenharmony_ci    napi_value obj;
569433eb0b6dSopenharmony_ci    napi_type_tag tag;
569533eb0b6dSopenharmony_ci    bool *result = nullptr;
569633eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
569733eb0b6dSopenharmony_ci
569833eb0b6dSopenharmony_ci    napi_status status = napi_check_object_type_tag(env, obj, &tag, result);
569933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
570033eb0b6dSopenharmony_ci}
570133eb0b6dSopenharmony_ci
570233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCallFunctionTest001, testing::ext::TestSize.Level1)
570333eb0b6dSopenharmony_ci{
570433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
570533eb0b6dSopenharmony_ci    napi_value funcValue = nullptr;
570633eb0b6dSopenharmony_ci    napi_value recv = nullptr;
570733eb0b6dSopenharmony_ci    size_t argc = 1;
570833eb0b6dSopenharmony_ci    napi_value args[1] = {nullptr};
570933eb0b6dSopenharmony_ci    napi_value funcResultValue = nullptr;
571033eb0b6dSopenharmony_ci
571133eb0b6dSopenharmony_ci    napi_status status = napi_call_function(env, recv, funcValue, argc, args, &funcResultValue);
571233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
571333eb0b6dSopenharmony_ci}
571433eb0b6dSopenharmony_ci
571533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCallFunctionTest002, testing::ext::TestSize.Level1)
571633eb0b6dSopenharmony_ci{
571733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
571833eb0b6dSopenharmony_ci    napi_value funcValue = nullptr;
571933eb0b6dSopenharmony_ci    napi_value recv = nullptr;
572033eb0b6dSopenharmony_ci    size_t argc = 1;
572133eb0b6dSopenharmony_ci    napi_value* args = nullptr;
572233eb0b6dSopenharmony_ci    napi_value funcResultValue = nullptr;
572333eb0b6dSopenharmony_ci
572433eb0b6dSopenharmony_ci    napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH,
572533eb0b6dSopenharmony_ci        [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }, nullptr, &funcValue);
572633eb0b6dSopenharmony_ci    napi_status status = napi_call_function(env, recv, funcValue, argc, args, &funcResultValue);
572733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
572833eb0b6dSopenharmony_ci}
572933eb0b6dSopenharmony_ci
573033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCallFunctionTest003, testing::ext::TestSize.Level1)
573133eb0b6dSopenharmony_ci{
573233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
573333eb0b6dSopenharmony_ci    napi_value funcValue = nullptr;
573433eb0b6dSopenharmony_ci    napi_value recv = nullptr;
573533eb0b6dSopenharmony_ci    size_t argc = 1;
573633eb0b6dSopenharmony_ci    napi_value args[1] = {nullptr};
573733eb0b6dSopenharmony_ci    napi_value funcResultValue = nullptr;
573833eb0b6dSopenharmony_ci
573933eb0b6dSopenharmony_ci    napi_create_object(env, &funcValue);
574033eb0b6dSopenharmony_ci    napi_status status = napi_call_function(env, recv, funcValue, argc, args, &funcResultValue);
574133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_function_expected);
574233eb0b6dSopenharmony_ci}
574333eb0b6dSopenharmony_ci
574433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCallFunctionTest004, testing::ext::TestSize.Level1)
574533eb0b6dSopenharmony_ci{
574633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
574733eb0b6dSopenharmony_ci    napi_value funcValue = nullptr;
574833eb0b6dSopenharmony_ci    napi_value recv = nullptr;
574933eb0b6dSopenharmony_ci    size_t argc = 1;
575033eb0b6dSopenharmony_ci    napi_value args[1] = {nullptr};
575133eb0b6dSopenharmony_ci    napi_value funcResultValue = nullptr;
575233eb0b6dSopenharmony_ci
575333eb0b6dSopenharmony_ci    napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, [](napi_env env, napi_callback_info info) -> napi_value {
575433eb0b6dSopenharmony_ci            napi_throw_error(env, "500", "Common error");
575533eb0b6dSopenharmony_ci            return nullptr;
575633eb0b6dSopenharmony_ci        }, nullptr, &funcValue);
575733eb0b6dSopenharmony_ci    napi_status status = napi_call_function(env, recv, funcValue, argc, args, &funcResultValue);
575833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_pending_exception);
575933eb0b6dSopenharmony_ci}
576033eb0b6dSopenharmony_ci
576133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateFunctionTest001, testing::ext::TestSize.Level1)
576233eb0b6dSopenharmony_ci{
576333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
576433eb0b6dSopenharmony_ci    napi_value funcValue = nullptr;
576533eb0b6dSopenharmony_ci
576633eb0b6dSopenharmony_ci    napi_status status = napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH, nullptr, nullptr, &funcValue);
576733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
576833eb0b6dSopenharmony_ci}
576933eb0b6dSopenharmony_ci
577033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateFunctionTest002, testing::ext::TestSize.Level1)
577133eb0b6dSopenharmony_ci{
577233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
577333eb0b6dSopenharmony_ci    napi_value *funcValue = nullptr;
577433eb0b6dSopenharmony_ci
577533eb0b6dSopenharmony_ci    napi_status status = napi_create_function(env, "testFunc", NAPI_AUTO_LENGTH,
577633eb0b6dSopenharmony_ci        [](napi_env env, napi_callback_info info) -> napi_value { return nullptr; }, nullptr, funcValue);
577733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
577833eb0b6dSopenharmony_ci}
577933eb0b6dSopenharmony_ci
578033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetCbInfoTest001, testing::ext::TestSize.Level1)
578133eb0b6dSopenharmony_ci{
578233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
578333eb0b6dSopenharmony_ci    napi_callback_info info = nullptr;
578433eb0b6dSopenharmony_ci    size_t argc = 0;
578533eb0b6dSopenharmony_ci    napi_value* argv = nullptr;
578633eb0b6dSopenharmony_ci    napi_value thisVar;
578733eb0b6dSopenharmony_ci    void* data = nullptr;
578833eb0b6dSopenharmony_ci
578933eb0b6dSopenharmony_ci    napi_status status = napi_get_cb_info(env, info, &argc, argv, &thisVar, &data);
579033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
579133eb0b6dSopenharmony_ci}
579233eb0b6dSopenharmony_ci
579333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetNewTargetTest001, testing::ext::TestSize.Level1)
579433eb0b6dSopenharmony_ci{
579533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
579633eb0b6dSopenharmony_ci    napi_callback_info info = nullptr;
579733eb0b6dSopenharmony_ci    napi_value result;
579833eb0b6dSopenharmony_ci
579933eb0b6dSopenharmony_ci    napi_status status = napi_get_new_target(env, info, &result);
580033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
580133eb0b6dSopenharmony_ci}
580233eb0b6dSopenharmony_ci
580333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetNewTargetTest002, testing::ext::TestSize.Level1)
580433eb0b6dSopenharmony_ci{
580533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
580633eb0b6dSopenharmony_ci    napi_callback_info info = napi_callback_info(nullptr);;
580733eb0b6dSopenharmony_ci    napi_value* result = nullptr;
580833eb0b6dSopenharmony_ci
580933eb0b6dSopenharmony_ci    napi_status status = napi_get_new_target(env, info, result);
581033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
581133eb0b6dSopenharmony_ci}
581233eb0b6dSopenharmony_ci
581333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiNewInstanceTest001, testing::ext::TestSize.Level1)
581433eb0b6dSopenharmony_ci{
581533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
581633eb0b6dSopenharmony_ci    napi_value constructor = nullptr;
581733eb0b6dSopenharmony_ci    size_t argc = 0;
581833eb0b6dSopenharmony_ci    napi_value args[1] = {nullptr};
581933eb0b6dSopenharmony_ci    napi_value result;
582033eb0b6dSopenharmony_ci
582133eb0b6dSopenharmony_ci    napi_status status = napi_new_instance(env, constructor, argc, args, &result);
582233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
582333eb0b6dSopenharmony_ci}
582433eb0b6dSopenharmony_ci
582533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiNewInstanceTest002, testing::ext::TestSize.Level1)
582633eb0b6dSopenharmony_ci{
582733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
582833eb0b6dSopenharmony_ci    napi_value constructor;
582933eb0b6dSopenharmony_ci    size_t argc = 1;
583033eb0b6dSopenharmony_ci    napi_value* args = nullptr;
583133eb0b6dSopenharmony_ci    napi_value result;
583233eb0b6dSopenharmony_ci
583333eb0b6dSopenharmony_ci    napi_create_object(env, &constructor);
583433eb0b6dSopenharmony_ci    napi_status status = napi_new_instance(env, constructor, argc, args, &result);
583533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
583633eb0b6dSopenharmony_ci}
583733eb0b6dSopenharmony_ci
583833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiNewInstanceTest003, testing::ext::TestSize.Level1)
583933eb0b6dSopenharmony_ci{
584033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
584133eb0b6dSopenharmony_ci    napi_value constructor;
584233eb0b6dSopenharmony_ci    size_t argc = 1;
584333eb0b6dSopenharmony_ci    napi_value args[1] = {nullptr};
584433eb0b6dSopenharmony_ci    napi_value* result = nullptr;
584533eb0b6dSopenharmony_ci
584633eb0b6dSopenharmony_ci    napi_create_object(env, &constructor);
584733eb0b6dSopenharmony_ci    napi_status status = napi_new_instance(env, constructor, argc, args, result);
584833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
584933eb0b6dSopenharmony_ci}
585033eb0b6dSopenharmony_ci
585133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiNewInstanceTest004, testing::ext::TestSize.Level1)
585233eb0b6dSopenharmony_ci{
585333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
585433eb0b6dSopenharmony_ci    napi_value constructor;
585533eb0b6dSopenharmony_ci    size_t argc = 1;
585633eb0b6dSopenharmony_ci    napi_value args[1] = {nullptr};
585733eb0b6dSopenharmony_ci    napi_value result;
585833eb0b6dSopenharmony_ci
585933eb0b6dSopenharmony_ci    napi_create_object(env, &constructor);
586033eb0b6dSopenharmony_ci    napi_status status = napi_new_instance(env, constructor, argc, args, &result);
586133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_function_expected);
586233eb0b6dSopenharmony_ci}
586333eb0b6dSopenharmony_ci
586433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDefineClassTest001, testing::ext::TestSize.Level1)
586533eb0b6dSopenharmony_ci{
586633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
586733eb0b6dSopenharmony_ci    napi_value result;
586833eb0b6dSopenharmony_ci    napi_status status = napi_define_class(
586933eb0b6dSopenharmony_ci        env, nullptr, NAPI_AUTO_LENGTH,
587033eb0b6dSopenharmony_ci        [](napi_env env, napi_callback_info info) -> napi_value {
587133eb0b6dSopenharmony_ci            napi_value thisVar = nullptr;
587233eb0b6dSopenharmony_ci            napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr);
587333eb0b6dSopenharmony_ci
587433eb0b6dSopenharmony_ci            return thisVar;
587533eb0b6dSopenharmony_ci        },
587633eb0b6dSopenharmony_ci        nullptr, 0, nullptr, &result);
587733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
587833eb0b6dSopenharmony_ci}
587933eb0b6dSopenharmony_ci
588033eb0b6dSopenharmony_ci
588133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDefineClassTest002, testing::ext::TestSize.Level1)
588233eb0b6dSopenharmony_ci{
588333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
588433eb0b6dSopenharmony_ci    napi_value result;
588533eb0b6dSopenharmony_ci    napi_status status = napi_define_class(
588633eb0b6dSopenharmony_ci        env, "TestClass", NAPI_AUTO_LENGTH,
588733eb0b6dSopenharmony_ci        nullptr, nullptr, 0, nullptr, &result);
588833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
588933eb0b6dSopenharmony_ci}
589033eb0b6dSopenharmony_ci
589133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDefineClassTest003, testing::ext::TestSize.Level1)
589233eb0b6dSopenharmony_ci{
589333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
589433eb0b6dSopenharmony_ci    napi_value* result = nullptr;
589533eb0b6dSopenharmony_ci    napi_status status = napi_define_class(
589633eb0b6dSopenharmony_ci        env, "TestClass", NAPI_AUTO_LENGTH,
589733eb0b6dSopenharmony_ci        [](napi_env env, napi_callback_info info) -> napi_value {
589833eb0b6dSopenharmony_ci            napi_value thisVar = nullptr;
589933eb0b6dSopenharmony_ci            napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr);
590033eb0b6dSopenharmony_ci
590133eb0b6dSopenharmony_ci            return thisVar;
590233eb0b6dSopenharmony_ci        },
590333eb0b6dSopenharmony_ci        nullptr, 0, nullptr, result);
590433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
590533eb0b6dSopenharmony_ci}
590633eb0b6dSopenharmony_ci
590733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDefineClassTest004, testing::ext::TestSize.Level1)
590833eb0b6dSopenharmony_ci{
590933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
591033eb0b6dSopenharmony_ci    napi_value result;
591133eb0b6dSopenharmony_ci    napi_status status = napi_define_class(
591233eb0b6dSopenharmony_ci        env, "TestClass", NAPI_AUTO_LENGTH,
591333eb0b6dSopenharmony_ci        [](napi_env env, napi_callback_info info) -> napi_value {
591433eb0b6dSopenharmony_ci            napi_value thisVar = nullptr;
591533eb0b6dSopenharmony_ci            napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr);
591633eb0b6dSopenharmony_ci
591733eb0b6dSopenharmony_ci            return thisVar;
591833eb0b6dSopenharmony_ci        },
591933eb0b6dSopenharmony_ci        nullptr, 1, nullptr, &result);
592033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
592133eb0b6dSopenharmony_ci}
592233eb0b6dSopenharmony_ci
592333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiWrapTest001, testing::ext::TestSize.Level1)
592433eb0b6dSopenharmony_ci{
592533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
592633eb0b6dSopenharmony_ci    napi_value obj = nullptr;
592733eb0b6dSopenharmony_ci    napi_ref result;
592833eb0b6dSopenharmony_ci
592933eb0b6dSopenharmony_ci    napi_status status = napi_wrap(env, obj, (void *)TEST_STRING,
593033eb0b6dSopenharmony_ci        [](napi_env, void* data, void* hint) {}, nullptr, &result);
593133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
593233eb0b6dSopenharmony_ci}
593333eb0b6dSopenharmony_ci
593433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiWrapTest002, testing::ext::TestSize.Level1)
593533eb0b6dSopenharmony_ci{
593633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
593733eb0b6dSopenharmony_ci    napi_value obj;
593833eb0b6dSopenharmony_ci    napi_ref result;
593933eb0b6dSopenharmony_ci
594033eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
594133eb0b6dSopenharmony_ci    napi_status status = napi_wrap(env, obj, nullptr, [](napi_env, void* data, void* hint) {}, nullptr, &result);
594233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
594333eb0b6dSopenharmony_ci}
594433eb0b6dSopenharmony_ci
594533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiWrapTest003, testing::ext::TestSize.Level1)
594633eb0b6dSopenharmony_ci{
594733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
594833eb0b6dSopenharmony_ci    napi_value obj;
594933eb0b6dSopenharmony_ci    napi_ref result;
595033eb0b6dSopenharmony_ci
595133eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
595233eb0b6dSopenharmony_ci    napi_status status = napi_wrap(env, obj, (void *)TEST_STRING, nullptr, nullptr, &result);
595333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
595433eb0b6dSopenharmony_ci}
595533eb0b6dSopenharmony_ci
595633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiWrapTest004, testing::ext::TestSize.Level1)
595733eb0b6dSopenharmony_ci{
595833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
595933eb0b6dSopenharmony_ci    napi_value obj;
596033eb0b6dSopenharmony_ci    napi_ref result;
596133eb0b6dSopenharmony_ci
596233eb0b6dSopenharmony_ci    napi_create_double(env, TEST_DOUBLE, &obj);
596333eb0b6dSopenharmony_ci    napi_status status = napi_wrap(env, obj, (void *)TEST_STRING,
596433eb0b6dSopenharmony_ci        [](napi_env, void* data, void* hint) {}, nullptr, &result);
596533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
596633eb0b6dSopenharmony_ci}
596733eb0b6dSopenharmony_ci
596833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiUnwrapTest001, testing::ext::TestSize.Level1)
596933eb0b6dSopenharmony_ci{
597033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
597133eb0b6dSopenharmony_ci    napi_value obj = nullptr;
597233eb0b6dSopenharmony_ci    char *testStr = nullptr;
597333eb0b6dSopenharmony_ci
597433eb0b6dSopenharmony_ci    napi_status status = napi_unwrap(env, obj, (void **)&testStr);
597533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
597633eb0b6dSopenharmony_ci}
597733eb0b6dSopenharmony_ci
597833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiUnwrapTest002, testing::ext::TestSize.Level1)
597933eb0b6dSopenharmony_ci{
598033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
598133eb0b6dSopenharmony_ci    napi_value obj;
598233eb0b6dSopenharmony_ci    char **testStr = nullptr;
598333eb0b6dSopenharmony_ci
598433eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
598533eb0b6dSopenharmony_ci    napi_status status = napi_unwrap(env, obj, (void **)testStr);
598633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
598733eb0b6dSopenharmony_ci}
598833eb0b6dSopenharmony_ci
598933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiUnwrapTest003, testing::ext::TestSize.Level1)
599033eb0b6dSopenharmony_ci{
599133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
599233eb0b6dSopenharmony_ci    napi_value obj = nullptr;
599333eb0b6dSopenharmony_ci    char *testStr = nullptr;
599433eb0b6dSopenharmony_ci
599533eb0b6dSopenharmony_ci    napi_create_double(env, TEST_DOUBLE, &obj);
599633eb0b6dSopenharmony_ci    napi_status status = napi_unwrap(env, obj, (void **)&testStr);
599733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
599833eb0b6dSopenharmony_ci}
599933eb0b6dSopenharmony_ci
600033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRemoveWrapTest001, testing::ext::TestSize.Level1)
600133eb0b6dSopenharmony_ci{
600233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
600333eb0b6dSopenharmony_ci    napi_value obj = nullptr;
600433eb0b6dSopenharmony_ci    char *testStr = nullptr;
600533eb0b6dSopenharmony_ci
600633eb0b6dSopenharmony_ci    napi_status status = napi_remove_wrap(env, obj, (void **)&testStr);
600733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
600833eb0b6dSopenharmony_ci}
600933eb0b6dSopenharmony_ci
601033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRemoveWrapTest002, testing::ext::TestSize.Level1)
601133eb0b6dSopenharmony_ci{
601233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
601333eb0b6dSopenharmony_ci    napi_value obj;
601433eb0b6dSopenharmony_ci    char **testStr = nullptr;
601533eb0b6dSopenharmony_ci
601633eb0b6dSopenharmony_ci    napi_create_object(env, &obj);
601733eb0b6dSopenharmony_ci    napi_status status = napi_remove_wrap(env, obj, (void **)testStr);
601833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
601933eb0b6dSopenharmony_ci}
602033eb0b6dSopenharmony_ci
602133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRemoveWrapTest003, testing::ext::TestSize.Level1)
602233eb0b6dSopenharmony_ci{
602333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
602433eb0b6dSopenharmony_ci    napi_value obj = nullptr;
602533eb0b6dSopenharmony_ci    char *testStr = nullptr;
602633eb0b6dSopenharmony_ci
602733eb0b6dSopenharmony_ci    napi_create_double(env, TEST_DOUBLE, &obj);
602833eb0b6dSopenharmony_ci    napi_status status = napi_remove_wrap(env, obj, (void **)&testStr);
602933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_object_expected);
603033eb0b6dSopenharmony_ci}
603133eb0b6dSopenharmony_ci
603233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateAsyncWorkTest001, testing::ext::TestSize.Level1)
603333eb0b6dSopenharmony_ci{
603433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
603533eb0b6dSopenharmony_ci    napi_async_work work = nullptr;
603633eb0b6dSopenharmony_ci    napi_value resourceName = nullptr;
603733eb0b6dSopenharmony_ci
603833eb0b6dSopenharmony_ci    napi_status status = napi_create_async_work(env, nullptr, resourceName, [](napi_env value, void* data) {},
603933eb0b6dSopenharmony_ci                           [](napi_env env, napi_status status, void* data) {}, nullptr, &work);
604033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
604133eb0b6dSopenharmony_ci}
604233eb0b6dSopenharmony_ci
604333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateAsyncWorkTest002, testing::ext::TestSize.Level1)
604433eb0b6dSopenharmony_ci{
604533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
604633eb0b6dSopenharmony_ci    napi_async_work work = nullptr;
604733eb0b6dSopenharmony_ci    napi_value resourceName = nullptr;
604833eb0b6dSopenharmony_ci    napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName);
604933eb0b6dSopenharmony_ci    napi_status status = napi_create_async_work(env, nullptr, resourceName, nullptr,
605033eb0b6dSopenharmony_ci                           [](napi_env env, napi_status status, void* data) {}, nullptr, &work);
605133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
605233eb0b6dSopenharmony_ci}
605333eb0b6dSopenharmony_ci
605433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateAsyncWorkTest003, testing::ext::TestSize.Level1)
605533eb0b6dSopenharmony_ci{
605633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
605733eb0b6dSopenharmony_ci    napi_async_work work = nullptr;
605833eb0b6dSopenharmony_ci    napi_value resourceName = nullptr;
605933eb0b6dSopenharmony_ci    napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName);
606033eb0b6dSopenharmony_ci    napi_status status = napi_create_async_work(env, nullptr, resourceName, [](napi_env value, void* data) {},
606133eb0b6dSopenharmony_ci                           nullptr, nullptr, &work);
606233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
606333eb0b6dSopenharmony_ci}
606433eb0b6dSopenharmony_ci
606533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateAsyncWorkTest004, testing::ext::TestSize.Level1)
606633eb0b6dSopenharmony_ci{
606733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
606833eb0b6dSopenharmony_ci    napi_async_work* work = nullptr;
606933eb0b6dSopenharmony_ci    napi_value resourceName = nullptr;
607033eb0b6dSopenharmony_ci    napi_create_string_utf8(env, "AsyncWorkTest", NAPI_AUTO_LENGTH, &resourceName);
607133eb0b6dSopenharmony_ci    napi_status status = napi_create_async_work(env, nullptr, resourceName, [](napi_env value, void* data) {},
607233eb0b6dSopenharmony_ci                           nullptr, nullptr, work);
607333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
607433eb0b6dSopenharmony_ci}
607533eb0b6dSopenharmony_ci
607633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDeleteAsyncWorkTest001, testing::ext::TestSize.Level1)
607733eb0b6dSopenharmony_ci{
607833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
607933eb0b6dSopenharmony_ci    napi_async_work work = nullptr;
608033eb0b6dSopenharmony_ci
608133eb0b6dSopenharmony_ci    napi_status status = napi_delete_async_work(env, work);
608233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
608333eb0b6dSopenharmony_ci}
608433eb0b6dSopenharmony_ci
608533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiQueueAsyncWorkTest001, testing::ext::TestSize.Level1)
608633eb0b6dSopenharmony_ci{
608733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
608833eb0b6dSopenharmony_ci    napi_async_work work = nullptr;
608933eb0b6dSopenharmony_ci
609033eb0b6dSopenharmony_ci    napi_status status = napi_queue_async_work(env, work);
609133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
609233eb0b6dSopenharmony_ci}
609333eb0b6dSopenharmony_ci
609433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCancelAsyncWorkTest001, testing::ext::TestSize.Level1)
609533eb0b6dSopenharmony_ci{
609633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
609733eb0b6dSopenharmony_ci    napi_async_work work = nullptr;
609833eb0b6dSopenharmony_ci
609933eb0b6dSopenharmony_ci    napi_status status = napi_cancel_async_work(env, work);
610033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
610133eb0b6dSopenharmony_ci}
610233eb0b6dSopenharmony_ci
610333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiAsyncInitTest001, testing::ext::TestSize.Level1)
610433eb0b6dSopenharmony_ci{
610533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
610633eb0b6dSopenharmony_ci    napi_value resourceName = nullptr;
610733eb0b6dSopenharmony_ci    napi_async_context context;
610833eb0b6dSopenharmony_ci
610933eb0b6dSopenharmony_ci    napi_status status = napi_async_init(env, nullptr, resourceName, &context);
611033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
611133eb0b6dSopenharmony_ci}
611233eb0b6dSopenharmony_ci
611333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiAsyncInitTest002, testing::ext::TestSize.Level1)
611433eb0b6dSopenharmony_ci{
611533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
611633eb0b6dSopenharmony_ci    napi_value resourceName;
611733eb0b6dSopenharmony_ci    napi_async_context* context = nullptr;
611833eb0b6dSopenharmony_ci
611933eb0b6dSopenharmony_ci    napi_create_string_utf8(env, "test", NAPI_AUTO_LENGTH, &resourceName);
612033eb0b6dSopenharmony_ci    napi_status status = napi_async_init(env, nullptr, resourceName, context);
612133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
612233eb0b6dSopenharmony_ci}
612333eb0b6dSopenharmony_ci
612433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiMakeCallbackTest001, testing::ext::TestSize.Level1)
612533eb0b6dSopenharmony_ci{
612633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
612733eb0b6dSopenharmony_ci    napi_async_context context = nullptr;
612833eb0b6dSopenharmony_ci    napi_value recv = nullptr;
612933eb0b6dSopenharmony_ci    napi_value func;
613033eb0b6dSopenharmony_ci    size_t argc = 1;
613133eb0b6dSopenharmony_ci    napi_value args[1] = {nullptr};
613233eb0b6dSopenharmony_ci    napi_value result = nullptr;
613333eb0b6dSopenharmony_ci
613433eb0b6dSopenharmony_ci    napi_create_double(env, TEST_DOUBLE, &func);
613533eb0b6dSopenharmony_ci    napi_status status = napi_make_callback(env, context, recv, func, argc, args, &result);
613633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
613733eb0b6dSopenharmony_ci}
613833eb0b6dSopenharmony_ci
613933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiMakeCallbackTest002, testing::ext::TestSize.Level1)
614033eb0b6dSopenharmony_ci{
614133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
614233eb0b6dSopenharmony_ci    napi_async_context context = nullptr;
614333eb0b6dSopenharmony_ci    napi_value recv;
614433eb0b6dSopenharmony_ci    napi_value func = nullptr;
614533eb0b6dSopenharmony_ci    size_t argc = 1;
614633eb0b6dSopenharmony_ci    napi_value args[1] = {nullptr};
614733eb0b6dSopenharmony_ci    napi_value result = nullptr;
614833eb0b6dSopenharmony_ci
614933eb0b6dSopenharmony_ci    napi_create_double(env, TEST_DOUBLE, &recv);
615033eb0b6dSopenharmony_ci    napi_status status = napi_make_callback(env, context, recv, func, argc, args, &result);
615133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
615233eb0b6dSopenharmony_ci}
615333eb0b6dSopenharmony_ci
615433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiAsyncDestroyTest001, testing::ext::TestSize.Level1)
615533eb0b6dSopenharmony_ci{
615633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
615733eb0b6dSopenharmony_ci    napi_async_context context = nullptr;
615833eb0b6dSopenharmony_ci
615933eb0b6dSopenharmony_ci    napi_status status = napi_async_destroy(env, context);
616033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
616133eb0b6dSopenharmony_ci}
616233eb0b6dSopenharmony_ci
616333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiOpenCallbackScopeTest001, testing::ext::TestSize.Level1)
616433eb0b6dSopenharmony_ci{
616533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
616633eb0b6dSopenharmony_ci    napi_value obj = nullptr;
616733eb0b6dSopenharmony_ci    napi_async_context context = nullptr;
616833eb0b6dSopenharmony_ci    napi_callback_scope* result = nullptr;
616933eb0b6dSopenharmony_ci
617033eb0b6dSopenharmony_ci    napi_status status = napi_open_callback_scope(env, obj, context, result);
617133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
617233eb0b6dSopenharmony_ci}
617333eb0b6dSopenharmony_ci
617433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCloseCallbackScopeTest001, testing::ext::TestSize.Level1)
617533eb0b6dSopenharmony_ci{
617633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
617733eb0b6dSopenharmony_ci    napi_callback_scope result = nullptr;
617833eb0b6dSopenharmony_ci
617933eb0b6dSopenharmony_ci    napi_status status = napi_close_callback_scope(env, result);
618033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
618133eb0b6dSopenharmony_ci}
618233eb0b6dSopenharmony_ci
618333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetVersionTest001, testing::ext::TestSize.Level1)
618433eb0b6dSopenharmony_ci{
618533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
618633eb0b6dSopenharmony_ci    uint32_t* result = nullptr;
618733eb0b6dSopenharmony_ci
618833eb0b6dSopenharmony_ci    napi_status status = napi_get_version(env, result);
618933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
619033eb0b6dSopenharmony_ci}
619133eb0b6dSopenharmony_ci
619233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreatePromiseTest001, testing::ext::TestSize.Level1)
619333eb0b6dSopenharmony_ci{
619433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
619533eb0b6dSopenharmony_ci    napi_value* promise = nullptr;
619633eb0b6dSopenharmony_ci    napi_deferred deferred = nullptr;
619733eb0b6dSopenharmony_ci
619833eb0b6dSopenharmony_ci    napi_status status = napi_create_promise(env, &deferred, promise);
619933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
620033eb0b6dSopenharmony_ci}
620133eb0b6dSopenharmony_ci
620233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreatePromiseTest002, testing::ext::TestSize.Level1)
620333eb0b6dSopenharmony_ci{
620433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
620533eb0b6dSopenharmony_ci    napi_value promise = nullptr;
620633eb0b6dSopenharmony_ci    napi_deferred* deferred = nullptr;
620733eb0b6dSopenharmony_ci
620833eb0b6dSopenharmony_ci    napi_status status = napi_create_promise(env, deferred, &promise);
620933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
621033eb0b6dSopenharmony_ci}
621133eb0b6dSopenharmony_ci
621233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiResolveDeferredTest001, testing::ext::TestSize.Level1)
621333eb0b6dSopenharmony_ci{
621433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
621533eb0b6dSopenharmony_ci    napi_deferred deferred = nullptr;
621633eb0b6dSopenharmony_ci
621733eb0b6dSopenharmony_ci    napi_value resolution = nullptr;
621833eb0b6dSopenharmony_ci    napi_create_double(env, TEST_DOUBLE, &resolution);
621933eb0b6dSopenharmony_ci    napi_status status = napi_resolve_deferred(env, deferred, resolution);
622033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
622133eb0b6dSopenharmony_ci}
622233eb0b6dSopenharmony_ci
622333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiResolveDeferredTest002, testing::ext::TestSize.Level1)
622433eb0b6dSopenharmony_ci{
622533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
622633eb0b6dSopenharmony_ci    napi_deferred deferred = nullptr;
622733eb0b6dSopenharmony_ci    napi_value promise = nullptr;
622833eb0b6dSopenharmony_ci    napi_create_promise(env, &deferred, &promise);
622933eb0b6dSopenharmony_ci
623033eb0b6dSopenharmony_ci    napi_value resolution = nullptr;
623133eb0b6dSopenharmony_ci    napi_status status = napi_resolve_deferred(env, deferred, resolution);
623233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
623333eb0b6dSopenharmony_ci}
623433eb0b6dSopenharmony_ci
623533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRejectDeferredTest001, testing::ext::TestSize.Level1)
623633eb0b6dSopenharmony_ci{
623733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
623833eb0b6dSopenharmony_ci    napi_deferred deferred = nullptr;
623933eb0b6dSopenharmony_ci
624033eb0b6dSopenharmony_ci    napi_value resolution = nullptr;
624133eb0b6dSopenharmony_ci    napi_create_double(env, TEST_DOUBLE, &resolution);
624233eb0b6dSopenharmony_ci    napi_status status = napi_reject_deferred(env, deferred, resolution);
624333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
624433eb0b6dSopenharmony_ci}
624533eb0b6dSopenharmony_ci
624633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRejectDeferredTest002, testing::ext::TestSize.Level1)
624733eb0b6dSopenharmony_ci{
624833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
624933eb0b6dSopenharmony_ci    napi_deferred deferred = nullptr;
625033eb0b6dSopenharmony_ci    napi_value promise = nullptr;
625133eb0b6dSopenharmony_ci    napi_create_promise(env, &deferred, &promise);
625233eb0b6dSopenharmony_ci
625333eb0b6dSopenharmony_ci    napi_value resolution = nullptr;
625433eb0b6dSopenharmony_ci    napi_status status = napi_reject_deferred(env, deferred, resolution);
625533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
625633eb0b6dSopenharmony_ci}
625733eb0b6dSopenharmony_ci
625833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsPromiseTest001, testing::ext::TestSize.Level1)
625933eb0b6dSopenharmony_ci{
626033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
626133eb0b6dSopenharmony_ci    napi_value promise = nullptr;
626233eb0b6dSopenharmony_ci    bool result;
626333eb0b6dSopenharmony_ci
626433eb0b6dSopenharmony_ci    napi_status status = napi_is_promise(env, promise, &result);
626533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
626633eb0b6dSopenharmony_ci}
626733eb0b6dSopenharmony_ci
626833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsPromiseTest002, testing::ext::TestSize.Level1)
626933eb0b6dSopenharmony_ci{
627033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
627133eb0b6dSopenharmony_ci    napi_deferred deferred = nullptr;
627233eb0b6dSopenharmony_ci    napi_value promise = nullptr;
627333eb0b6dSopenharmony_ci    napi_create_promise(env, &deferred, &promise);
627433eb0b6dSopenharmony_ci    bool* result = nullptr;
627533eb0b6dSopenharmony_ci
627633eb0b6dSopenharmony_ci    napi_status status = napi_is_promise(env, promise, result);
627733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
627833eb0b6dSopenharmony_ci}
627933eb0b6dSopenharmony_ci
628033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetUvEventLoopTest001, testing::ext::TestSize.Level1)
628133eb0b6dSopenharmony_ci{
628233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
628333eb0b6dSopenharmony_ci    struct uv_loop_s** loop = nullptr;
628433eb0b6dSopenharmony_ci
628533eb0b6dSopenharmony_ci    napi_status status = napi_get_uv_event_loop(env, loop);
628633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
628733eb0b6dSopenharmony_ci}
628833eb0b6dSopenharmony_ci
628933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateThreadsafeFunctionTest001, testing::ext::TestSize.Level1)
629033eb0b6dSopenharmony_ci{
629133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
629233eb0b6dSopenharmony_ci    napi_value jsCb = 0;
629333eb0b6dSopenharmony_ci    napi_create_object(env, &jsCb);
629433eb0b6dSopenharmony_ci    napi_threadsafe_function tsFunc = nullptr;
629533eb0b6dSopenharmony_ci    napi_value resourceName = nullptr;
629633eb0b6dSopenharmony_ci    int32_t callJsCbDataTestId = 101;
629733eb0b6dSopenharmony_ci    int32_t finalCbDataTestId = 1001;
629833eb0b6dSopenharmony_ci    napi_status status = napi_create_threadsafe_function(env, jsCb, nullptr, resourceName,
629933eb0b6dSopenharmony_ci                                                         0, 1, &callJsCbDataTestId,
630033eb0b6dSopenharmony_ci                                                         nullptr, &finalCbDataTestId, nullptr, &tsFunc);
630133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
630233eb0b6dSopenharmony_ci}
630333eb0b6dSopenharmony_ci
630433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateThreadsafeFunctionTest002, testing::ext::TestSize.Level1)
630533eb0b6dSopenharmony_ci{
630633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
630733eb0b6dSopenharmony_ci    napi_value jsCb = 0;
630833eb0b6dSopenharmony_ci    napi_create_object(env, &jsCb);
630933eb0b6dSopenharmony_ci    napi_threadsafe_function tsFunc = nullptr;
631033eb0b6dSopenharmony_ci    napi_value resourceName = nullptr;
631133eb0b6dSopenharmony_ci    napi_create_string_latin1(env, __func__, NAPI_AUTO_LENGTH, &resourceName);
631233eb0b6dSopenharmony_ci    int32_t callJsCbDataTestId = 101;
631333eb0b6dSopenharmony_ci    int32_t finalCbDataTestId = 1001;
631433eb0b6dSopenharmony_ci    napi_status status = napi_create_threadsafe_function(env, jsCb, nullptr, resourceName,
631533eb0b6dSopenharmony_ci                                                         0, 129, &callJsCbDataTestId,
631633eb0b6dSopenharmony_ci                                                         nullptr, &finalCbDataTestId, nullptr, &tsFunc);
631733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
631833eb0b6dSopenharmony_ci}
631933eb0b6dSopenharmony_ci
632033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetThreadsafeFunctionContextTest001, testing::ext::TestSize.Level1)
632133eb0b6dSopenharmony_ci{
632233eb0b6dSopenharmony_ci    napi_threadsafe_function tsFunc = nullptr;
632333eb0b6dSopenharmony_ci    void** result = nullptr;
632433eb0b6dSopenharmony_ci    napi_status status = napi_get_threadsafe_function_context(tsFunc, result);
632533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
632633eb0b6dSopenharmony_ci}
632733eb0b6dSopenharmony_ci
632833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCallThreadsafeFunctionTest001, testing::ext::TestSize.Level1)
632933eb0b6dSopenharmony_ci{
633033eb0b6dSopenharmony_ci    napi_threadsafe_function tsFunc = nullptr;
633133eb0b6dSopenharmony_ci    void* result = nullptr;
633233eb0b6dSopenharmony_ci    napi_status status = napi_call_threadsafe_function(tsFunc, result, napi_tsfn_blocking);
633333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
633433eb0b6dSopenharmony_ci}
633533eb0b6dSopenharmony_ci
633633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiAcquireThreadsafeFunctionTest001, testing::ext::TestSize.Level1)
633733eb0b6dSopenharmony_ci{
633833eb0b6dSopenharmony_ci    napi_threadsafe_function tsFunc = nullptr;
633933eb0b6dSopenharmony_ci    napi_status status = napi_acquire_threadsafe_function(tsFunc);
634033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
634133eb0b6dSopenharmony_ci}
634233eb0b6dSopenharmony_ci
634333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiReleaseThreadsafeFunctionTest001, testing::ext::TestSize.Level1)
634433eb0b6dSopenharmony_ci{
634533eb0b6dSopenharmony_ci    napi_threadsafe_function tsFunc = nullptr;
634633eb0b6dSopenharmony_ci    napi_status status = napi_release_threadsafe_function(tsFunc, napi_tsfn_release);
634733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
634833eb0b6dSopenharmony_ci}
634933eb0b6dSopenharmony_ci
635033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRefThreadsafeFunctionTest001, testing::ext::TestSize.Level1)
635133eb0b6dSopenharmony_ci{
635233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
635333eb0b6dSopenharmony_ci    napi_threadsafe_function tsFunc = nullptr;
635433eb0b6dSopenharmony_ci    napi_status status = napi_ref_threadsafe_function(env, tsFunc);
635533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
635633eb0b6dSopenharmony_ci}
635733eb0b6dSopenharmony_ci
635833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiUnrefThreadsafeFunctionTest001, testing::ext::TestSize.Level1)
635933eb0b6dSopenharmony_ci{
636033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
636133eb0b6dSopenharmony_ci    napi_threadsafe_function tsFunc = nullptr;
636233eb0b6dSopenharmony_ci    napi_status status = napi_unref_threadsafe_function(env, tsFunc);
636333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
636433eb0b6dSopenharmony_ci}
636533eb0b6dSopenharmony_ci
636633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateDateTest001, testing::ext::TestSize.Level1)
636733eb0b6dSopenharmony_ci{
636833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
636933eb0b6dSopenharmony_ci    napi_value* result = nullptr;
637033eb0b6dSopenharmony_ci
637133eb0b6dSopenharmony_ci    napi_status status = napi_create_date(env, TEST_DOUBLE, result);
637233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
637333eb0b6dSopenharmony_ci}
637433eb0b6dSopenharmony_ci
637533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetDateValueTest001, testing::ext::TestSize.Level1)
637633eb0b6dSopenharmony_ci{
637733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
637833eb0b6dSopenharmony_ci    napi_value date = nullptr;
637933eb0b6dSopenharmony_ci    double result;
638033eb0b6dSopenharmony_ci
638133eb0b6dSopenharmony_ci    napi_status status = napi_get_date_value(env, date, &result);
638233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
638333eb0b6dSopenharmony_ci}
638433eb0b6dSopenharmony_ci
638533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetDateValueTest002, testing::ext::TestSize.Level1)
638633eb0b6dSopenharmony_ci{
638733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
638833eb0b6dSopenharmony_ci    double time = 202110181203150;
638933eb0b6dSopenharmony_ci    napi_value date;
639033eb0b6dSopenharmony_ci    double* result = nullptr;
639133eb0b6dSopenharmony_ci
639233eb0b6dSopenharmony_ci    napi_status status = napi_create_date(env, time, &date);
639333eb0b6dSopenharmony_ci    status = napi_get_date_value(env, date, result);
639433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
639533eb0b6dSopenharmony_ci}
639633eb0b6dSopenharmony_ci
639733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetDateValueTest003, testing::ext::TestSize.Level1)
639833eb0b6dSopenharmony_ci{
639933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
640033eb0b6dSopenharmony_ci    napi_value date;
640133eb0b6dSopenharmony_ci    double result;
640233eb0b6dSopenharmony_ci
640333eb0b6dSopenharmony_ci    napi_status status = napi_create_object(env, &date);
640433eb0b6dSopenharmony_ci    status = napi_get_date_value(env, date, &result);
640533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_date_expected);
640633eb0b6dSopenharmony_ci}
640733eb0b6dSopenharmony_ci
640833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateBigintInt64Test001, testing::ext::TestSize.Level1)
640933eb0b6dSopenharmony_ci{
641033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
641133eb0b6dSopenharmony_ci    int64_t value = INT_ONE;
641233eb0b6dSopenharmony_ci    napi_value* result = nullptr;
641333eb0b6dSopenharmony_ci
641433eb0b6dSopenharmony_ci    napi_status status = napi_create_bigint_int64(env, value, result);
641533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
641633eb0b6dSopenharmony_ci}
641733eb0b6dSopenharmony_ci
641833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateBigintUint64Test001, testing::ext::TestSize.Level1)
641933eb0b6dSopenharmony_ci{
642033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
642133eb0b6dSopenharmony_ci    int64_t value = INT_ONE;
642233eb0b6dSopenharmony_ci    napi_value* result = nullptr;
642333eb0b6dSopenharmony_ci
642433eb0b6dSopenharmony_ci    napi_status status = napi_create_bigint_uint64(env, value, result);
642533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
642633eb0b6dSopenharmony_ci}
642733eb0b6dSopenharmony_ci
642833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateBigintWordsTest001, testing::ext::TestSize.Level1)
642933eb0b6dSopenharmony_ci{
643033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
643133eb0b6dSopenharmony_ci    int signBit = 0;
643233eb0b6dSopenharmony_ci    size_t wordCount = 4;
643333eb0b6dSopenharmony_ci    uint64_t* words = nullptr;
643433eb0b6dSopenharmony_ci    napi_value result = nullptr;
643533eb0b6dSopenharmony_ci
643633eb0b6dSopenharmony_ci    napi_status status = napi_create_bigint_words(env, signBit, wordCount, words, &result);
643733eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
643833eb0b6dSopenharmony_ci}
643933eb0b6dSopenharmony_ci
644033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateBigintWordsTest002, testing::ext::TestSize.Level1)
644133eb0b6dSopenharmony_ci{
644233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
644333eb0b6dSopenharmony_ci    int signBit = 0;
644433eb0b6dSopenharmony_ci    size_t wordCount = 4;
644533eb0b6dSopenharmony_ci    uint64_t words[] = {0ULL, 34ULL, 56ULL, 2ULL};
644633eb0b6dSopenharmony_ci    napi_value* result = nullptr;
644733eb0b6dSopenharmony_ci
644833eb0b6dSopenharmony_ci    napi_status status = napi_create_bigint_words(env, signBit, wordCount, words, result);
644933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
645033eb0b6dSopenharmony_ci}
645133eb0b6dSopenharmony_ci
645233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueBigintInt64Test001, testing::ext::TestSize.Level1)
645333eb0b6dSopenharmony_ci{
645433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
645533eb0b6dSopenharmony_ci    napi_value value = nullptr;
645633eb0b6dSopenharmony_ci    int64_t result = 0;
645733eb0b6dSopenharmony_ci    bool lossless = false;
645833eb0b6dSopenharmony_ci
645933eb0b6dSopenharmony_ci    napi_status status = napi_get_value_bigint_int64(env, value, &result, &lossless);
646033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
646133eb0b6dSopenharmony_ci}
646233eb0b6dSopenharmony_ci
646333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueBigintInt64Test002, testing::ext::TestSize.Level1)
646433eb0b6dSopenharmony_ci{
646533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
646633eb0b6dSopenharmony_ci    int64_t testValue = INT64_MAX;
646733eb0b6dSopenharmony_ci    napi_value value = nullptr;
646833eb0b6dSopenharmony_ci    napi_create_bigint_int64(env, testValue, &value);
646933eb0b6dSopenharmony_ci    int64_t* result = nullptr;
647033eb0b6dSopenharmony_ci    bool lossless = false;
647133eb0b6dSopenharmony_ci
647233eb0b6dSopenharmony_ci    napi_status status = napi_get_value_bigint_int64(env, value, result, &lossless);
647333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
647433eb0b6dSopenharmony_ci}
647533eb0b6dSopenharmony_ci
647633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueBigintInt64Test003, testing::ext::TestSize.Level1)
647733eb0b6dSopenharmony_ci{
647833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
647933eb0b6dSopenharmony_ci    int64_t testValue = INT64_MAX;
648033eb0b6dSopenharmony_ci    napi_value value = nullptr;
648133eb0b6dSopenharmony_ci    napi_create_bigint_int64(env, testValue, &value);
648233eb0b6dSopenharmony_ci    int64_t result = 0;
648333eb0b6dSopenharmony_ci    bool* lossless = nullptr;
648433eb0b6dSopenharmony_ci
648533eb0b6dSopenharmony_ci    napi_status status = napi_get_value_bigint_int64(env, value, &result, lossless);
648633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
648733eb0b6dSopenharmony_ci}
648833eb0b6dSopenharmony_ci
648933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueBigintInt64Test004, testing::ext::TestSize.Level1)
649033eb0b6dSopenharmony_ci{
649133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
649233eb0b6dSopenharmony_ci    napi_value value = nullptr;
649333eb0b6dSopenharmony_ci    napi_create_object(env, &value);
649433eb0b6dSopenharmony_ci    int64_t result = 0;
649533eb0b6dSopenharmony_ci    bool lossless = false;
649633eb0b6dSopenharmony_ci
649733eb0b6dSopenharmony_ci    napi_status status = napi_get_value_bigint_int64(env, value, &result, &lossless);
649833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_bigint_expected);
649933eb0b6dSopenharmony_ci}
650033eb0b6dSopenharmony_ci
650133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueBigintInt64Test005, testing::ext::TestSize.Level1)
650233eb0b6dSopenharmony_ci{
650333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
650433eb0b6dSopenharmony_ci    uint64_t testValue = UINT64_MAX;
650533eb0b6dSopenharmony_ci    napi_value value = nullptr;
650633eb0b6dSopenharmony_ci    napi_create_bigint_uint64(env, testValue, &value);
650733eb0b6dSopenharmony_ci    int64_t result = 0;
650833eb0b6dSopenharmony_ci    bool lossless = false;
650933eb0b6dSopenharmony_ci
651033eb0b6dSopenharmony_ci    napi_status status = napi_get_value_bigint_int64(env, value, &result, &lossless);
651133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
651233eb0b6dSopenharmony_ci    ASSERT_EQ(lossless, false);
651333eb0b6dSopenharmony_ci}
651433eb0b6dSopenharmony_ci
651533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueBigintUint64Test001, testing::ext::TestSize.Level1)
651633eb0b6dSopenharmony_ci{
651733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
651833eb0b6dSopenharmony_ci    napi_value value = nullptr;
651933eb0b6dSopenharmony_ci    uint64_t result = 0;
652033eb0b6dSopenharmony_ci    bool lossless = false;
652133eb0b6dSopenharmony_ci
652233eb0b6dSopenharmony_ci    napi_status status = napi_get_value_bigint_uint64(env, value, &result, &lossless);
652333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
652433eb0b6dSopenharmony_ci}
652533eb0b6dSopenharmony_ci
652633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueBigintUint64Test002, testing::ext::TestSize.Level1)
652733eb0b6dSopenharmony_ci{
652833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
652933eb0b6dSopenharmony_ci    uint64_t testValue = UINT64_MAX;
653033eb0b6dSopenharmony_ci    napi_value value = nullptr;
653133eb0b6dSopenharmony_ci    napi_create_bigint_uint64(env, testValue, &value);
653233eb0b6dSopenharmony_ci    uint64_t* result = nullptr;
653333eb0b6dSopenharmony_ci    bool lossless = false;
653433eb0b6dSopenharmony_ci
653533eb0b6dSopenharmony_ci    napi_status status = napi_get_value_bigint_uint64(env, value, result, &lossless);
653633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
653733eb0b6dSopenharmony_ci}
653833eb0b6dSopenharmony_ci
653933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueBigintUint64Test003, testing::ext::TestSize.Level1)
654033eb0b6dSopenharmony_ci{
654133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
654233eb0b6dSopenharmony_ci    uint64_t testValue = UINT64_MAX;
654333eb0b6dSopenharmony_ci    napi_value value = nullptr;
654433eb0b6dSopenharmony_ci    napi_create_bigint_uint64(env, testValue, &value);
654533eb0b6dSopenharmony_ci    uint64_t result = 0;
654633eb0b6dSopenharmony_ci    bool* lossless = nullptr;
654733eb0b6dSopenharmony_ci
654833eb0b6dSopenharmony_ci    napi_status status = napi_get_value_bigint_uint64(env, value, &result, lossless);
654933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
655033eb0b6dSopenharmony_ci}
655133eb0b6dSopenharmony_ci
655233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueBigintUint64Test004, testing::ext::TestSize.Level1)
655333eb0b6dSopenharmony_ci{
655433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
655533eb0b6dSopenharmony_ci    napi_value value = nullptr;
655633eb0b6dSopenharmony_ci    napi_create_object(env, &value);
655733eb0b6dSopenharmony_ci    uint64_t result = 0;
655833eb0b6dSopenharmony_ci    bool lossless = false;
655933eb0b6dSopenharmony_ci
656033eb0b6dSopenharmony_ci    napi_status status = napi_get_value_bigint_uint64(env, value, &result, &lossless);
656133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_bigint_expected);
656233eb0b6dSopenharmony_ci}
656333eb0b6dSopenharmony_ci
656433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueBigintWordsTest001, testing::ext::TestSize.Level1)
656533eb0b6dSopenharmony_ci{
656633eb0b6dSopenharmony_ci    uint64_t wordsOut[] = {0ULL, 0ULL, 0ULL, 0ULL};
656733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
656833eb0b6dSopenharmony_ci    napi_value value = nullptr;
656933eb0b6dSopenharmony_ci
657033eb0b6dSopenharmony_ci    int retSignBit = -1;
657133eb0b6dSopenharmony_ci    size_t retWordCount = 4;
657233eb0b6dSopenharmony_ci    napi_status status = napi_get_value_bigint_words(env, value, &retSignBit, &retWordCount, wordsOut);
657333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
657433eb0b6dSopenharmony_ci}
657533eb0b6dSopenharmony_ci
657633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueBigintWordsTest002, testing::ext::TestSize.Level1)
657733eb0b6dSopenharmony_ci{
657833eb0b6dSopenharmony_ci    int signBit = 0;
657933eb0b6dSopenharmony_ci    size_t wordCount = 4;
658033eb0b6dSopenharmony_ci    uint64_t words[] = {0ULL, 34ULL, 56ULL, 2ULL};
658133eb0b6dSopenharmony_ci    uint64_t wordsOut[] = {0ULL, 0ULL, 0ULL, 0ULL};
658233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
658333eb0b6dSopenharmony_ci    napi_value value = nullptr;
658433eb0b6dSopenharmony_ci    napi_status status = napi_create_bigint_words(env, signBit, wordCount, words, &value);
658533eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
658633eb0b6dSopenharmony_ci
658733eb0b6dSopenharmony_ci    int retSignBit = -1;
658833eb0b6dSopenharmony_ci    size_t* retWordCount = nullptr;
658933eb0b6dSopenharmony_ci    status = napi_get_value_bigint_words(env, value, &retSignBit, retWordCount, wordsOut);
659033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
659133eb0b6dSopenharmony_ci}
659233eb0b6dSopenharmony_ci
659333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateBufferTest001, testing::ext::TestSize.Level1)
659433eb0b6dSopenharmony_ci{
659533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
659633eb0b6dSopenharmony_ci    const unsigned int bufferSize = sizeof(TEST_STRING);
659733eb0b6dSopenharmony_ci    char** data = nullptr;
659833eb0b6dSopenharmony_ci    napi_value result;
659933eb0b6dSopenharmony_ci    napi_status status = napi_create_buffer(env, bufferSize, (void**)(data), &result);
660033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
660133eb0b6dSopenharmony_ci}
660233eb0b6dSopenharmony_ci
660333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateBufferTest002, testing::ext::TestSize.Level1)
660433eb0b6dSopenharmony_ci{
660533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
660633eb0b6dSopenharmony_ci    const unsigned int bufferSize = sizeof(TEST_STRING);
660733eb0b6dSopenharmony_ci    char* data;
660833eb0b6dSopenharmony_ci    napi_value* result = nullptr;
660933eb0b6dSopenharmony_ci    napi_status status = napi_create_buffer(env, bufferSize, (void**)(&data), result);
661033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
661133eb0b6dSopenharmony_ci}
661233eb0b6dSopenharmony_ci
661333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateBufferTest003, testing::ext::TestSize.Level1)
661433eb0b6dSopenharmony_ci{
661533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
661633eb0b6dSopenharmony_ci    const unsigned int bufferSize = 0;
661733eb0b6dSopenharmony_ci    char* data;
661833eb0b6dSopenharmony_ci    napi_value result;
661933eb0b6dSopenharmony_ci    napi_status status = napi_create_buffer(env, bufferSize, (void**)(&data), &result);
662033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
662133eb0b6dSopenharmony_ci}
662233eb0b6dSopenharmony_ci
662333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateBufferTest004, testing::ext::TestSize.Level1)
662433eb0b6dSopenharmony_ci{
662533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
662633eb0b6dSopenharmony_ci    const unsigned int bufferSize = MAX_BYTE_LENGTH + 1;
662733eb0b6dSopenharmony_ci    char* data;
662833eb0b6dSopenharmony_ci    napi_value result;
662933eb0b6dSopenharmony_ci    napi_status status = napi_create_buffer(env, bufferSize, (void**)(&data), &result);
663033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
663133eb0b6dSopenharmony_ci}
663233eb0b6dSopenharmony_ci
663333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateBufferCopyTest001, testing::ext::TestSize.Level1)
663433eb0b6dSopenharmony_ci{
663533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
663633eb0b6dSopenharmony_ci    const unsigned int bufferSize = 0;
663733eb0b6dSopenharmony_ci    char* data;
663833eb0b6dSopenharmony_ci    napi_value result;
663933eb0b6dSopenharmony_ci    napi_status status = napi_create_buffer_copy(env, bufferSize, TEST_STRING, (void**)(&data), &result);
664033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
664133eb0b6dSopenharmony_ci}
664233eb0b6dSopenharmony_ci
664333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateBufferCopyTest002, testing::ext::TestSize.Level1)
664433eb0b6dSopenharmony_ci{
664533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
664633eb0b6dSopenharmony_ci    const unsigned int bufferSize = MAX_BYTE_LENGTH + 1;
664733eb0b6dSopenharmony_ci    char* data;
664833eb0b6dSopenharmony_ci    napi_value result;
664933eb0b6dSopenharmony_ci    napi_status status = napi_create_buffer_copy(env, bufferSize, TEST_STRING, (void**)(&data), &result);
665033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
665133eb0b6dSopenharmony_ci}
665233eb0b6dSopenharmony_ci
665333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateBufferCopyTest003, testing::ext::TestSize.Level1)
665433eb0b6dSopenharmony_ci{
665533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
665633eb0b6dSopenharmony_ci    const unsigned int bufferSize = sizeof(TEST_STRING);
665733eb0b6dSopenharmony_ci    char* data;
665833eb0b6dSopenharmony_ci    napi_value result;
665933eb0b6dSopenharmony_ci    napi_status status = napi_create_buffer_copy(env, bufferSize, nullptr, (void**)(&data), &result);
666033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
666133eb0b6dSopenharmony_ci}
666233eb0b6dSopenharmony_ci
666333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateBufferCopyTest004, testing::ext::TestSize.Level1)
666433eb0b6dSopenharmony_ci{
666533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
666633eb0b6dSopenharmony_ci    const unsigned int bufferSize = sizeof(TEST_STRING);
666733eb0b6dSopenharmony_ci    char** data = nullptr;
666833eb0b6dSopenharmony_ci    napi_value result;
666933eb0b6dSopenharmony_ci    napi_status status = napi_create_buffer_copy(env, bufferSize, TEST_STRING, (void**)(data), &result);
667033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
667133eb0b6dSopenharmony_ci}
667233eb0b6dSopenharmony_ci
667333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateBufferCopyTest005, testing::ext::TestSize.Level1)
667433eb0b6dSopenharmony_ci{
667533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
667633eb0b6dSopenharmony_ci    const unsigned int bufferSize = sizeof(TEST_STRING);
667733eb0b6dSopenharmony_ci    char* data;
667833eb0b6dSopenharmony_ci    napi_value* result = nullptr;
667933eb0b6dSopenharmony_ci    napi_status status = napi_create_buffer_copy(env, bufferSize, TEST_STRING, (void**)(&data), result);
668033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
668133eb0b6dSopenharmony_ci}
668233eb0b6dSopenharmony_ci
668333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateExternalBufferTest001, testing::ext::TestSize.Level1)
668433eb0b6dSopenharmony_ci{
668533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
668633eb0b6dSopenharmony_ci    const unsigned int bufferSize = 0;
668733eb0b6dSopenharmony_ci    char* copyPtr = strdup(TEST_STRING);
668833eb0b6dSopenharmony_ci    napi_value result;
668933eb0b6dSopenharmony_ci    napi_status status = napi_create_external_buffer(env, bufferSize, copyPtr,
669033eb0b6dSopenharmony_ci        [](napi_env env, void* data, void* hint) { return; },
669133eb0b6dSopenharmony_ci        nullptr, &result);
669233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
669333eb0b6dSopenharmony_ci}
669433eb0b6dSopenharmony_ci
669533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateExternalBufferTest002, testing::ext::TestSize.Level1)
669633eb0b6dSopenharmony_ci{
669733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
669833eb0b6dSopenharmony_ci    const unsigned int bufferSize = MAX_BYTE_LENGTH + 1;
669933eb0b6dSopenharmony_ci    char* copyPtr = strdup(TEST_STRING);
670033eb0b6dSopenharmony_ci    napi_value result;
670133eb0b6dSopenharmony_ci    napi_status status = napi_create_external_buffer(env, bufferSize, copyPtr,
670233eb0b6dSopenharmony_ci        [](napi_env env, void* data, void* hint) { return; },
670333eb0b6dSopenharmony_ci        nullptr, &result);
670433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
670533eb0b6dSopenharmony_ci}
670633eb0b6dSopenharmony_ci
670733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateExternalBufferTest003, testing::ext::TestSize.Level1)
670833eb0b6dSopenharmony_ci{
670933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
671033eb0b6dSopenharmony_ci    const unsigned int bufferSize = sizeof(TEST_STRING);
671133eb0b6dSopenharmony_ci    char* copyPtr = nullptr;
671233eb0b6dSopenharmony_ci    napi_value result;
671333eb0b6dSopenharmony_ci    napi_status status = napi_create_external_buffer(env, bufferSize, copyPtr,
671433eb0b6dSopenharmony_ci        [](napi_env env, void* data, void* hint) { return; },
671533eb0b6dSopenharmony_ci        nullptr, &result);
671633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
671733eb0b6dSopenharmony_ci}
671833eb0b6dSopenharmony_ci
671933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateExternalBufferTest004, testing::ext::TestSize.Level1)
672033eb0b6dSopenharmony_ci{
672133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
672233eb0b6dSopenharmony_ci    const unsigned int bufferSize = sizeof(TEST_STRING);
672333eb0b6dSopenharmony_ci    char* copyPtr = strdup(TEST_STRING);
672433eb0b6dSopenharmony_ci    napi_value* result = nullptr;
672533eb0b6dSopenharmony_ci    napi_status status = napi_create_external_buffer(env, bufferSize, copyPtr,
672633eb0b6dSopenharmony_ci        [](napi_env env, void* data, void* hint) { return; },
672733eb0b6dSopenharmony_ci        nullptr, result);
672833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
672933eb0b6dSopenharmony_ci}
673033eb0b6dSopenharmony_ci
673133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetBufferInfoTest001, testing::ext::TestSize.Level1)
673233eb0b6dSopenharmony_ci{
673333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
673433eb0b6dSopenharmony_ci    napi_value value = nullptr;
673533eb0b6dSopenharmony_ci    char *data;
673633eb0b6dSopenharmony_ci    size_t length;
673733eb0b6dSopenharmony_ci
673833eb0b6dSopenharmony_ci    napi_status status = napi_get_buffer_info(env, value, (void**)&data, &length);
673933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
674033eb0b6dSopenharmony_ci}
674133eb0b6dSopenharmony_ci
674233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetBufferInfoTest002, testing::ext::TestSize.Level1)
674333eb0b6dSopenharmony_ci{
674433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
674533eb0b6dSopenharmony_ci    napi_value value = nullptr;
674633eb0b6dSopenharmony_ci    char *data;
674733eb0b6dSopenharmony_ci    size_t length;
674833eb0b6dSopenharmony_ci
674933eb0b6dSopenharmony_ci    napi_create_double(env, TEST_DOUBLE, &value);
675033eb0b6dSopenharmony_ci    napi_status status = napi_get_buffer_info(env, value, (void**)&data, &length);
675133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_arraybuffer_expected);
675233eb0b6dSopenharmony_ci}
675333eb0b6dSopenharmony_ci
675433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsBufferTest001, testing::ext::TestSize.Level1)
675533eb0b6dSopenharmony_ci{
675633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
675733eb0b6dSopenharmony_ci    napi_value value = nullptr;
675833eb0b6dSopenharmony_ci    bool result;
675933eb0b6dSopenharmony_ci
676033eb0b6dSopenharmony_ci    napi_status status = napi_is_buffer(env, value, &result);
676133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
676233eb0b6dSopenharmony_ci}
676333eb0b6dSopenharmony_ci
676433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsBufferTest002, testing::ext::TestSize.Level1)
676533eb0b6dSopenharmony_ci{
676633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
676733eb0b6dSopenharmony_ci    napi_value value;
676833eb0b6dSopenharmony_ci    bool* result = nullptr;
676933eb0b6dSopenharmony_ci
677033eb0b6dSopenharmony_ci    napi_create_object(env, &value);
677133eb0b6dSopenharmony_ci    napi_status status = napi_is_buffer(env, value, result);
677233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
677333eb0b6dSopenharmony_ci}
677433eb0b6dSopenharmony_ci
677533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDeserializeTest001, testing::ext::TestSize.Level1)
677633eb0b6dSopenharmony_ci{
677733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
677833eb0b6dSopenharmony_ci    void* buffer = nullptr;
677933eb0b6dSopenharmony_ci    napi_value result = nullptr;
678033eb0b6dSopenharmony_ci
678133eb0b6dSopenharmony_ci    napi_status status = napi_deserialize(env, buffer, &result);
678233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
678333eb0b6dSopenharmony_ci}
678433eb0b6dSopenharmony_ci
678533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDeserializeTest002, testing::ext::TestSize.Level1)
678633eb0b6dSopenharmony_ci{
678733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
678833eb0b6dSopenharmony_ci    int buffer = 0;
678933eb0b6dSopenharmony_ci    napi_value* result = nullptr;
679033eb0b6dSopenharmony_ci
679133eb0b6dSopenharmony_ci    napi_status status = napi_deserialize(env, (void*)&buffer, result);
679233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
679333eb0b6dSopenharmony_ci}
679433eb0b6dSopenharmony_ci
679533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDeleteSerializationDataTest001, testing::ext::TestSize.Level1)
679633eb0b6dSopenharmony_ci{
679733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
679833eb0b6dSopenharmony_ci    void* buffer = nullptr;
679933eb0b6dSopenharmony_ci
680033eb0b6dSopenharmony_ci    napi_status status = napi_delete_serialization_data(env, buffer);
680133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
680233eb0b6dSopenharmony_ci}
680333eb0b6dSopenharmony_ci
680433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCallThreadsafeFunctionWithPriorityTest001, testing::ext::TestSize.Level1)
680533eb0b6dSopenharmony_ci{
680633eb0b6dSopenharmony_ci    napi_threadsafe_function func = nullptr;
680733eb0b6dSopenharmony_ci
680833eb0b6dSopenharmony_ci    napi_status status = napi_call_threadsafe_function_with_priority(func, nullptr, napi_priority_idle, true);
680933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
681033eb0b6dSopenharmony_ci}
681133eb0b6dSopenharmony_ci
681233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsSendableTest001, testing::ext::TestSize.Level1)
681333eb0b6dSopenharmony_ci{
681433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
681533eb0b6dSopenharmony_ci    napi_value value = nullptr;
681633eb0b6dSopenharmony_ci    bool result;
681733eb0b6dSopenharmony_ci
681833eb0b6dSopenharmony_ci    napi_status status = napi_is_sendable(env, value, &result);
681933eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
682033eb0b6dSopenharmony_ci}
682133eb0b6dSopenharmony_ci
682233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsSendableTest002, testing::ext::TestSize.Level1)
682333eb0b6dSopenharmony_ci{
682433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
682533eb0b6dSopenharmony_ci    napi_value value;
682633eb0b6dSopenharmony_ci    bool* result = nullptr;
682733eb0b6dSopenharmony_ci
682833eb0b6dSopenharmony_ci    napi_create_object(env, &value);
682933eb0b6dSopenharmony_ci    napi_status status = napi_is_sendable(env, value, result);
683033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
683133eb0b6dSopenharmony_ci}
683233eb0b6dSopenharmony_ci
683333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDefineSendableClassTest001, testing::ext::TestSize.Level1)
683433eb0b6dSopenharmony_ci{
683533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
683633eb0b6dSopenharmony_ci    napi_value testClass = nullptr;
683733eb0b6dSopenharmony_ci    napi_status status = napi_define_sendable_class(
683833eb0b6dSopenharmony_ci        env, nullptr, NAPI_AUTO_LENGTH,
683933eb0b6dSopenharmony_ci        [](napi_env env, napi_callback_info info) -> napi_value {
684033eb0b6dSopenharmony_ci            napi_value thisVar = nullptr;
684133eb0b6dSopenharmony_ci            napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr);
684233eb0b6dSopenharmony_ci
684333eb0b6dSopenharmony_ci            return thisVar;
684433eb0b6dSopenharmony_ci        },
684533eb0b6dSopenharmony_ci        nullptr, 0, nullptr, nullptr, &testClass);
684633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
684733eb0b6dSopenharmony_ci}
684833eb0b6dSopenharmony_ci
684933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDefineSendableClassTest002, testing::ext::TestSize.Level1)
685033eb0b6dSopenharmony_ci{
685133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
685233eb0b6dSopenharmony_ci    napi_value testClass = nullptr;
685333eb0b6dSopenharmony_ci    napi_status status = napi_define_sendable_class(
685433eb0b6dSopenharmony_ci        env, "TestClass", NAPI_AUTO_LENGTH,
685533eb0b6dSopenharmony_ci        nullptr, nullptr, 0, nullptr, nullptr, &testClass);
685633eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
685733eb0b6dSopenharmony_ci}
685833eb0b6dSopenharmony_ci
685933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDefineSendableClassTest003, testing::ext::TestSize.Level1)
686033eb0b6dSopenharmony_ci{
686133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
686233eb0b6dSopenharmony_ci    napi_value testClass = nullptr;
686333eb0b6dSopenharmony_ci    napi_status status = napi_define_sendable_class(
686433eb0b6dSopenharmony_ci        env, "TestClass", NAPI_AUTO_LENGTH,
686533eb0b6dSopenharmony_ci        [](napi_env env, napi_callback_info info) -> napi_value {
686633eb0b6dSopenharmony_ci            napi_value thisVar = nullptr;
686733eb0b6dSopenharmony_ci            napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr);
686833eb0b6dSopenharmony_ci
686933eb0b6dSopenharmony_ci            return thisVar;
687033eb0b6dSopenharmony_ci        },
687133eb0b6dSopenharmony_ci        nullptr, 1, nullptr, nullptr, &testClass);
687233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
687333eb0b6dSopenharmony_ci}
687433eb0b6dSopenharmony_ci
687533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDefineSendableClassTest004, testing::ext::TestSize.Level1)
687633eb0b6dSopenharmony_ci{
687733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
687833eb0b6dSopenharmony_ci    napi_value* testClass = nullptr;
687933eb0b6dSopenharmony_ci    napi_status status = napi_define_sendable_class(
688033eb0b6dSopenharmony_ci        env, "TestClass", NAPI_AUTO_LENGTH,
688133eb0b6dSopenharmony_ci        [](napi_env env, napi_callback_info info) -> napi_value {
688233eb0b6dSopenharmony_ci            napi_value thisVar = nullptr;
688333eb0b6dSopenharmony_ci            napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, nullptr);
688433eb0b6dSopenharmony_ci
688533eb0b6dSopenharmony_ci            return thisVar;
688633eb0b6dSopenharmony_ci        },
688733eb0b6dSopenharmony_ci        nullptr, 0, nullptr, nullptr, testClass);
688833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
688933eb0b6dSopenharmony_ci}
689033eb0b6dSopenharmony_ci
689133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateSendableObjectWithPropertiesTest001, testing::ext::TestSize.Level1)
689233eb0b6dSopenharmony_ci{
689333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
689433eb0b6dSopenharmony_ci    napi_value val_true;
689533eb0b6dSopenharmony_ci    napi_get_boolean(env, true, &val_true);
689633eb0b6dSopenharmony_ci    napi_property_descriptor desc[] = {
689733eb0b6dSopenharmony_ci        DECLARE_NAPI_DEFAULT_PROPERTY("x", val_true),
689833eb0b6dSopenharmony_ci    };
689933eb0b6dSopenharmony_ci    napi_value* result = nullptr;
690033eb0b6dSopenharmony_ci
690133eb0b6dSopenharmony_ci    napi_status status = napi_create_sendable_object_with_properties(env, 1, desc, result);
690233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
690333eb0b6dSopenharmony_ci}
690433eb0b6dSopenharmony_ci
690533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateSendableArrayTest001, testing::ext::TestSize.Level1)
690633eb0b6dSopenharmony_ci{
690733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
690833eb0b6dSopenharmony_ci    napi_value* result = nullptr;
690933eb0b6dSopenharmony_ci
691033eb0b6dSopenharmony_ci    napi_status status = napi_create_sendable_array(env, result);
691133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
691233eb0b6dSopenharmony_ci}
691333eb0b6dSopenharmony_ci
691433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateSendableArrayWithLengthTest001, testing::ext::TestSize.Level1)
691533eb0b6dSopenharmony_ci{
691633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
691733eb0b6dSopenharmony_ci    size_t length = INT_ONE;
691833eb0b6dSopenharmony_ci    napi_value* result = nullptr;
691933eb0b6dSopenharmony_ci
692033eb0b6dSopenharmony_ci    napi_status status = napi_create_sendable_array_with_length(env, length, result);
692133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
692233eb0b6dSopenharmony_ci}
692333eb0b6dSopenharmony_ci
692433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateSendableArraybufferTest001, testing::ext::TestSize.Level1)
692533eb0b6dSopenharmony_ci{
692633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
692733eb0b6dSopenharmony_ci    size_t length = INT_ONE;
692833eb0b6dSopenharmony_ci    void** data = nullptr;
692933eb0b6dSopenharmony_ci    napi_value result;
693033eb0b6dSopenharmony_ci
693133eb0b6dSopenharmony_ci    napi_status status = napi_create_sendable_arraybuffer(env, length, data, &result);
693233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
693333eb0b6dSopenharmony_ci}
693433eb0b6dSopenharmony_ci
693533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateSendableArraybufferTest002, testing::ext::TestSize.Level1)
693633eb0b6dSopenharmony_ci{
693733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
693833eb0b6dSopenharmony_ci    size_t length = INT_ONE;
693933eb0b6dSopenharmony_ci    void* data;
694033eb0b6dSopenharmony_ci    napi_value* result = nullptr;
694133eb0b6dSopenharmony_ci
694233eb0b6dSopenharmony_ci    napi_status status = napi_create_sendable_arraybuffer(env, length, &data, result);
694333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
694433eb0b6dSopenharmony_ci}
694533eb0b6dSopenharmony_ci
694633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateSendableTypedarrayTest001, testing::ext::TestSize.Level1)
694733eb0b6dSopenharmony_ci{
694833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
694933eb0b6dSopenharmony_ci    napi_value arraybuffer = nullptr;
695033eb0b6dSopenharmony_ci    void* arrayBufferPtr = nullptr;
695133eb0b6dSopenharmony_ci    size_t arrayBufferSize = 16;
695233eb0b6dSopenharmony_ci    size_t typedArrayLength = 4;
695333eb0b6dSopenharmony_ci    napi_status status = napi_create_sendable_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arraybuffer);
695433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_ok);
695533eb0b6dSopenharmony_ci
695633eb0b6dSopenharmony_ci    napi_value* result = nullptr;
695733eb0b6dSopenharmony_ci    status = napi_create_sendable_typedarray(env, napi_int32_array, typedArrayLength, arraybuffer, 0, result);
695833eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
695933eb0b6dSopenharmony_ci}
696033eb0b6dSopenharmony_ci
696133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateSendableTypedarrayTest002, testing::ext::TestSize.Level1)
696233eb0b6dSopenharmony_ci{
696333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
696433eb0b6dSopenharmony_ci    napi_value arraybuffer = nullptr;
696533eb0b6dSopenharmony_ci    size_t typedArrayLength = 4;
696633eb0b6dSopenharmony_ci
696733eb0b6dSopenharmony_ci    napi_value result;
696833eb0b6dSopenharmony_ci    napi_status status = napi_create_sendable_typedarray(env, napi_int32_array, typedArrayLength,
696933eb0b6dSopenharmony_ci        arraybuffer, 0, &result);
697033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
697133eb0b6dSopenharmony_ci}
697233eb0b6dSopenharmony_ci
697333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiWrapSendableTest001, testing::ext::TestSize.Level1)
697433eb0b6dSopenharmony_ci{
697533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
697633eb0b6dSopenharmony_ci    napi_value js_obj = nullptr;
697733eb0b6dSopenharmony_ci
697833eb0b6dSopenharmony_ci    napi_status status = napi_wrap_sendable(
697933eb0b6dSopenharmony_ci        env, js_obj, (void*)TEST_STRING, [](napi_env env, void* data, void* hint) {}, nullptr);
698033eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
698133eb0b6dSopenharmony_ci}
698233eb0b6dSopenharmony_ci
698333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiWrapSendableTest002, testing::ext::TestSize.Level1)
698433eb0b6dSopenharmony_ci{
698533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
698633eb0b6dSopenharmony_ci    napi_value js_obj = nullptr;
698733eb0b6dSopenharmony_ci
698833eb0b6dSopenharmony_ci    napi_status status = napi_create_object(env, &js_obj);
698933eb0b6dSopenharmony_ci    status = napi_wrap_sendable(
699033eb0b6dSopenharmony_ci        env, js_obj, nullptr, [](napi_env env, void* data, void* hint) {}, nullptr);
699133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
699233eb0b6dSopenharmony_ci}
699333eb0b6dSopenharmony_ci
699433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiWrapSendableWithSizeTest001, testing::ext::TestSize.Level1)
699533eb0b6dSopenharmony_ci{
699633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
699733eb0b6dSopenharmony_ci    napi_value js_obj = nullptr;
699833eb0b6dSopenharmony_ci
699933eb0b6dSopenharmony_ci    napi_status status = napi_wrap_sendable_with_size(
700033eb0b6dSopenharmony_ci        env, js_obj, (void*)TEST_STRING, [](napi_env env, void* data, void* hint) {}, nullptr, INT_ONE);
700133eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
700233eb0b6dSopenharmony_ci}
700333eb0b6dSopenharmony_ci
700433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiWrapSendableWithSizeTest002, testing::ext::TestSize.Level1)
700533eb0b6dSopenharmony_ci{
700633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
700733eb0b6dSopenharmony_ci    napi_value js_obj = nullptr;
700833eb0b6dSopenharmony_ci
700933eb0b6dSopenharmony_ci    napi_status status = napi_create_object(env, &js_obj);
701033eb0b6dSopenharmony_ci    status = napi_wrap_sendable_with_size(
701133eb0b6dSopenharmony_ci        env, js_obj, nullptr, [](napi_env env, void* data, void* hint) {}, nullptr, INT_ONE);
701233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
701333eb0b6dSopenharmony_ci}
701433eb0b6dSopenharmony_ci
701533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiUnwrapSendableTest001, testing::ext::TestSize.Level1)
701633eb0b6dSopenharmony_ci{
701733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
701833eb0b6dSopenharmony_ci    napi_value js_obj = nullptr;
701933eb0b6dSopenharmony_ci    void* result;
702033eb0b6dSopenharmony_ci
702133eb0b6dSopenharmony_ci    napi_status status = napi_unwrap_sendable(env, js_obj, &result);
702233eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
702333eb0b6dSopenharmony_ci}
702433eb0b6dSopenharmony_ci
702533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiUnwrapSendableTest002, testing::ext::TestSize.Level1)
702633eb0b6dSopenharmony_ci{
702733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
702833eb0b6dSopenharmony_ci    napi_value js_obj;
702933eb0b6dSopenharmony_ci    void** result = nullptr;
703033eb0b6dSopenharmony_ci
703133eb0b6dSopenharmony_ci    napi_status status = napi_create_object(env, &js_obj);
703233eb0b6dSopenharmony_ci    status = napi_unwrap_sendable(env, js_obj, result);
703333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
703433eb0b6dSopenharmony_ci}
703533eb0b6dSopenharmony_ci
703633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRemoveWrapSendableTest001, testing::ext::TestSize.Level1)
703733eb0b6dSopenharmony_ci{
703833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
703933eb0b6dSopenharmony_ci    napi_value js_obj = nullptr;
704033eb0b6dSopenharmony_ci    void* result;
704133eb0b6dSopenharmony_ci
704233eb0b6dSopenharmony_ci    napi_status status = napi_remove_wrap_sendable(env, js_obj, &result);
704333eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
704433eb0b6dSopenharmony_ci}
704533eb0b6dSopenharmony_ci
704633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRemoveWrapSendableTest002, testing::ext::TestSize.Level1)
704733eb0b6dSopenharmony_ci{
704833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
704933eb0b6dSopenharmony_ci    napi_value js_obj;
705033eb0b6dSopenharmony_ci    void** result = nullptr;
705133eb0b6dSopenharmony_ci
705233eb0b6dSopenharmony_ci    napi_status status = napi_create_object(env, &js_obj);
705333eb0b6dSopenharmony_ci    status = napi_remove_wrap_sendable(env, js_obj, result);
705433eb0b6dSopenharmony_ci    ASSERT_EQ(status, napi_invalid_arg);
705533eb0b6dSopenharmony_ci}
705633eb0b6dSopenharmony_ci
705733eb0b6dSopenharmony_ci/**
705833eb0b6dSopenharmony_ci * @tc.name: NapiModuleRegisterTest
705933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_module_register
706033eb0b6dSopenharmony_ci * @tc.type: FUNC
706133eb0b6dSopenharmony_ci */
706233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiModuleRegisterTest001, testing::ext::TestSize.Level1)
706333eb0b6dSopenharmony_ci{
706433eb0b6dSopenharmony_ci    // call napi_module_register interface with nullptr error
706533eb0b6dSopenharmony_ci    napi_module_register(nullptr);
706633eb0b6dSopenharmony_ci}
706733eb0b6dSopenharmony_ci
706833eb0b6dSopenharmony_ci/**
706933eb0b6dSopenharmony_ci * @tc.name: NapiGetLastErrorInfoTest
707033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_last_error_info
707133eb0b6dSopenharmony_ci * @tc.type: FUNC
707233eb0b6dSopenharmony_ci */
707333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetLastErrorInfoTest001, testing::ext::TestSize.Level1)
707433eb0b6dSopenharmony_ci{
707533eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
707633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
707733eb0b6dSopenharmony_ci
707833eb0b6dSopenharmony_ci    // call napi_get_last_error_info interface with nullptr error
707933eb0b6dSopenharmony_ci    auto res = napi_get_last_error_info(env, nullptr);
708033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
708133eb0b6dSopenharmony_ci}
708233eb0b6dSopenharmony_ci
708333eb0b6dSopenharmony_ci/**
708433eb0b6dSopenharmony_ci * @tc.name: NapiThrowTest
708533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_throw
708633eb0b6dSopenharmony_ci * @tc.type: FUNC
708733eb0b6dSopenharmony_ci */
708833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiThrowTest001, testing::ext::TestSize.Level1)
708933eb0b6dSopenharmony_ci{
709033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
709133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
709233eb0b6dSopenharmony_ci
709333eb0b6dSopenharmony_ci    // call napi_throw interface with nullptr error
709433eb0b6dSopenharmony_ci    auto res = napi_throw(env, nullptr);
709533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
709633eb0b6dSopenharmony_ci}
709733eb0b6dSopenharmony_ci
709833eb0b6dSopenharmony_ci/**
709933eb0b6dSopenharmony_ci * @tc.name: NapiThrowErrorTest
710033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_throw_error
710133eb0b6dSopenharmony_ci * @tc.type: FUNC
710233eb0b6dSopenharmony_ci */
710333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiThrowErrorTest001, testing::ext::TestSize.Level1)
710433eb0b6dSopenharmony_ci{
710533eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
710633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
710733eb0b6dSopenharmony_ci
710833eb0b6dSopenharmony_ci    // call napi_throw_error interface with nullptr msg
710933eb0b6dSopenharmony_ci    auto res = napi_throw_error(env, nullptr, nullptr);
711033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
711133eb0b6dSopenharmony_ci}
711233eb0b6dSopenharmony_ci
711333eb0b6dSopenharmony_ci/**
711433eb0b6dSopenharmony_ci * @tc.name: NapiThrowTypeErrorTest
711533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_throw_type_error
711633eb0b6dSopenharmony_ci * @tc.type: FUNC
711733eb0b6dSopenharmony_ci */
711833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiThrowTypeErrorTest001, testing::ext::TestSize.Level1)
711933eb0b6dSopenharmony_ci{
712033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
712133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
712233eb0b6dSopenharmony_ci
712333eb0b6dSopenharmony_ci    // call napi_throw_type_error interface with nullptr msg
712433eb0b6dSopenharmony_ci    auto res = napi_throw_type_error(env, nullptr, nullptr);
712533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
712633eb0b6dSopenharmony_ci}
712733eb0b6dSopenharmony_ci
712833eb0b6dSopenharmony_ci/**
712933eb0b6dSopenharmony_ci * @tc.name: NapiThrowRangeErrorTest
713033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_throw_range_error
713133eb0b6dSopenharmony_ci * @tc.type: FUNC
713233eb0b6dSopenharmony_ci */
713333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiThrowRangeErrorTest001, testing::ext::TestSize.Level1)
713433eb0b6dSopenharmony_ci{
713533eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
713633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
713733eb0b6dSopenharmony_ci
713833eb0b6dSopenharmony_ci    // call napi_throw_range_error interface with nullptr msg
713933eb0b6dSopenharmony_ci    auto res = napi_throw_range_error(env, nullptr, nullptr);
714033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
714133eb0b6dSopenharmony_ci}
714233eb0b6dSopenharmony_ci
714333eb0b6dSopenharmony_ci/**
714433eb0b6dSopenharmony_ci * @tc.name: NapiIsErrorTest
714533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_is_error
714633eb0b6dSopenharmony_ci * @tc.type: FUNC
714733eb0b6dSopenharmony_ci */
714833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsErrorTest001, testing::ext::TestSize.Level1)
714933eb0b6dSopenharmony_ci{
715033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
715133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
715233eb0b6dSopenharmony_ci
715333eb0b6dSopenharmony_ci    napi_value code = nullptr;
715433eb0b6dSopenharmony_ci    napi_value message = nullptr;
715533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &code));
715633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message));
715733eb0b6dSopenharmony_ci
715833eb0b6dSopenharmony_ci    napi_value error = nullptr;
715933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_error(env, code, message, &error));
716033eb0b6dSopenharmony_ci    ASSERT_TRUE(error != nullptr);
716133eb0b6dSopenharmony_ci
716233eb0b6dSopenharmony_ci    bool isError = false;
716333eb0b6dSopenharmony_ci    // call napi_is_error interface with correct input
716433eb0b6dSopenharmony_ci    auto res = napi_is_error(env, error, &isError);
716533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
716633eb0b6dSopenharmony_ci}
716733eb0b6dSopenharmony_ci
716833eb0b6dSopenharmony_ci/**
716933eb0b6dSopenharmony_ci * @tc.name: NapiIsErrorTest
717033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_is_error
717133eb0b6dSopenharmony_ci * @tc.type: FUNC
717233eb0b6dSopenharmony_ci */
717333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsErrorTest002, testing::ext::TestSize.Level1)
717433eb0b6dSopenharmony_ci{
717533eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
717633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
717733eb0b6dSopenharmony_ci
717833eb0b6dSopenharmony_ci    // call napi_is_error interface with nullptr value and nullptr result
717933eb0b6dSopenharmony_ci    auto res = napi_is_error(env, nullptr, nullptr);
718033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
718133eb0b6dSopenharmony_ci}
718233eb0b6dSopenharmony_ci
718333eb0b6dSopenharmony_ci/**
718433eb0b6dSopenharmony_ci * @tc.name: NapiIsErrorTest
718533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_is_error
718633eb0b6dSopenharmony_ci * @tc.type: FUNC
718733eb0b6dSopenharmony_ci */
718833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsErrorTest003, testing::ext::TestSize.Level1)
718933eb0b6dSopenharmony_ci{
719033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
719133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
719233eb0b6dSopenharmony_ci
719333eb0b6dSopenharmony_ci    bool isError = false;
719433eb0b6dSopenharmony_ci    // call napi_is_error interface with nullptr value
719533eb0b6dSopenharmony_ci    auto res = napi_is_error(env, nullptr, &isError);
719633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
719733eb0b6dSopenharmony_ci}
719833eb0b6dSopenharmony_ci
719933eb0b6dSopenharmony_ci/**
720033eb0b6dSopenharmony_ci * @tc.name: NapiIsErrorTest
720133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_is_error
720233eb0b6dSopenharmony_ci * @tc.type: FUNC
720333eb0b6dSopenharmony_ci */
720433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsErrorTest004, testing::ext::TestSize.Level1)
720533eb0b6dSopenharmony_ci{
720633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
720733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
720833eb0b6dSopenharmony_ci
720933eb0b6dSopenharmony_ci    napi_value code = nullptr;
721033eb0b6dSopenharmony_ci    napi_value message = nullptr;
721133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &code));
721233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message));
721333eb0b6dSopenharmony_ci
721433eb0b6dSopenharmony_ci    napi_value error = nullptr;
721533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_error(env, code, message, &error));
721633eb0b6dSopenharmony_ci    ASSERT_TRUE(error != nullptr);
721733eb0b6dSopenharmony_ci
721833eb0b6dSopenharmony_ci    // call napi_is_error interface with nullptr result
721933eb0b6dSopenharmony_ci    auto res = napi_is_error(env, error, nullptr);
722033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
722133eb0b6dSopenharmony_ci}
722233eb0b6dSopenharmony_ci
722333eb0b6dSopenharmony_ci/**
722433eb0b6dSopenharmony_ci * @tc.name: NapiCreateErrorTest
722533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_error
722633eb0b6dSopenharmony_ci * @tc.type: FUNC
722733eb0b6dSopenharmony_ci */
722833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateErrorTest001, testing::ext::TestSize.Level1)
722933eb0b6dSopenharmony_ci{
723033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
723133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
723233eb0b6dSopenharmony_ci
723333eb0b6dSopenharmony_ci    napi_value code = nullptr;
723433eb0b6dSopenharmony_ci    napi_value message = nullptr;
723533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &code));
723633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message));
723733eb0b6dSopenharmony_ci
723833eb0b6dSopenharmony_ci    napi_value error = nullptr;
723933eb0b6dSopenharmony_ci    auto res = napi_create_error(env, code, message, &error);
724033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
724133eb0b6dSopenharmony_ci}
724233eb0b6dSopenharmony_ci
724333eb0b6dSopenharmony_ci/**
724433eb0b6dSopenharmony_ci * @tc.name: NapiCreateErrorTest
724533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_error
724633eb0b6dSopenharmony_ci * @tc.type: FUNC
724733eb0b6dSopenharmony_ci */
724833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateErrorTest002, testing::ext::TestSize.Level1)
724933eb0b6dSopenharmony_ci{
725033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
725133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
725233eb0b6dSopenharmony_ci
725333eb0b6dSopenharmony_ci    napi_value message = nullptr;
725433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_int32(env, TEST_INT32_500, &message));
725533eb0b6dSopenharmony_ci
725633eb0b6dSopenharmony_ci    napi_value error = nullptr;
725733eb0b6dSopenharmony_ci    auto res = napi_create_error(env, nullptr, message, &error);
725833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
725933eb0b6dSopenharmony_ci}
726033eb0b6dSopenharmony_ci
726133eb0b6dSopenharmony_ci/**
726233eb0b6dSopenharmony_ci * @tc.name: NapiCreateErrorTest
726333eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_error
726433eb0b6dSopenharmony_ci * @tc.type: FUNC
726533eb0b6dSopenharmony_ci */
726633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateErrorTest003, testing::ext::TestSize.Level1)
726733eb0b6dSopenharmony_ci{
726833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
726933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
727033eb0b6dSopenharmony_ci
727133eb0b6dSopenharmony_ci    napi_value code = nullptr;
727233eb0b6dSopenharmony_ci    napi_value message = nullptr;
727333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &code));
727433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message));
727533eb0b6dSopenharmony_ci
727633eb0b6dSopenharmony_ci    napi_value error = nullptr;
727733eb0b6dSopenharmony_ci    auto res = napi_create_error(env, code, message, &error);
727833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
727933eb0b6dSopenharmony_ci}
728033eb0b6dSopenharmony_ci
728133eb0b6dSopenharmony_ci/**
728233eb0b6dSopenharmony_ci * @tc.name: NapiCreateErrorTest
728333eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_error
728433eb0b6dSopenharmony_ci * @tc.type: FUNC
728533eb0b6dSopenharmony_ci */
728633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateErrorTest004, testing::ext::TestSize.Level1)
728733eb0b6dSopenharmony_ci{
728833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
728933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
729033eb0b6dSopenharmony_ci
729133eb0b6dSopenharmony_ci    auto res = napi_create_error(env, nullptr, nullptr, nullptr);
729233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
729333eb0b6dSopenharmony_ci}
729433eb0b6dSopenharmony_ci
729533eb0b6dSopenharmony_ci/**
729633eb0b6dSopenharmony_ci * @tc.name: NapiCreateTypeErrorTest
729733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_type_error
729833eb0b6dSopenharmony_ci * @tc.type: FUNC
729933eb0b6dSopenharmony_ci */
730033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateTypeErrorTest001, testing::ext::TestSize.Level1)
730133eb0b6dSopenharmony_ci{
730233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
730333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
730433eb0b6dSopenharmony_ci
730533eb0b6dSopenharmony_ci    napi_value code = nullptr;
730633eb0b6dSopenharmony_ci    napi_value message = nullptr;
730733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &code));
730833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message));
730933eb0b6dSopenharmony_ci
731033eb0b6dSopenharmony_ci    napi_value error = nullptr;
731133eb0b6dSopenharmony_ci    auto res = napi_create_type_error(env, code, message, &error);
731233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
731333eb0b6dSopenharmony_ci}
731433eb0b6dSopenharmony_ci
731533eb0b6dSopenharmony_ci/**
731633eb0b6dSopenharmony_ci * @tc.name: NapiCreateTypeErrorTest
731733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_type_error
731833eb0b6dSopenharmony_ci * @tc.type: FUNC
731933eb0b6dSopenharmony_ci */
732033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateTypeErrorTest002, testing::ext::TestSize.Level1)
732133eb0b6dSopenharmony_ci{
732233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
732333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
732433eb0b6dSopenharmony_ci
732533eb0b6dSopenharmony_ci    napi_value message = nullptr;
732633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_int32(env, TEST_INT32_500, &message));
732733eb0b6dSopenharmony_ci
732833eb0b6dSopenharmony_ci    napi_value error = nullptr;
732933eb0b6dSopenharmony_ci    auto res = napi_create_type_error(env, nullptr, message, &error);
733033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
733133eb0b6dSopenharmony_ci}
733233eb0b6dSopenharmony_ci
733333eb0b6dSopenharmony_ci/**
733433eb0b6dSopenharmony_ci * @tc.name: NapiCreateTypeErrorTest
733533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_type_error
733633eb0b6dSopenharmony_ci * @tc.type: FUNC
733733eb0b6dSopenharmony_ci */
733833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateTypeErrorTest003, testing::ext::TestSize.Level1)
733933eb0b6dSopenharmony_ci{
734033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
734133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
734233eb0b6dSopenharmony_ci
734333eb0b6dSopenharmony_ci    napi_value code = nullptr;
734433eb0b6dSopenharmony_ci    napi_value message = nullptr;
734533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &code));
734633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message));
734733eb0b6dSopenharmony_ci
734833eb0b6dSopenharmony_ci    napi_value error = nullptr;
734933eb0b6dSopenharmony_ci    auto res = napi_create_type_error(env, code, message, &error);
735033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
735133eb0b6dSopenharmony_ci}
735233eb0b6dSopenharmony_ci
735333eb0b6dSopenharmony_ci/**
735433eb0b6dSopenharmony_ci * @tc.name: NapiCreateTypeErrorTest
735533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_type_error
735633eb0b6dSopenharmony_ci * @tc.type: FUNC
735733eb0b6dSopenharmony_ci */
735833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateTypeErrorTest004, testing::ext::TestSize.Level1)
735933eb0b6dSopenharmony_ci{
736033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
736133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
736233eb0b6dSopenharmony_ci
736333eb0b6dSopenharmony_ci    auto res = napi_create_type_error(env, nullptr, nullptr, nullptr);
736433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
736533eb0b6dSopenharmony_ci}
736633eb0b6dSopenharmony_ci
736733eb0b6dSopenharmony_ci/**
736833eb0b6dSopenharmony_ci * @tc.name: NapiCreateRangeErrorTest
736933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_range_error
737033eb0b6dSopenharmony_ci * @tc.type: FUNC
737133eb0b6dSopenharmony_ci */
737233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateRangeErrorTest001, testing::ext::TestSize.Level1)
737333eb0b6dSopenharmony_ci{
737433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
737533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
737633eb0b6dSopenharmony_ci
737733eb0b6dSopenharmony_ci    napi_value code = nullptr;
737833eb0b6dSopenharmony_ci    napi_value message = nullptr;
737933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &code));
738033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message));
738133eb0b6dSopenharmony_ci
738233eb0b6dSopenharmony_ci    napi_value error = nullptr;
738333eb0b6dSopenharmony_ci    auto res = napi_create_range_error(env, code, message, &error);
738433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
738533eb0b6dSopenharmony_ci}
738633eb0b6dSopenharmony_ci
738733eb0b6dSopenharmony_ci/**
738833eb0b6dSopenharmony_ci * @tc.name: NapiCreateRangeErrorTest
738933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_range_error
739033eb0b6dSopenharmony_ci * @tc.type: FUNC
739133eb0b6dSopenharmony_ci */
739233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateRangeErrorTest002, testing::ext::TestSize.Level1)
739333eb0b6dSopenharmony_ci{
739433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
739533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
739633eb0b6dSopenharmony_ci
739733eb0b6dSopenharmony_ci    napi_value message = nullptr;
739833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_int32(env, TEST_INT32_500, &message));
739933eb0b6dSopenharmony_ci
740033eb0b6dSopenharmony_ci    napi_value error = nullptr;
740133eb0b6dSopenharmony_ci    auto res = napi_create_range_error(env, nullptr, message, &error);
740233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
740333eb0b6dSopenharmony_ci}
740433eb0b6dSopenharmony_ci
740533eb0b6dSopenharmony_ci/**
740633eb0b6dSopenharmony_ci * @tc.name: NapiCreateRangeErrorTest
740733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_range_error
740833eb0b6dSopenharmony_ci * @tc.type: FUNC
740933eb0b6dSopenharmony_ci */
741033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateRangeErrorTest003, testing::ext::TestSize.Level1)
741133eb0b6dSopenharmony_ci{
741233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
741333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
741433eb0b6dSopenharmony_ci
741533eb0b6dSopenharmony_ci    napi_value code = nullptr;
741633eb0b6dSopenharmony_ci    napi_value message = nullptr;
741733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &code));
741833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &message));
741933eb0b6dSopenharmony_ci
742033eb0b6dSopenharmony_ci    napi_value error = nullptr;
742133eb0b6dSopenharmony_ci    auto res = napi_create_range_error(env, code, message, &error);
742233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
742333eb0b6dSopenharmony_ci}
742433eb0b6dSopenharmony_ci
742533eb0b6dSopenharmony_ci/**
742633eb0b6dSopenharmony_ci * @tc.name: NapiCreateRangeErrorTest
742733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_range_error
742833eb0b6dSopenharmony_ci * @tc.type: FUNC
742933eb0b6dSopenharmony_ci */
743033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateRangeErrorTest004, testing::ext::TestSize.Level1)
743133eb0b6dSopenharmony_ci{
743233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
743333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
743433eb0b6dSopenharmony_ci
743533eb0b6dSopenharmony_ci    auto res = napi_create_range_error(env, nullptr, nullptr, nullptr);
743633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
743733eb0b6dSopenharmony_ci}
743833eb0b6dSopenharmony_ci
743933eb0b6dSopenharmony_ci/**
744033eb0b6dSopenharmony_ci * @tc.name: NapiGetAndClearLastExceptionTest
744133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_and_clear_last_exception
744233eb0b6dSopenharmony_ci * @tc.type: FUNC
744333eb0b6dSopenharmony_ci */
744433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetAndClearLastExceptionTest001, testing::ext::TestSize.Level1)
744533eb0b6dSopenharmony_ci{
744633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
744733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
744833eb0b6dSopenharmony_ci    auto res = napi_get_and_clear_last_exception(env, nullptr);
744933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
745033eb0b6dSopenharmony_ci}
745133eb0b6dSopenharmony_ci
745233eb0b6dSopenharmony_ci/**
745333eb0b6dSopenharmony_ci * @tc.name: NapiIsExceptionPendingTest
745433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_is_exception_pending
745533eb0b6dSopenharmony_ci * @tc.type: FUNC
745633eb0b6dSopenharmony_ci */
745733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsExceptionPendingTest001, testing::ext::TestSize.Level1)
745833eb0b6dSopenharmony_ci{
745933eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
746033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
746133eb0b6dSopenharmony_ci
746233eb0b6dSopenharmony_ci    auto res = napi_is_exception_pending(env, nullptr);
746333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
746433eb0b6dSopenharmony_ci}
746533eb0b6dSopenharmony_ci
746633eb0b6dSopenharmony_ci/**
746733eb0b6dSopenharmony_ci * @tc.name: NapiOpenHandleScopeTest
746833eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_open_handle_scope
746933eb0b6dSopenharmony_ci * @tc.type: FUNC
747033eb0b6dSopenharmony_ci */
747133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiOpenHandleScopeTest001, testing::ext::TestSize.Level1)
747233eb0b6dSopenharmony_ci{
747333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
747433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
747533eb0b6dSopenharmony_ci
747633eb0b6dSopenharmony_ci    auto res = napi_open_handle_scope(env, nullptr);
747733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
747833eb0b6dSopenharmony_ci}
747933eb0b6dSopenharmony_ci
748033eb0b6dSopenharmony_ci/**
748133eb0b6dSopenharmony_ci * @tc.name: NapiCloseHandleScopeTest
748233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_close_handle_scope
748333eb0b6dSopenharmony_ci * @tc.type: FUNC
748433eb0b6dSopenharmony_ci */
748533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCloseHandleScopeTest001, testing::ext::TestSize.Level1)
748633eb0b6dSopenharmony_ci{
748733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
748833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
748933eb0b6dSopenharmony_ci
749033eb0b6dSopenharmony_ci    auto res = napi_close_handle_scope(env, nullptr);
749133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
749233eb0b6dSopenharmony_ci}
749333eb0b6dSopenharmony_ci
749433eb0b6dSopenharmony_ci/**
749533eb0b6dSopenharmony_ci * @tc.name: NapiCloseHandleScopeTest
749633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_close_handle_scope
749733eb0b6dSopenharmony_ci * @tc.type: FUNC
749833eb0b6dSopenharmony_ci */
749933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCloseHandleScopeTest002, testing::ext::TestSize.Level1)
750033eb0b6dSopenharmony_ci{
750133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
750233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
750333eb0b6dSopenharmony_ci
750433eb0b6dSopenharmony_ci    napi_handle_scope scope = nullptr;
750533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_open_handle_scope(env, &scope));
750633eb0b6dSopenharmony_ci    auto res = napi_close_handle_scope(env, scope);
750733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
750833eb0b6dSopenharmony_ci}
750933eb0b6dSopenharmony_ci
751033eb0b6dSopenharmony_ci/**
751133eb0b6dSopenharmony_ci * @tc.name: NapiCloseHandleScopeTest
751233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_close_handle_scope
751333eb0b6dSopenharmony_ci * @tc.type: FUNC
751433eb0b6dSopenharmony_ci */
751533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCloseHandleScopeTest003, testing::ext::TestSize.Level1)
751633eb0b6dSopenharmony_ci{
751733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
751833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
751933eb0b6dSopenharmony_ci    napi_handle_scope scope = reinterpret_cast<napi_handle_scope>(scope_);
752033eb0b6dSopenharmony_ci
752133eb0b6dSopenharmony_ci    auto tempScope = engine_->openHandleScopes_;
752233eb0b6dSopenharmony_ci    engine_->openHandleScopes_ = 0;
752333eb0b6dSopenharmony_ci    auto res = napi_close_handle_scope(env, scope);
752433eb0b6dSopenharmony_ci    engine_->openHandleScopes_ = tempScope;
752533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_handle_scope_mismatch);
752633eb0b6dSopenharmony_ci}
752733eb0b6dSopenharmony_ci
752833eb0b6dSopenharmony_ci/**
752933eb0b6dSopenharmony_ci * @tc.name: NapiOpenEscapableHandleScopeTest
753033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_open_escapable_handle_scope
753133eb0b6dSopenharmony_ci * @tc.type: FUNC
753233eb0b6dSopenharmony_ci */
753333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiOpenEscapableHandleScopeTest001, testing::ext::TestSize.Level1)
753433eb0b6dSopenharmony_ci{
753533eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
753633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
753733eb0b6dSopenharmony_ci
753833eb0b6dSopenharmony_ci    auto res = napi_open_escapable_handle_scope(env, nullptr);
753933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
754033eb0b6dSopenharmony_ci}
754133eb0b6dSopenharmony_ci
754233eb0b6dSopenharmony_ci/**
754333eb0b6dSopenharmony_ci * @tc.name: NapiCloseEscapableHandleScopeTest
754433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_close_escapable_handle_scope
754533eb0b6dSopenharmony_ci * @tc.type: FUNC
754633eb0b6dSopenharmony_ci */
754733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCloseEscapableHandleScopeTest001, testing::ext::TestSize.Level1)
754833eb0b6dSopenharmony_ci{
754933eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
755033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
755133eb0b6dSopenharmony_ci
755233eb0b6dSopenharmony_ci    auto res = napi_close_escapable_handle_scope(env, nullptr);
755333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
755433eb0b6dSopenharmony_ci}
755533eb0b6dSopenharmony_ci
755633eb0b6dSopenharmony_ci/**
755733eb0b6dSopenharmony_ci * @tc.name: NapiCloseEscapableHandleScopeTest
755833eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_close_escapable_handle_scope
755933eb0b6dSopenharmony_ci * @tc.type: FUNC
756033eb0b6dSopenharmony_ci */
756133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCloseEscapableHandleScopeTest002, testing::ext::TestSize.Level1)
756233eb0b6dSopenharmony_ci{
756333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
756433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
756533eb0b6dSopenharmony_ci
756633eb0b6dSopenharmony_ci    napi_escapable_handle_scope scope = nullptr;
756733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_open_escapable_handle_scope(env, &scope));
756833eb0b6dSopenharmony_ci
756933eb0b6dSopenharmony_ci    auto res = napi_close_escapable_handle_scope(env, scope);
757033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
757133eb0b6dSopenharmony_ci}
757233eb0b6dSopenharmony_ci
757333eb0b6dSopenharmony_ci/**
757433eb0b6dSopenharmony_ci * @tc.name: NapiCloseEscapableHandleScopeTest
757533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_close_escapable_handle_scope
757633eb0b6dSopenharmony_ci * @tc.type: FUNC
757733eb0b6dSopenharmony_ci */
757833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCloseEscapableHandleScopeTest003, testing::ext::TestSize.Level1)
757933eb0b6dSopenharmony_ci{
758033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
758133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
758233eb0b6dSopenharmony_ci    napi_handle_scope scope = reinterpret_cast<napi_handle_scope>(scope_);
758333eb0b6dSopenharmony_ci
758433eb0b6dSopenharmony_ci    auto tempScope = engine_->openHandleScopes_;
758533eb0b6dSopenharmony_ci    engine_->openHandleScopes_ = 0;
758633eb0b6dSopenharmony_ci    auto res = napi_close_escapable_handle_scope(env, (napi_escapable_handle_scope)scope);
758733eb0b6dSopenharmony_ci    engine_->openHandleScopes_ = tempScope;
758833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_handle_scope_mismatch);
758933eb0b6dSopenharmony_ci}
759033eb0b6dSopenharmony_ci
759133eb0b6dSopenharmony_ci/**
759233eb0b6dSopenharmony_ci * @tc.name: NapiEscapeHandleTest
759333eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_escape_handle
759433eb0b6dSopenharmony_ci * @tc.type: FUNC
759533eb0b6dSopenharmony_ci */
759633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiEscapeHandleTest001, testing::ext::TestSize.Level1)
759733eb0b6dSopenharmony_ci{
759833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
759933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
760033eb0b6dSopenharmony_ci
760133eb0b6dSopenharmony_ci    napi_escapable_handle_scope escapableScope = nullptr;
760233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_open_escapable_handle_scope(env, &escapableScope));
760333eb0b6dSopenharmony_ci    napi_value boolean, booleanNew = nullptr;
760433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
760533eb0b6dSopenharmony_ci
760633eb0b6dSopenharmony_ci    auto res = napi_escape_handle(env, escapableScope, boolean, &booleanNew);
760733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
760833eb0b6dSopenharmony_ci
760933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_close_escapable_handle_scope(env, escapableScope));
761033eb0b6dSopenharmony_ci}
761133eb0b6dSopenharmony_ci
761233eb0b6dSopenharmony_ci/**
761333eb0b6dSopenharmony_ci * @tc.name: NapiEscapeHandleTest
761433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_escape_handle
761533eb0b6dSopenharmony_ci * @tc.type: FUNC
761633eb0b6dSopenharmony_ci */
761733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiEscapeHandleTest002, testing::ext::TestSize.Level1)
761833eb0b6dSopenharmony_ci{
761933eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
762033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
762133eb0b6dSopenharmony_ci
762233eb0b6dSopenharmony_ci    napi_escapable_handle_scope escapableScope = nullptr;
762333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_open_escapable_handle_scope(env, &escapableScope));
762433eb0b6dSopenharmony_ci    napi_value boolean, booleanNew = nullptr;
762533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
762633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_escape_handle(env, escapableScope, boolean, &booleanNew));
762733eb0b6dSopenharmony_ci
762833eb0b6dSopenharmony_ci    auto res = napi_escape_handle(env, escapableScope, boolean, &booleanNew);
762933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_escape_called_twice);
763033eb0b6dSopenharmony_ci
763133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_close_escapable_handle_scope(env, escapableScope));
763233eb0b6dSopenharmony_ci}
763333eb0b6dSopenharmony_ci
763433eb0b6dSopenharmony_ci/**
763533eb0b6dSopenharmony_ci * @tc.name: NapiEscapeHandleTest
763633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_escape_handle
763733eb0b6dSopenharmony_ci * @tc.type: FUNC
763833eb0b6dSopenharmony_ci */
763933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiEscapeHandleTest003, testing::ext::TestSize.Level1)
764033eb0b6dSopenharmony_ci{
764133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
764233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
764333eb0b6dSopenharmony_ci
764433eb0b6dSopenharmony_ci    napi_escapable_handle_scope escapableScope = nullptr;
764533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_open_escapable_handle_scope(env, &escapableScope));
764633eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
764733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
764833eb0b6dSopenharmony_ci
764933eb0b6dSopenharmony_ci    auto res = napi_escape_handle(env, escapableScope, boolean, nullptr);
765033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
765133eb0b6dSopenharmony_ci
765233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_close_escapable_handle_scope(env, escapableScope));
765333eb0b6dSopenharmony_ci}
765433eb0b6dSopenharmony_ci
765533eb0b6dSopenharmony_ci/**
765633eb0b6dSopenharmony_ci * @tc.name: NapiEscapeHandleTest
765733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_escape_handle
765833eb0b6dSopenharmony_ci * @tc.type: FUNC
765933eb0b6dSopenharmony_ci */
766033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiEscapeHandleTest004, testing::ext::TestSize.Level1)
766133eb0b6dSopenharmony_ci{
766233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
766333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
766433eb0b6dSopenharmony_ci
766533eb0b6dSopenharmony_ci    napi_escapable_handle_scope escapableScope = nullptr;
766633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_open_escapable_handle_scope(env, &escapableScope));
766733eb0b6dSopenharmony_ci
766833eb0b6dSopenharmony_ci    auto res = napi_escape_handle(env, escapableScope, nullptr, nullptr);
766933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
767033eb0b6dSopenharmony_ci
767133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_close_escapable_handle_scope(env, escapableScope));
767233eb0b6dSopenharmony_ci}
767333eb0b6dSopenharmony_ci
767433eb0b6dSopenharmony_ci/**
767533eb0b6dSopenharmony_ci * @tc.name: NapiEscapeHandleTest
767633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_escape_handle
767733eb0b6dSopenharmony_ci * @tc.type: FUNC
767833eb0b6dSopenharmony_ci */
767933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiEscapeHandleTest005, testing::ext::TestSize.Level1)
768033eb0b6dSopenharmony_ci{
768133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
768233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
768333eb0b6dSopenharmony_ci
768433eb0b6dSopenharmony_ci    auto res = napi_escape_handle(env, nullptr, nullptr, nullptr);
768533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
768633eb0b6dSopenharmony_ci}
768733eb0b6dSopenharmony_ci
768833eb0b6dSopenharmony_ci/**
768933eb0b6dSopenharmony_ci * @tc.name: NapiCreateReferenceTest
769033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_reference
769133eb0b6dSopenharmony_ci * @tc.type: FUNC
769233eb0b6dSopenharmony_ci */
769333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateReferenceTest001, testing::ext::TestSize.Level1)
769433eb0b6dSopenharmony_ci{
769533eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
769633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
769733eb0b6dSopenharmony_ci
769833eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
769933eb0b6dSopenharmony_ci    napi_ref booleanRef = nullptr;
770033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
770133eb0b6dSopenharmony_ci
770233eb0b6dSopenharmony_ci    auto res = napi_create_reference(env, boolean, 1, &booleanRef);
770333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
770433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_delete_reference(env, booleanRef));
770533eb0b6dSopenharmony_ci}
770633eb0b6dSopenharmony_ci
770733eb0b6dSopenharmony_ci/**
770833eb0b6dSopenharmony_ci * @tc.name: NapiCreateReferenceTest
770933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_reference
771033eb0b6dSopenharmony_ci * @tc.type: FUNC
771133eb0b6dSopenharmony_ci */
771233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateReferenceTest002, testing::ext::TestSize.Level1)
771333eb0b6dSopenharmony_ci{
771433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
771533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
771633eb0b6dSopenharmony_ci
771733eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
771833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
771933eb0b6dSopenharmony_ci
772033eb0b6dSopenharmony_ci    auto res = napi_create_reference(env, boolean, 1, nullptr);
772133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
772233eb0b6dSopenharmony_ci}
772333eb0b6dSopenharmony_ci
772433eb0b6dSopenharmony_ci/**
772533eb0b6dSopenharmony_ci * @tc.name: NapiCreateReferenceTest
772633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_reference
772733eb0b6dSopenharmony_ci * @tc.type: FUNC
772833eb0b6dSopenharmony_ci */
772933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateReferenceTest003, testing::ext::TestSize.Level1)
773033eb0b6dSopenharmony_ci{
773133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
773233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
773333eb0b6dSopenharmony_ci
773433eb0b6dSopenharmony_ci    auto res = napi_create_reference(env, nullptr, 1, nullptr);
773533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
773633eb0b6dSopenharmony_ci}
773733eb0b6dSopenharmony_ci
773833eb0b6dSopenharmony_ci/**
773933eb0b6dSopenharmony_ci * @tc.name: NapiDeleteReferenceTest
774033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_delete_reference
774133eb0b6dSopenharmony_ci * @tc.type: FUNC
774233eb0b6dSopenharmony_ci */
774333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDeleteReferenceTest001, testing::ext::TestSize.Level1)
774433eb0b6dSopenharmony_ci{
774533eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
774633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
774733eb0b6dSopenharmony_ci
774833eb0b6dSopenharmony_ci    auto res = napi_delete_reference(env, nullptr);
774933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
775033eb0b6dSopenharmony_ci}
775133eb0b6dSopenharmony_ci
775233eb0b6dSopenharmony_ci/**
775333eb0b6dSopenharmony_ci * @tc.name: NapiDeleteReferenceTest
775433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_delete_reference
775533eb0b6dSopenharmony_ci * @tc.type: FUNC
775633eb0b6dSopenharmony_ci */
775733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDeleteReferenceTest002, testing::ext::TestSize.Level1)
775833eb0b6dSopenharmony_ci{
775933eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
776033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
776133eb0b6dSopenharmony_ci
776233eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
776333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
776433eb0b6dSopenharmony_ci
776533eb0b6dSopenharmony_ci    napi_ref booleanRef = nullptr;
776633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_reference(env, boolean, 1, &booleanRef));
776733eb0b6dSopenharmony_ci    auto res = napi_delete_reference(env, booleanRef);
776833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
776933eb0b6dSopenharmony_ci}
777033eb0b6dSopenharmony_ci
777133eb0b6dSopenharmony_ci/**
777233eb0b6dSopenharmony_ci * @tc.name: NapiReferenceRefTest
777333eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_reference_ref
777433eb0b6dSopenharmony_ci * @tc.type: FUNC
777533eb0b6dSopenharmony_ci */
777633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiReferenceRefTest001, testing::ext::TestSize.Level1)
777733eb0b6dSopenharmony_ci{
777833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
777933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
778033eb0b6dSopenharmony_ci
778133eb0b6dSopenharmony_ci    auto res = napi_reference_ref(env, nullptr, nullptr);
778233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
778333eb0b6dSopenharmony_ci}
778433eb0b6dSopenharmony_ci
778533eb0b6dSopenharmony_ci/**
778633eb0b6dSopenharmony_ci * @tc.name: NapiReferenceUnrefTest
778733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_reference_unref
778833eb0b6dSopenharmony_ci * @tc.type: FUNC
778933eb0b6dSopenharmony_ci */
779033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiReferenceUnrefTest001, testing::ext::TestSize.Level1)
779133eb0b6dSopenharmony_ci{
779233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
779333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
779433eb0b6dSopenharmony_ci
779533eb0b6dSopenharmony_ci    auto res = napi_reference_unref(env, nullptr, nullptr);
779633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
779733eb0b6dSopenharmony_ci}
779833eb0b6dSopenharmony_ci
779933eb0b6dSopenharmony_ci/**
780033eb0b6dSopenharmony_ci * @tc.name: NapiGetReferenceValueTest
780133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_reference_value
780233eb0b6dSopenharmony_ci * @tc.type: FUNC
780333eb0b6dSopenharmony_ci */
780433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetReferenceValueTest001, testing::ext::TestSize.Level1)
780533eb0b6dSopenharmony_ci{
780633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
780733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
780833eb0b6dSopenharmony_ci
780933eb0b6dSopenharmony_ci    auto res = napi_get_reference_value(env, nullptr, nullptr);
781033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
781133eb0b6dSopenharmony_ci}
781233eb0b6dSopenharmony_ci
781333eb0b6dSopenharmony_ci/**
781433eb0b6dSopenharmony_ci * @tc.name: NapiGetReferenceValueTest
781533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_reference_value
781633eb0b6dSopenharmony_ci * @tc.type: FUNC
781733eb0b6dSopenharmony_ci */
781833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetReferenceValueTest002, testing::ext::TestSize.Level1)
781933eb0b6dSopenharmony_ci{
782033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
782133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
782233eb0b6dSopenharmony_ci
782333eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
782433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
782533eb0b6dSopenharmony_ci
782633eb0b6dSopenharmony_ci    napi_ref booleanRef = nullptr;
782733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_reference(env, boolean, 1, &booleanRef));
782833eb0b6dSopenharmony_ci
782933eb0b6dSopenharmony_ci    auto res = napi_get_reference_value(env, booleanRef, nullptr);
783033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
783133eb0b6dSopenharmony_ci}
783233eb0b6dSopenharmony_ci
783333eb0b6dSopenharmony_ci/**
783433eb0b6dSopenharmony_ci * @tc.name: NapiGetReferenceValueTest
783533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_reference_value
783633eb0b6dSopenharmony_ci * @tc.type: FUNC
783733eb0b6dSopenharmony_ci */
783833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetReferenceValueTest003, testing::ext::TestSize.Level1)
783933eb0b6dSopenharmony_ci{
784033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
784133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
784233eb0b6dSopenharmony_ci
784333eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
784433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
784533eb0b6dSopenharmony_ci
784633eb0b6dSopenharmony_ci    napi_ref booleanRef = nullptr;
784733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_reference(env, boolean, 1, &booleanRef));
784833eb0b6dSopenharmony_ci
784933eb0b6dSopenharmony_ci    napi_value refValue = nullptr;
785033eb0b6dSopenharmony_ci    auto res = napi_get_reference_value(env, booleanRef, &refValue);
785133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
785233eb0b6dSopenharmony_ci    ASSERT_NE(refValue, nullptr);
785333eb0b6dSopenharmony_ci}
785433eb0b6dSopenharmony_ci
785533eb0b6dSopenharmony_ci/**
785633eb0b6dSopenharmony_ci * @tc.name: NapiCreateArrayTest
785733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_array
785833eb0b6dSopenharmony_ci * @tc.type: FUNC
785933eb0b6dSopenharmony_ci */
786033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateArrayTest001, testing::ext::TestSize.Level1)
786133eb0b6dSopenharmony_ci{
786233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
786333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
786433eb0b6dSopenharmony_ci    napi_value array = nullptr;
786533eb0b6dSopenharmony_ci    auto res = napi_create_array(env, &array);
786633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
786733eb0b6dSopenharmony_ci}
786833eb0b6dSopenharmony_ci
786933eb0b6dSopenharmony_ci/**
787033eb0b6dSopenharmony_ci * @tc.name: NapiCreateArrayTest
787133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_array
787233eb0b6dSopenharmony_ci * @tc.type: FUNC
787333eb0b6dSopenharmony_ci */
787433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateArrayTest002, testing::ext::TestSize.Level1)
787533eb0b6dSopenharmony_ci{
787633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
787733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
787833eb0b6dSopenharmony_ci
787933eb0b6dSopenharmony_ci    auto res = napi_create_array(env, nullptr);
788033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
788133eb0b6dSopenharmony_ci}
788233eb0b6dSopenharmony_ci
788333eb0b6dSopenharmony_ci/**
788433eb0b6dSopenharmony_ci * @tc.name: NapiCreateArrayWithLengthTest
788533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_array_with_length
788633eb0b6dSopenharmony_ci * @tc.type: FUNC
788733eb0b6dSopenharmony_ci */
788833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateArrayWithLengthTest001, testing::ext::TestSize.Level1)
788933eb0b6dSopenharmony_ci{
789033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
789133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
789233eb0b6dSopenharmony_ci
789333eb0b6dSopenharmony_ci    napi_value array = nullptr;
789433eb0b6dSopenharmony_ci    auto res = napi_create_array_with_length(env, 0, &array);
789533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
789633eb0b6dSopenharmony_ci}
789733eb0b6dSopenharmony_ci
789833eb0b6dSopenharmony_ci/**
789933eb0b6dSopenharmony_ci * @tc.name: NapiCreateArrayWithLengthTest
790033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_array_with_length
790133eb0b6dSopenharmony_ci * @tc.type: FUNC
790233eb0b6dSopenharmony_ci */
790333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateArrayWithLengthTest002, testing::ext::TestSize.Level1)
790433eb0b6dSopenharmony_ci{
790533eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
790633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
790733eb0b6dSopenharmony_ci
790833eb0b6dSopenharmony_ci    auto res = napi_create_array_with_length(env, 0, nullptr);
790933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
791033eb0b6dSopenharmony_ci}
791133eb0b6dSopenharmony_ci
791233eb0b6dSopenharmony_ci/**
791333eb0b6dSopenharmony_ci * @tc.name: NapiCreateArraybufferTest
791433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_arraybuffer
791533eb0b6dSopenharmony_ci * @tc.type: FUNC
791633eb0b6dSopenharmony_ci */
791733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateArraybufferTest001, testing::ext::TestSize.Level1)
791833eb0b6dSopenharmony_ci{
791933eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
792033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
792133eb0b6dSopenharmony_ci
792233eb0b6dSopenharmony_ci    napi_value arrayBuffer = nullptr;
792333eb0b6dSopenharmony_ci    void* arrayBufferPtr = nullptr;
792433eb0b6dSopenharmony_ci    size_t arrayBufferSize = 0;
792533eb0b6dSopenharmony_ci    auto res = napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer);
792633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
792733eb0b6dSopenharmony_ci}
792833eb0b6dSopenharmony_ci
792933eb0b6dSopenharmony_ci/**
793033eb0b6dSopenharmony_ci * @tc.name: NapiCreateArraybufferTest
793133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_arraybuffer
793233eb0b6dSopenharmony_ci * @tc.type: FUNC
793333eb0b6dSopenharmony_ci */
793433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateArraybufferTest002, testing::ext::TestSize.Level1)
793533eb0b6dSopenharmony_ci{
793633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
793733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
793833eb0b6dSopenharmony_ci
793933eb0b6dSopenharmony_ci    size_t arrayBufferSize = 0;
794033eb0b6dSopenharmony_ci    auto res = napi_create_arraybuffer(env, arrayBufferSize, nullptr, nullptr);
794133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
794233eb0b6dSopenharmony_ci}
794333eb0b6dSopenharmony_ci
794433eb0b6dSopenharmony_ci/**
794533eb0b6dSopenharmony_ci * @tc.name: NapiCreateArraybufferTest
794633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_arraybuffer
794733eb0b6dSopenharmony_ci * @tc.type: FUNC
794833eb0b6dSopenharmony_ci */
794933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateArraybufferTest003, testing::ext::TestSize.Level1)
795033eb0b6dSopenharmony_ci{
795133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
795233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
795333eb0b6dSopenharmony_ci
795433eb0b6dSopenharmony_ci    void* arrayBufferPtr = nullptr;
795533eb0b6dSopenharmony_ci    size_t arrayBufferSize = 0;
795633eb0b6dSopenharmony_ci    auto res = napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, nullptr);
795733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
795833eb0b6dSopenharmony_ci}
795933eb0b6dSopenharmony_ci
796033eb0b6dSopenharmony_ci/**
796133eb0b6dSopenharmony_ci * @tc.name: NapiCreateExternalTest
796233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_external
796333eb0b6dSopenharmony_ci * @tc.type: FUNC
796433eb0b6dSopenharmony_ci */
796533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateExternalTest001, testing::ext::TestSize.Level1)
796633eb0b6dSopenharmony_ci{
796733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
796833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
796933eb0b6dSopenharmony_ci
797033eb0b6dSopenharmony_ci    auto res = napi_create_external(
797133eb0b6dSopenharmony_ci        env, (void*)TEST_CHAR_STRING,
797233eb0b6dSopenharmony_ci        [](napi_env env, void* data, void* hint) { ASSERT_STREQ((const char*)data, (const char*)hint); },
797333eb0b6dSopenharmony_ci        (void*)TEST_CHAR_STRING, nullptr);
797433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
797533eb0b6dSopenharmony_ci}
797633eb0b6dSopenharmony_ci
797733eb0b6dSopenharmony_ci/**
797833eb0b6dSopenharmony_ci * @tc.name: NapiCreateExternalTest
797933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_external
798033eb0b6dSopenharmony_ci * @tc.type: FUNC
798133eb0b6dSopenharmony_ci */
798233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateExternalTest002, testing::ext::TestSize.Level1)
798333eb0b6dSopenharmony_ci{
798433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
798533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
798633eb0b6dSopenharmony_ci
798733eb0b6dSopenharmony_ci    napi_value external = nullptr;
798833eb0b6dSopenharmony_ci    auto res = napi_create_external(
798933eb0b6dSopenharmony_ci        env, (void*)TEST_CHAR_STRING,
799033eb0b6dSopenharmony_ci        [](napi_env env, void* data, void* hint) { ASSERT_STREQ((const char*)data, (const char*)hint); },
799133eb0b6dSopenharmony_ci        (void*)TEST_CHAR_STRING, &external);
799233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
799333eb0b6dSopenharmony_ci}
799433eb0b6dSopenharmony_ci
799533eb0b6dSopenharmony_ci/**
799633eb0b6dSopenharmony_ci * @tc.name: NapiCreateExternalArraybufferTest
799733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_external_arraybuffer
799833eb0b6dSopenharmony_ci * @tc.type: FUNC
799933eb0b6dSopenharmony_ci */
800033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateExternalArraybufferTest001, testing::ext::TestSize.Level1)
800133eb0b6dSopenharmony_ci{
800233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
800333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
800433eb0b6dSopenharmony_ci
800533eb0b6dSopenharmony_ci    auto res = napi_create_external_arraybuffer(
800633eb0b6dSopenharmony_ci        env, nullptr, strlen(TEST_CHAR_STRING),
800733eb0b6dSopenharmony_ci        nullptr,
800833eb0b6dSopenharmony_ci        (void*)TEST_CHAR_STRING, nullptr);
800933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
801033eb0b6dSopenharmony_ci}
801133eb0b6dSopenharmony_ci
801233eb0b6dSopenharmony_ci/**
801333eb0b6dSopenharmony_ci * @tc.name: NapiCreateExternalArraybufferTest
801433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_external_arraybuffer
801533eb0b6dSopenharmony_ci * @tc.type: FUNC
801633eb0b6dSopenharmony_ci */
801733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateExternalArraybufferTest002, testing::ext::TestSize.Level1)
801833eb0b6dSopenharmony_ci{
801933eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
802033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
802133eb0b6dSopenharmony_ci
802233eb0b6dSopenharmony_ci    auto res = napi_create_external_arraybuffer(
802333eb0b6dSopenharmony_ci        env, (void*)TEST_CHAR_STRING, strlen(TEST_CHAR_STRING),
802433eb0b6dSopenharmony_ci        nullptr,
802533eb0b6dSopenharmony_ci        (void*)TEST_CHAR_STRING, nullptr);
802633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
802733eb0b6dSopenharmony_ci}
802833eb0b6dSopenharmony_ci
802933eb0b6dSopenharmony_ci/**
803033eb0b6dSopenharmony_ci * @tc.name: NapiCreateExternalArraybufferTest
803133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_external_arraybuffer
803233eb0b6dSopenharmony_ci * @tc.type: FUNC
803333eb0b6dSopenharmony_ci */
803433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateExternalArraybufferTest003, testing::ext::TestSize.Level1)
803533eb0b6dSopenharmony_ci{
803633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
803733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
803833eb0b6dSopenharmony_ci
803933eb0b6dSopenharmony_ci    auto res = napi_create_external_arraybuffer(
804033eb0b6dSopenharmony_ci        env, (void*)TEST_CHAR_STRING, strlen(TEST_CHAR_STRING),
804133eb0b6dSopenharmony_ci        [](napi_env env, void* data, void* hint) { ASSERT_STREQ((const char*)data, (const char*)hint); },
804233eb0b6dSopenharmony_ci        (void*)TEST_CHAR_STRING, nullptr);
804333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
804433eb0b6dSopenharmony_ci}
804533eb0b6dSopenharmony_ci
804633eb0b6dSopenharmony_ci/**
804733eb0b6dSopenharmony_ci * @tc.name: NapiCreateExternalArraybufferTest
804833eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_external_arraybuffer
804933eb0b6dSopenharmony_ci * @tc.type: FUNC
805033eb0b6dSopenharmony_ci */
805133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateExternalArraybufferTest004, testing::ext::TestSize.Level1)
805233eb0b6dSopenharmony_ci{
805333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
805433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
805533eb0b6dSopenharmony_ci
805633eb0b6dSopenharmony_ci    napi_value external = nullptr;
805733eb0b6dSopenharmony_ci    auto res = napi_create_external_arraybuffer(
805833eb0b6dSopenharmony_ci        env, (void*)TEST_CHAR_STRING, strlen(TEST_CHAR_STRING),
805933eb0b6dSopenharmony_ci        [](napi_env env, void* data, void* hint) { ASSERT_STREQ((const char*)data, (const char*)hint); },
806033eb0b6dSopenharmony_ci        (void*)TEST_CHAR_STRING, &external);
806133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
806233eb0b6dSopenharmony_ci}
806333eb0b6dSopenharmony_ci
806433eb0b6dSopenharmony_ci/**
806533eb0b6dSopenharmony_ci * @tc.name: NapiCreateObjectTest
806633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_object
806733eb0b6dSopenharmony_ci * @tc.type: FUNC
806833eb0b6dSopenharmony_ci */
806933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateObjectTest001, testing::ext::TestSize.Level1)
807033eb0b6dSopenharmony_ci{
807133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
807233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
807333eb0b6dSopenharmony_ci
807433eb0b6dSopenharmony_ci    auto res = napi_create_object(env, nullptr);
807533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
807633eb0b6dSopenharmony_ci
807733eb0b6dSopenharmony_ci    napi_value result = nullptr;
807833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object(env, &result));
807933eb0b6dSopenharmony_ci}
808033eb0b6dSopenharmony_ci
808133eb0b6dSopenharmony_ci/**
808233eb0b6dSopenharmony_ci * @tc.name: NapiCreateSymbolTest
808333eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_symbol
808433eb0b6dSopenharmony_ci * @tc.type: FUNC
808533eb0b6dSopenharmony_ci */
808633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateSymbolTest001, testing::ext::TestSize.Level1)
808733eb0b6dSopenharmony_ci{
808833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
808933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
809033eb0b6dSopenharmony_ci
809133eb0b6dSopenharmony_ci    auto res = napi_create_symbol(env, nullptr, nullptr);
809233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
809333eb0b6dSopenharmony_ci}
809433eb0b6dSopenharmony_ci
809533eb0b6dSopenharmony_ci/**
809633eb0b6dSopenharmony_ci * @tc.name: NapiCreateSymbolTest
809733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_symbol
809833eb0b6dSopenharmony_ci * @tc.type: FUNC
809933eb0b6dSopenharmony_ci */
810033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateSymbolTest002, testing::ext::TestSize.Level1)
810133eb0b6dSopenharmony_ci{
810233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
810333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
810433eb0b6dSopenharmony_ci
810533eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
810633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
810733eb0b6dSopenharmony_ci
810833eb0b6dSopenharmony_ci    napi_value result = nullptr;
810933eb0b6dSopenharmony_ci    auto res = napi_create_symbol(env, boolean, &result);
811033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
811133eb0b6dSopenharmony_ci}
811233eb0b6dSopenharmony_ci
811333eb0b6dSopenharmony_ci/**
811433eb0b6dSopenharmony_ci * @tc.name: NapiCreateTypedarrayTest
811533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_typedarray
811633eb0b6dSopenharmony_ci * @tc.type: FUNC
811733eb0b6dSopenharmony_ci */
811833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateTypedarrayTest001, testing::ext::TestSize.Level1)
811933eb0b6dSopenharmony_ci{
812033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
812133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
812233eb0b6dSopenharmony_ci
812333eb0b6dSopenharmony_ci    auto res = napi_create_typedarray(env, napi_int8_array, 0, nullptr, 0, nullptr);
812433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
812533eb0b6dSopenharmony_ci
812633eb0b6dSopenharmony_ci    napi_value arraybuffer = nullptr;
812733eb0b6dSopenharmony_ci    res = napi_create_typedarray(env, napi_int8_array, 0, arraybuffer, 0, nullptr);
812833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
812933eb0b6dSopenharmony_ci}
813033eb0b6dSopenharmony_ci
813133eb0b6dSopenharmony_ci/**
813233eb0b6dSopenharmony_ci * @tc.name: NapiCreateTypedarrayTest
813333eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_typedarray
813433eb0b6dSopenharmony_ci * @tc.type: FUNC
813533eb0b6dSopenharmony_ci */
813633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateTypedarrayTest002, testing::ext::TestSize.Level1)
813733eb0b6dSopenharmony_ci{
813833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
813933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
814033eb0b6dSopenharmony_ci
814133eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
814233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
814333eb0b6dSopenharmony_ci    napi_value typedarray = nullptr;
814433eb0b6dSopenharmony_ci    auto res = napi_create_typedarray(env, napi_int8_array, 0, boolean, 0, &typedarray);
814533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_arraybuffer_expected);
814633eb0b6dSopenharmony_ci}
814733eb0b6dSopenharmony_ci
814833eb0b6dSopenharmony_ci/**
814933eb0b6dSopenharmony_ci * @tc.name: NapiCreateTypedarrayTest
815033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_typedarray
815133eb0b6dSopenharmony_ci * @tc.type: FUNC
815233eb0b6dSopenharmony_ci */
815333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateTypedarrayTest003, testing::ext::TestSize.Level1)
815433eb0b6dSopenharmony_ci{
815533eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
815633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
815733eb0b6dSopenharmony_ci
815833eb0b6dSopenharmony_ci    napi_value arrayBuffer = nullptr;
815933eb0b6dSopenharmony_ci    void* arrayBufferPtr = nullptr;
816033eb0b6dSopenharmony_ci    size_t arrayBufferSize = 1024;
816133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer));
816233eb0b6dSopenharmony_ci
816333eb0b6dSopenharmony_ci    napi_value typedarray = nullptr;
816433eb0b6dSopenharmony_ci    auto res = napi_create_typedarray(env, (napi_typedarray_type)(napi_int8_array - 1), arrayBufferSize,
816533eb0b6dSopenharmony_ci        arrayBuffer, 0, &typedarray);
816633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
816733eb0b6dSopenharmony_ci}
816833eb0b6dSopenharmony_ci
816933eb0b6dSopenharmony_ci/**
817033eb0b6dSopenharmony_ci * @tc.name: NapiCreateDataviewTest
817133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_dataview
817233eb0b6dSopenharmony_ci * @tc.type: FUNC
817333eb0b6dSopenharmony_ci */
817433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateDataviewTest001, testing::ext::TestSize.Level1)
817533eb0b6dSopenharmony_ci{
817633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
817733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
817833eb0b6dSopenharmony_ci
817933eb0b6dSopenharmony_ci    auto res = napi_create_dataview(env, 0, nullptr, 0, nullptr);
818033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
818133eb0b6dSopenharmony_ci
818233eb0b6dSopenharmony_ci    napi_value arraybuffer = nullptr;
818333eb0b6dSopenharmony_ci    res = napi_create_dataview(env, 0, arraybuffer, 0, nullptr);
818433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
818533eb0b6dSopenharmony_ci}
818633eb0b6dSopenharmony_ci
818733eb0b6dSopenharmony_ci/**
818833eb0b6dSopenharmony_ci * @tc.name: NapiCreateDataviewTest
818933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_dataview
819033eb0b6dSopenharmony_ci * @tc.type: FUNC
819133eb0b6dSopenharmony_ci */
819233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateDataviewTest002, testing::ext::TestSize.Level1)
819333eb0b6dSopenharmony_ci{
819433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
819533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
819633eb0b6dSopenharmony_ci
819733eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
819833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
819933eb0b6dSopenharmony_ci    napi_value result = nullptr;
820033eb0b6dSopenharmony_ci    auto res = napi_create_dataview(env, 0, boolean, 0, &result);
820133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_arraybuffer_expected);
820233eb0b6dSopenharmony_ci}
820333eb0b6dSopenharmony_ci
820433eb0b6dSopenharmony_ci/**
820533eb0b6dSopenharmony_ci * @tc.name: NapiCreateDataviewTest
820633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_dataview
820733eb0b6dSopenharmony_ci * @tc.type: FUNC
820833eb0b6dSopenharmony_ci */
820933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateDataviewTest003, testing::ext::TestSize.Level1)
821033eb0b6dSopenharmony_ci{
821133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
821233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
821333eb0b6dSopenharmony_ci
821433eb0b6dSopenharmony_ci    napi_value arrayBuffer = nullptr;
821533eb0b6dSopenharmony_ci    void* arrayBufferPtr = nullptr;
821633eb0b6dSopenharmony_ci    size_t arrayBufferSize = 1024;
821733eb0b6dSopenharmony_ci    napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer);
821833eb0b6dSopenharmony_ci    ASSERT_NE(arrayBuffer, nullptr);
821933eb0b6dSopenharmony_ci    ASSERT_NE(arrayBufferPtr, nullptr);
822033eb0b6dSopenharmony_ci    bool isArrayBuffer = false;
822133eb0b6dSopenharmony_ci    napi_is_arraybuffer(env, arrayBuffer, &isArrayBuffer);
822233eb0b6dSopenharmony_ci    ASSERT_TRUE(isArrayBuffer);
822333eb0b6dSopenharmony_ci
822433eb0b6dSopenharmony_ci    napi_value result = nullptr;
822533eb0b6dSopenharmony_ci    auto res = napi_create_dataview(env, arrayBufferSize, arrayBuffer, arrayBufferSize + 1, &result);
822633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_pending_exception);
822733eb0b6dSopenharmony_ci}
822833eb0b6dSopenharmony_ci
822933eb0b6dSopenharmony_ci/**
823033eb0b6dSopenharmony_ci * @tc.name: NapiCreateInt32Test
823133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_int32
823233eb0b6dSopenharmony_ci * @tc.type: FUNC
823333eb0b6dSopenharmony_ci */
823433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateInt32Test001, testing::ext::TestSize.Level1)
823533eb0b6dSopenharmony_ci{
823633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
823733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
823833eb0b6dSopenharmony_ci
823933eb0b6dSopenharmony_ci    auto res = napi_create_int32(env, TEST_INT32_MINUS_1, nullptr);
824033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
824133eb0b6dSopenharmony_ci}
824233eb0b6dSopenharmony_ci
824333eb0b6dSopenharmony_ci/**
824433eb0b6dSopenharmony_ci * @tc.name: NapiCreateInt32Test
824533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_int32
824633eb0b6dSopenharmony_ci * @tc.type: FUNC
824733eb0b6dSopenharmony_ci */
824833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateInt32Test002, testing::ext::TestSize.Level1)
824933eb0b6dSopenharmony_ci{
825033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
825133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
825233eb0b6dSopenharmony_ci
825333eb0b6dSopenharmony_ci    napi_value numberValue = nullptr;
825433eb0b6dSopenharmony_ci    auto res = napi_create_int32(env, TEST_INT32_MINUS_1, &numberValue);
825533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
825633eb0b6dSopenharmony_ci}
825733eb0b6dSopenharmony_ci
825833eb0b6dSopenharmony_ci/**
825933eb0b6dSopenharmony_ci * @tc.name: NapiCreateUint32Test
826033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_uint32
826133eb0b6dSopenharmony_ci * @tc.type: FUNC
826233eb0b6dSopenharmony_ci */
826333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateUint32Test001, testing::ext::TestSize.Level1)
826433eb0b6dSopenharmony_ci{
826533eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
826633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
826733eb0b6dSopenharmony_ci
826833eb0b6dSopenharmony_ci    auto res = napi_create_uint32(env, TEST_UINT32_1000, nullptr);
826933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
827033eb0b6dSopenharmony_ci}
827133eb0b6dSopenharmony_ci
827233eb0b6dSopenharmony_ci/**
827333eb0b6dSopenharmony_ci * @tc.name: NapiCreateUint32Test
827433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_uint32
827533eb0b6dSopenharmony_ci * @tc.type: FUNC
827633eb0b6dSopenharmony_ci */
827733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateUint32Test002, testing::ext::TestSize.Level1)
827833eb0b6dSopenharmony_ci{
827933eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
828033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
828133eb0b6dSopenharmony_ci
828233eb0b6dSopenharmony_ci    napi_value numberValue = nullptr;
828333eb0b6dSopenharmony_ci    auto res = napi_create_uint32(env, TEST_UINT32_1000, &numberValue);
828433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
828533eb0b6dSopenharmony_ci}
828633eb0b6dSopenharmony_ci
828733eb0b6dSopenharmony_ci/**
828833eb0b6dSopenharmony_ci * @tc.name: NapiCreateInt64Test
828933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_int64
829033eb0b6dSopenharmony_ci * @tc.type: FUNC
829133eb0b6dSopenharmony_ci */
829233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateInt64Test001, testing::ext::TestSize.Level1)
829333eb0b6dSopenharmony_ci{
829433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
829533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
829633eb0b6dSopenharmony_ci
829733eb0b6dSopenharmony_ci    auto res = napi_create_int64(env, TEST_INT64, nullptr);
829833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
829933eb0b6dSopenharmony_ci}
830033eb0b6dSopenharmony_ci
830133eb0b6dSopenharmony_ci/**
830233eb0b6dSopenharmony_ci * @tc.name: NapiCreateInt64Test
830333eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_int64
830433eb0b6dSopenharmony_ci * @tc.type: FUNC
830533eb0b6dSopenharmony_ci */
830633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateInt64Test002, testing::ext::TestSize.Level1)
830733eb0b6dSopenharmony_ci{
830833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
830933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
831033eb0b6dSopenharmony_ci
831133eb0b6dSopenharmony_ci    napi_value numberValue = nullptr;
831233eb0b6dSopenharmony_ci    auto res = napi_create_int64(env, TEST_INT64, &numberValue);
831333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
831433eb0b6dSopenharmony_ci}
831533eb0b6dSopenharmony_ci
831633eb0b6dSopenharmony_ci/**
831733eb0b6dSopenharmony_ci * @tc.name: NapiCreateDoubleTest
831833eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_double
831933eb0b6dSopenharmony_ci * @tc.type: FUNC
832033eb0b6dSopenharmony_ci */
832133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateDoubleTest001, testing::ext::TestSize.Level1)
832233eb0b6dSopenharmony_ci{
832333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
832433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
832533eb0b6dSopenharmony_ci
832633eb0b6dSopenharmony_ci    auto res = napi_create_double(env, TEST_DOUBLE, nullptr);
832733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
832833eb0b6dSopenharmony_ci}
832933eb0b6dSopenharmony_ci
833033eb0b6dSopenharmony_ci/**
833133eb0b6dSopenharmony_ci * @tc.name: NapiCreateDoubleTest
833233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_double
833333eb0b6dSopenharmony_ci * @tc.type: FUNC
833433eb0b6dSopenharmony_ci */
833533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateDoubleTest002, testing::ext::TestSize.Level1)
833633eb0b6dSopenharmony_ci{
833733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
833833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
833933eb0b6dSopenharmony_ci
834033eb0b6dSopenharmony_ci    napi_value numberValue = nullptr;
834133eb0b6dSopenharmony_ci    auto res = napi_create_double(env, TEST_DOUBLE, &numberValue);
834233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
834333eb0b6dSopenharmony_ci}
834433eb0b6dSopenharmony_ci
834533eb0b6dSopenharmony_ci/**
834633eb0b6dSopenharmony_ci * @tc.name: NapiCreateStringLatin1Test
834733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_string_latin1
834833eb0b6dSopenharmony_ci * @tc.type: FUNC
834933eb0b6dSopenharmony_ci */
835033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateStringLatin1Test001, testing::ext::TestSize.Level1)
835133eb0b6dSopenharmony_ci{
835233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
835333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
835433eb0b6dSopenharmony_ci
835533eb0b6dSopenharmony_ci    auto res = napi_create_string_latin1(env, nullptr, NAPI_AUTO_LENGTH, nullptr);
835633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
835733eb0b6dSopenharmony_ci}
835833eb0b6dSopenharmony_ci
835933eb0b6dSopenharmony_ci/**
836033eb0b6dSopenharmony_ci * @tc.name: NapiCreateStringLatin1Test
836133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_string_latin1
836233eb0b6dSopenharmony_ci * @tc.type: FUNC
836333eb0b6dSopenharmony_ci */
836433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateStringLatin1Test002, testing::ext::TestSize.Level1)
836533eb0b6dSopenharmony_ci{
836633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
836733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
836833eb0b6dSopenharmony_ci
836933eb0b6dSopenharmony_ci    auto res = napi_create_string_latin1(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, nullptr);
837033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
837133eb0b6dSopenharmony_ci}
837233eb0b6dSopenharmony_ci
837333eb0b6dSopenharmony_ci/**
837433eb0b6dSopenharmony_ci * @tc.name: NapiCreateStringUtf8Test
837533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_string_utf8
837633eb0b6dSopenharmony_ci * @tc.type: FUNC
837733eb0b6dSopenharmony_ci */
837833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateStringUtf8Test001, testing::ext::TestSize.Level1)
837933eb0b6dSopenharmony_ci{
838033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
838133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
838233eb0b6dSopenharmony_ci
838333eb0b6dSopenharmony_ci    auto res = napi_create_string_utf8(env, nullptr, NAPI_AUTO_LENGTH, nullptr);
838433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
838533eb0b6dSopenharmony_ci}
838633eb0b6dSopenharmony_ci
838733eb0b6dSopenharmony_ci/**
838833eb0b6dSopenharmony_ci * @tc.name: NapiCreateStringUtf8Test
838933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_string_utf8
839033eb0b6dSopenharmony_ci * @tc.type: FUNC
839133eb0b6dSopenharmony_ci */
839233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateStringUtf8Test002, testing::ext::TestSize.Level1)
839333eb0b6dSopenharmony_ci{
839433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
839533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
839633eb0b6dSopenharmony_ci
839733eb0b6dSopenharmony_ci    auto res = napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, nullptr);
839833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
839933eb0b6dSopenharmony_ci}
840033eb0b6dSopenharmony_ci
840133eb0b6dSopenharmony_ci/**
840233eb0b6dSopenharmony_ci * @tc.name: NapiCreateStringUtf16Test
840333eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_string_utf16
840433eb0b6dSopenharmony_ci * @tc.type: FUNC
840533eb0b6dSopenharmony_ci */
840633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateStringUtf16Test001, testing::ext::TestSize.Level1)
840733eb0b6dSopenharmony_ci{
840833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
840933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
841033eb0b6dSopenharmony_ci
841133eb0b6dSopenharmony_ci    auto res = napi_create_string_utf16(env, nullptr, NAPI_AUTO_LENGTH, nullptr);
841233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
841333eb0b6dSopenharmony_ci}
841433eb0b6dSopenharmony_ci
841533eb0b6dSopenharmony_ci/**
841633eb0b6dSopenharmony_ci * @tc.name: NapiCreateStringUtf16Test
841733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_string_utf16
841833eb0b6dSopenharmony_ci * @tc.type: FUNC
841933eb0b6dSopenharmony_ci */
842033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateStringUtf16Test002, testing::ext::TestSize.Level1)
842133eb0b6dSopenharmony_ci{
842233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
842333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
842433eb0b6dSopenharmony_ci
842533eb0b6dSopenharmony_ci    auto res = napi_create_string_utf16(env, TEST_CHAR16_STRING, NAPI_AUTO_LENGTH, nullptr);
842633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
842733eb0b6dSopenharmony_ci}
842833eb0b6dSopenharmony_ci
842933eb0b6dSopenharmony_ci/**
843033eb0b6dSopenharmony_ci * @tc.name: NapiCreateStringUtf16Test
843133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_string_utf16
843233eb0b6dSopenharmony_ci * @tc.type: FUNC
843333eb0b6dSopenharmony_ci */
843433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateStringUtf16Test003, testing::ext::TestSize.Level1)
843533eb0b6dSopenharmony_ci{
843633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
843733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
843833eb0b6dSopenharmony_ci
843933eb0b6dSopenharmony_ci    napi_value stringValue = nullptr;
844033eb0b6dSopenharmony_ci    auto res = napi_create_string_utf16(env, TEST_CHAR16_STRING, (NAPI_AUTO_LENGTH - 1), &stringValue);
844133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
844233eb0b6dSopenharmony_ci}
844333eb0b6dSopenharmony_ci
844433eb0b6dSopenharmony_ci/**
844533eb0b6dSopenharmony_ci * @tc.name: NapiGetArrayLengthTest
844633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_array_length
844733eb0b6dSopenharmony_ci * @tc.type: FUNC
844833eb0b6dSopenharmony_ci */
844933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetArrayLengthTest001, testing::ext::TestSize.Level1)
845033eb0b6dSopenharmony_ci{
845133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
845233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
845333eb0b6dSopenharmony_ci
845433eb0b6dSopenharmony_ci    auto res = napi_get_array_length(env, nullptr, nullptr);
845533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
845633eb0b6dSopenharmony_ci}
845733eb0b6dSopenharmony_ci
845833eb0b6dSopenharmony_ci/**
845933eb0b6dSopenharmony_ci * @tc.name: NapiGetArrayLengthTest
846033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_array_length
846133eb0b6dSopenharmony_ci * @tc.type: FUNC
846233eb0b6dSopenharmony_ci */
846333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetArrayLengthTest002, testing::ext::TestSize.Level1)
846433eb0b6dSopenharmony_ci{
846533eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
846633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
846733eb0b6dSopenharmony_ci
846833eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
846933eb0b6dSopenharmony_ci    uint32_t arrayLength = 0;
847033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
847133eb0b6dSopenharmony_ci    auto res = napi_get_array_length(env, boolean, &arrayLength);
847233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_array_expected);
847333eb0b6dSopenharmony_ci}
847433eb0b6dSopenharmony_ci
847533eb0b6dSopenharmony_ci/**
847633eb0b6dSopenharmony_ci * @tc.name: NapiGetArraybufferInfoTest
847733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_arraybuffer_info
847833eb0b6dSopenharmony_ci * @tc.type: FUNC
847933eb0b6dSopenharmony_ci */
848033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetArraybufferInfoTest001, testing::ext::TestSize.Level1)
848133eb0b6dSopenharmony_ci{
848233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
848333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
848433eb0b6dSopenharmony_ci
848533eb0b6dSopenharmony_ci    auto res = napi_get_arraybuffer_info(env, nullptr, nullptr, nullptr);
848633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
848733eb0b6dSopenharmony_ci}
848833eb0b6dSopenharmony_ci
848933eb0b6dSopenharmony_ci/**
849033eb0b6dSopenharmony_ci * @tc.name: NapiGetArraybufferInfoTest
849133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_arraybuffer_info
849233eb0b6dSopenharmony_ci * @tc.type: FUNC
849333eb0b6dSopenharmony_ci */
849433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetArraybufferInfoTest002, testing::ext::TestSize.Level1)
849533eb0b6dSopenharmony_ci{
849633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
849733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
849833eb0b6dSopenharmony_ci
849933eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
850033eb0b6dSopenharmony_ci    size_t arrayBufferLength = 0;
850133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
850233eb0b6dSopenharmony_ci    auto res = napi_get_arraybuffer_info(env, boolean, nullptr, &arrayBufferLength);
850333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_arraybuffer_expected);
850433eb0b6dSopenharmony_ci}
850533eb0b6dSopenharmony_ci
850633eb0b6dSopenharmony_ci/**
850733eb0b6dSopenharmony_ci * @tc.name: NapiGetPrototypeTest
850833eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_prototype
850933eb0b6dSopenharmony_ci * @tc.type: FUNC
851033eb0b6dSopenharmony_ci */
851133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetPrototypeTest001, testing::ext::TestSize.Level1)
851233eb0b6dSopenharmony_ci{
851333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
851433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
851533eb0b6dSopenharmony_ci
851633eb0b6dSopenharmony_ci    auto res = napi_get_prototype(env, nullptr, nullptr);
851733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
851833eb0b6dSopenharmony_ci}
851933eb0b6dSopenharmony_ci
852033eb0b6dSopenharmony_ci/**
852133eb0b6dSopenharmony_ci * @tc.name: NapiGetPrototypeTest
852233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_prototype
852333eb0b6dSopenharmony_ci * @tc.type: FUNC
852433eb0b6dSopenharmony_ci */
852533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetPrototypeTest002, testing::ext::TestSize.Level1)
852633eb0b6dSopenharmony_ci{
852733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
852833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
852933eb0b6dSopenharmony_ci
853033eb0b6dSopenharmony_ci    napi_value result = nullptr;
853133eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
853233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
853333eb0b6dSopenharmony_ci    auto res = napi_get_prototype(env, boolean, &result);
853433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_object_expected);
853533eb0b6dSopenharmony_ci}
853633eb0b6dSopenharmony_ci
853733eb0b6dSopenharmony_ci/**
853833eb0b6dSopenharmony_ci * @tc.name: NapiGetTypedarrayInfoTest
853933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_typedarray_info
854033eb0b6dSopenharmony_ci * @tc.type: FUNC
854133eb0b6dSopenharmony_ci */
854233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetTypedarrayInfoTest001, testing::ext::TestSize.Level1)
854333eb0b6dSopenharmony_ci{
854433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
854533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
854633eb0b6dSopenharmony_ci
854733eb0b6dSopenharmony_ci    auto res = napi_get_typedarray_info(env, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr);
854833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
854933eb0b6dSopenharmony_ci}
855033eb0b6dSopenharmony_ci
855133eb0b6dSopenharmony_ci/**
855233eb0b6dSopenharmony_ci * @tc.name: NapiGetTypedarrayInfoTest
855333eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_typedarray_info
855433eb0b6dSopenharmony_ci * @tc.type: FUNC
855533eb0b6dSopenharmony_ci */
855633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetTypedarrayInfoTest002, testing::ext::TestSize.Level1)
855733eb0b6dSopenharmony_ci{
855833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
855933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
856033eb0b6dSopenharmony_ci
856133eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
856233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
856333eb0b6dSopenharmony_ci    auto res = napi_get_typedarray_info(env, boolean, nullptr, nullptr, nullptr, nullptr, nullptr);
856433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
856533eb0b6dSopenharmony_ci}
856633eb0b6dSopenharmony_ci
856733eb0b6dSopenharmony_ci/**
856833eb0b6dSopenharmony_ci * @tc.name: NapiGetDataviewInfoTest
856933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_dataview_info
857033eb0b6dSopenharmony_ci * @tc.type: FUNC
857133eb0b6dSopenharmony_ci */
857233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetDataviewInfoTest001, testing::ext::TestSize.Level1)
857333eb0b6dSopenharmony_ci{
857433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
857533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
857633eb0b6dSopenharmony_ci
857733eb0b6dSopenharmony_ci    auto res = napi_get_dataview_info(env, nullptr, nullptr, nullptr, nullptr, nullptr);
857833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
857933eb0b6dSopenharmony_ci}
858033eb0b6dSopenharmony_ci
858133eb0b6dSopenharmony_ci/**
858233eb0b6dSopenharmony_ci * @tc.name: NapiGetDataviewInfoTest
858333eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_dataview_info
858433eb0b6dSopenharmony_ci * @tc.type: FUNC
858533eb0b6dSopenharmony_ci */
858633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetDataviewInfoTest002, testing::ext::TestSize.Level1)
858733eb0b6dSopenharmony_ci{
858833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
858933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
859033eb0b6dSopenharmony_ci
859133eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
859233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
859333eb0b6dSopenharmony_ci    auto res = napi_get_dataview_info(env, boolean, nullptr, nullptr, nullptr, nullptr);
859433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
859533eb0b6dSopenharmony_ci}
859633eb0b6dSopenharmony_ci
859733eb0b6dSopenharmony_ci/**
859833eb0b6dSopenharmony_ci * @tc.name: NapiGetValueBoolTest
859933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_bool
860033eb0b6dSopenharmony_ci * @tc.type: FUNC
860133eb0b6dSopenharmony_ci */
860233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueBoolTest001, testing::ext::TestSize.Level1)
860333eb0b6dSopenharmony_ci{
860433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
860533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
860633eb0b6dSopenharmony_ci
860733eb0b6dSopenharmony_ci    auto res = napi_get_value_bool(env, nullptr, nullptr);
860833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
860933eb0b6dSopenharmony_ci}
861033eb0b6dSopenharmony_ci
861133eb0b6dSopenharmony_ci/**
861233eb0b6dSopenharmony_ci * @tc.name: NapiGetValueBoolTest
861333eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_bool
861433eb0b6dSopenharmony_ci * @tc.type: FUNC
861533eb0b6dSopenharmony_ci */
861633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueBoolTest002, testing::ext::TestSize.Level1)
861733eb0b6dSopenharmony_ci{
861833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
861933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
862033eb0b6dSopenharmony_ci
862133eb0b6dSopenharmony_ci    napi_value stringUtf8 = nullptr;
862233eb0b6dSopenharmony_ci    const char testStr[] = "errorType";
862333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, testStr, NAPI_AUTO_LENGTH, &stringUtf8));
862433eb0b6dSopenharmony_ci    bool boolean;
862533eb0b6dSopenharmony_ci    auto res = napi_get_value_bool(env, stringUtf8, &boolean);
862633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_boolean_expected);
862733eb0b6dSopenharmony_ci}
862833eb0b6dSopenharmony_ci
862933eb0b6dSopenharmony_ci/**
863033eb0b6dSopenharmony_ci * @tc.name: NapiGetValueDoubleTest
863133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_double
863233eb0b6dSopenharmony_ci * @tc.type: FUNC
863333eb0b6dSopenharmony_ci */
863433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueDoubleTest001, testing::ext::TestSize.Level1)
863533eb0b6dSopenharmony_ci{
863633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
863733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
863833eb0b6dSopenharmony_ci
863933eb0b6dSopenharmony_ci    auto res = napi_get_value_double(env, nullptr, nullptr);
864033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
864133eb0b6dSopenharmony_ci}
864233eb0b6dSopenharmony_ci
864333eb0b6dSopenharmony_ci/**
864433eb0b6dSopenharmony_ci * @tc.name: NapiGetValueDoubleTest
864533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_double
864633eb0b6dSopenharmony_ci * @tc.type: FUNC
864733eb0b6dSopenharmony_ci */
864833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueDoubleTest002, testing::ext::TestSize.Level1)
864933eb0b6dSopenharmony_ci{
865033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
865133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
865233eb0b6dSopenharmony_ci
865333eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
865433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
865533eb0b6dSopenharmony_ci    double number;
865633eb0b6dSopenharmony_ci    auto res = napi_get_value_double(env, boolean, &number);
865733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_number_expected);
865833eb0b6dSopenharmony_ci}
865933eb0b6dSopenharmony_ci
866033eb0b6dSopenharmony_ci/**
866133eb0b6dSopenharmony_ci * @tc.name: NapiGetValueExternalTest
866233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_external
866333eb0b6dSopenharmony_ci * @tc.type: FUNC
866433eb0b6dSopenharmony_ci */
866533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueExternalTest001, testing::ext::TestSize.Level1)
866633eb0b6dSopenharmony_ci{
866733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
866833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
866933eb0b6dSopenharmony_ci
867033eb0b6dSopenharmony_ci    auto res = napi_get_value_external(env, nullptr, nullptr);
867133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
867233eb0b6dSopenharmony_ci}
867333eb0b6dSopenharmony_ci
867433eb0b6dSopenharmony_ci/**
867533eb0b6dSopenharmony_ci * @tc.name: NapiGetValueExternalTest
867633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_external
867733eb0b6dSopenharmony_ci * @tc.type: FUNC
867833eb0b6dSopenharmony_ci */
867933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueExternalTest002, testing::ext::TestSize.Level1)
868033eb0b6dSopenharmony_ci{
868133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
868233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
868333eb0b6dSopenharmony_ci
868433eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
868533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
868633eb0b6dSopenharmony_ci    void* external;
868733eb0b6dSopenharmony_ci    auto res = napi_get_value_external(env, boolean, &external);
868833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_object_expected);
868933eb0b6dSopenharmony_ci}
869033eb0b6dSopenharmony_ci
869133eb0b6dSopenharmony_ci/**
869233eb0b6dSopenharmony_ci * @tc.name: NapiGetValueInt32Test
869333eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_int32
869433eb0b6dSopenharmony_ci * @tc.type: FUNC
869533eb0b6dSopenharmony_ci */
869633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueInt32Test001, testing::ext::TestSize.Level1)
869733eb0b6dSopenharmony_ci{
869833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
869933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
870033eb0b6dSopenharmony_ci
870133eb0b6dSopenharmony_ci    auto res = napi_get_value_int32(env, nullptr, nullptr);
870233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
870333eb0b6dSopenharmony_ci}
870433eb0b6dSopenharmony_ci
870533eb0b6dSopenharmony_ci/**
870633eb0b6dSopenharmony_ci * @tc.name: NapiGetValueInt32Test
870733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_int32
870833eb0b6dSopenharmony_ci * @tc.type: FUNC
870933eb0b6dSopenharmony_ci */
871033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueInt32Test002, testing::ext::TestSize.Level1)
871133eb0b6dSopenharmony_ci{
871233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
871333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
871433eb0b6dSopenharmony_ci
871533eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
871633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
871733eb0b6dSopenharmony_ci    int32_t number;
871833eb0b6dSopenharmony_ci    auto res = napi_get_value_int32(env, boolean, &number);
871933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_number_expected);
872033eb0b6dSopenharmony_ci}
872133eb0b6dSopenharmony_ci
872233eb0b6dSopenharmony_ci/**
872333eb0b6dSopenharmony_ci * @tc.name: NapiGetValueInt64Test
872433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_int64
872533eb0b6dSopenharmony_ci * @tc.type: FUNC
872633eb0b6dSopenharmony_ci */
872733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueInt64Test001, testing::ext::TestSize.Level1)
872833eb0b6dSopenharmony_ci{
872933eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
873033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
873133eb0b6dSopenharmony_ci
873233eb0b6dSopenharmony_ci    auto res = napi_get_value_int64(env, nullptr, nullptr);
873333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
873433eb0b6dSopenharmony_ci}
873533eb0b6dSopenharmony_ci
873633eb0b6dSopenharmony_ci/**
873733eb0b6dSopenharmony_ci * @tc.name: NapiGetValueInt64Test
873833eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_int64
873933eb0b6dSopenharmony_ci * @tc.type: FUNC
874033eb0b6dSopenharmony_ci */
874133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueInt64Test002, testing::ext::TestSize.Level1)
874233eb0b6dSopenharmony_ci{
874333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
874433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
874533eb0b6dSopenharmony_ci
874633eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
874733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
874833eb0b6dSopenharmony_ci    int64_t number;
874933eb0b6dSopenharmony_ci    auto res = napi_get_value_int64(env, boolean, &number);
875033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_number_expected);
875133eb0b6dSopenharmony_ci}
875233eb0b6dSopenharmony_ci
875333eb0b6dSopenharmony_ci/**
875433eb0b6dSopenharmony_ci * @tc.name: NapiGetValueStringLatin1Test
875533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_string_latin1
875633eb0b6dSopenharmony_ci * @tc.type: FUNC
875733eb0b6dSopenharmony_ci */
875833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueStringLatin1Test001, testing::ext::TestSize.Level1)
875933eb0b6dSopenharmony_ci{
876033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
876133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
876233eb0b6dSopenharmony_ci
876333eb0b6dSopenharmony_ci    auto res = napi_get_value_string_latin1(env, nullptr, nullptr, 0, nullptr);
876433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
876533eb0b6dSopenharmony_ci}
876633eb0b6dSopenharmony_ci
876733eb0b6dSopenharmony_ci/**
876833eb0b6dSopenharmony_ci * @tc.name: NapiGetValueStringLatin1Test
876933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_string_latin1
877033eb0b6dSopenharmony_ci * @tc.type: FUNC
877133eb0b6dSopenharmony_ci */
877233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueStringLatin1Test002, testing::ext::TestSize.Level1)
877333eb0b6dSopenharmony_ci{
877433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
877533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
877633eb0b6dSopenharmony_ci
877733eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
877833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
877933eb0b6dSopenharmony_ci    auto res = napi_get_value_string_latin1(env, boolean, nullptr, 0, nullptr);
878033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_string_expected);
878133eb0b6dSopenharmony_ci}
878233eb0b6dSopenharmony_ci
878333eb0b6dSopenharmony_ci/**
878433eb0b6dSopenharmony_ci * @tc.name: NapiGetValueStringLatin1Test
878533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_string_latin1
878633eb0b6dSopenharmony_ci * @tc.type: FUNC
878733eb0b6dSopenharmony_ci */
878833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueStringLatin1Test003, testing::ext::TestSize.Level1)
878933eb0b6dSopenharmony_ci{
879033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
879133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
879233eb0b6dSopenharmony_ci
879333eb0b6dSopenharmony_ci    napi_value stringValue = nullptr;
879433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_latin1(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &stringValue));
879533eb0b6dSopenharmony_ci    auto res = napi_get_value_string_latin1(env, stringValue, nullptr, 0, nullptr);
879633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
879733eb0b6dSopenharmony_ci
879833eb0b6dSopenharmony_ci    size_t strSize = 0;
879933eb0b6dSopenharmony_ci    res = napi_get_value_string_latin1(env, stringValue, nullptr, 0, &strSize);
880033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
880133eb0b6dSopenharmony_ci}
880233eb0b6dSopenharmony_ci
880333eb0b6dSopenharmony_ci/**
880433eb0b6dSopenharmony_ci * @tc.name: NapiGetValueStringUtf8Test
880533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_string_utf8
880633eb0b6dSopenharmony_ci * @tc.type: FUNC
880733eb0b6dSopenharmony_ci */
880833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueStringUtf8Test001, testing::ext::TestSize.Level1)
880933eb0b6dSopenharmony_ci{
881033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
881133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
881233eb0b6dSopenharmony_ci
881333eb0b6dSopenharmony_ci    auto res = napi_get_value_string_utf8(env, nullptr, nullptr, 0, nullptr);
881433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
881533eb0b6dSopenharmony_ci}
881633eb0b6dSopenharmony_ci
881733eb0b6dSopenharmony_ci/**
881833eb0b6dSopenharmony_ci * @tc.name: NapiGetValueStringUtf8Test
881933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_string_utf8
882033eb0b6dSopenharmony_ci * @tc.type: FUNC
882133eb0b6dSopenharmony_ci */
882233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueStringUtf8Test002, testing::ext::TestSize.Level1)
882333eb0b6dSopenharmony_ci{
882433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
882533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
882633eb0b6dSopenharmony_ci
882733eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
882833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
882933eb0b6dSopenharmony_ci    auto res = napi_get_value_string_utf8(env, boolean, nullptr, 0, nullptr);
883033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_string_expected);
883133eb0b6dSopenharmony_ci}
883233eb0b6dSopenharmony_ci
883333eb0b6dSopenharmony_ci/**
883433eb0b6dSopenharmony_ci * @tc.name: NapiGetValueStringUtf8Test
883533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_string_utf8
883633eb0b6dSopenharmony_ci * @tc.type: FUNC
883733eb0b6dSopenharmony_ci */
883833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueStringUtf8Test003, testing::ext::TestSize.Level1)
883933eb0b6dSopenharmony_ci{
884033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
884133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
884233eb0b6dSopenharmony_ci
884333eb0b6dSopenharmony_ci    napi_value stringValue = nullptr;
884433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &stringValue));
884533eb0b6dSopenharmony_ci    auto res = napi_get_value_string_utf8(env, stringValue, nullptr, 0, nullptr);
884633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
884733eb0b6dSopenharmony_ci
884833eb0b6dSopenharmony_ci    size_t strSize = 0;
884933eb0b6dSopenharmony_ci    res = napi_get_value_string_utf8(env, stringValue, nullptr, 0, &strSize);
885033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
885133eb0b6dSopenharmony_ci}
885233eb0b6dSopenharmony_ci
885333eb0b6dSopenharmony_ci/**
885433eb0b6dSopenharmony_ci * @tc.name: NapiGetValueStringUtf16Test
885533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_string_utf16
885633eb0b6dSopenharmony_ci * @tc.type: FUNC
885733eb0b6dSopenharmony_ci */
885833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueStringUtf16Test001, testing::ext::TestSize.Level1)
885933eb0b6dSopenharmony_ci{
886033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
886133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
886233eb0b6dSopenharmony_ci
886333eb0b6dSopenharmony_ci    auto res = napi_get_value_string_utf16(env, nullptr, nullptr, 0, nullptr);
886433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
886533eb0b6dSopenharmony_ci}
886633eb0b6dSopenharmony_ci
886733eb0b6dSopenharmony_ci/**
886833eb0b6dSopenharmony_ci * @tc.name: NapiGetValueStringUtf16Test
886933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_string_utf16
887033eb0b6dSopenharmony_ci * @tc.type: FUNC
887133eb0b6dSopenharmony_ci */
887233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueStringUtf16Test002, testing::ext::TestSize.Level1)
887333eb0b6dSopenharmony_ci{
887433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
887533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
887633eb0b6dSopenharmony_ci
887733eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
887833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
887933eb0b6dSopenharmony_ci    auto res = napi_get_value_string_utf16(env, boolean, nullptr, 0, nullptr);
888033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_string_expected);
888133eb0b6dSopenharmony_ci}
888233eb0b6dSopenharmony_ci
888333eb0b6dSopenharmony_ci/**
888433eb0b6dSopenharmony_ci * @tc.name: NapiGetValueStringUtf16Test
888533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_string_utf16
888633eb0b6dSopenharmony_ci * @tc.type: FUNC
888733eb0b6dSopenharmony_ci */
888833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueStringUtf16Test003, testing::ext::TestSize.Level1)
888933eb0b6dSopenharmony_ci{
889033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
889133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
889233eb0b6dSopenharmony_ci
889333eb0b6dSopenharmony_ci    napi_value stringValue = nullptr;
889433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf16(env, TEST_CHAR16_STRING, NAPI_AUTO_LENGTH, &stringValue));
889533eb0b6dSopenharmony_ci    auto res = napi_get_value_string_utf16(env, stringValue, nullptr, 0, nullptr);
889633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
889733eb0b6dSopenharmony_ci
889833eb0b6dSopenharmony_ci    size_t strSize = 0;
889933eb0b6dSopenharmony_ci    res = napi_get_value_string_utf16(env, stringValue, nullptr, 0, &strSize);
890033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
890133eb0b6dSopenharmony_ci}
890233eb0b6dSopenharmony_ci
890333eb0b6dSopenharmony_ci/**
890433eb0b6dSopenharmony_ci * @tc.name: NapiGetValueUint32Test
890533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_uint32
890633eb0b6dSopenharmony_ci * @tc.type: FUNC
890733eb0b6dSopenharmony_ci */
890833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueUint32Test001, testing::ext::TestSize.Level1)
890933eb0b6dSopenharmony_ci{
891033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
891133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
891233eb0b6dSopenharmony_ci
891333eb0b6dSopenharmony_ci        auto res = napi_get_value_uint32(env, nullptr, nullptr);
891433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
891533eb0b6dSopenharmony_ci}
891633eb0b6dSopenharmony_ci
891733eb0b6dSopenharmony_ci/**
891833eb0b6dSopenharmony_ci * @tc.name: NapiGetValueUint32Test
891933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_value_uint32
892033eb0b6dSopenharmony_ci * @tc.type: FUNC
892133eb0b6dSopenharmony_ci */
892233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetValueUint32Test002, testing::ext::TestSize.Level1)
892333eb0b6dSopenharmony_ci{
892433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
892533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
892633eb0b6dSopenharmony_ci
892733eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
892833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
892933eb0b6dSopenharmony_ci    uint32_t number;
893033eb0b6dSopenharmony_ci    auto res = napi_get_value_uint32(env, boolean, &number);
893133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_number_expected);
893233eb0b6dSopenharmony_ci}
893333eb0b6dSopenharmony_ci
893433eb0b6dSopenharmony_ci/**
893533eb0b6dSopenharmony_ci * @tc.name: NapiGetBooleanTest
893633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_boolean
893733eb0b6dSopenharmony_ci * @tc.type: FUNC
893833eb0b6dSopenharmony_ci */
893933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetBooleanTest001, testing::ext::TestSize.Level1)
894033eb0b6dSopenharmony_ci{
894133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
894233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
894333eb0b6dSopenharmony_ci
894433eb0b6dSopenharmony_ci    auto res = napi_get_boolean(env, true, nullptr);
894533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
894633eb0b6dSopenharmony_ci
894733eb0b6dSopenharmony_ci    napi_value result = nullptr;
894833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &result));
894933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, false, &result));
895033eb0b6dSopenharmony_ci}
895133eb0b6dSopenharmony_ci
895233eb0b6dSopenharmony_ci/**
895333eb0b6dSopenharmony_ci * @tc.name: NapiGetGlobalTest
895433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_global
895533eb0b6dSopenharmony_ci * @tc.type: FUNC
895633eb0b6dSopenharmony_ci */
895733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetGlobalTest001, testing::ext::TestSize.Level1)
895833eb0b6dSopenharmony_ci{
895933eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
896033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
896133eb0b6dSopenharmony_ci
896233eb0b6dSopenharmony_ci    auto res = napi_get_global(env, nullptr);
896333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
896433eb0b6dSopenharmony_ci}
896533eb0b6dSopenharmony_ci
896633eb0b6dSopenharmony_ci/**
896733eb0b6dSopenharmony_ci * @tc.name: NapiGetNullTest
896833eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_null
896933eb0b6dSopenharmony_ci * @tc.type: FUNC
897033eb0b6dSopenharmony_ci */
897133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetNullTest001, testing::ext::TestSize.Level1)
897233eb0b6dSopenharmony_ci{
897333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
897433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
897533eb0b6dSopenharmony_ci
897633eb0b6dSopenharmony_ci    auto res = napi_get_null(env, nullptr);
897733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
897833eb0b6dSopenharmony_ci}
897933eb0b6dSopenharmony_ci
898033eb0b6dSopenharmony_ci/**
898133eb0b6dSopenharmony_ci * @tc.name: NapiGetUndefinedTest
898233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_undefined
898333eb0b6dSopenharmony_ci * @tc.type: FUNC
898433eb0b6dSopenharmony_ci */
898533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetUndefinedTest001, testing::ext::TestSize.Level1)
898633eb0b6dSopenharmony_ci{
898733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
898833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
898933eb0b6dSopenharmony_ci
899033eb0b6dSopenharmony_ci    auto res = napi_get_undefined(env, nullptr);
899133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
899233eb0b6dSopenharmony_ci}
899333eb0b6dSopenharmony_ci
899433eb0b6dSopenharmony_ci/**
899533eb0b6dSopenharmony_ci * @tc.name: NapiObjectFreezeTest
899633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_object_freeze
899733eb0b6dSopenharmony_ci * @tc.type: FUNC
899833eb0b6dSopenharmony_ci */
899933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiObjectFreezeTest001, testing::ext::TestSize.Level1)
900033eb0b6dSopenharmony_ci{
900133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
900233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
900333eb0b6dSopenharmony_ci
900433eb0b6dSopenharmony_ci    auto res = napi_object_freeze(env, nullptr);
900533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
900633eb0b6dSopenharmony_ci}
900733eb0b6dSopenharmony_ci
900833eb0b6dSopenharmony_ci/**
900933eb0b6dSopenharmony_ci * @tc.name: NapiObjectFreezeTest
901033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_object_freeze
901133eb0b6dSopenharmony_ci * @tc.type: FUNC
901233eb0b6dSopenharmony_ci */
901333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiObjectFreezeTest002, testing::ext::TestSize.Level1)
901433eb0b6dSopenharmony_ci{
901533eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
901633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
901733eb0b6dSopenharmony_ci
901833eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
901933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
902033eb0b6dSopenharmony_ci    auto res = napi_object_freeze(env, boolean);
902133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_object_expected);
902233eb0b6dSopenharmony_ci}
902333eb0b6dSopenharmony_ci
902433eb0b6dSopenharmony_ci/**
902533eb0b6dSopenharmony_ci * @tc.name: NapiObjectSealTest
902633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_object_seal
902733eb0b6dSopenharmony_ci * @tc.type: FUNC
902833eb0b6dSopenharmony_ci */
902933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiObjectSealTest001, testing::ext::TestSize.Level1)
903033eb0b6dSopenharmony_ci{
903133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
903233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
903333eb0b6dSopenharmony_ci
903433eb0b6dSopenharmony_ci    auto res = napi_object_seal(env, nullptr);
903533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
903633eb0b6dSopenharmony_ci}
903733eb0b6dSopenharmony_ci
903833eb0b6dSopenharmony_ci/**
903933eb0b6dSopenharmony_ci * @tc.name: NapiObjectSealTest
904033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_object_seal
904133eb0b6dSopenharmony_ci * @tc.type: FUNC
904233eb0b6dSopenharmony_ci */
904333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiObjectSealTest002, testing::ext::TestSize.Level1)
904433eb0b6dSopenharmony_ci{
904533eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
904633eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
904733eb0b6dSopenharmony_ci
904833eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
904933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
905033eb0b6dSopenharmony_ci    auto res = napi_object_seal(env, boolean);
905133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_object_expected);
905233eb0b6dSopenharmony_ci}
905333eb0b6dSopenharmony_ci
905433eb0b6dSopenharmony_ci/**
905533eb0b6dSopenharmony_ci * @tc.name: NapiGetAllPropertyNamesTest
905633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_all_property_names
905733eb0b6dSopenharmony_ci * @tc.type: FUNC
905833eb0b6dSopenharmony_ci */
905933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetAllPropertyNamesTest001, testing::ext::TestSize.Level1)
906033eb0b6dSopenharmony_ci{
906133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
906233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
906333eb0b6dSopenharmony_ci
906433eb0b6dSopenharmony_ci    auto res = napi_get_all_property_names(env, nullptr, napi_key_include_prototypes, napi_key_all_properties,
906533eb0b6dSopenharmony_ci        napi_key_keep_numbers, nullptr);
906633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
906733eb0b6dSopenharmony_ci}
906833eb0b6dSopenharmony_ci
906933eb0b6dSopenharmony_ci/**
907033eb0b6dSopenharmony_ci * @tc.name: NapiGetAllPropertyNamesTest
907133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_all_property_names
907233eb0b6dSopenharmony_ci * @tc.type: FUNC
907333eb0b6dSopenharmony_ci */
907433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetAllPropertyNamesTest002, testing::ext::TestSize.Level1)
907533eb0b6dSopenharmony_ci{
907633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
907733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
907833eb0b6dSopenharmony_ci
907933eb0b6dSopenharmony_ci    napi_value object = nullptr;
908033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object(env, &object));
908133eb0b6dSopenharmony_ci    auto res = napi_get_all_property_names(env, object, napi_key_include_prototypes, napi_key_all_properties,
908233eb0b6dSopenharmony_ci        napi_key_keep_numbers, nullptr);
908333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
908433eb0b6dSopenharmony_ci}
908533eb0b6dSopenharmony_ci
908633eb0b6dSopenharmony_ci/**
908733eb0b6dSopenharmony_ci * @tc.name: NapiGetAllPropertyNamesTest
908833eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_all_property_names
908933eb0b6dSopenharmony_ci * @tc.type: FUNC
909033eb0b6dSopenharmony_ci */
909133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetAllPropertyNamesTest003, testing::ext::TestSize.Level1)
909233eb0b6dSopenharmony_ci{
909333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
909433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
909533eb0b6dSopenharmony_ci
909633eb0b6dSopenharmony_ci    napi_value result = nullptr;
909733eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
909833eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
909933eb0b6dSopenharmony_ci    auto res = napi_get_all_property_names(env, boolean, napi_key_include_prototypes, napi_key_all_properties,
910033eb0b6dSopenharmony_ci        napi_key_keep_numbers, &result);
910133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_object_expected);
910233eb0b6dSopenharmony_ci}
910333eb0b6dSopenharmony_ci
910433eb0b6dSopenharmony_ci/**
910533eb0b6dSopenharmony_ci * @tc.name: NapiGetAllPropertyNamesTest
910633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_all_property_names
910733eb0b6dSopenharmony_ci * @tc.type: FUNC
910833eb0b6dSopenharmony_ci */
910933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetAllPropertyNamesTest004, testing::ext::TestSize.Level1)
911033eb0b6dSopenharmony_ci{
911133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
911233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
911333eb0b6dSopenharmony_ci
911433eb0b6dSopenharmony_ci    napi_value result = nullptr;
911533eb0b6dSopenharmony_ci    napi_value object = nullptr;
911633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object(env, &object));
911733eb0b6dSopenharmony_ci    auto res = napi_get_all_property_names(env, object, (napi_key_collection_mode)(napi_key_include_prototypes - 1),
911833eb0b6dSopenharmony_ci        napi_key_all_properties, napi_key_keep_numbers, &result);
911933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
912033eb0b6dSopenharmony_ci}
912133eb0b6dSopenharmony_ci
912233eb0b6dSopenharmony_ci/**
912333eb0b6dSopenharmony_ci * @tc.name: NapiGetAllPropertyNamesTest
912433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_all_property_names
912533eb0b6dSopenharmony_ci * @tc.type: FUNC
912633eb0b6dSopenharmony_ci */
912733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetAllPropertyNamesTest005, testing::ext::TestSize.Level1)
912833eb0b6dSopenharmony_ci{
912933eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
913033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
913133eb0b6dSopenharmony_ci
913233eb0b6dSopenharmony_ci    napi_value result = nullptr;
913333eb0b6dSopenharmony_ci    napi_value object = nullptr;
913433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object(env, &object));
913533eb0b6dSopenharmony_ci    auto res = napi_get_all_property_names(env, object, napi_key_include_prototypes, napi_key_all_properties,
913633eb0b6dSopenharmony_ci        (napi_key_conversion)(napi_key_keep_numbers - 1), &result);
913733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
913833eb0b6dSopenharmony_ci}
913933eb0b6dSopenharmony_ci
914033eb0b6dSopenharmony_ci/**
914133eb0b6dSopenharmony_ci * @tc.name: NapiDetachArraybufferTest
914233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_detach_arraybuffer
914333eb0b6dSopenharmony_ci * @tc.type: FUNC
914433eb0b6dSopenharmony_ci */
914533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDetachArraybufferTest001, testing::ext::TestSize.Level1)
914633eb0b6dSopenharmony_ci{
914733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
914833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
914933eb0b6dSopenharmony_ci
915033eb0b6dSopenharmony_ci    auto res = napi_detach_arraybuffer(env, nullptr);
915133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
915233eb0b6dSopenharmony_ci}
915333eb0b6dSopenharmony_ci
915433eb0b6dSopenharmony_ci/**
915533eb0b6dSopenharmony_ci * @tc.name: NapiDetachArraybufferTest
915633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_detach_arraybuffer
915733eb0b6dSopenharmony_ci * @tc.type: FUNC
915833eb0b6dSopenharmony_ci */
915933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDetachArraybufferTest002, testing::ext::TestSize.Level1)
916033eb0b6dSopenharmony_ci{
916133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
916233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
916333eb0b6dSopenharmony_ci
916433eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
916533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
916633eb0b6dSopenharmony_ci    auto res = napi_detach_arraybuffer(env, boolean);
916733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_object_expected);
916833eb0b6dSopenharmony_ci}
916933eb0b6dSopenharmony_ci
917033eb0b6dSopenharmony_ci/**
917133eb0b6dSopenharmony_ci * @tc.name: NapiDetachArraybufferTest
917233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_detach_arraybuffer
917333eb0b6dSopenharmony_ci * @tc.type: FUNC
917433eb0b6dSopenharmony_ci */
917533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDetachArraybufferTest003, testing::ext::TestSize.Level1)
917633eb0b6dSopenharmony_ci{
917733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
917833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
917933eb0b6dSopenharmony_ci
918033eb0b6dSopenharmony_ci    napi_value object = nullptr;
918133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object(env, &object));
918233eb0b6dSopenharmony_ci    auto res = napi_detach_arraybuffer(env, object);
918333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
918433eb0b6dSopenharmony_ci}
918533eb0b6dSopenharmony_ci
918633eb0b6dSopenharmony_ci/**
918733eb0b6dSopenharmony_ci * @tc.name: NapiIsDetachedArraybufferTest
918833eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_is_detached_arraybuffer
918933eb0b6dSopenharmony_ci * @tc.type: FUNC
919033eb0b6dSopenharmony_ci */
919133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsDetachedArraybufferTest001, testing::ext::TestSize.Level1)
919233eb0b6dSopenharmony_ci{
919333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
919433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
919533eb0b6dSopenharmony_ci
919633eb0b6dSopenharmony_ci    auto res = napi_is_detached_arraybuffer(env, nullptr, nullptr);
919733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
919833eb0b6dSopenharmony_ci}
919933eb0b6dSopenharmony_ci
920033eb0b6dSopenharmony_ci/**
920133eb0b6dSopenharmony_ci * @tc.name: NapiIsDetachedArraybufferTest
920233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_is_detached_arraybuffer
920333eb0b6dSopenharmony_ci * @tc.type: FUNC
920433eb0b6dSopenharmony_ci */
920533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiIsDetachedArraybufferTest002, testing::ext::TestSize.Level1)
920633eb0b6dSopenharmony_ci{
920733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
920833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
920933eb0b6dSopenharmony_ci
921033eb0b6dSopenharmony_ci    static constexpr size_t arrayBufferSize = 1024;
921133eb0b6dSopenharmony_ci    napi_value arrayBuffer = nullptr;
921233eb0b6dSopenharmony_ci    void* arrayBufferPtr = nullptr;
921333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_arraybuffer(env, arrayBufferSize, &arrayBufferPtr, &arrayBuffer));
921433eb0b6dSopenharmony_ci
921533eb0b6dSopenharmony_ci    auto res = napi_is_detached_arraybuffer(env, arrayBuffer, nullptr);
921633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
921733eb0b6dSopenharmony_ci}
921833eb0b6dSopenharmony_ci
921933eb0b6dSopenharmony_ci/**
922033eb0b6dSopenharmony_ci * @tc.name: NapiSetInstanceDataTest
922133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_set_instance_data
922233eb0b6dSopenharmony_ci * @tc.type: FUNC
922333eb0b6dSopenharmony_ci */
922433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSetInstanceDataTest001, testing::ext::TestSize.Level1)
922533eb0b6dSopenharmony_ci{
922633eb0b6dSopenharmony_ci    auto res = napi_set_instance_data(nullptr, nullptr, nullptr, nullptr);
922733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
922833eb0b6dSopenharmony_ci}
922933eb0b6dSopenharmony_ci
923033eb0b6dSopenharmony_ci/**
923133eb0b6dSopenharmony_ci * @tc.name: NapiGetInstanceDataTest
923233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_get_instance_data
923333eb0b6dSopenharmony_ci * @tc.type: FUNC
923433eb0b6dSopenharmony_ci */
923533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiGetInstanceDataTest001, testing::ext::TestSize.Level1)
923633eb0b6dSopenharmony_ci{
923733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
923833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
923933eb0b6dSopenharmony_ci
924033eb0b6dSopenharmony_ci    auto res = napi_get_instance_data(env, nullptr);
924133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
924233eb0b6dSopenharmony_ci}
924333eb0b6dSopenharmony_ci
924433eb0b6dSopenharmony_ci/**
924533eb0b6dSopenharmony_ci * @tc.name: NapiAddEnvCleanupHookTest
924633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_add_env_cleanup_hook
924733eb0b6dSopenharmony_ci * @tc.type: FUNC
924833eb0b6dSopenharmony_ci */
924933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiAddEnvCleanupHookTest001, testing::ext::TestSize.Level1)
925033eb0b6dSopenharmony_ci{
925133eb0b6dSopenharmony_ci    auto res = napi_add_env_cleanup_hook(nullptr, nullptr, nullptr);
925233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
925333eb0b6dSopenharmony_ci}
925433eb0b6dSopenharmony_ci
925533eb0b6dSopenharmony_ci/**
925633eb0b6dSopenharmony_ci * @tc.name: NapiAddEnvCleanupHookTest
925733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_add_env_cleanup_hook
925833eb0b6dSopenharmony_ci * @tc.type: FUNC
925933eb0b6dSopenharmony_ci */
926033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiAddEnvCleanupHookTest002, testing::ext::TestSize.Level1)
926133eb0b6dSopenharmony_ci{
926233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
926333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
926433eb0b6dSopenharmony_ci
926533eb0b6dSopenharmony_ci    auto res = napi_add_env_cleanup_hook(env, nullptr, nullptr);
926633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
926733eb0b6dSopenharmony_ci}
926833eb0b6dSopenharmony_ci
926933eb0b6dSopenharmony_ci/**
927033eb0b6dSopenharmony_ci * @tc.name: NapiRemoveEnvCleanupHookTest
927133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_remove_env_cleanup_hook
927233eb0b6dSopenharmony_ci * @tc.type: FUNC
927333eb0b6dSopenharmony_ci */
927433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRemoveEnvCleanupHookTest001, testing::ext::TestSize.Level1)
927533eb0b6dSopenharmony_ci{
927633eb0b6dSopenharmony_ci    auto res = napi_remove_env_cleanup_hook(nullptr, nullptr, nullptr);
927733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
927833eb0b6dSopenharmony_ci}
927933eb0b6dSopenharmony_ci
928033eb0b6dSopenharmony_ci/**
928133eb0b6dSopenharmony_ci * @tc.name: NapiRemoveEnvCleanupHookTest
928233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_remove_env_cleanup_hook
928333eb0b6dSopenharmony_ci * @tc.type: FUNC
928433eb0b6dSopenharmony_ci */
928533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRemoveEnvCleanupHookTest002, testing::ext::TestSize.Level1)
928633eb0b6dSopenharmony_ci{
928733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
928833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
928933eb0b6dSopenharmony_ci
929033eb0b6dSopenharmony_ci    auto res = napi_remove_env_cleanup_hook(env, nullptr, nullptr);
929133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
929233eb0b6dSopenharmony_ci}
929333eb0b6dSopenharmony_ci
929433eb0b6dSopenharmony_ci/**
929533eb0b6dSopenharmony_ci * @tc.name: NapiAddAsyncCleanupHookTest
929633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_add_async_cleanup_hook
929733eb0b6dSopenharmony_ci * @tc.type: FUNC
929833eb0b6dSopenharmony_ci */
929933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiAddAsyncCleanupHookTest001, testing::ext::TestSize.Level1)
930033eb0b6dSopenharmony_ci{
930133eb0b6dSopenharmony_ci    auto res = napi_add_async_cleanup_hook(nullptr, nullptr, nullptr, nullptr);
930233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
930333eb0b6dSopenharmony_ci}
930433eb0b6dSopenharmony_ci
930533eb0b6dSopenharmony_ci/**
930633eb0b6dSopenharmony_ci * @tc.name: NapiAddAsyncCleanupHookTest
930733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_add_async_cleanup_hook
930833eb0b6dSopenharmony_ci * @tc.type: FUNC
930933eb0b6dSopenharmony_ci */
931033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiAddAsyncCleanupHookTest002, testing::ext::TestSize.Level1)
931133eb0b6dSopenharmony_ci{
931233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
931333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
931433eb0b6dSopenharmony_ci
931533eb0b6dSopenharmony_ci    auto res = napi_add_async_cleanup_hook(env, nullptr, nullptr, nullptr);
931633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
931733eb0b6dSopenharmony_ci}
931833eb0b6dSopenharmony_ci
931933eb0b6dSopenharmony_ci/**
932033eb0b6dSopenharmony_ci * @tc.name: NapiRemoveAsyncCleanupHookTest
932133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_remove_async_cleanup_hook
932233eb0b6dSopenharmony_ci * @tc.type: FUNC
932333eb0b6dSopenharmony_ci */
932433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRemoveAsyncCleanupHookTest001, testing::ext::TestSize.Level1)
932533eb0b6dSopenharmony_ci{
932633eb0b6dSopenharmony_ci    auto res = napi_remove_async_cleanup_hook(nullptr);
932733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
932833eb0b6dSopenharmony_ci}
932933eb0b6dSopenharmony_ci
933033eb0b6dSopenharmony_ci/**
933133eb0b6dSopenharmony_ci * @tc.name: NodeApiGetModuleFileNameTest
933233eb0b6dSopenharmony_ci * @tc.desc: Test interface of node_api_get_module_file_name
933333eb0b6dSopenharmony_ci * @tc.type: FUNC
933433eb0b6dSopenharmony_ci */
933533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NodeApiGetModuleFileNameTest001, testing::ext::TestSize.Level1)
933633eb0b6dSopenharmony_ci{
933733eb0b6dSopenharmony_ci    auto res = node_api_get_module_file_name(nullptr, nullptr);
933833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
933933eb0b6dSopenharmony_ci}
934033eb0b6dSopenharmony_ci
934133eb0b6dSopenharmony_ci/**
934233eb0b6dSopenharmony_ci * @tc.name: NodeApiGetModuleFileNameTest
934333eb0b6dSopenharmony_ci * @tc.desc: Test interface of node_api_get_module_file_name
934433eb0b6dSopenharmony_ci * @tc.type: FUNC
934533eb0b6dSopenharmony_ci */
934633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NodeApiGetModuleFileNameTest002, testing::ext::TestSize.Level1)
934733eb0b6dSopenharmony_ci{
934833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
934933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
935033eb0b6dSopenharmony_ci
935133eb0b6dSopenharmony_ci    auto res = node_api_get_module_file_name(env, nullptr);
935233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
935333eb0b6dSopenharmony_ci}
935433eb0b6dSopenharmony_ci
935533eb0b6dSopenharmony_ci/**
935633eb0b6dSopenharmony_ci * @tc.name: NapiAddFinalizerTest
935733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_add_finalizer
935833eb0b6dSopenharmony_ci * @tc.type: FUNC
935933eb0b6dSopenharmony_ci */
936033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiAddFinalizerTest001, testing::ext::TestSize.Level1)
936133eb0b6dSopenharmony_ci{
936233eb0b6dSopenharmony_ci    auto res = napi_add_finalizer(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr);
936333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
936433eb0b6dSopenharmony_ci}
936533eb0b6dSopenharmony_ci
936633eb0b6dSopenharmony_ci/**
936733eb0b6dSopenharmony_ci * @tc.name: NapiAddFinalizerTest
936833eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_add_finalizer
936933eb0b6dSopenharmony_ci * @tc.type: FUNC
937033eb0b6dSopenharmony_ci */
937133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiAddFinalizerTest002, testing::ext::TestSize.Level1)
937233eb0b6dSopenharmony_ci{
937333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
937433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
937533eb0b6dSopenharmony_ci
937633eb0b6dSopenharmony_ci    auto res = napi_add_finalizer(env, nullptr, nullptr, nullptr, nullptr, nullptr);
937733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
937833eb0b6dSopenharmony_ci}
937933eb0b6dSopenharmony_ci
938033eb0b6dSopenharmony_ci/**
938133eb0b6dSopenharmony_ci * @tc.name: NapiAddFinalizerTest
938233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_add_finalizer
938333eb0b6dSopenharmony_ci * @tc.type: FUNC
938433eb0b6dSopenharmony_ci */
938533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiAddFinalizerTest003, testing::ext::TestSize.Level1)
938633eb0b6dSopenharmony_ci{
938733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
938833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
938933eb0b6dSopenharmony_ci
939033eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
939133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
939233eb0b6dSopenharmony_ci    auto res = napi_add_finalizer(env, boolean, nullptr, nullptr, nullptr, nullptr);
939333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
939433eb0b6dSopenharmony_ci}
939533eb0b6dSopenharmony_ci
939633eb0b6dSopenharmony_ci/**
939733eb0b6dSopenharmony_ci * @tc.name: NapiAddFinalizerTest
939833eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_add_finalizer
939933eb0b6dSopenharmony_ci * @tc.type: FUNC
940033eb0b6dSopenharmony_ci */
940133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiAddFinalizerTest004, testing::ext::TestSize.Level1)
940233eb0b6dSopenharmony_ci{
940333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
940433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
940533eb0b6dSopenharmony_ci
940633eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
940733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
940833eb0b6dSopenharmony_ci    auto res = napi_add_finalizer(env, boolean, nullptr, TestFinalizer, nullptr, nullptr);
940933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_object_expected);
941033eb0b6dSopenharmony_ci}
941133eb0b6dSopenharmony_ci
941233eb0b6dSopenharmony_ci/**
941333eb0b6dSopenharmony_ci * @tc.name: NapiQueueAsyncWorkWithQosTest
941433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_queue_async_work_with_qos
941533eb0b6dSopenharmony_ci * @tc.type: FUNC
941633eb0b6dSopenharmony_ci */
941733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiQueueAsyncWorkWithQosTest001, testing::ext::TestSize.Level1)
941833eb0b6dSopenharmony_ci{
941933eb0b6dSopenharmony_ci    auto res = napi_queue_async_work_with_qos(nullptr, nullptr, napi_qos_default);
942033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
942133eb0b6dSopenharmony_ci}
942233eb0b6dSopenharmony_ci
942333eb0b6dSopenharmony_ci/**
942433eb0b6dSopenharmony_ci * @tc.name: NapiQueueAsyncWorkWithQosTest
942533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_queue_async_work_with_qos
942633eb0b6dSopenharmony_ci * @tc.type: FUNC
942733eb0b6dSopenharmony_ci */
942833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiQueueAsyncWorkWithQosTest002, testing::ext::TestSize.Level1)
942933eb0b6dSopenharmony_ci{
943033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
943133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
943233eb0b6dSopenharmony_ci
943333eb0b6dSopenharmony_ci    auto res = napi_queue_async_work_with_qos(env, nullptr, napi_qos_default);
943433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
943533eb0b6dSopenharmony_ci}
943633eb0b6dSopenharmony_ci
943733eb0b6dSopenharmony_ci/**
943833eb0b6dSopenharmony_ci * @tc.name: NapiQueueAsyncWorkWithQosTest
943933eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_queue_async_work_with_qos
944033eb0b6dSopenharmony_ci * @tc.type: FUNC
944133eb0b6dSopenharmony_ci */
944233eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiQueueAsyncWorkWithQosTest003, testing::ext::TestSize.Level1)
944333eb0b6dSopenharmony_ci{
944433eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
944533eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
944633eb0b6dSopenharmony_ci
944733eb0b6dSopenharmony_ci    struct AsyncWorkContext {
944833eb0b6dSopenharmony_ci        napi_async_work work = nullptr;
944933eb0b6dSopenharmony_ci    };
945033eb0b6dSopenharmony_ci    auto asyncWorkContext = new AsyncWorkContext();
945133eb0b6dSopenharmony_ci    napi_value resourceName = nullptr;
945233eb0b6dSopenharmony_ci    napi_create_string_utf8(env, TEST_CHAR_STRING, NAPI_AUTO_LENGTH, &resourceName);
945333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_async_work(
945433eb0b6dSopenharmony_ci        env, nullptr, resourceName, [](napi_env value, void* data) {},
945533eb0b6dSopenharmony_ci        [](napi_env env, napi_status status, void* data) {
945633eb0b6dSopenharmony_ci            AsyncWorkContext* asyncWorkContext = (AsyncWorkContext*)data;
945733eb0b6dSopenharmony_ci            ASSERT_CHECK_CALL(napi_delete_async_work(env, asyncWorkContext->work));
945833eb0b6dSopenharmony_ci            delete asyncWorkContext;
945933eb0b6dSopenharmony_ci            STOP_EVENT_LOOP(env);
946033eb0b6dSopenharmony_ci        },
946133eb0b6dSopenharmony_ci        asyncWorkContext, &asyncWorkContext->work));
946233eb0b6dSopenharmony_ci
946333eb0b6dSopenharmony_ci    auto res = napi_queue_async_work_with_qos(env, asyncWorkContext->work, napi_qos_default);
946433eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
946533eb0b6dSopenharmony_ci    RUN_EVENT_LOOP(env);
946633eb0b6dSopenharmony_ci}
946733eb0b6dSopenharmony_ci
946833eb0b6dSopenharmony_ci/**
946933eb0b6dSopenharmony_ci * @tc.name: NapiRunScriptPathTest
947033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_run_script_path
947133eb0b6dSopenharmony_ci * @tc.type: FUNC
947233eb0b6dSopenharmony_ci */
947333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRunScriptPathTest001, testing::ext::TestSize.Level1)
947433eb0b6dSopenharmony_ci{
947533eb0b6dSopenharmony_ci    auto res = napi_run_script_path(nullptr, nullptr, nullptr);
947633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
947733eb0b6dSopenharmony_ci}
947833eb0b6dSopenharmony_ci
947933eb0b6dSopenharmony_ci/**
948033eb0b6dSopenharmony_ci * @tc.name: NapiRunScriptPathTest
948133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_run_script_path
948233eb0b6dSopenharmony_ci * @tc.type: FUNC
948333eb0b6dSopenharmony_ci */
948433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRunScriptPathTest002, testing::ext::TestSize.Level1)
948533eb0b6dSopenharmony_ci{
948633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
948733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
948833eb0b6dSopenharmony_ci
948933eb0b6dSopenharmony_ci    auto res = napi_run_script_path(env, nullptr, nullptr);
949033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
949133eb0b6dSopenharmony_ci}
949233eb0b6dSopenharmony_ci
949333eb0b6dSopenharmony_ci/**
949433eb0b6dSopenharmony_ci * @tc.name: NapiRunScriptPathTest
949533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_run_script_path
949633eb0b6dSopenharmony_ci * @tc.type: FUNC
949733eb0b6dSopenharmony_ci */
949833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRunScriptPathTest003, testing::ext::TestSize.Level1)
949933eb0b6dSopenharmony_ci{
950033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
950133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
950233eb0b6dSopenharmony_ci
950333eb0b6dSopenharmony_ci    napi_value result = nullptr;
950433eb0b6dSopenharmony_ci    auto res = napi_run_script_path(env, TEST_CHAR_STRING, &result);
950533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
950633eb0b6dSopenharmony_ci}
950733eb0b6dSopenharmony_ci
950833eb0b6dSopenharmony_ci/**
950933eb0b6dSopenharmony_ci * @tc.name: NapiLoadModuleTest
951033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_load_module
951133eb0b6dSopenharmony_ci * @tc.type: FUNC
951233eb0b6dSopenharmony_ci */
951333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiLoadModuleTest001, testing::ext::TestSize.Level1)
951433eb0b6dSopenharmony_ci{
951533eb0b6dSopenharmony_ci    auto res = napi_load_module(nullptr, nullptr, nullptr);
951633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
951733eb0b6dSopenharmony_ci}
951833eb0b6dSopenharmony_ci
951933eb0b6dSopenharmony_ci/**
952033eb0b6dSopenharmony_ci * @tc.name: NapiLoadModuleTest
952133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_load_module
952233eb0b6dSopenharmony_ci * @tc.type: FUNC
952333eb0b6dSopenharmony_ci */
952433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiLoadModuleTest002, testing::ext::TestSize.Level1)
952533eb0b6dSopenharmony_ci{
952633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
952733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
952833eb0b6dSopenharmony_ci
952933eb0b6dSopenharmony_ci    auto res = napi_load_module(env, nullptr, nullptr);
953033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
953133eb0b6dSopenharmony_ci}
953233eb0b6dSopenharmony_ci
953333eb0b6dSopenharmony_ci/**
953433eb0b6dSopenharmony_ci * @tc.name: NapiLoadModuleTest
953533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_load_module
953633eb0b6dSopenharmony_ci * @tc.type: FUNC
953733eb0b6dSopenharmony_ci */
953833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiLoadModuleTest003, testing::ext::TestSize.Level1)
953933eb0b6dSopenharmony_ci{
954033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
954133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
954233eb0b6dSopenharmony_ci
954333eb0b6dSopenharmony_ci    napi_value result = nullptr;
954433eb0b6dSopenharmony_ci    auto res = napi_load_module(env, nullptr, &result);
954533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
954633eb0b6dSopenharmony_ci}
954733eb0b6dSopenharmony_ci
954833eb0b6dSopenharmony_ci/**
954933eb0b6dSopenharmony_ci * @tc.name: NapiCreateObjectWithPropertiesTest
955033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_object_with_properties
955133eb0b6dSopenharmony_ci * @tc.type: FUNC
955233eb0b6dSopenharmony_ci */
955333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateObjectWithPropertiesTest001, testing::ext::TestSize.Level1)
955433eb0b6dSopenharmony_ci{
955533eb0b6dSopenharmony_ci    auto res = napi_create_object_with_properties(nullptr, nullptr, 0, nullptr);
955633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
955733eb0b6dSopenharmony_ci}
955833eb0b6dSopenharmony_ci
955933eb0b6dSopenharmony_ci/**
956033eb0b6dSopenharmony_ci * @tc.name: NapiCreateObjectWithPropertiesTest
956133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_object_with_properties
956233eb0b6dSopenharmony_ci * @tc.type: FUNC
956333eb0b6dSopenharmony_ci */
956433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateObjectWithPropertiesTest002, testing::ext::TestSize.Level1)
956533eb0b6dSopenharmony_ci{
956633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
956733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
956833eb0b6dSopenharmony_ci
956933eb0b6dSopenharmony_ci    auto res = napi_create_object_with_properties(env, nullptr, 0, nullptr);
957033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
957133eb0b6dSopenharmony_ci}
957233eb0b6dSopenharmony_ci
957333eb0b6dSopenharmony_ci/**
957433eb0b6dSopenharmony_ci * @tc.name: NapiCreateObjectWithNamedPropertiesTest
957533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_object_with_named_properties
957633eb0b6dSopenharmony_ci * @tc.type: FUNC
957733eb0b6dSopenharmony_ci */
957833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateObjectWithNamedPropertiesTest001, testing::ext::TestSize.Level1)
957933eb0b6dSopenharmony_ci{
958033eb0b6dSopenharmony_ci    auto res = napi_create_object_with_named_properties(nullptr, nullptr, 0, nullptr, nullptr);
958133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
958233eb0b6dSopenharmony_ci}
958333eb0b6dSopenharmony_ci
958433eb0b6dSopenharmony_ci/**
958533eb0b6dSopenharmony_ci * @tc.name: NapiCreateObjectWithNamedPropertiesTest
958633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_object_with_named_properties
958733eb0b6dSopenharmony_ci * @tc.type: FUNC
958833eb0b6dSopenharmony_ci */
958933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateObjectWithNamedPropertiesTest002, testing::ext::TestSize.Level1)
959033eb0b6dSopenharmony_ci{
959133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
959233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
959333eb0b6dSopenharmony_ci
959433eb0b6dSopenharmony_ci    auto res = napi_create_object_with_named_properties(env, nullptr, 0, nullptr, nullptr);
959533eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
959633eb0b6dSopenharmony_ci}
959733eb0b6dSopenharmony_ci
959833eb0b6dSopenharmony_ci/**
959933eb0b6dSopenharmony_ci * @tc.name: NapiCoerceToNativeBindingObjectTest
960033eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_coerce_to_native_binding_object
960133eb0b6dSopenharmony_ci * @tc.type: FUNC
960233eb0b6dSopenharmony_ci */
960333eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToNativeBindingObjectTest001, testing::ext::TestSize.Level1)
960433eb0b6dSopenharmony_ci{
960533eb0b6dSopenharmony_ci    auto res = napi_coerce_to_native_binding_object(nullptr, nullptr, nullptr, nullptr, nullptr, nullptr);
960633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
960733eb0b6dSopenharmony_ci}
960833eb0b6dSopenharmony_ci
960933eb0b6dSopenharmony_ci/**
961033eb0b6dSopenharmony_ci * @tc.name: NapiCoerceToNativeBindingObjectTest
961133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_coerce_to_native_binding_object
961233eb0b6dSopenharmony_ci * @tc.type: FUNC
961333eb0b6dSopenharmony_ci */
961433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToNativeBindingObjectTest002, testing::ext::TestSize.Level1)
961533eb0b6dSopenharmony_ci{
961633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
961733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
961833eb0b6dSopenharmony_ci
961933eb0b6dSopenharmony_ci    auto res = napi_coerce_to_native_binding_object(env, nullptr, nullptr, nullptr, nullptr, nullptr);
962033eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
962133eb0b6dSopenharmony_ci}
962233eb0b6dSopenharmony_ci
962333eb0b6dSopenharmony_ci/**
962433eb0b6dSopenharmony_ci * @tc.name: NapiCoerceToNativeBindingObjectTest
962533eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_coerce_to_native_binding_object
962633eb0b6dSopenharmony_ci * @tc.type: FUNC
962733eb0b6dSopenharmony_ci */
962833eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToNativeBindingObjectTest003, testing::ext::TestSize.Level1)
962933eb0b6dSopenharmony_ci{
963033eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
963133eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
963233eb0b6dSopenharmony_ci
963333eb0b6dSopenharmony_ci    napi_value object = nullptr;
963433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object(env, &object));
963533eb0b6dSopenharmony_ci    auto res = napi_coerce_to_native_binding_object(env, object, nullptr, nullptr, nullptr, nullptr);
963633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
963733eb0b6dSopenharmony_ci}
963833eb0b6dSopenharmony_ci
963933eb0b6dSopenharmony_ci/**
964033eb0b6dSopenharmony_ci * @tc.name: NapiCoerceToNativeBindingObjectTest
964133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_coerce_to_native_binding_object
964233eb0b6dSopenharmony_ci * @tc.type: FUNC
964333eb0b6dSopenharmony_ci */
964433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToNativeBindingObjectTest004, testing::ext::TestSize.Level1)
964533eb0b6dSopenharmony_ci{
964633eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
964733eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
964833eb0b6dSopenharmony_ci
964933eb0b6dSopenharmony_ci    napi_value object = nullptr;
965033eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object(env, &object));
965133eb0b6dSopenharmony_ci    auto res = napi_coerce_to_native_binding_object(env, object, TestDetachCallback, nullptr, nullptr, nullptr);
965233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
965333eb0b6dSopenharmony_ci}
965433eb0b6dSopenharmony_ci
965533eb0b6dSopenharmony_ci/**
965633eb0b6dSopenharmony_ci * @tc.name: NapiCoerceToNativeBindingObjectTest
965733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_coerce_to_native_binding_object
965833eb0b6dSopenharmony_ci * @tc.type: FUNC
965933eb0b6dSopenharmony_ci */
966033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToNativeBindingObjectTest005, testing::ext::TestSize.Level1)
966133eb0b6dSopenharmony_ci{
966233eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
966333eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
966433eb0b6dSopenharmony_ci
966533eb0b6dSopenharmony_ci    napi_value object = nullptr;
966633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object(env, &object));
966733eb0b6dSopenharmony_ci    auto res = napi_coerce_to_native_binding_object(env, object, TestDetachCallback, TestAttachCallback,
966833eb0b6dSopenharmony_ci        nullptr, nullptr);
966933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
967033eb0b6dSopenharmony_ci}
967133eb0b6dSopenharmony_ci
967233eb0b6dSopenharmony_ci/**
967333eb0b6dSopenharmony_ci * @tc.name: NapiCoerceToNativeBindingObjectTest
967433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_coerce_to_native_binding_object
967533eb0b6dSopenharmony_ci * @tc.type: FUNC
967633eb0b6dSopenharmony_ci */
967733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCoerceToNativeBindingObjectTest006, testing::ext::TestSize.Level1)
967833eb0b6dSopenharmony_ci{
967933eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
968033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
968133eb0b6dSopenharmony_ci
968233eb0b6dSopenharmony_ci    napi_value object = nullptr;
968333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_object(env, &object));
968433eb0b6dSopenharmony_ci    auto res = napi_coerce_to_native_binding_object(env, object, TestDetachCallback, TestAttachCallback,
968533eb0b6dSopenharmony_ci        reinterpret_cast<void*>(object), nullptr);
968633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
968733eb0b6dSopenharmony_ci}
968833eb0b6dSopenharmony_ci
968933eb0b6dSopenharmony_ci/**
969033eb0b6dSopenharmony_ci * @tc.name: NapiCreateArkRuntimeTest
969133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_ark_runtime
969233eb0b6dSopenharmony_ci * @tc.type: FUNC
969333eb0b6dSopenharmony_ci */
969433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateArkRuntimeTest001, testing::ext::TestSize.Level1)
969533eb0b6dSopenharmony_ci{
969633eb0b6dSopenharmony_ci    auto res = napi_create_ark_runtime(nullptr);
969733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
969833eb0b6dSopenharmony_ci}
969933eb0b6dSopenharmony_ci
970033eb0b6dSopenharmony_ci/**
970133eb0b6dSopenharmony_ci * @tc.name: NapiCreateArkRuntimeTest
970233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_create_ark_runtime
970333eb0b6dSopenharmony_ci * @tc.type: FUNC
970433eb0b6dSopenharmony_ci */
970533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiCreateArkRuntimeTest002, testing::ext::TestSize.Level1)
970633eb0b6dSopenharmony_ci{
970733eb0b6dSopenharmony_ci    auto temp = NativeCreateEnv::g_createNapiEnvCallback;
970833eb0b6dSopenharmony_ci    NativeCreateEnv::g_createNapiEnvCallback = nullptr;
970933eb0b6dSopenharmony_ci    auto res = napi_create_ark_runtime(nullptr);
971033eb0b6dSopenharmony_ci    NativeCreateEnv::g_createNapiEnvCallback = temp;
971133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
971233eb0b6dSopenharmony_ci}
971333eb0b6dSopenharmony_ci
971433eb0b6dSopenharmony_ci/**
971533eb0b6dSopenharmony_ci * @tc.name: NapiDestroyArkRuntimeTest
971633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_destroy_ark_runtime
971733eb0b6dSopenharmony_ci * @tc.type: FUNC
971833eb0b6dSopenharmony_ci */
971933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDestroyArkRuntimeTest001, testing::ext::TestSize.Level1)
972033eb0b6dSopenharmony_ci{
972133eb0b6dSopenharmony_ci    auto res = napi_destroy_ark_runtime(nullptr);
972233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
972333eb0b6dSopenharmony_ci}
972433eb0b6dSopenharmony_ci
972533eb0b6dSopenharmony_ci/**
972633eb0b6dSopenharmony_ci * @tc.name: NapiDestroyArkRuntimeTest
972733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_destroy_ark_runtime
972833eb0b6dSopenharmony_ci * @tc.type: FUNC
972933eb0b6dSopenharmony_ci */
973033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiDestroyArkRuntimeTest002, testing::ext::TestSize.Level1)
973133eb0b6dSopenharmony_ci{
973233eb0b6dSopenharmony_ci    auto temp = NativeCreateEnv::g_destroyNapiEnvCallback;
973333eb0b6dSopenharmony_ci    NativeCreateEnv::g_destroyNapiEnvCallback = nullptr;
973433eb0b6dSopenharmony_ci    auto res = napi_destroy_ark_runtime(nullptr);
973533eb0b6dSopenharmony_ci    NativeCreateEnv::g_destroyNapiEnvCallback = temp;
973633eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
973733eb0b6dSopenharmony_ci}
973833eb0b6dSopenharmony_ci
973933eb0b6dSopenharmony_ci/**
974033eb0b6dSopenharmony_ci * @tc.name: NapiRunEventLoopTest
974133eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_run_event_loop
974233eb0b6dSopenharmony_ci * @tc.type: FUNC
974333eb0b6dSopenharmony_ci */
974433eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRunEventLoopTest001, testing::ext::TestSize.Level1)
974533eb0b6dSopenharmony_ci{
974633eb0b6dSopenharmony_ci    auto res = napi_run_event_loop(nullptr, napi_event_mode_default);
974733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
974833eb0b6dSopenharmony_ci}
974933eb0b6dSopenharmony_ci
975033eb0b6dSopenharmony_ci/**
975133eb0b6dSopenharmony_ci * @tc.name: NapiRunEventLoopTest
975233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_run_event_loop
975333eb0b6dSopenharmony_ci * @tc.type: FUNC
975433eb0b6dSopenharmony_ci */
975533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiRunEventLoopTest002, testing::ext::TestSize.Level1)
975633eb0b6dSopenharmony_ci{
975733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
975833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
975933eb0b6dSopenharmony_ci
976033eb0b6dSopenharmony_ci    auto res = napi_run_event_loop(env, (napi_event_mode)(napi_event_mode_default - 1));
976133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
976233eb0b6dSopenharmony_ci}
976333eb0b6dSopenharmony_ci
976433eb0b6dSopenharmony_ci/**
976533eb0b6dSopenharmony_ci * @tc.name: NapiStopEventLoopTest
976633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_stop_event_loop
976733eb0b6dSopenharmony_ci * @tc.type: FUNC
976833eb0b6dSopenharmony_ci */
976933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiStopEventLoopTest001, testing::ext::TestSize.Level1)
977033eb0b6dSopenharmony_ci{
977133eb0b6dSopenharmony_ci    auto res = napi_stop_event_loop(nullptr);
977233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
977333eb0b6dSopenharmony_ci}
977433eb0b6dSopenharmony_ci
977533eb0b6dSopenharmony_ci/**
977633eb0b6dSopenharmony_ci * @tc.name: NapiLoadModuleWithInfoTest
977733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_load_module_with_info
977833eb0b6dSopenharmony_ci * @tc.type: FUNC
977933eb0b6dSopenharmony_ci */
978033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiLoadModuleWithInfoTest001, testing::ext::TestSize.Level1)
978133eb0b6dSopenharmony_ci{
978233eb0b6dSopenharmony_ci    auto res = napi_load_module_with_info(nullptr, nullptr, nullptr, nullptr);
978333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
978433eb0b6dSopenharmony_ci}
978533eb0b6dSopenharmony_ci
978633eb0b6dSopenharmony_ci/**
978733eb0b6dSopenharmony_ci * @tc.name: NapiLoadModuleWithInfoTest
978833eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_load_module_with_info
978933eb0b6dSopenharmony_ci * @tc.type: FUNC
979033eb0b6dSopenharmony_ci */
979133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiLoadModuleWithInfoTest002, testing::ext::TestSize.Level1)
979233eb0b6dSopenharmony_ci{
979333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
979433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
979533eb0b6dSopenharmony_ci
979633eb0b6dSopenharmony_ci    auto res = napi_load_module_with_info(env, nullptr, nullptr, nullptr);
979733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
979833eb0b6dSopenharmony_ci}
979933eb0b6dSopenharmony_ci
980033eb0b6dSopenharmony_ci/**
980133eb0b6dSopenharmony_ci * @tc.name: NapiLoadModuleWithInfoTest
980233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_load_module_with_info
980333eb0b6dSopenharmony_ci * @tc.type: FUNC
980433eb0b6dSopenharmony_ci */
980533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiLoadModuleWithInfoTest003, testing::ext::TestSize.Level1)
980633eb0b6dSopenharmony_ci{
980733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
980833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
980933eb0b6dSopenharmony_ci
981033eb0b6dSopenharmony_ci    napi_value result = nullptr;
981133eb0b6dSopenharmony_ci    auto res = napi_load_module_with_info(env, nullptr, nullptr, &result);
981233eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
981333eb0b6dSopenharmony_ci}
981433eb0b6dSopenharmony_ci
981533eb0b6dSopenharmony_ci/**
981633eb0b6dSopenharmony_ci * @tc.name: NapiSerializeTest
981733eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_serialize
981833eb0b6dSopenharmony_ci * @tc.type: FUNC
981933eb0b6dSopenharmony_ci */
982033eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSerializeTest001, testing::ext::TestSize.Level1)
982133eb0b6dSopenharmony_ci{
982233eb0b6dSopenharmony_ci    auto res = napi_serialize(nullptr, nullptr, nullptr, nullptr, nullptr);
982333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
982433eb0b6dSopenharmony_ci}
982533eb0b6dSopenharmony_ci
982633eb0b6dSopenharmony_ci/**
982733eb0b6dSopenharmony_ci * @tc.name: NapiSerializeTest
982833eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_serialize
982933eb0b6dSopenharmony_ci * @tc.type: FUNC
983033eb0b6dSopenharmony_ci */
983133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSerializeTest002, testing::ext::TestSize.Level1)
983233eb0b6dSopenharmony_ci{
983333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
983433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
983533eb0b6dSopenharmony_ci
983633eb0b6dSopenharmony_ci    auto res = napi_serialize(env, nullptr, nullptr, nullptr, nullptr);
983733eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
983833eb0b6dSopenharmony_ci}
983933eb0b6dSopenharmony_ci
984033eb0b6dSopenharmony_ci/**
984133eb0b6dSopenharmony_ci * @tc.name: NapiSerializeTest
984233eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_serialize
984333eb0b6dSopenharmony_ci * @tc.type: FUNC
984433eb0b6dSopenharmony_ci */
984533eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSerializeTest003, testing::ext::TestSize.Level1)
984633eb0b6dSopenharmony_ci{
984733eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
984833eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
984933eb0b6dSopenharmony_ci
985033eb0b6dSopenharmony_ci    napi_value num = nullptr;
985133eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_uint32(env, TEST_UINT32_1000, &num));
985233eb0b6dSopenharmony_ci    auto res = napi_serialize(env, num, nullptr, nullptr, nullptr);
985333eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
985433eb0b6dSopenharmony_ci}
985533eb0b6dSopenharmony_ci
985633eb0b6dSopenharmony_ci/**
985733eb0b6dSopenharmony_ci * @tc.name: NapiSerializeTest
985833eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_serialize
985933eb0b6dSopenharmony_ci * @tc.type: FUNC
986033eb0b6dSopenharmony_ci */
986133eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSerializeTest004, testing::ext::TestSize.Level1)
986233eb0b6dSopenharmony_ci{
986333eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
986433eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
986533eb0b6dSopenharmony_ci
986633eb0b6dSopenharmony_ci    napi_value num = nullptr;
986733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_uint32(env, TEST_UINT32_1000, &num));
986833eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
986933eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_undefined(env, &undefined));
987033eb0b6dSopenharmony_ci    auto res = napi_serialize(env, num, undefined, nullptr, nullptr);
987133eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
987233eb0b6dSopenharmony_ci}
987333eb0b6dSopenharmony_ci
987433eb0b6dSopenharmony_ci/**
987533eb0b6dSopenharmony_ci * @tc.name: NapiSerializeTest
987633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_serialize
987733eb0b6dSopenharmony_ci * @tc.type: FUNC
987833eb0b6dSopenharmony_ci */
987933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSerializeTest005, testing::ext::TestSize.Level1)
988033eb0b6dSopenharmony_ci{
988133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
988233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
988333eb0b6dSopenharmony_ci
988433eb0b6dSopenharmony_ci    napi_value num = nullptr;
988533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_uint32(env, TEST_UINT32_1000, &num));
988633eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
988733eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_undefined(env, &undefined));
988833eb0b6dSopenharmony_ci    auto res = napi_serialize(env, num, undefined, undefined, nullptr);
988933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
989033eb0b6dSopenharmony_ci}
989133eb0b6dSopenharmony_ci
989233eb0b6dSopenharmony_ci/**
989333eb0b6dSopenharmony_ci * @tc.name: NapiSerializeTest
989433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_serialize
989533eb0b6dSopenharmony_ci * @tc.type: FUNC
989633eb0b6dSopenharmony_ci */
989733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSerializeTest006, testing::ext::TestSize.Level1)
989833eb0b6dSopenharmony_ci{
989933eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
990033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
990133eb0b6dSopenharmony_ci
990233eb0b6dSopenharmony_ci    napi_value num = nullptr;
990333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_uint32(env, TEST_UINT32_1000, &num));
990433eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
990533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
990633eb0b6dSopenharmony_ci    void* data = nullptr;
990733eb0b6dSopenharmony_ci    auto res = napi_serialize(env, num, boolean, boolean, &data);
990833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
990933eb0b6dSopenharmony_ci}
991033eb0b6dSopenharmony_ci
991133eb0b6dSopenharmony_ci/**
991233eb0b6dSopenharmony_ci * @tc.name: NapiSerializeTest
991333eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_serialize
991433eb0b6dSopenharmony_ci * @tc.type: FUNC
991533eb0b6dSopenharmony_ci */
991633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSerializeTest007, testing::ext::TestSize.Level1)
991733eb0b6dSopenharmony_ci{
991833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
991933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
992033eb0b6dSopenharmony_ci
992133eb0b6dSopenharmony_ci    napi_value num = nullptr;
992233eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_uint32(env, TEST_UINT32_1000, &num));
992333eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
992433eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_undefined(env, &undefined));
992533eb0b6dSopenharmony_ci    napi_value boolean = nullptr;
992633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_boolean(env, true, &boolean));
992733eb0b6dSopenharmony_ci    void* data = nullptr;
992833eb0b6dSopenharmony_ci    auto res = napi_serialize(env, num, undefined, boolean, &data);
992933eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_invalid_arg);
993033eb0b6dSopenharmony_ci}
993133eb0b6dSopenharmony_ci
993233eb0b6dSopenharmony_ci/**
993333eb0b6dSopenharmony_ci * @tc.name: NapiSerializeTest
993433eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_serialize
993533eb0b6dSopenharmony_ci * @tc.type: FUNC
993633eb0b6dSopenharmony_ci */
993733eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiSerializeTest008, testing::ext::TestSize.Level1)
993833eb0b6dSopenharmony_ci{
993933eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
994033eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
994133eb0b6dSopenharmony_ci
994233eb0b6dSopenharmony_ci    napi_value num = nullptr;
994333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_uint32(env, TEST_UINT32_1000, &num));
994433eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
994533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_undefined(env, &undefined));
994633eb0b6dSopenharmony_ci    void* data = nullptr;
994733eb0b6dSopenharmony_ci    auto res = napi_serialize(env, num, undefined, undefined, &data);
994833eb0b6dSopenharmony_ci    ASSERT_EQ(res, napi_ok);
994933eb0b6dSopenharmony_ci}
995033eb0b6dSopenharmony_ci
995133eb0b6dSopenharmony_ci/**
995233eb0b6dSopenharmony_ci * @tc.name: NapiEncodeTest
995333eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_encode
995433eb0b6dSopenharmony_ci * @tc.type: FUNC
995533eb0b6dSopenharmony_ci */
995633eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiEncodeTest001, testing::ext::TestSize.Level1)
995733eb0b6dSopenharmony_ci{
995833eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
995933eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
996033eb0b6dSopenharmony_ci    const char testStr[] = "中测_Eng_123";
996133eb0b6dSopenharmony_ci    size_t testStrLength = strlen(testStr);
996233eb0b6dSopenharmony_ci    napi_value src = nullptr;
996333eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_create_string_utf8(env, testStr, testStrLength, &src));
996433eb0b6dSopenharmony_ci
996533eb0b6dSopenharmony_ci    napi_value result = nullptr;
996633eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_encode(env, src, &result));
996733eb0b6dSopenharmony_ci    char expected[15] = {0xe4, 0xb8, 0xad, 0xe6, 0xb5, 0x8b, 0x5f, 0x45, 0x6e, 0x67, 0x5f, 0x31, 0x32, 0x33, 0};
996833eb0b6dSopenharmony_ci
996933eb0b6dSopenharmony_ci    napi_typedarray_type type;
997033eb0b6dSopenharmony_ci    size_t srcLength = 0;
997133eb0b6dSopenharmony_ci    void* srcData = nullptr;
997233eb0b6dSopenharmony_ci    napi_value srcBuffer = nullptr;
997333eb0b6dSopenharmony_ci    size_t byteOffset = 0;
997433eb0b6dSopenharmony_ci
997533eb0b6dSopenharmony_ci    napi_get_typedarray_info(env, result, &type, &srcLength, &srcData, &srcBuffer, &byteOffset);
997633eb0b6dSopenharmony_ci
997733eb0b6dSopenharmony_ci    ASSERT_EQ(srcLength, 14); // 14:string length
997833eb0b6dSopenharmony_ci    char* res = reinterpret_cast<char*>(srcData);
997933eb0b6dSopenharmony_ci
998033eb0b6dSopenharmony_ci    res[srcLength] = 0;
998133eb0b6dSopenharmony_ci    ASSERT_STREQ(res, expected);
998233eb0b6dSopenharmony_ci}
998333eb0b6dSopenharmony_ci
998433eb0b6dSopenharmony_ci/**
998533eb0b6dSopenharmony_ci * @tc.name: NapiEncodeTest
998633eb0b6dSopenharmony_ci * @tc.desc: Test interface of napi_encode
998733eb0b6dSopenharmony_ci * @tc.type: FUNC
998833eb0b6dSopenharmony_ci */
998933eb0b6dSopenharmony_ciHWTEST_F(NapiBasicTest, NapiEncodeTest002, testing::ext::TestSize.Level1)
999033eb0b6dSopenharmony_ci{
999133eb0b6dSopenharmony_ci    ASSERT_NE(engine_, nullptr);
999233eb0b6dSopenharmony_ci    napi_env env = reinterpret_cast<napi_env>(engine_);
999333eb0b6dSopenharmony_ci
999433eb0b6dSopenharmony_ci    napi_value undefined = nullptr;
999533eb0b6dSopenharmony_ci    ASSERT_CHECK_CALL(napi_get_undefined(env, &undefined));
999633eb0b6dSopenharmony_ci
999733eb0b6dSopenharmony_ci    napi_value result = nullptr;
999833eb0b6dSopenharmony_ci    auto ret = napi_encode(env, undefined, &result);
999933eb0b6dSopenharmony_ci    ASSERT_EQ(ret, napi_string_expected);
1000033eb0b6dSopenharmony_ci}
10001