Mercurial > malikania
annotate tests/libclient/js-color/main.cpp @ 12:0c62e0af6af7
Client: add JavaScript bindings for Color, #445
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 01 Apr 2016 13:45:45 +0200 |
parents | |
children | 0a1adf7dcca0 |
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 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <malikania/js-color.h> |
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: |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 duk::Context m_ctx; |
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: |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 TestColor() |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 duk::putGlobal(m_ctx, "Malikania", duk::Object()); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 loadMalikaniaColor(m_ctx); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 }; |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 /* |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 * Valid constructors |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 * ------------------------------------------------------------------ |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 */ |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 TEST_F(TestColor, ConstructorNoArgs) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 "c = Malikania.Color();" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 "r = c.red;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 "g = c.green;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 "b = c.blue;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 "a = c.alpha;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "r")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "g")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "b")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "a")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 TEST_F(TestColor, ConstructorString) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 "c = Malikania.Color('white');" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 "r = c.red;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 "g = c.green;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 "b = c.blue;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 "a = c.alpha;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "r")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "g")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "b")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "a")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 TEST_F(TestColor, ConstructorStringRgb) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 "c = Malikania.Color('#0000ff');" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 "r = c.red;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 "g = c.green;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 "b = c.blue;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 "a = c.alpha;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "r")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "g")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "b")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "a")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 TEST_F(TestColor, Constructor3Args) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 "c = Malikania.Color(10, 20, 30);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 "r = c.red;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 "g = c.green;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 "b = c.blue;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 "a = c.alpha;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 ASSERT_EQ(10, duk::getGlobal<int>(m_ctx, "r")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 ASSERT_EQ(20, duk::getGlobal<int>(m_ctx, "g")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 ASSERT_EQ(30, duk::getGlobal<int>(m_ctx, "b")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "a")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
136 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
137 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
138 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 TEST_F(TestColor, Constructor4Args) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
141 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
142 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
143 "c = Malikania.Color(10, 20, 30, 40);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
144 "r = c.red;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
145 "g = c.green;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
146 "b = c.blue;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
147 "a = c.alpha;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
148 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
149 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
150 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
151 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
152 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
153 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
154 ASSERT_EQ(10, duk::getGlobal<int>(m_ctx, "r")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
155 ASSERT_EQ(20, duk::getGlobal<int>(m_ctx, "g")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
156 ASSERT_EQ(30, duk::getGlobal<int>(m_ctx, "b")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 ASSERT_EQ(40, duk::getGlobal<int>(m_ctx, "a")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
158 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
159 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
160 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
161 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
162 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
163 TEST_F(TestColor, ConstructorObjectNoAlpha) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
164 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
165 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
166 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
167 "c = Malikania.Color({ red: 10, green: 20, blue: 30 });" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
168 "r = c.red;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
169 "g = c.green;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
170 "b = c.blue;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
171 "a = c.alpha;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
172 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
173 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
174 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
175 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
176 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
177 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
178 ASSERT_EQ(10, duk::getGlobal<int>(m_ctx, "r")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
179 ASSERT_EQ(20, duk::getGlobal<int>(m_ctx, "g")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
180 ASSERT_EQ(30, duk::getGlobal<int>(m_ctx, "b")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
181 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "a")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
182 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
183 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
184 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
185 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
186 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
187 TEST_F(TestColor, ConstructorObjectAlpha) |
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 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
190 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
191 "c = Malikania.Color({ red: 10, green: 20, blue: 30, alpha: 40 });" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
192 "r = c.red;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
193 "g = c.green;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
194 "b = c.blue;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
195 "a = c.alpha;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
196 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
197 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
198 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
199 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
200 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
201 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
202 ASSERT_EQ(10, duk::getGlobal<int>(m_ctx, "r")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
203 ASSERT_EQ(20, duk::getGlobal<int>(m_ctx, "g")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
204 ASSERT_EQ(30, duk::getGlobal<int>(m_ctx, "b")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
205 ASSERT_EQ(40, duk::getGlobal<int>(m_ctx, "a")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
206 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
207 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
208 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
209 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
210 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
211 TEST_F(TestColor, ConstructorNew) |
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 /* |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
214 * Just one test, function parse the same way, only 'this' or a new object is returned. |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
215 */ |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
216 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
217 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
218 "c = new Malikania.Color({ red: 10, green: 20, blue: 30, alpha: 40 });" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
219 "r = c.red;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
220 "g = c.green;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
221 "b = c.blue;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
222 "a = c.alpha;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
223 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
224 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
225 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
226 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
227 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
228 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
229 ASSERT_EQ(10, duk::getGlobal<int>(m_ctx, "r")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
230 ASSERT_EQ(20, duk::getGlobal<int>(m_ctx, "g")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
231 ASSERT_EQ(30, duk::getGlobal<int>(m_ctx, "b")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
232 ASSERT_EQ(40, duk::getGlobal<int>(m_ctx, "a")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
233 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
234 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
235 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
236 } |
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 * Valid constructors |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
240 * ------------------------------------------------------------------ |
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 TEST_F(TestColor, InvalidConstructorArg1) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
244 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
245 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
246 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
247 "try {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
248 " Malikania.Color(null);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
249 "} catch (e) {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
250 " name = e.name;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
251 " correct = (e instanceof TypeError);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
252 "}" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
253 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
254 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
255 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
256 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
257 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
258 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
259 ASSERT_EQ("TypeError", duk::getGlobal<std::string>(m_ctx, "name")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
260 ASSERT_TRUE(duk::getGlobal<bool>(m_ctx, "correct")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
261 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
262 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
263 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
264 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
265 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
266 TEST_F(TestColor, InvalidConstructorArg2) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
267 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
268 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
269 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
270 "try {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
271 " Malikania.Color(10, null, 30);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
272 "} catch (e) {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
273 " name = e.name;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
274 " correct = (e instanceof TypeError);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
275 "}" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
276 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
277 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
278 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
279 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
280 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
281 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
282 ASSERT_EQ("TypeError", duk::getGlobal<std::string>(m_ctx, "name")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
283 ASSERT_TRUE(duk::getGlobal<bool>(m_ctx, "correct")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
284 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
285 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
286 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
287 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
288 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
289 TEST_F(TestColor, InvalidConstructorRange1) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
290 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
291 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
292 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
293 "try {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
294 " Malikania.Color(-1, 20, 30);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
295 "} catch (e) {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
296 " name = e.name;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
297 " correct = (e instanceof RangeError);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
298 "}" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
299 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
300 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
301 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
302 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
303 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
304 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
305 ASSERT_EQ("RangeError", duk::getGlobal<std::string>(m_ctx, "name")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
306 ASSERT_TRUE(duk::getGlobal<bool>(m_ctx, "correct")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
307 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
308 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
309 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
310 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
311 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
312 TEST_F(TestColor, InvalidConstructorRange2) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
313 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
314 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
315 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
316 "try {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
317 " Malikania.Color(10, 20, 256);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
318 "} catch (e) {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
319 " name = e.name;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
320 " correct = (e instanceof RangeError);" |
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 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
323 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
324 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
325 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
326 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
327 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
328 ASSERT_EQ("RangeError", duk::getGlobal<std::string>(m_ctx, "name")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
329 ASSERT_TRUE(duk::getGlobal<bool>(m_ctx, "correct")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
330 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
331 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
332 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
333 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
334 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
335 TEST_F(TestColor, InvalidConstructorRange3) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
336 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
337 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
338 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
339 "try {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
340 " Malikania.Color(10, 20, 30, 800);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
341 "} catch (e) {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
342 " name = e.name;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
343 " correct = (e instanceof RangeError);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
344 "}" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
345 ); |
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 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
348 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
349 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
350 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
351 ASSERT_EQ("RangeError", duk::getGlobal<std::string>(m_ctx, "name")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
352 ASSERT_TRUE(duk::getGlobal<bool>(m_ctx, "correct")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
353 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
354 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
355 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
356 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
357 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
358 TEST_F(TestColor, InvalidConstructorRange4) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
359 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
360 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
361 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
362 "try {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
363 " Malikania.Color({ red: -1, green: 20, blue: 30 });" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
364 "} catch (e) {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
365 " name = e.name;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
366 " correct = (e instanceof RangeError);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
367 "}" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
368 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
369 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
370 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
371 throw duk::error(m_ctx, -1); |
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 ASSERT_EQ("RangeError", duk::getGlobal<std::string>(m_ctx, "name")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
375 ASSERT_TRUE(duk::getGlobal<bool>(m_ctx, "correct")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
376 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
377 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
378 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
379 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
380 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
381 TEST_F(TestColor, InvalidConstructorRange5) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
382 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
383 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
384 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
385 "try {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
386 " Malikania.Color({ red: 10, green: 20, blue: 30, alpha: 800 });" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
387 "} catch (e) {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
388 " name = e.name;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
389 " correct = (e instanceof RangeError);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
390 "}" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
391 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
392 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
393 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
394 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
395 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
396 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
397 ASSERT_EQ("RangeError", duk::getGlobal<std::string>(m_ctx, "name")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
398 ASSERT_TRUE(duk::getGlobal<bool>(m_ctx, "correct")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
399 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
400 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
401 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
402 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
403 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
404 TEST_F(TestColor, InvalidConstructorStringUnknown) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
405 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
406 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
407 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
408 "try {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
409 " Malikania.Color('does not exist');" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
410 "} catch (e) {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
411 " name = e.name;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
412 " correct = (e instanceof Error);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
413 "}" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
414 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
415 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
416 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
417 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
418 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
419 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
420 ASSERT_EQ("Error", duk::getGlobal<std::string>(m_ctx, "name")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
421 ASSERT_TRUE(duk::getGlobal<bool>(m_ctx, "correct")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
422 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
423 FAIL() << ex.what(); |
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 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
427 TEST_F(TestColor, InvalidConstructorStringRgb) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
428 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
429 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
430 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
431 "try {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
432 " Malikania.Color('#ghijkl');" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
433 "} catch (e) {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
434 " name = e.name;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
435 " correct = (e instanceof Error);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
436 "}" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
437 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
438 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
439 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
440 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
441 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
442 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
443 ASSERT_EQ("Error", duk::getGlobal<std::string>(m_ctx, "name")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
444 ASSERT_TRUE(duk::getGlobal<bool>(m_ctx, "correct")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
445 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
446 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
447 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
448 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
449 |
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 * Require. |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
452 * ------------------------------------------------------------------ |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
453 * |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
454 * 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
|
455 * 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
|
456 */ |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
457 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
458 TEST_F(TestColor, requireSuccess) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
459 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
460 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
461 duk::putGlobal(m_ctx, "draw", duk::Function{[] (duk::ContextPtr ctx) -> duk::Ret { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
462 Color color = duk::require<Color>(ctx, 0); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
463 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
464 duk::putGlobal(ctx, "r", static_cast<int>(color.red())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
465 duk::putGlobal(ctx, "g", static_cast<int>(color.green())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
466 duk::putGlobal(ctx, "b", static_cast<int>(color.blue())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
467 duk::putGlobal(ctx, "a", static_cast<int>(color.alpha())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
468 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
469 return 0; |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
470 }, 1}); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
471 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
472 auto ret = duk::pevalString(m_ctx, "draw('#ff0000');"); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
473 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
474 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
475 throw duk::error(m_ctx, -1); |
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 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "r")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
479 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "g")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
480 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "b")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
481 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "a")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
482 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
483 FAIL() << ex.what(); |
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 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
487 TEST_F(TestColor, requireFail) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
488 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
489 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
490 duk::putGlobal(m_ctx, "draw", duk::Function{[] (duk::ContextPtr ctx) -> duk::Ret { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
491 duk::require<Color>(ctx, 0); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
492 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
493 return 0; |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
494 }, 1}); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
495 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
496 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
497 "try {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
498 " draw('#ghijkl');" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
499 "} catch (e) {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
500 " name = e.name;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
501 " correct = (e instanceof Error);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
502 "}" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
503 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
504 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
505 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
506 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
507 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
508 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
509 ASSERT_EQ("Error", duk::getGlobal<std::string>(m_ctx, "name")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
510 ASSERT_TRUE(duk::getGlobal<bool>(m_ctx, "correct")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
511 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
512 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
513 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
514 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
515 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
516 TEST_F(TestColor, requireFailAlpha) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
517 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
518 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
519 duk::putGlobal(m_ctx, "draw", duk::Function{[] (duk::ContextPtr ctx) -> duk::Ret { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
520 duk::require<Color>(ctx, 0); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
521 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
522 return 0; |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
523 }, 1}); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
524 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
525 auto ret = duk::pevalString(m_ctx, |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
526 "try {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
527 " draw({ red: 10, green: 20, blue: 30, alpha: 800 });" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
528 "} catch (e) {" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
529 " name = e.name;" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
530 " correct = (e instanceof RangeError);" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
531 "}" |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
532 ); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
533 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
534 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
535 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
536 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
537 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
538 ASSERT_EQ("RangeError", duk::getGlobal<std::string>(m_ctx, "name")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
539 ASSERT_TRUE(duk::getGlobal<bool>(m_ctx, "correct")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
540 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
541 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
542 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
543 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
544 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
545 /* |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
546 * Get. |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
547 * ------------------------------------------------------------------ |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
548 * |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
549 * TypeTraits<Color>::get readjust any invalid values. |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
550 */ |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
551 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
552 TEST_F(TestColor, getNormal) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
553 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
554 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
555 duk::putGlobal(m_ctx, "draw", duk::Function{[] (duk::ContextPtr ctx) -> duk::Ret { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
556 Color color = duk::get<Color>(ctx, 0); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
557 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
558 duk::putGlobal(ctx, "r", static_cast<int>(color.red())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
559 duk::putGlobal(ctx, "g", static_cast<int>(color.green())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
560 duk::putGlobal(ctx, "b", static_cast<int>(color.blue())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
561 duk::putGlobal(ctx, "a", static_cast<int>(color.alpha())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
562 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
563 return 0; |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
564 }, 1}); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
565 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
566 auto ret = duk::pevalString(m_ctx, "draw('#ff0000');"); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
567 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
568 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
569 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
570 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
571 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
572 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "r")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
573 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "g")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
574 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "b")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
575 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "a")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
576 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
577 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
578 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
579 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
580 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
581 TEST_F(TestColor, getAdjustRgb) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
582 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
583 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
584 duk::putGlobal(m_ctx, "draw", duk::Function{[] (duk::ContextPtr ctx) -> duk::Ret { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
585 Color color = duk::get<Color>(ctx, 0); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
586 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
587 duk::putGlobal(ctx, "r", static_cast<int>(color.red())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
588 duk::putGlobal(ctx, "g", static_cast<int>(color.green())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
589 duk::putGlobal(ctx, "b", static_cast<int>(color.blue())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
590 duk::putGlobal(ctx, "a", static_cast<int>(color.alpha())); |
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 return 0; |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
593 }, 1}); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
594 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
595 auto ret = duk::pevalString(m_ctx, "draw('#ghijkl');"); |
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 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
598 throw duk::error(m_ctx, -1); |
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 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
601 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "r")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
602 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "g")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
603 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "b")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
604 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "a")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
605 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
606 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
607 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
608 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
609 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
610 TEST_F(TestColor, getAdjustAll) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
611 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
612 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
613 duk::putGlobal(m_ctx, "draw", duk::Function{[] (duk::ContextPtr ctx) -> duk::Ret { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
614 Color color = duk::get<Color>(ctx, 0); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
615 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
616 duk::putGlobal(ctx, "r", static_cast<int>(color.red())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
617 duk::putGlobal(ctx, "g", static_cast<int>(color.green())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
618 duk::putGlobal(ctx, "b", static_cast<int>(color.blue())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
619 duk::putGlobal(ctx, "a", static_cast<int>(color.alpha())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
620 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
621 return 0; |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
622 }, 1}); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
623 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
624 auto ret = duk::pevalString(m_ctx, "draw({ red: -1, green: 256, blue: 100, alpha: 800 });"); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
625 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
626 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
627 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
628 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
629 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
630 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "r")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
631 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "g")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
632 ASSERT_EQ(100, duk::getGlobal<int>(m_ctx, "b")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
633 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "a")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
634 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
635 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
636 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
637 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
638 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
639 TEST_F(TestColor, getSomethingElse) |
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 try { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
642 duk::putGlobal(m_ctx, "draw", duk::Function{[] (duk::ContextPtr ctx) -> duk::Ret { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
643 Color color = duk::get<Color>(ctx, 0); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
644 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
645 duk::putGlobal(ctx, "r", static_cast<int>(color.red())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
646 duk::putGlobal(ctx, "g", static_cast<int>(color.green())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
647 duk::putGlobal(ctx, "b", static_cast<int>(color.blue())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
648 duk::putGlobal(ctx, "a", static_cast<int>(color.alpha())); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
649 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
650 return 0; |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
651 }, 1}); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
652 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
653 auto ret = duk::pevalString(m_ctx, "draw(null);"); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
654 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
655 if (ret != 0) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
656 throw duk::error(m_ctx, -1); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
657 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
658 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
659 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "r")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
660 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "g")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
661 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "b")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
662 ASSERT_EQ(255, duk::getGlobal<int>(m_ctx, "a")); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
663 } catch (const std::exception &ex) { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
664 FAIL() << ex.what(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
665 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
666 } |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
667 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
668 int main(int argc, char **argv) |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
669 { |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
670 testing::InitGoogleTest(&argc, argv); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
671 |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
672 return RUN_ALL_TESTS(); |
0c62e0af6af7
Client: add JavaScript bindings for Color, #445
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
673 } |