annotate tests/libclient/js-size/main.cpp @ 27:0a1adf7dcca0

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