Mercurial > malikania
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 |
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() |