annotate tests/libclient/js-color/main.cpp @ 57:9ccc36ba4725

CMake: use full path for a better vera++ integration
author David Demelier <markand@malikania.fr>
date Fri, 16 Dec 2016 14:54:29 +0100
parents fe7e3524e571
children 96ba0c5cf893
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test Color (JavaScript binding)
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2013-2016 Malikania Authors
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
19 #define BOOST_TEST_MODULE "Javascript Color"
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
20 #include <boost/test/unit_test.hpp>
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
22 #include <malikania/js_color.hpp>
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
24 class test_color {
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 protected:
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
26 UniqueContext m_ctx;
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 public:
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
29 test_color()
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
30 {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
31 duk_push_object(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
32 duk_put_global_string(m_ctx, "Malikania");
43
fabbe1759cec Misc: switch to mlk namespace, closes #589
David Demelier <markand@malikania.fr>
parents: 42
diff changeset
33 mlk::dukx_load_color(m_ctx);
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
34 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
35
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
36 int component(const char *name)
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
37 {
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
38 duk_get_global_string(m_ctx, name);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
39 auto value = duk_require_int(m_ctx, -1);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
40 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
41
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
42 return value;
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
43 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 };
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
46 BOOST_FIXTURE_TEST_SUITE(test_color_suite, test_color)
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
47
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 /*
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
49 * Valid constructors.
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 * ------------------------------------------------------------------
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 */
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
52
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
53 BOOST_AUTO_TEST_SUITE(constructors)
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
54
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
55 BOOST_AUTO_TEST_CASE(constructor_default)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
57 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
58 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
59 "c = Malikania.Color();"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
60 "r = c.red;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
61 "g = c.green;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
62 "b = c.blue;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
63 "a = c.alpha;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
64 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
65
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
66 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
67 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
68 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
69
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
70 BOOST_REQUIRE_EQUAL(0, component("r"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
71 BOOST_REQUIRE_EQUAL(0, component("g"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
72 BOOST_REQUIRE_EQUAL(0, component("b"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
73 BOOST_REQUIRE_EQUAL(255, component("a"));
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
74 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
75 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
76 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
78
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
79 BOOST_AUTO_TEST_CASE(constructor_string)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
81 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
82 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
83 "c = Malikania.Color('white');"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
84 "r = c.red;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
85 "g = c.green;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
86 "b = c.blue;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
87 "a = c.alpha;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
88 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
89
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
90 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
91 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
92 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
93
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
94 BOOST_REQUIRE_EQUAL(255, component("r"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
95 BOOST_REQUIRE_EQUAL(255, component("g"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
96 BOOST_REQUIRE_EQUAL(255, component("b"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
97 BOOST_REQUIRE_EQUAL(255, component("a"));
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
98 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
99 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
100 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
102
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
103 BOOST_AUTO_TEST_CASE(constructor_string_rgb)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
105 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
106 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
107 "c = Malikania.Color('#0000ff');"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
108 "r = c.red;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
109 "g = c.green;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
110 "b = c.blue;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
111 "a = c.alpha;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
112 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
113
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
114 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
115 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
116 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
117
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
118 BOOST_REQUIRE_EQUAL(0, component("r"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
119 BOOST_REQUIRE_EQUAL(0, component("g"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
120 BOOST_REQUIRE_EQUAL(255, component("b"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
121 BOOST_REQUIRE_EQUAL(255, component("a"));
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
122 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
123 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
124 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
126
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
127 BOOST_AUTO_TEST_CASE(constructor_3_args)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
129 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
130 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
131 "c = Malikania.Color(10, 20, 30);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
132 "r = c.red;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
133 "g = c.green;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
134 "b = c.blue;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
135 "a = c.alpha;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
136 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
137
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
138 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
139 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
140 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
141
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
142 BOOST_REQUIRE_EQUAL(10, component("r"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
143 BOOST_REQUIRE_EQUAL(20, component("g"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
144 BOOST_REQUIRE_EQUAL(30, component("b"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
145 BOOST_REQUIRE_EQUAL(255, component("a"));
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
146 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
147 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
148 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
150
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
151 BOOST_AUTO_TEST_CASE(constructor_4_args)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
153 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
154 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
155 "c = Malikania.Color(10, 20, 30, 40);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
156 "r = c.red;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
157 "g = c.green;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
158 "b = c.blue;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
159 "a = c.alpha;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
160 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
161
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
162 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
163 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
164 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
165
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
166 BOOST_REQUIRE_EQUAL(10, component("r"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
167 BOOST_REQUIRE_EQUAL(20, component("g"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
168 BOOST_REQUIRE_EQUAL(30, component("b"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
169 BOOST_REQUIRE_EQUAL(40, component("a"));
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
170 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
171 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
172 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
173 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
174
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
175 BOOST_AUTO_TEST_CASE(constructor_object_no_alpha)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
177 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
178 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
179 "c = Malikania.Color({ red: 10, green: 20, blue: 30 });"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
180 "r = c.red;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
181 "g = c.green;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
182 "b = c.blue;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
183 "a = c.alpha;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
184 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
185
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
186 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
187 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
188 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
189
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
190 BOOST_REQUIRE_EQUAL(10, component("r"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
191 BOOST_REQUIRE_EQUAL(20, component("g"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
192 BOOST_REQUIRE_EQUAL(30, component("b"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
193 BOOST_REQUIRE_EQUAL(255, component("a"));
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
194 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
195 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
196 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
197 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
198
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
199 BOOST_AUTO_TEST_CASE(constructor_object_alpha)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
200 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
201 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
202 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
203 "c = Malikania.Color({ red: 10, green: 20, blue: 30, alpha: 40 });"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
204 "r = c.red;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
205 "g = c.green;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
206 "b = c.blue;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
207 "a = c.alpha;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
208 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
209
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
210 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
211 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
212 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
213
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
214 BOOST_REQUIRE_EQUAL(10, component("r"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
215 BOOST_REQUIRE_EQUAL(20, component("g"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
216 BOOST_REQUIRE_EQUAL(30, component("b"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
217 BOOST_REQUIRE_EQUAL(40, component("a"));
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
218 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
219 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
220 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
221 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
222
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
223 BOOST_AUTO_TEST_CASE(constructor_new)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
224 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
225 /*
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
226 * Just one test, function parse the same way, only 'this' or a new object is returned.
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
227 */
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
228 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
229 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
230 "c = new Malikania.Color({ red: 10, green: 20, blue: 30, alpha: 40 });"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
231 "r = c.red;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
232 "g = c.green;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
233 "b = c.blue;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
234 "a = c.alpha;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
235 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
236
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
237 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
238 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
239 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
240
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
241 BOOST_REQUIRE_EQUAL(10, component("r"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
242 BOOST_REQUIRE_EQUAL(20, component("g"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
243 BOOST_REQUIRE_EQUAL(30, component("b"));
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
244 BOOST_REQUIRE_EQUAL(40, component("a"));
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
245 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
246 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
247 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
248 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
249
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
250 BOOST_AUTO_TEST_SUITE_END()
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
251
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
252 /*
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
253 * Invalid constructors.
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
254 * ------------------------------------------------------------------
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
255 */
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
256
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
257 BOOST_AUTO_TEST_SUITE(invalid_constructors)
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
258
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
259 BOOST_AUTO_TEST_CASE(constructor_arg_1)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
260 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
261 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
262 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
263 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
264 " Malikania.Color(null);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
265 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
266 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
267 " correct = (e instanceof TypeError);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
268 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
269 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
270
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
271 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
272 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
273 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
274
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
275 duk_get_global_string(m_ctx, "name");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
276 BOOST_REQUIRE_EQUAL("TypeError", duk_to_string(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
277 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
278 duk_get_global_string(m_ctx, "correct");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
279 BOOST_REQUIRE(duk_to_boolean(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
280 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
281 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
282 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
283 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
284 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
285
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
286 BOOST_AUTO_TEST_CASE(constructor_arg_2)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
287 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
288 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
289 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
290 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
291 " Malikania.Color(10, null, 30);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
292 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
293 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
294 " correct = (e instanceof TypeError);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
295 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
296 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
297
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
298 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
299 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
300 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
301
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
302 duk_get_global_string(m_ctx, "name");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
303 BOOST_REQUIRE_EQUAL("TypeError", duk_to_string(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
304 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
305 duk_get_global_string(m_ctx, "correct");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
306 BOOST_REQUIRE(duk_to_boolean(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
307 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
308 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
309 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
310 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
311 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
312
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
313 BOOST_AUTO_TEST_CASE(constructor_range_1)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
314 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
315 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
316 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
317 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
318 " Malikania.Color(-1, 20, 30);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
319 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
320 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
321 " correct = (e instanceof RangeError);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
322 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
323 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
324
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
325 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
326 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
327 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
328
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
329 duk_get_global_string(m_ctx, "name");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
330 BOOST_REQUIRE_EQUAL("RangeError", duk_to_string(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
331 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
332 duk_get_global_string(m_ctx, "correct");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
333 BOOST_REQUIRE(duk_to_boolean(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
334 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
335 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
336 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
337 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
338 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
339
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
340 BOOST_AUTO_TEST_CASE(constructor_range_2)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
341 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
342 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
343 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
344 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
345 " Malikania.Color(10, 20, 256);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
346 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
347 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
348 " correct = (e instanceof RangeError);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
349 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
350 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
351
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
352 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
353 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
354 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
355
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
356 duk_get_global_string(m_ctx, "name");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
357 BOOST_REQUIRE_EQUAL("RangeError", duk_to_string(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
358 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
359 duk_get_global_string(m_ctx, "correct");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
360 BOOST_REQUIRE(duk_to_boolean(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
361 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
362 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
363 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
364 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
365 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
366
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
367 BOOST_AUTO_TEST_CASE(constructor_range_3)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
368 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
369 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
370 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
371 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
372 " Malikania.Color(10, 20, 30, 800);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
373 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
374 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
375 " correct = (e instanceof RangeError);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
376 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
377 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
378
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
379 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
380 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
381 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
382
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
383 duk_get_global_string(m_ctx, "name");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
384 BOOST_REQUIRE_EQUAL("RangeError", duk_to_string(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
385 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
386 duk_get_global_string(m_ctx, "correct");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
387 BOOST_REQUIRE(duk_to_boolean(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
388 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
389 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
390 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
391 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
392 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
393
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
394 BOOST_AUTO_TEST_CASE(constructor_object_range_red)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
395 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
396 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
397 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
398 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
399 " Malikania.Color({ red: -1, green: 20, blue: 30 });"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
400 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
401 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
402 " correct = (e instanceof RangeError);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
403 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
404 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
405
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
406 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
407 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
408 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
409
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
410 duk_get_global_string(m_ctx, "name");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
411 BOOST_REQUIRE_EQUAL("RangeError", duk_to_string(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
412 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
413 duk_get_global_string(m_ctx, "correct");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
414 BOOST_REQUIRE(duk_to_boolean(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
415 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
416 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
417 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
418 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
419 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
420
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
421 BOOST_AUTO_TEST_CASE(constructor_object_range_alpha)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
422 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
423 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
424 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
425 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
426 " Malikania.Color({ red: 10, green: 20, blue: 30, alpha: 800 });"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
427 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
428 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
429 " correct = (e instanceof RangeError);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
430 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
431 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
432
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
433 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
434 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
435 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
436
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
437 duk_get_global_string(m_ctx, "name");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
438 BOOST_REQUIRE_EQUAL("RangeError", duk_to_string(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
439 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
440 duk_get_global_string(m_ctx, "correct");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
441 BOOST_REQUIRE(duk_to_boolean(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
442 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
443 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
444 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
445 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
446 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
447
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
448 BOOST_AUTO_TEST_CASE(constructor_string)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
449 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
450 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
451 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
452 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
453 " Malikania.Color('does not exist');"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
454 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
455 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
456 " correct = (e instanceof Error);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
457 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
458 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
459
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
460 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
461 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
462 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
463
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
464 duk_get_global_string(m_ctx, "name");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
465 BOOST_REQUIRE_EQUAL("Error", duk_to_string(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
466 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
467 duk_get_global_string(m_ctx, "correct");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
468 BOOST_REQUIRE(duk_to_boolean(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
469 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
470 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
471 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
472 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
473 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
474
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
475 BOOST_AUTO_TEST_CASE(constructor_string_rgb)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
476 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
477 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
478 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
479 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
480 " Malikania.Color('#ghijkl');"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
481 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
482 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
483 " correct = (e instanceof Error);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
484 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
485 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
486
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
487 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
488 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
489 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
490
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
491 duk_get_global_string(m_ctx, "name");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
492 BOOST_REQUIRE_EQUAL("Error", duk_to_string(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
493 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
494 duk_get_global_string(m_ctx, "correct");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
495 BOOST_REQUIRE(duk_to_boolean(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
496 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
497 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
498 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
499 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
500 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
501
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
502 BOOST_AUTO_TEST_SUITE_END()
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
503
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
504 /*
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
505 * Require.
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
506 * ------------------------------------------------------------------
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
507 *
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
508 * TypeTraits<Color>::require expect to have a valid color, it raises an error for any invalid component. Only alpha
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
509 * can be ommitted but if it is present and incorrect, an exception is also raised.
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
510 */
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
511
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
512 BOOST_AUTO_TEST_SUITE(require)
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
513
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
514 BOOST_AUTO_TEST_CASE(success)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
515 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
516 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
517 duk_push_c_function(m_ctx, [] (auto ctx) {
43
fabbe1759cec Misc: switch to mlk namespace, closes #589
David Demelier <markand@malikania.fr>
parents: 42
diff changeset
518 auto color = mlk::dukx_require_color(ctx, 0);
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
519
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
520 duk_push_uint(ctx, color.red());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
521 duk_put_global_string(ctx, "r");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
522 duk_push_uint(ctx, color.green());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
523 duk_put_global_string(ctx, "g");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
524 duk_push_uint(ctx, color.blue());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
525 duk_put_global_string(ctx, "b");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
526 duk_push_uint(ctx, color.alpha());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
527 duk_put_global_string(ctx, "a");
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
528
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
529 return 0;
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
530 }, 1);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
531 duk_put_global_string(m_ctx, "draw");
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
532
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
533 auto ret = duk_peval_string(m_ctx, "draw('#ff0000');");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
534
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
535 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
536 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
537 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
538
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
539 duk_get_global_string(m_ctx, "r");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
540 BOOST_REQUIRE_EQUAL(255U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
541 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
542 duk_get_global_string(m_ctx, "g");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
543 BOOST_REQUIRE_EQUAL(0U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
544 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
545 duk_get_global_string(m_ctx, "b");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
546 BOOST_REQUIRE_EQUAL(0U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
547 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
548 duk_get_global_string(m_ctx, "a");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
549 BOOST_REQUIRE_EQUAL(255U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
550 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
551 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
552 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
553 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
554 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
555
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
556 BOOST_AUTO_TEST_CASE(fail)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
557 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
558 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
559 duk_push_c_function(m_ctx, [] (auto ctx) {
43
fabbe1759cec Misc: switch to mlk namespace, closes #589
David Demelier <markand@malikania.fr>
parents: 42
diff changeset
560 mlk::dukx_require_color(ctx, 0);
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
561
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
562 return 0;
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
563 }, 1);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
564 duk_put_global_string(m_ctx, "draw");
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
565
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
566 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
567 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
568 " draw('#ghijkl');"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
569 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
570 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
571 " correct = (e instanceof Error);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
572 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
573 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
574
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
575 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
576 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
577 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
578
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
579 duk_get_global_string(m_ctx, "name");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
580 BOOST_REQUIRE_EQUAL("Error", duk_to_string(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
581 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
582 duk_get_global_string(m_ctx, "correct");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
583 BOOST_REQUIRE(duk_to_boolean(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
584 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
585 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
586 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
587 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
588 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
589
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
590 BOOST_AUTO_TEST_CASE(fail_alpha)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
591 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
592 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
593 duk_push_c_function(m_ctx, [] (auto ctx) {
43
fabbe1759cec Misc: switch to mlk namespace, closes #589
David Demelier <markand@malikania.fr>
parents: 42
diff changeset
594 mlk::dukx_require_color(ctx, 0);
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
595
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
596 return 0;
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
597 }, 1);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
598 duk_put_global_string(m_ctx, "draw");
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
599
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
600 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
601 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
602 " draw({ red: 10, green: 20, blue: 30, alpha: 800 });"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
603 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
604 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
605 " correct = (e instanceof RangeError);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
606 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
607 );
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
608
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
609 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
610 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
611 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
612
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
613 duk_get_global_string(m_ctx, "name");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
614 BOOST_REQUIRE_EQUAL("RangeError", duk_to_string(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
615 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
616 duk_get_global_string(m_ctx, "correct");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
617 BOOST_REQUIRE(duk_to_boolean(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
618 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
619 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
620 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
621 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
622 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
623
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
624 BOOST_AUTO_TEST_SUITE_END()
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
625
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
626 /*
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
627 * Get.
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
628 * ------------------------------------------------------------------
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
629 *
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
630 * TypeTraits<Color>::get readjust any invalid values.
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
631 */
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
632
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
633 BOOST_AUTO_TEST_SUITE(get)
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
634
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
635 BOOST_AUTO_TEST_CASE(normal)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
636 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
637 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
638 duk_push_c_function(m_ctx, [] (auto ctx) {
43
fabbe1759cec Misc: switch to mlk namespace, closes #589
David Demelier <markand@malikania.fr>
parents: 42
diff changeset
639 auto color = mlk::dukx_get_color(ctx, 0);
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
640
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
641 duk_push_uint(ctx, color.red());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
642 duk_put_global_string(ctx, "r");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
643 duk_push_uint(ctx, color.green());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
644 duk_put_global_string(ctx, "g");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
645 duk_push_uint(ctx, color.blue());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
646 duk_put_global_string(ctx, "b");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
647 duk_push_uint(ctx, color.alpha());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
648 duk_put_global_string(ctx, "a");
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
649
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
650 return 0;
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
651 }, 1);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
652 duk_put_global_string(m_ctx, "draw");
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
653
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
654 auto ret = duk_peval_string(m_ctx, "draw('#ff0000');");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
655
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
656 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
657 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
658 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
659
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
660 duk_get_global_string(m_ctx, "r");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
661 BOOST_REQUIRE_EQUAL(255U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
662 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
663 duk_get_global_string(m_ctx, "g");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
664 BOOST_REQUIRE_EQUAL(0U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
665 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
666 duk_get_global_string(m_ctx, "b");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
667 BOOST_REQUIRE_EQUAL(0U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
668 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
669 duk_get_global_string(m_ctx, "a");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
670 BOOST_REQUIRE_EQUAL(255U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
671 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
672 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
673 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
674 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
675 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
676
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
677 BOOST_AUTO_TEST_CASE(adjust_rgb)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
678 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
679 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
680 duk_push_c_function(m_ctx, [] (auto ctx) {
43
fabbe1759cec Misc: switch to mlk namespace, closes #589
David Demelier <markand@malikania.fr>
parents: 42
diff changeset
681 auto color = mlk::dukx_get_color(ctx, 0);
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
682
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
683 duk_push_uint(ctx, color.red());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
684 duk_put_global_string(ctx, "r");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
685 duk_push_uint(ctx, color.green());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
686 duk_put_global_string(ctx, "g");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
687 duk_push_uint(ctx, color.blue());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
688 duk_put_global_string(ctx, "b");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
689 duk_push_uint(ctx, color.alpha());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
690 duk_put_global_string(ctx, "a");
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
691
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
692 return 0;
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
693 }, 1);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
694 duk_put_global_string(m_ctx, "draw");
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
695
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
696 auto ret = duk_peval_string(m_ctx, "draw('#ghijkl');");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
697
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
698 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
699 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
700 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
701
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
702 duk_get_global_string(m_ctx, "r");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
703 BOOST_REQUIRE_EQUAL(0U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
704 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
705 duk_get_global_string(m_ctx, "g");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
706 BOOST_REQUIRE_EQUAL(0U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
707 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
708 duk_get_global_string(m_ctx, "b");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
709 BOOST_REQUIRE_EQUAL(0U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
710 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
711 duk_get_global_string(m_ctx, "a");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
712 BOOST_REQUIRE_EQUAL(255U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
713 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
714 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
715 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
716 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
717 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
718
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
719 BOOST_AUTO_TEST_CASE(adjust_all)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
720 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
721 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
722 duk_push_c_function(m_ctx, [] (auto ctx) {
43
fabbe1759cec Misc: switch to mlk namespace, closes #589
David Demelier <markand@malikania.fr>
parents: 42
diff changeset
723 auto color = mlk::dukx_get_color(ctx, 0);
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
724
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
725 duk_push_uint(ctx, color.red());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
726 duk_put_global_string(ctx, "r");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
727 duk_push_uint(ctx, color.green());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
728 duk_put_global_string(ctx, "g");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
729 duk_push_uint(ctx, color.blue());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
730 duk_put_global_string(ctx, "b");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
731 duk_push_uint(ctx, color.alpha());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
732 duk_put_global_string(ctx, "a");
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
733
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
734 return 0;
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
735 }, 1);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
736 duk_put_global_string(m_ctx, "draw");
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
737
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
738 auto ret = duk_peval_string(m_ctx, "draw({ red: -1, green: 256, blue: 100, alpha: 800 });");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
739
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
740 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
741 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
742 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
743
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
744 duk_get_global_string(m_ctx, "r");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
745 BOOST_REQUIRE_EQUAL(0U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
746 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
747 duk_get_global_string(m_ctx, "g");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
748 BOOST_REQUIRE_EQUAL(255U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
749 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
750 duk_get_global_string(m_ctx, "b");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
751 BOOST_REQUIRE_EQUAL(100U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
752 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
753 duk_get_global_string(m_ctx, "a");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
754 BOOST_REQUIRE_EQUAL(255U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
755 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
756 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
757 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
758 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
759 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
760
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
761 BOOST_AUTO_TEST_CASE(something_else)
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
762 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
763 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
764 duk_push_c_function(m_ctx, [] (auto ctx) {
43
fabbe1759cec Misc: switch to mlk namespace, closes #589
David Demelier <markand@malikania.fr>
parents: 42
diff changeset
765 auto color = mlk::dukx_get_color(ctx, 0);
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
766
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
767 duk_push_uint(ctx, color.red());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
768 duk_put_global_string(ctx, "r");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
769 duk_push_uint(ctx, color.green());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
770 duk_put_global_string(ctx, "g");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
771 duk_push_uint(ctx, color.blue());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
772 duk_put_global_string(ctx, "b");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
773 duk_push_uint(ctx, color.alpha());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
774 duk_put_global_string(ctx, "a");
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
775
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
776 return 0;
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
777 }, 1);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
778 duk_put_global_string(m_ctx, "draw");
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
779
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
780 auto ret = duk_peval_string(m_ctx, "draw(null);");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
781
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
782 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
783 throw dukx_exception(m_ctx, -1);
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
784 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
785
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
786 duk_get_global_string(m_ctx, "r");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
787 BOOST_REQUIRE_EQUAL(0U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
788 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
789 duk_get_global_string(m_ctx, "g");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
790 BOOST_REQUIRE_EQUAL(0U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
791 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
792 duk_get_global_string(m_ctx, "b");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
793 BOOST_REQUIRE_EQUAL(0U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
794 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
795 duk_get_global_string(m_ctx, "a");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
796 BOOST_REQUIRE_EQUAL(255U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
797 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
798 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
799 BOOST_FAIL(ex.what());
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
800 }
12
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
801 }
0c62e0af6af7 Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff changeset
802
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
803 BOOST_AUTO_TEST_SUITE_END()
53
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
804
fe7e3524e571 Tests: various style fixes
David Demelier <markand@malikania.fr>
parents: 44
diff changeset
805 BOOST_AUTO_TEST_SUITE_END()