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