annotate tests/libclient/js-size/main.cpp @ 42:a47a4477f347

Misc: new style, closes #578
author David Demelier <markand@malikania.fr>
date Tue, 29 Nov 2016 21:21:36 +0100
parents 9af360f34c7d
children fabbe1759cec
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
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
21 #include <malikania/js_size.hpp>
13
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:
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
27 UniqueContext m_ctx;
13
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:
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
30 TestSize()
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
31 {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
32 duk_push_object(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
33 duk_put_global_string(m_ctx, "Malikania");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
34 dukx_load_size(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
35 }
13
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 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
45 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
46 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
47 "s = Malikania.Size();"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
48 "w = s.width;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
49 "h = s.height;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
50 );
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
51
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
52 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
53 throw dukx_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
54 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
55
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
56 duk_get_global_string(m_ctx, "w");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
57 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
58 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
59 duk_get_global_string(m_ctx, "h");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
60 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
61 duk_pop(m_ctx);
30
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 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 }
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
66
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 TEST_F(TestSize, Constructor2Args)
fb7c2c096101 Client: add JavaScript bindings for Size, #460
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 {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
70 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
71 "s = Malikania.Size(100, 200);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
72 "w = s.width;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
73 "h = s.height;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
74 );
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
75
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
76 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
77 throw dukx_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
78 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
79
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
80 duk_get_global_string(m_ctx, "w");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
81 ASSERT_EQ(100U, duk_to_uint(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
82 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
83 duk_get_global_string(m_ctx, "h");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
84 ASSERT_EQ(200U, duk_to_uint(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
85 duk_pop(m_ctx);
30
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 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 }
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 TEST_F(TestSize, ConstructorObject)
fb7c2c096101 Client: add JavaScript bindings for Size, #460
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 {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
94 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
95 "s = Malikania.Size({ width: 100, height: 200 });"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
96 "w = s.width;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
97 "h = s.height;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
98 );
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
99
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
100 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
101 throw dukx_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
102 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
103
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
104 duk_get_global_string(m_ctx, "w");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
105 ASSERT_EQ(100U, duk_to_uint(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
106 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
107 duk_get_global_string(m_ctx, "h");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
108 ASSERT_EQ(200U, duk_to_uint(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
109 duk_pop(m_ctx);
30
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 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 }
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 TEST_F(TestSize, ConstructorNew)
fb7c2c096101 Client: add JavaScript bindings for Size, #460
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 {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
118 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
119 "s = new Malikania.Size({ width: 100, height: 200 });"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
120 "w = s.width;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
121 "h = s.height;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
122 );
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
123
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
124 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
125 throw dukx_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
126 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
127
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
128 duk_get_global_string(m_ctx, "w");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
129 ASSERT_EQ(100U, duk_to_uint(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
130 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
131 duk_get_global_string(m_ctx, "h");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
132 ASSERT_EQ(200U, duk_to_uint(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
133 duk_pop(m_ctx);
30
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 }
13
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 * Invalid constructors
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 * ------------------------------------------------------------------
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 TEST_F(TestSize, InvalidConstructorArg1)
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
146 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
147 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
148 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
149 " Malikania.Size(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 );
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
155
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
156 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
157 throw dukx_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
158 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
159
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
160 duk_get_global_string(m_ctx, "name");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
161 ASSERT_STREQ("TypeError", duk_to_string(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
162 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
163 duk_get_global_string(m_ctx, "correct");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
164 ASSERT_TRUE(duk_to_boolean(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
165 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
166 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
167 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
168 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 }
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
170
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 TEST_F(TestSize, InvalidConstructorRange1)
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
172 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
173 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
174 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
175 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
176 " Malikania.Size(-1, 200);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
177 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
178 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
179 " correct = (e instanceof RangeError);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
180 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
181 );
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
182
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
183 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
184 throw dukx_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
185 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
186
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
187 duk_get_global_string(m_ctx, "name");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
188 ASSERT_STREQ("RangeError", duk_to_string(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
189 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
190 duk_get_global_string(m_ctx, "correct");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
191 ASSERT_TRUE(duk_to_boolean(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
192 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
193 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
194 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
195 }
13
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
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
198 TEST_F(TestSize, InvalidConstructorRange2)
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
199 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
200 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
201 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
202 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
203 " Malikania.Size(100, -1);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
204 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
205 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
206 " correct = (e instanceof RangeError);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
207 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
208 );
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
209
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
210 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
211 throw dukx_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
212 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
213
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
214 duk_get_global_string(m_ctx, "name");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
215 ASSERT_STREQ("RangeError", duk_to_string(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
216 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
217 duk_get_global_string(m_ctx, "correct");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
218 ASSERT_TRUE(duk_to_boolean(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
219 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
220 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
221 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
222 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
223 }
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
224
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
225 TEST_F(TestSize, InvalidConstructorRange3)
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
226 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
227 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
228 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
229 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
230 " Malikania.Size({ width: -1, height: 200 });"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
231 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
232 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
233 " correct = (e instanceof RangeError);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
234 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
235 );
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
236
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
237 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
238 throw dukx_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
239 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
240
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
241 duk_get_global_string(m_ctx, "name");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
242 ASSERT_STREQ("RangeError", duk_to_string(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
243 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
244 duk_get_global_string(m_ctx, "correct");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
245 ASSERT_TRUE(duk_to_boolean(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
246 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
247 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
248 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
249 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
250 }
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
251
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
252 TEST_F(TestSize, InvalidConstructorRange4)
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
253 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
254 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
255 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
256 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
257 " Malikania.Size({ width: 100, height: -1 });"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
258 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
259 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
260 " correct = (e instanceof RangeError);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
261 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
262 );
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
263
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
264 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
265 throw dukx_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
266 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
267
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
268 duk_get_global_string(m_ctx, "name");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
269 ASSERT_STREQ("RangeError", duk_to_string(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
270 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
271 duk_get_global_string(m_ctx, "correct");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
272 ASSERT_TRUE(duk_to_boolean(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
273 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
274 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
275 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
276 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
277 }
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 /*
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
280 * Require.
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 */
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
283
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
284 TEST_F(TestSize, requireSuccess)
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
285 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
286 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
287 duk_push_c_function(m_ctx, [] (auto ctx) {
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
288 auto size = dukx_require_size(ctx, 0);
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
289
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
290 duk_push_uint(ctx, size.width());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
291 duk_put_global_string(ctx, "w");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
292 duk_push_uint(ctx, size.height());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
293 duk_put_global_string(ctx, "h");
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
294
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
295 return 0;
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
296 }, 1);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
297 duk_put_global_string(m_ctx, "build");
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
298
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
299 auto ret = duk_peval_string(m_ctx, "build({ width: 100, height: 200 });");
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
300
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
301 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
302 throw dukx_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
303 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
304
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
305 duk_get_global_string(m_ctx, "w");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
306 ASSERT_EQ(100U, duk_to_uint(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
307 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
308 duk_get_global_string(m_ctx, "h");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
309 ASSERT_EQ(200U, duk_to_uint(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
310 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
311 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
312 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
313 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
314 }
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 TEST_F(TestSize, requireFail)
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
317 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
318 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
319 duk_push_c_function(m_ctx, [] (auto ctx) {
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
320 dukx_require_size(ctx, 0);
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
321
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
322 return 0;
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
323 }, 1);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
324 duk_put_global_string(m_ctx, "build");
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
325
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
326 auto ret = duk_peval_string(m_ctx,
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
327 "try {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
328 " build({});"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
329 "} catch (e) {"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
330 " name = e.name;"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
331 " correct = (e instanceof Error);"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
332 "}"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
333 );
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
334
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
335 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
336 throw dukx_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
337 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
338
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
339 duk_get_global_string(m_ctx, "name");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
340 ASSERT_STREQ("Error", duk_to_string(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
341 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
342 duk_get_global_string(m_ctx, "correct");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
343 ASSERT_TRUE(duk_to_boolean(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
344 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
345 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
346 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
347 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
348 }
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
349
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
350 /*
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
351 * Get.
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
352 * ------------------------------------------------------------------
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
353 */
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
354
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
355 TEST_F(TestSize, getAdjustAll)
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
356 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
357 try {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
358 duk_push_c_function(m_ctx, [] (auto ctx) {
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
359 auto size = dukx_get_size(ctx, 0);
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
360
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
361 duk_push_uint(ctx, size.width());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
362 duk_put_global_string(ctx, "w");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
363 duk_push_uint(ctx, size.height());
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
364 duk_put_global_string(ctx, "h");
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
365
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
366 return 0;
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
367 }, 1);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
368 duk_put_global_string(m_ctx, "build");
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
369
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
370 auto ret = duk_peval_string(m_ctx, "build({});");
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
371
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
372 if (ret != 0) {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
373 throw dukx_exception(m_ctx, -1);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
374 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
375
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
376 duk_get_global_string(m_ctx, "w");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
377 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
378 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
379 duk_get_global_string(m_ctx, "h");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
380 ASSERT_EQ(0U, duk_to_uint(m_ctx, -1));
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
381 duk_pop(m_ctx);
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
382 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
383 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
384 }
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
385 }
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
386
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
387 int main(int argc, char **argv)
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
388 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
389 testing::InitGoogleTest(&argc, argv);
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
390
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
391 return RUN_ALL_TESTS();
13
fb7c2c096101 Client: add JavaScript bindings for Size, #460
David Demelier <markand@malikania.fr>
parents:
diff changeset
392 }