annotate tests/libclient/js-rectangle/main.cpp @ 30:a1e80d991968

Misc: convert to spaces, #519
author David Demelier <markand@malikania.fr>
date Thu, 16 Jun 2016 13:35:31 +0200
parents 0a1adf7dcca0
children d4f5f7231b84
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test Rectangle (JavaScript binding)
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2013-2016 Malikania Authors
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <gtest/gtest.h>
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 #include <malikania/js-rectangle.h>
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
22
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 using namespace malikania;
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
24
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 class TestRectangle : public testing::Test {
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 protected:
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
27 duk::Context m_ctx;
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 public:
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
30 TestRectangle()
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
31 {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
32 duk::putGlobal(m_ctx, "Malikania", duk::Object());
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
33
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
34 loadMalikaniaRectangle(m_ctx);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
35 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 };
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
37
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 /*
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 * Valid constructors
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 * ------------------------------------------------------------------
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 */
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
42
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 TEST_F(TestRectangle, ConstructorNoArgs)
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
45 try {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
46 auto ret = duk::pevalString(m_ctx,
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
47 "r = Malikania.Rectangle();"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
48 "x = r.x;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
49 "y = r.y;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
50 "w = r.width;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
51 "h = r.height;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
52 );
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
53
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
54 if (ret != 0) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
55 throw duk::exception(m_ctx, -1);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
56 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
57
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
58 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "x"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
59 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "y"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
60 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "w"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
61 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "h"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
62 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
63 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
64 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 }
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
66
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 TEST_F(TestRectangle, Constructor4Args)
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
69 try {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
70 auto ret = duk::pevalString(m_ctx,
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
71 "r = Malikania.Rectangle(10, 20, 30, 40);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
72 "x = r.x;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
73 "y = r.y;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
74 "w = r.width;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
75 "h = r.height;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
76 );
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
77
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
78 if (ret != 0) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
79 throw duk::exception(m_ctx, -1);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
80 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
81
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
82 ASSERT_EQ(10, duk::getGlobal<int>(m_ctx, "x"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
83 ASSERT_EQ(20, duk::getGlobal<int>(m_ctx, "y"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
84 ASSERT_EQ(30, duk::getGlobal<int>(m_ctx, "w"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
85 ASSERT_EQ(40, duk::getGlobal<int>(m_ctx, "h"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
86 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
87 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
88 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 }
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
90
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 TEST_F(TestRectangle, ConstructorObject)
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
93 try {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
94 auto ret = duk::pevalString(m_ctx,
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
95 "r = Malikania.Rectangle({ x: 10, y: 20, width: 30, height: 40 });"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
96 "x = r.x;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
97 "y = r.y;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
98 "w = r.width;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
99 "h = r.height;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
100 );
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
101
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
102 if (ret != 0) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
103 throw duk::exception(m_ctx, -1);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
104 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
105
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
106 ASSERT_EQ(10, duk::getGlobal<int>(m_ctx, "x"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
107 ASSERT_EQ(20, duk::getGlobal<int>(m_ctx, "y"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
108 ASSERT_EQ(30, duk::getGlobal<int>(m_ctx, "w"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
109 ASSERT_EQ(40, duk::getGlobal<int>(m_ctx, "h"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
110 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
111 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
112 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 }
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
114
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 TEST_F(TestRectangle, ConstructorNew)
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
117 try {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
118 auto ret = duk::pevalString(m_ctx,
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
119 "r = new Malikania.Rectangle({ x: 10, y: 20, width: 30, height: 40 });"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
120 "x = r.x;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
121 "y = r.y;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
122 "w = r.width;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
123 "h = r.height;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
124 );
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
125
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
126 if (ret != 0) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
127 throw duk::exception(m_ctx, -1);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
128 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
129
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
130 ASSERT_EQ(10, duk::getGlobal<int>(m_ctx, "x"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
131 ASSERT_EQ(20, duk::getGlobal<int>(m_ctx, "y"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
132 ASSERT_EQ(30, duk::getGlobal<int>(m_ctx, "w"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
133 ASSERT_EQ(40, duk::getGlobal<int>(m_ctx, "h"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
134 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
135 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
136 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 }
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
138
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 /*
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 * Invalid constructors
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 * ------------------------------------------------------------------
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 */
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
143
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 TEST_F(TestRectangle, InvalidConstructorArg1)
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
146 try {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
147 auto ret = duk::pevalString(m_ctx,
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
148 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
149 " Malikania.Rectangle(null);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
150 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
151 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
152 " correct = (e instanceof TypeError);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
153 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
154 );
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
155
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
156 if (ret != 0) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
157 throw duk::exception(m_ctx, -1);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
158 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
159
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
160 ASSERT_EQ("TypeError", duk::getGlobal<std::string>(m_ctx, "name"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
161 ASSERT_TRUE(duk::getGlobal<bool>(m_ctx, "correct"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
162 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
163 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
164 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 }
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
166
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 TEST_F(TestRectangle, InvalidConstructorRange1)
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
169 try {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
170 auto ret = duk::pevalString(m_ctx,
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
171 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
172 " Malikania.Rectangle(0, 0, -10, -10);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
173 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
174 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
175 " correct = (e instanceof RangeError);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
176 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
177 );
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
178
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
179 if (ret != 0) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
180 throw duk::exception(m_ctx, -1);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
181 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
182
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
183 ASSERT_EQ("RangeError", duk::getGlobal<std::string>(m_ctx, "name"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
184 ASSERT_TRUE(duk::getGlobal<bool>(m_ctx, "correct"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
185 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
186 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
187 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 }
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
189
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 /*
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
191 * Require.
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 * ------------------------------------------------------------------
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 */
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
194
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
195 TEST_F(TestRectangle, requireSuccess)
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
196 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
197 try {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
198 duk::putGlobal(m_ctx, "build", duk::Function{[] (duk::ContextPtr ctx) -> duk::Ret {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
199 Rectangle rect = duk::require<Rectangle>(ctx, 0);
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
200
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
201 duk::putGlobal(ctx, "x", rect.x());
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
202 duk::putGlobal(ctx, "y", rect.y());
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
203 duk::putGlobal(ctx, "w", static_cast<int>(rect.width()));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
204 duk::putGlobal(ctx, "h", static_cast<int>(rect.height()));
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
205
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
206 return 0;
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
207 }, 1});
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
208
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
209 auto ret = duk::pevalString(m_ctx, "build({ x: 50, y: 80, width: 100, height: 200 });");
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
210
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
211 if (ret != 0) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
212 throw duk::exception(m_ctx, -1);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
213 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
214
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
215 ASSERT_EQ(50, duk::getGlobal<int>(m_ctx, "x"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
216 ASSERT_EQ(80, duk::getGlobal<int>(m_ctx, "y"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
217 ASSERT_EQ(100, duk::getGlobal<int>(m_ctx, "w"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
218 ASSERT_EQ(200, duk::getGlobal<int>(m_ctx, "h"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
219 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
220 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
221 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
222 }
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
223
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
224 TEST_F(TestRectangle, requireFail)
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
225 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
226 try {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
227 duk::putGlobal(m_ctx, "build", duk::Function{[] (duk::ContextPtr ctx) -> duk::Ret {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
228 duk::require<Rectangle>(ctx, 0);
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
229
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
230 return 0;
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
231 }, 1});
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
232
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
233 auto ret = duk::pevalString(m_ctx,
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
234 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
235 " build({});"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
236 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
237 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
238 " correct = (e instanceof Error);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
239 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
240 );
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
241
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
242 if (ret != 0) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
243 throw duk::exception(m_ctx, -1);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
244 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
245
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
246 ASSERT_EQ("Error", duk::getGlobal<std::string>(m_ctx, "name"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
247 ASSERT_TRUE(duk::getGlobal<bool>(m_ctx, "correct"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
248 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
249 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
250 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
251 }
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
252
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
253 /*
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
254 * Get.
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
255 * ------------------------------------------------------------------
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
256 */
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
257
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
258 TEST_F(TestRectangle, getAdjustAll)
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
259 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
260 try {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
261 duk::putGlobal(m_ctx, "build", duk::Function{[] (duk::ContextPtr ctx) -> duk::Ret {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
262 Rectangle rect = duk::get<Rectangle>(ctx, 0);
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
263
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
264 duk::putGlobal(ctx, "x", rect.x());
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
265 duk::putGlobal(ctx, "y", rect.y());
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
266 duk::putGlobal(ctx, "w", static_cast<int>(rect.width()));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
267 duk::putGlobal(ctx, "h", static_cast<int>(rect.height()));
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
268
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
269 return 0;
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
270 }, 1});
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
271
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
272 auto ret = duk::pevalString(m_ctx, "build({});");
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
273
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
274 if (ret != 0) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
275 throw duk::exception(m_ctx, -1);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
276 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
277
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
278 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "x"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
279 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "y"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
280 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "w"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
281 ASSERT_EQ(0, duk::getGlobal<int>(m_ctx, "h"));
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
282 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
283 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
284 }
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
285 }
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
286
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
287 int main(int argc, char **argv)
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
288 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
289 testing::InitGoogleTest(&argc, argv);
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
290
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
291 return RUN_ALL_TESTS();
16
a8aabea64f17 Client: add JavaScript bindings for Rectangle, #459
David Demelier <markand@malikania.fr>
parents:
diff changeset
292 }