1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "common/common.h"
17 #define NUM_0 0
18 #define NUM_1 1
19 #define NUM__1 (-1)
20 #define NUM_5 5
21 #define NUM_10 10
22 #define NUM_20 20
23 #define COLOR 0xFFFFFF00
24 #define COLOR1 0xFF0000FF
25
26 namespace ArkUICapiTest {
27
TestSwiperIndicator001(napi_env env,napi_callback_info info)28 static napi_value TestSwiperIndicator001(napi_env env, napi_callback_info info)
29 {
30 NAPI_START(swiper, ARKUI_NODE_SWIPER);
31 int32_t indicator = NUM_0;
32 ArkUI_NumberValue value[] = {{.i32 = indicator}};
33 ArkUI_AttributeItem value_item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
34 auto ret = nodeAPI->setAttribute(swiper, NODE_SWIPER_SHOW_INDICATOR, &value_item);
35 ASSERT_EQ(ret, SUCCESS);
36 ASSERT_EQ(nodeAPI->getAttribute(swiper, NODE_SWIPER_SHOW_INDICATOR)->value[PARAM_0].i32, indicator);
37 NAPI_END;
38 }
39
TestSwiperIndicator002(napi_env env,napi_callback_info info)40 static napi_value TestSwiperIndicator002(napi_env env, napi_callback_info info)
41 {
42 NAPI_START(swiper, ARKUI_NODE_SWIPER);
43 int32_t indicator = NUM_1;
44 ArkUI_NumberValue value[] = {{.i32 = indicator}};
45 ArkUI_AttributeItem value_item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
46 auto ret = nodeAPI->setAttribute(swiper, NODE_SWIPER_SHOW_INDICATOR, &value_item);
47 ASSERT_EQ(ret, SUCCESS);
48 ASSERT_EQ(nodeAPI->getAttribute(swiper, NODE_SWIPER_SHOW_INDICATOR)->value[PARAM_0].i32, indicator);
49 NAPI_END;
50 }
51
TestSwiperIndicator003(napi_env env,napi_callback_info info)52 static napi_value TestSwiperIndicator003(napi_env env, napi_callback_info info)
53 {
54 NAPI_START(swiper, ARKUI_NODE_SWIPER);
55 int32_t indicator = NUM__1;
56 ArkUI_NumberValue value[] = {{.i32 = indicator}};
57 ArkUI_AttributeItem value_item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
58 auto ret = nodeAPI->setAttribute(swiper, NODE_SWIPER_SHOW_INDICATOR, &value_item);
59 ASSERT_EQ(ret, INVALID_PARAM);
60 if (nodeAPI->getAttribute(swiper, NODE_SWIPER_SHOW_INDICATOR) != nullptr) {
61 ASSERT_NE(nodeAPI->getAttribute(swiper, NODE_SWIPER_SHOW_INDICATOR)->value[PARAM_0].i32, indicator);
62 }
63 NAPI_END;
64 }
65
TestSwiperIndicator004(napi_env env,napi_callback_info info)66 static napi_value TestSwiperIndicator004(napi_env env, napi_callback_info info)
67 {
68 auto indicator = OH_ArkUI_SwiperIndicator_Create(ARKUI_SWIPER_INDICATOR_TYPE_DOT);
69 OH_ArkUI_SwiperIndicator_SetStartPosition(indicator, NUM_5);
70 OH_ArkUI_SwiperIndicator_SetTopPosition(indicator, NUM_5);
71 OH_ArkUI_SwiperIndicator_SetEndPosition(indicator, NUM_5);
72 OH_ArkUI_SwiperIndicator_SetBottomPosition(indicator, NUM_5);
73
74 ASSERT_EQ(OH_ArkUI_SwiperIndicator_GetStartPosition(indicator), NUM_5);
75 ASSERT_EQ(OH_ArkUI_SwiperIndicator_GetTopPosition(indicator), NUM_5);
76 ASSERT_EQ(OH_ArkUI_SwiperIndicator_GetEndPosition(indicator), NUM_5);
77 ASSERT_EQ(OH_ArkUI_SwiperIndicator_GetBottomPosition(indicator), NUM_5);
78
79 OH_ArkUI_SwiperIndicator_Dispose(indicator);
80
81 NAPI_END;
82 }
83
TestSwiperIndicator005(napi_env env,napi_callback_info info)84 static napi_value TestSwiperIndicator005(napi_env env, napi_callback_info info)
85 {
86 auto indicator = OH_ArkUI_SwiperIndicator_Create(ARKUI_SWIPER_INDICATOR_TYPE_DOT);
87
88 OH_ArkUI_SwiperIndicator_SetItemWidth(indicator, NUM_10);
89 OH_ArkUI_SwiperIndicator_SetItemHeight(indicator, NUM_20);
90
91 ASSERT_EQ(OH_ArkUI_SwiperIndicator_GetItemWidth(indicator), NUM_10);
92 ASSERT_EQ(OH_ArkUI_SwiperIndicator_GetItemHeight(indicator), NUM_20);
93
94 OH_ArkUI_SwiperIndicator_Dispose(indicator);
95
96 NAPI_END;
97 }
98
TestSwiperIndicator006(napi_env env,napi_callback_info info)99 static napi_value TestSwiperIndicator006(napi_env env, napi_callback_info info)
100 {
101 auto indicator = OH_ArkUI_SwiperIndicator_Create(ARKUI_SWIPER_INDICATOR_TYPE_DOT);
102
103 OH_ArkUI_SwiperIndicator_SetSelectedItemWidth(indicator, NUM_10);
104 OH_ArkUI_SwiperIndicator_SetSelectedItemHeight(indicator, NUM_20);
105
106 ASSERT_EQ(OH_ArkUI_SwiperIndicator_GetSelectedItemWidth(indicator), NUM_10);
107 ASSERT_EQ(OH_ArkUI_SwiperIndicator_GetSelectedItemHeight(indicator), NUM_20);
108
109 OH_ArkUI_SwiperIndicator_Dispose(indicator);
110
111 NAPI_END;
112 }
113
TestSwiperIndicator007(napi_env env,napi_callback_info info)114 static napi_value TestSwiperIndicator007(napi_env env, napi_callback_info info)
115 {
116 auto indicator = OH_ArkUI_SwiperIndicator_Create(ARKUI_SWIPER_INDICATOR_TYPE_DOT);
117
118 OH_ArkUI_SwiperIndicator_SetMask(indicator, NUM_1);
119 OH_ArkUI_SwiperIndicator_SetColor(indicator, COLOR);
120 OH_ArkUI_SwiperIndicator_SetSelectedColor(indicator, COLOR1);
121
122 ASSERT_EQ(OH_ArkUI_SwiperIndicator_GetMask(indicator), NUM_1);
123 ASSERT_EQ(OH_ArkUI_SwiperIndicator_GetColor(indicator), COLOR);
124 ASSERT_EQ(OH_ArkUI_SwiperIndicator_GetSelectedColor(indicator), COLOR1);
125
126 OH_ArkUI_SwiperIndicator_Dispose(indicator);
127
128 NAPI_END;
129 }
130
TestSwiperIndicator008(napi_env env,napi_callback_info info)131 static napi_value TestSwiperIndicator008(napi_env env, napi_callback_info info)
132 {
133 NAPI_START(swiper, ARKUI_NODE_SWIPER);
134 auto indicator = OH_ArkUI_SwiperIndicator_Create(ARKUI_SWIPER_INDICATOR_TYPE_DOT);
135 OH_ArkUI_SwiperIndicator_SetStartPosition(indicator, NUM_5);
136 OH_ArkUI_SwiperIndicator_SetTopPosition(indicator, NUM_5);
137 OH_ArkUI_SwiperIndicator_SetEndPosition(indicator, NUM_5);
138 OH_ArkUI_SwiperIndicator_SetBottomPosition(indicator, NUM_5);
139
140 ArkUI_NumberValue value[] = {{.i32 = ARKUI_SWIPER_INDICATOR_TYPE_DOT}};
141 ArkUI_AttributeItem value_item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
142 value_item.object = indicator;
143 auto ret = nodeAPI->setAttribute(swiper, NODE_SWIPER_INDICATOR, &value_item);
144 ASSERT_EQ(ret, SUCCESS);
145 ASSERT_EQ(nodeAPI->getAttribute(swiper, NODE_SWIPER_INDICATOR)->value[PARAM_0].i32,
146 ARKUI_SWIPER_INDICATOR_TYPE_DOT);
147 ASSERT_OBJ(nodeAPI->getAttribute(swiper, NODE_SWIPER_INDICATOR)->object, indicator);
148
149 NAPI_END;
150 }
151
TestSwiperIndicator009(napi_env env,napi_callback_info info)152 static napi_value TestSwiperIndicator009(napi_env env, napi_callback_info info)
153 {
154 NAPI_START(swiper, ARKUI_NODE_SWIPER);
155
156 ArkUI_NumberValue value[] = {};
157 ArkUI_AttributeItem value_item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
158 auto ret = nodeAPI->setAttribute(swiper, NODE_SWIPER_INDICATOR, &value_item);
159 ASSERT_EQ(ret, INVALID_PARAM);
160 NAPI_END;
161 }
162
TestSwiperIndicator010(napi_env env,napi_callback_info info)163 static napi_value TestSwiperIndicator010(napi_env env, napi_callback_info info)
164 {
165 NAPI_START(swiper, ARKUI_NODE_SWIPER);
166
167 ArkUI_NumberValue value[] = {{.i32 = PARAM_NEGATIVE_1}};
168 ArkUI_AttributeItem value_item = {value, sizeof(value) / sizeof(ArkUI_NumberValue)};
169 auto ret = nodeAPI->setAttribute(swiper, NODE_SWIPER_INDICATOR, &value_item);
170 ASSERT_EQ(ret, INVALID_PARAM);
171 NAPI_END;
172 }
173
TestSwiperIndicator011(napi_env env,napi_callback_info info)174 static napi_value TestSwiperIndicator011(napi_env env, napi_callback_info info)
175 {
176 NAPI_START(swiper, ARKUI_NODE_SWIPER);
177
178 ArkUI_NumberValue value[] = { { .i32 = PARAM_NEGATIVE_1 } };
179 ArkUI_AttributeItem value_item = { value, sizeof(value) / sizeof(ArkUI_NumberValue) };
180 auto ret = nodeAPI->setAttribute(swiper, NODE_SWIPER_INDICATOR, &value_item);
181 ASSERT_EQ(ret, INVALID_PARAM);
182
183 auto ret1 = nodeAPI->resetAttribute(swiper, NODE_SWIPER_INDICATOR);
184 ASSERT_EQ(ret1, SUCCESS);
185
186 ASSERT_EQ(
187 nodeAPI->getAttribute(swiper, NODE_SWIPER_INDICATOR)->value[PARAM_0].i32, ARKUI_SWIPER_INDICATOR_TYPE_DOT);
188 ASSERT_EQ(nodeAPI->getAttribute(swiper, NODE_SWIPER_INDICATOR)->value[PARAM_1].i32, PARAM_0);
189 NAPI_END;
190 }
191 } // namespace ArkUICapiTest
192