Mercurial > malikania
annotate tests/libclient/js-color/main.cpp @ 36:9af360f34c7d
Misc: use raw duktape API
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 10 Aug 2016 14:30:51 +0200 |
parents | d4f5f7231b84 |
children | a47a4477f347 |
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 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include <gtest/gtest.h> |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
33
d4f5f7231b84
Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents:
30
diff
changeset
|
21 #include <malikania/js-color.hpp> |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 using namespace malikania; |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 class TestColor : public testing::Test { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 protected: |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
27 UniqueContext m_ctx; |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 public: |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
30 TestColor() |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
31 { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
32 duk_push_object(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
33 duk_put_global_string(m_ctx, "Malikania"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
34 dukx_load_color(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
35 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
37 int component(const char *name) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
38 { |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
39 duk_get_global_string(m_ctx, name); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
40 auto value = duk_require_int(m_ctx, -1); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
41 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
42 |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
43 return value; |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
44 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 }; |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 /* |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 * Valid constructors |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 * ------------------------------------------------------------------ |
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 TEST_F(TestColor, ConstructorNoArgs) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
54 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
55 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
56 "c = Malikania.Color();" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
57 "r = c.red;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
58 "g = c.green;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
59 "b = c.blue;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
60 "a = c.alpha;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
61 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
63 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
64 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
66 ASSERT_EQ(0, component("r")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
67 ASSERT_EQ(0, component("g")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
68 ASSERT_EQ(0, component("b")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
69 ASSERT_EQ(255, component("a")); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
70 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
71 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
72 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 TEST_F(TestColor, ConstructorString) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
77 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
78 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
79 "c = Malikania.Color('white');" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
80 "r = c.red;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
81 "g = c.green;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
82 "b = c.blue;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
83 "a = c.alpha;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
84 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
86 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
87 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
89 ASSERT_EQ(255, component("r")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
90 ASSERT_EQ(255, component("g")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
91 ASSERT_EQ(255, component("b")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
92 ASSERT_EQ(255, component("a")); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
93 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
94 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
95 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 TEST_F(TestColor, ConstructorStringRgb) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
100 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
101 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
102 "c = Malikania.Color('#0000ff');" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
103 "r = c.red;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
104 "g = c.green;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
105 "b = c.blue;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
106 "a = c.alpha;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
107 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
109 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
110 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
112 ASSERT_EQ(0, component("r")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
113 ASSERT_EQ(0, component("g")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
114 ASSERT_EQ(255, component("b")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
115 ASSERT_EQ(255, component("a")); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
116 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
117 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
118 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 TEST_F(TestColor, Constructor3Args) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
123 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
124 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
125 "c = Malikania.Color(10, 20, 30);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
126 "r = c.red;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
127 "g = c.green;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
128 "b = c.blue;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
129 "a = c.alpha;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
130 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
132 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
133 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
135 ASSERT_EQ(10, component("r")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
136 ASSERT_EQ(20, component("g")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
137 ASSERT_EQ(30, component("b")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
138 ASSERT_EQ(255, component("a")); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
139 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
140 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
141 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
142 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
143 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
144 TEST_F(TestColor, Constructor4Args) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
145 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
146 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
147 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
148 "c = Malikania.Color(10, 20, 30, 40);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
149 "r = c.red;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
150 "g = c.green;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
151 "b = c.blue;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
152 "a = c.alpha;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
153 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
154 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
155 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
156 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
158 ASSERT_EQ(10, component("r")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
159 ASSERT_EQ(20, component("g")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
160 ASSERT_EQ(30, component("b")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
161 ASSERT_EQ(40, component("a")); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
162 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
163 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
164 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
165 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
166 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
167 TEST_F(TestColor, ConstructorObjectNoAlpha) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
168 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
169 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
170 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
171 "c = Malikania.Color({ red: 10, green: 20, blue: 30 });" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
172 "r = c.red;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
173 "g = c.green;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
174 "b = c.blue;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
175 "a = c.alpha;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
176 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
177 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
178 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
179 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
180 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
181 ASSERT_EQ(10, component("r")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
182 ASSERT_EQ(20, component("g")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
183 ASSERT_EQ(30, component("b")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
184 ASSERT_EQ(255, component("a")); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
185 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
186 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
187 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
188 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
189 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
190 TEST_F(TestColor, ConstructorObjectAlpha) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
191 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
192 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
193 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
194 "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
|
195 "r = c.red;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
196 "g = c.green;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
197 "b = c.blue;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
198 "a = c.alpha;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
199 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
200 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
201 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
202 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
203 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
204 ASSERT_EQ(10, component("r")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
205 ASSERT_EQ(20, component("g")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
206 ASSERT_EQ(30, component("b")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
207 ASSERT_EQ(40, component("a")); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
208 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
209 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
210 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
211 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
212 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
213 TEST_F(TestColor, ConstructorNew) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
214 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
215 /* |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
216 * 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
|
217 */ |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
218 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
219 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
220 "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
|
221 "r = c.red;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
222 "g = c.green;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
223 "b = c.blue;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
224 "a = c.alpha;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
225 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
226 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
227 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
228 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
229 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
230 ASSERT_EQ(10, component("r")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
231 ASSERT_EQ(20, component("g")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
232 ASSERT_EQ(30, component("b")); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
233 ASSERT_EQ(40, component("a")); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
234 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
235 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
236 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
237 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
238 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
239 /* |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
240 * Valid constructors |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
241 * ------------------------------------------------------------------ |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
242 */ |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
243 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
244 TEST_F(TestColor, InvalidConstructorArg1) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
245 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
246 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
247 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
248 "try {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
249 " Malikania.Color(null);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
250 "} catch (e) {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
251 " name = e.name;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
252 " correct = (e instanceof TypeError);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
253 "}" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
254 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
255 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
256 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
257 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
258 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
259 duk_get_global_string(m_ctx, "name"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
260 ASSERT_STREQ("TypeError", duk_to_string(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
261 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
262 duk_get_global_string(m_ctx, "correct"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
263 ASSERT_TRUE(duk_to_boolean(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
264 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
265 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
266 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
267 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
268 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
269 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
270 TEST_F(TestColor, InvalidConstructorArg2) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
271 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
272 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
273 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
274 "try {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
275 " Malikania.Color(10, null, 30);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
276 "} catch (e) {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
277 " name = e.name;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
278 " correct = (e instanceof TypeError);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
279 "}" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
280 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
281 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
282 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
283 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
284 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
285 duk_get_global_string(m_ctx, "name"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
286 ASSERT_STREQ("TypeError", duk_to_string(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
287 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
288 duk_get_global_string(m_ctx, "correct"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
289 ASSERT_TRUE(duk_to_boolean(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
290 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
291 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
292 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
293 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
294 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
295 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
296 TEST_F(TestColor, InvalidConstructorRange1) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
297 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
298 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
299 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
300 "try {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
301 " Malikania.Color(-1, 20, 30);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
302 "} catch (e) {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
303 " name = e.name;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
304 " correct = (e instanceof RangeError);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
305 "}" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
306 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
307 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
308 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
309 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
310 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
311 duk_get_global_string(m_ctx, "name"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
312 ASSERT_STREQ("RangeError", duk_to_string(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
313 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
314 duk_get_global_string(m_ctx, "correct"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
315 ASSERT_TRUE(duk_to_boolean(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
316 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
317 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
318 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
319 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
320 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
321 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
322 TEST_F(TestColor, InvalidConstructorRange2) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
323 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
324 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
325 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
326 "try {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
327 " Malikania.Color(10, 20, 256);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
328 "} catch (e) {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
329 " name = e.name;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
330 " correct = (e instanceof RangeError);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
331 "}" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
332 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
333 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
334 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
335 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
336 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
337 duk_get_global_string(m_ctx, "name"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
338 ASSERT_STREQ("RangeError", duk_to_string(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
339 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
340 duk_get_global_string(m_ctx, "correct"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
341 ASSERT_TRUE(duk_to_boolean(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
342 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
343 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
344 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
345 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
346 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
347 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
348 TEST_F(TestColor, InvalidConstructorRange3) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
349 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
350 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
351 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
352 "try {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
353 " Malikania.Color(10, 20, 30, 800);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
354 "} catch (e) {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
355 " name = e.name;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
356 " correct = (e instanceof RangeError);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
357 "}" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
358 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
359 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
360 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
361 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
362 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
363 duk_get_global_string(m_ctx, "name"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
364 ASSERT_STREQ("RangeError", duk_to_string(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
365 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
366 duk_get_global_string(m_ctx, "correct"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
367 ASSERT_TRUE(duk_to_boolean(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
368 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
369 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
370 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
371 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
372 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
373 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
374 TEST_F(TestColor, InvalidConstructorRange4) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
375 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
376 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
377 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
378 "try {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
379 " Malikania.Color({ red: -1, green: 20, blue: 30 });" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
380 "} catch (e) {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
381 " name = e.name;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
382 " correct = (e instanceof RangeError);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
383 "}" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
384 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
385 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
386 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
387 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
388 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
389 duk_get_global_string(m_ctx, "name"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
390 ASSERT_STREQ("RangeError", duk_to_string(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
391 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
392 duk_get_global_string(m_ctx, "correct"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
393 ASSERT_TRUE(duk_to_boolean(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
394 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
395 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
396 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
397 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
398 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
399 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
400 TEST_F(TestColor, InvalidConstructorRange5) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
401 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
402 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
403 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
404 "try {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
405 " 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
|
406 "} catch (e) {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
407 " name = e.name;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
408 " correct = (e instanceof RangeError);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
409 "}" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
410 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
411 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
412 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
413 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
414 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
415 duk_get_global_string(m_ctx, "name"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
416 ASSERT_STREQ("RangeError", duk_to_string(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
417 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
418 duk_get_global_string(m_ctx, "correct"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
419 ASSERT_TRUE(duk_to_boolean(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
420 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
421 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
422 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
423 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
424 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
425 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
426 TEST_F(TestColor, InvalidConstructorStringUnknown) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
427 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
428 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
429 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
430 "try {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
431 " Malikania.Color('does not exist');" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
432 "} catch (e) {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
433 " name = e.name;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
434 " correct = (e instanceof Error);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
435 "}" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
436 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
437 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
438 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
439 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
440 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
441 duk_get_global_string(m_ctx, "name"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
442 ASSERT_STREQ("Error", duk_to_string(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
443 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
444 duk_get_global_string(m_ctx, "correct"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
445 ASSERT_TRUE(duk_to_boolean(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
446 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
447 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
448 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
449 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
450 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
451 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
452 TEST_F(TestColor, InvalidConstructorStringRgb) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
453 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
454 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
455 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
456 "try {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
457 " Malikania.Color('#ghijkl');" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
458 "} catch (e) {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
459 " name = e.name;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
460 " correct = (e instanceof Error);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
461 "}" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
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 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
465 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
466 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
467 duk_get_global_string(m_ctx, "name"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
468 ASSERT_STREQ("Error", duk_to_string(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
469 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
470 duk_get_global_string(m_ctx, "correct"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
471 ASSERT_TRUE(duk_to_boolean(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
472 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
473 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
474 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
475 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
476 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
477 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
478 /* |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
479 * Require. |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
480 * ------------------------------------------------------------------ |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
481 * |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
482 * 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
|
483 * 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
|
484 */ |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
485 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
486 TEST_F(TestColor, requireSuccess) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
487 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
488 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
489 duk_push_c_function(m_ctx, [] (auto ctx) { |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
490 Color color = dukx_require_color(ctx, 0); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
491 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
492 duk_push_uint(ctx, color.red()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
493 duk_put_global_string(ctx, "r"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
494 duk_push_uint(ctx, color.green()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
495 duk_put_global_string(ctx, "g"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
496 duk_push_uint(ctx, color.blue()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
497 duk_put_global_string(ctx, "b"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
498 duk_push_uint(ctx, color.alpha()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
499 duk_put_global_string(ctx, "a"); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
500 |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
501 return 0; |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
502 }, 1); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
503 duk_put_global_string(m_ctx, "draw"); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
504 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
505 auto ret = duk_peval_string(m_ctx, "draw('#ff0000');"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
506 |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
507 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
508 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
509 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
510 duk_get_global_string(m_ctx, "r"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
511 ASSERT_EQ(255U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
512 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
513 duk_get_global_string(m_ctx, "g"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
514 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
515 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
516 duk_get_global_string(m_ctx, "b"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
517 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
518 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
519 duk_get_global_string(m_ctx, "a"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
520 ASSERT_EQ(255U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
521 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
522 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
523 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
524 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
525 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
526 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
527 TEST_F(TestColor, requireFail) |
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 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
530 duk_push_c_function(m_ctx, [] (auto ctx) { |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
531 dukx_require_color(ctx, 0); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
532 |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
533 return 0; |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
534 }, 1); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
535 duk_put_global_string(m_ctx, "draw"); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
536 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
537 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
538 "try {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
539 " draw('#ghijkl');" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
540 "} catch (e) {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
541 " name = e.name;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
542 " correct = (e instanceof Error);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
543 "}" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
544 ); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
545 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
546 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
547 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
548 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
549 duk_get_global_string(m_ctx, "name"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
550 ASSERT_STREQ("Error", duk_to_string(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
551 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
552 duk_get_global_string(m_ctx, "correct"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
553 ASSERT_TRUE(duk_to_boolean(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
554 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
555 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
556 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
557 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
558 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
559 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
560 TEST_F(TestColor, requireFailAlpha) |
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 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
563 duk_push_c_function(m_ctx, [] (auto ctx) { |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
564 dukx_require_color(ctx, 0); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
565 |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
566 return 0; |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
567 }, 1); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
568 duk_put_global_string(m_ctx, "draw"); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
569 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
570 auto ret = duk_peval_string(m_ctx, |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
571 "try {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
572 " draw({ red: 10, green: 20, blue: 30, alpha: 800 });" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
573 "} catch (e) {" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
574 " name = e.name;" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
575 " correct = (e instanceof RangeError);" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
576 "}" |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
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 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
580 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
581 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
582 duk_get_global_string(m_ctx, "name"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
583 ASSERT_STREQ("RangeError", duk_to_string(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
584 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
585 duk_get_global_string(m_ctx, "correct"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
586 ASSERT_TRUE(duk_to_boolean(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
587 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
588 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
589 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
590 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
591 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
592 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
593 /* |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
594 * Get. |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
595 * ------------------------------------------------------------------ |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
596 * |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
597 * TypeTraits<Color>::get readjust any invalid values. |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
598 */ |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
599 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
600 TEST_F(TestColor, getNormal) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
601 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
602 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
603 duk_push_c_function(m_ctx, [] (auto ctx) { |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
604 Color color = dukx_get_color(ctx, 0); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
605 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
606 duk_push_uint(ctx, color.red()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
607 duk_put_global_string(ctx, "r"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
608 duk_push_uint(ctx, color.green()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
609 duk_put_global_string(ctx, "g"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
610 duk_push_uint(ctx, color.blue()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
611 duk_put_global_string(ctx, "b"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
612 duk_push_uint(ctx, color.alpha()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
613 duk_put_global_string(ctx, "a"); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
614 |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
615 return 0; |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
616 }, 1); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
617 duk_put_global_string(m_ctx, "draw"); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
618 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
619 auto ret = duk_peval_string(m_ctx, "draw('#ff0000');"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
620 |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
621 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
622 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
623 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
624 duk_get_global_string(m_ctx, "r"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
625 ASSERT_EQ(255U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
626 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
627 duk_get_global_string(m_ctx, "g"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
628 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
629 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
630 duk_get_global_string(m_ctx, "b"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
631 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
632 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
633 duk_get_global_string(m_ctx, "a"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
634 ASSERT_EQ(255U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
635 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
636 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
637 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
638 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
639 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
640 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
641 TEST_F(TestColor, getAdjustRgb) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
642 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
643 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
644 duk_push_c_function(m_ctx, [] (auto ctx) { |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
645 Color color = dukx_get_color(ctx, 0); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
646 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
647 duk_push_uint(ctx, color.red()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
648 duk_put_global_string(ctx, "r"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
649 duk_push_uint(ctx, color.green()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
650 duk_put_global_string(ctx, "g"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
651 duk_push_uint(ctx, color.blue()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
652 duk_put_global_string(ctx, "b"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
653 duk_push_uint(ctx, color.alpha()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
654 duk_put_global_string(ctx, "a"); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
655 |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
656 return 0; |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
657 }, 1); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
658 duk_put_global_string(m_ctx, "draw"); |
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 auto ret = duk_peval_string(m_ctx, "draw('#ghijkl');"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
661 |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
662 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
663 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
664 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
665 duk_get_global_string(m_ctx, "r"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
666 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
667 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
668 duk_get_global_string(m_ctx, "g"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
669 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
670 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
671 duk_get_global_string(m_ctx, "b"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
672 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
673 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
674 duk_get_global_string(m_ctx, "a"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
675 ASSERT_EQ(255U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
676 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
677 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
678 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
679 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
680 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
681 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
682 TEST_F(TestColor, getAdjustAll) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
683 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
684 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
685 duk_push_c_function(m_ctx, [] (auto ctx) { |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
686 Color color = dukx_get_color(ctx, 0); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
687 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
688 duk_push_uint(ctx, color.red()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
689 duk_put_global_string(ctx, "r"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
690 duk_push_uint(ctx, color.green()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
691 duk_put_global_string(ctx, "g"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
692 duk_push_uint(ctx, color.blue()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
693 duk_put_global_string(ctx, "b"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
694 duk_push_uint(ctx, color.alpha()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
695 duk_put_global_string(ctx, "a"); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
696 |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
697 return 0; |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
698 }, 1); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
699 duk_put_global_string(m_ctx, "draw"); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
700 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
701 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
|
702 |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
703 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
704 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
705 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
706 duk_get_global_string(m_ctx, "r"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
707 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
708 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
709 duk_get_global_string(m_ctx, "g"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
710 ASSERT_EQ(255U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
711 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
712 duk_get_global_string(m_ctx, "b"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
713 ASSERT_EQ(100U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
714 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
715 duk_get_global_string(m_ctx, "a"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
716 ASSERT_EQ(255U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
717 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
718 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
719 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
720 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
721 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
722 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
723 TEST_F(TestColor, getSomethingElse) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
724 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
725 try { |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
726 duk_push_c_function(m_ctx, [] (auto ctx) { |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
727 Color color = dukx_get_color(ctx, 0); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
728 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
729 duk_push_uint(ctx, color.red()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
730 duk_put_global_string(ctx, "r"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
731 duk_push_uint(ctx, color.green()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
732 duk_put_global_string(ctx, "g"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
733 duk_push_uint(ctx, color.blue()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
734 duk_put_global_string(ctx, "b"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
735 duk_push_uint(ctx, color.alpha()); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
736 duk_put_global_string(ctx, "a"); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
737 |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
738 return 0; |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
739 }, 1); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
740 duk_put_global_string(m_ctx, "draw"); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
741 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
742 auto ret = duk_peval_string(m_ctx, "draw(null);"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
743 |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
744 if (ret != 0) |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
745 throw dukx_exception(m_ctx, -1); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
746 |
36
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
747 duk_get_global_string(m_ctx, "r"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
748 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1)); |
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, "g"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
751 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1)); |
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, "b"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
754 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
755 duk_pop(m_ctx); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
756 duk_get_global_string(m_ctx, "a"); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
757 ASSERT_EQ(255U, duk_to_uint(m_ctx, -1)); |
9af360f34c7d
Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents:
33
diff
changeset
|
758 duk_pop(m_ctx); |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
759 } catch (const std::exception &ex) { |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
760 FAIL() << ex.what(); |
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
761 } |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
762 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
763 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
764 int main(int argc, char **argv) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
765 { |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
766 testing::InitGoogleTest(&argc, argv); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
767 |
30
a1e80d991968
Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents:
27
diff
changeset
|
768 return RUN_ALL_TESTS(); |
12
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
769 } |