Mercurial > malikania
comparison tests/libcommon/js-point/main.cpp @ 189:f28cb6d04731
Misc: extreme refactoring
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 25 Oct 2018 21:36:14 +0200 |
parents | 0cecdadfb5c4 |
children |
comparison
equal
deleted
inserted
replaced
188:0cecdadfb5c4 | 189:f28cb6d04731 |
---|---|
19 #define BOOST_TEST_MODULE "Javascript Point" | 19 #define BOOST_TEST_MODULE "Javascript Point" |
20 #include <boost/test/unit_test.hpp> | 20 #include <boost/test/unit_test.hpp> |
21 | 21 |
22 #include <malikania/point.hpp> | 22 #include <malikania/point.hpp> |
23 | 23 |
24 #include <malikania/js_point.hpp> | |
25 | |
26 #include <malikania/js/test/js_api_fixture.hpp> | 24 #include <malikania/js/test/js_api_fixture.hpp> |
27 | 25 |
28 namespace mlk { | 26 namespace mlk { |
29 | 27 |
30 namespace { | 28 namespace { |
45 "x = p.x;" | 43 "x = p.x;" |
46 "y = p.y;" | 44 "y = p.y;" |
47 ); | 45 ); |
48 | 46 |
49 if (ret != 0) | 47 if (ret != 0) |
50 throw duk::get_stack(ctx_, -1); | 48 throw mlk::js::duk::get_stack(ctx_, -1); |
51 | 49 |
52 duk_get_global_string(ctx_, "x"); | 50 duk_get_global_string(ctx_, "x"); |
53 BOOST_TEST(duk_to_int(ctx_, -1) == 0); | 51 BOOST_TEST(duk_to_int(ctx_, -1) == 0); |
54 duk_pop(ctx_); | 52 duk_pop(ctx_); |
55 duk_get_global_string(ctx_, "y"); | 53 duk_get_global_string(ctx_, "y"); |
64 "x = p.x;" | 62 "x = p.x;" |
65 "y = p.y;" | 63 "y = p.y;" |
66 ); | 64 ); |
67 | 65 |
68 if (ret != 0) | 66 if (ret != 0) |
69 throw duk::get_stack(ctx_, -1); | 67 throw mlk::js::duk::get_stack(ctx_, -1); |
70 | 68 |
71 duk_get_global_string(ctx_, "x"); | 69 duk_get_global_string(ctx_, "x"); |
72 BOOST_TEST(duk_to_int(ctx_, -1) == -10); | 70 BOOST_TEST(duk_to_int(ctx_, -1) == -10); |
73 duk_pop(ctx_); | 71 duk_pop(ctx_); |
74 duk_get_global_string(ctx_, "y"); | 72 duk_get_global_string(ctx_, "y"); |
83 "x = p.x;" | 81 "x = p.x;" |
84 "y = p.y;" | 82 "y = p.y;" |
85 ); | 83 ); |
86 | 84 |
87 if (ret != 0) | 85 if (ret != 0) |
88 throw duk::get_stack(ctx_, -1); | 86 throw mlk::js::duk::get_stack(ctx_, -1); |
89 | 87 |
90 duk_get_global_string(ctx_, "x"); | 88 duk_get_global_string(ctx_, "x"); |
91 BOOST_TEST(duk_to_int(ctx_, -1) == 100); | 89 BOOST_TEST(duk_to_int(ctx_, -1) == 100); |
92 duk_pop(ctx_); | 90 duk_pop(ctx_); |
93 duk_get_global_string(ctx_, "y"); | 91 duk_get_global_string(ctx_, "y"); |
102 "x = p.x;" | 100 "x = p.x;" |
103 "y = p.y;" | 101 "y = p.y;" |
104 ); | 102 ); |
105 | 103 |
106 if (ret != 0) | 104 if (ret != 0) |
107 throw duk::get_stack(ctx_, -1); | 105 throw mlk::js::duk::get_stack(ctx_, -1); |
108 | 106 |
109 duk_get_global_string(ctx_, "x"); | 107 duk_get_global_string(ctx_, "x"); |
110 BOOST_TEST(duk_to_int(ctx_, -1) == 100); | 108 BOOST_TEST(duk_to_int(ctx_, -1) == 100); |
111 duk_pop(ctx_); | 109 duk_pop(ctx_); |
112 duk_get_global_string(ctx_, "y"); | 110 duk_get_global_string(ctx_, "y"); |
133 " correct = (e instanceof TypeError);" | 131 " correct = (e instanceof TypeError);" |
134 "}" | 132 "}" |
135 ); | 133 ); |
136 | 134 |
137 if (ret != 0) | 135 if (ret != 0) |
138 throw duk::get_stack(ctx_, -1); | 136 throw mlk::js::duk::get_stack(ctx_, -1); |
139 | 137 |
140 duk_get_global_string(ctx_, "name"); | 138 duk_get_global_string(ctx_, "name"); |
141 BOOST_TEST(duk_to_string(ctx_, -1) == "TypeError"); | 139 BOOST_TEST(duk_to_string(ctx_, -1) == "TypeError"); |
142 duk_pop(ctx_); | 140 duk_pop(ctx_); |
143 duk_get_global_string(ctx_, "correct"); | 141 duk_get_global_string(ctx_, "correct"); |
155 BOOST_AUTO_TEST_SUITE(require) | 153 BOOST_AUTO_TEST_SUITE(require) |
156 | 154 |
157 BOOST_AUTO_TEST_CASE(success) | 155 BOOST_AUTO_TEST_CASE(success) |
158 { | 156 { |
159 duk_push_c_function(ctx_, [] (auto ctx) { | 157 duk_push_c_function(ctx_, [] (auto ctx) { |
160 const auto point = duk::require<mlk::point>(ctx, 0); | 158 const auto point = mlk::js::duk::require<mlk::point>(ctx, 0); |
161 | 159 |
162 duk_push_int(ctx, point.x); | 160 duk_push_int(ctx, point.x); |
163 duk_put_global_string(ctx, "x"); | 161 duk_put_global_string(ctx, "x"); |
164 duk_push_int(ctx, point.y); | 162 duk_push_int(ctx, point.y); |
165 duk_put_global_string(ctx, "y"); | 163 duk_put_global_string(ctx, "y"); |
169 duk_put_global_string(ctx_, "build"); | 167 duk_put_global_string(ctx_, "build"); |
170 | 168 |
171 const auto ret = duk_peval_string(ctx_, "build({ x: 100, y: 200 });"); | 169 const auto ret = duk_peval_string(ctx_, "build({ x: 100, y: 200 });"); |
172 | 170 |
173 if (ret != 0) | 171 if (ret != 0) |
174 throw duk::get_stack(ctx_, -1); | 172 throw mlk::js::duk::get_stack(ctx_, -1); |
175 | 173 |
176 duk_get_global_string(ctx_, "x"); | 174 duk_get_global_string(ctx_, "x"); |
177 BOOST_TEST(duk_to_int(ctx_, -1) == 100); | 175 BOOST_TEST(duk_to_int(ctx_, -1) == 100); |
178 duk_pop(ctx_); | 176 duk_pop(ctx_); |
179 duk_get_global_string(ctx_, "y"); | 177 duk_get_global_string(ctx_, "y"); |
182 } | 180 } |
183 | 181 |
184 BOOST_AUTO_TEST_CASE(fail) | 182 BOOST_AUTO_TEST_CASE(fail) |
185 { | 183 { |
186 duk_push_c_function(ctx_, [] (auto ctx) { | 184 duk_push_c_function(ctx_, [] (auto ctx) { |
187 duk::require<mlk::point>(ctx, 0); | 185 mlk::js::duk::require<mlk::point>(ctx, 0); |
188 | 186 |
189 return 0; | 187 return 0; |
190 }, 1); | 188 }, 1); |
191 duk_put_global_string(ctx_, "build"); | 189 duk_put_global_string(ctx_, "build"); |
192 | 190 |
198 " correct = (e instanceof TypeError);" | 196 " correct = (e instanceof TypeError);" |
199 "}" | 197 "}" |
200 ); | 198 ); |
201 | 199 |
202 if (ret != 0) | 200 if (ret != 0) |
203 throw duk::get_stack(ctx_, -1); | 201 throw mlk::js::duk::get_stack(ctx_, -1); |
204 | 202 |
205 duk_get_global_string(ctx_, "name"); | 203 duk_get_global_string(ctx_, "name"); |
206 BOOST_TEST(duk_to_string(ctx_, -1) == "TypeError"); | 204 BOOST_TEST(duk_to_string(ctx_, -1) == "TypeError"); |
207 duk_pop(ctx_); | 205 duk_pop(ctx_); |
208 duk_get_global_string(ctx_, "correct"); | 206 duk_get_global_string(ctx_, "correct"); |
220 BOOST_AUTO_TEST_SUITE(get) | 218 BOOST_AUTO_TEST_SUITE(get) |
221 | 219 |
222 BOOST_AUTO_TEST_CASE(adjust_all) | 220 BOOST_AUTO_TEST_CASE(adjust_all) |
223 { | 221 { |
224 duk_push_c_function(ctx_, [] (auto ctx) { | 222 duk_push_c_function(ctx_, [] (auto ctx) { |
225 const auto point = duk::get<mlk::point>(ctx, 0); | 223 const auto point = mlk::js::duk::get<mlk::point>(ctx, 0); |
226 | 224 |
227 duk_push_int(ctx, point.x); | 225 duk_push_int(ctx, point.x); |
228 duk_put_global_string(ctx, "x"); | 226 duk_put_global_string(ctx, "x"); |
229 duk_push_int(ctx, point.y); | 227 duk_push_int(ctx, point.y); |
230 duk_put_global_string(ctx, "y"); | 228 duk_put_global_string(ctx, "y"); |
234 duk_put_global_string(ctx_, "build"); | 232 duk_put_global_string(ctx_, "build"); |
235 | 233 |
236 const auto ret = duk_peval_string(ctx_, "build({});"); | 234 const auto ret = duk_peval_string(ctx_, "build({});"); |
237 | 235 |
238 if (ret != 0) | 236 if (ret != 0) |
239 throw duk::get_stack(ctx_, -1); | 237 throw mlk::js::duk::get_stack(ctx_, -1); |
240 | 238 |
241 duk_get_global_string(ctx_, "x"); | 239 duk_get_global_string(ctx_, "x"); |
242 BOOST_TEST(duk_to_int(ctx_, -1) == 0); | 240 BOOST_TEST(duk_to_int(ctx_, -1) == 0); |
243 duk_pop(ctx_); | 241 duk_pop(ctx_); |
244 duk_get_global_string(ctx_, "y"); | 242 duk_get_global_string(ctx_, "y"); |