annotate tests/libclient/js-sprite/main.cpp @ 44:f30c84b4b9ed

Tests: switch from GoogleTest to Boost.Unit, closes #588
author David Demelier <markand@malikania.fr>
date Wed, 30 Nov 2016 21:15:53 +0100
parents fabbe1759cec
children 96ba0c5cf893
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test Sprite (JavaScript binding)
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2013-2016 Malikania Authors
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <chrono>
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #include <thread>
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
22 #define BOOST_TEST_MODULE "Javascript Sprite"
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
23 #include <boost/test/unit_test.hpp>
21
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
24
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
25 #include <malikania/js_client_resources_loader.hpp>
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
26 #include <malikania/js_image.hpp>
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
27 #include <malikania/js_sprite.hpp>
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
28 #include <malikania/js_window.hpp>
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
29 #include <malikania/resources_locator.hpp>
21
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
43
fabbe1759cec Misc: switch to mlk namespace, closes #589
David Demelier <markand@malikania.fr>
parents: 42
diff changeset
31 using namespace mlk;
21
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 using namespace std::chrono_literals;
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
35 class test_sprite {
21
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 protected:
43
fabbe1759cec Misc: switch to mlk namespace, closes #589
David Demelier <markand@malikania.fr>
parents: 42
diff changeset
37 directory_resources_locator m_locator;
fabbe1759cec Misc: switch to mlk namespace, closes #589
David Demelier <markand@malikania.fr>
parents: 42
diff changeset
38 client_resources_loader m_loader;
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
39 UniqueContext m_ctx;
21
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
40
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 public:
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
42 test_sprite()
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
43 : m_locator(SOURCE_DIRECTORY "/resources")
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
44 , m_loader(m_locator)
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
45 {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
46 duk_push_object(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
47 duk_put_global_string(m_ctx, "Malikania");
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
48 mlk::dukx_load_image(m_ctx);
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
49 mlk::dukx_load_sprite(m_ctx);
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
50 mlk::dukx_load_window(m_ctx);
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
51 dukx_put_client_loader(m_ctx, m_loader);
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
52 }
21
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 };
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
54
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
55 BOOST_FIXTURE_TEST_SUITE(test_sprite_suite, test_sprite)
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
56
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
57 BOOST_AUTO_TEST_CASE(cell)
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
58 {
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
59 try {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
60 auto ret = duk_peval_string(m_ctx,
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
61 "s = new Malikania.Sprite('sprites/margins.json');"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
62 "w = s.cell.width;"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
63 "h = s.cell.height;"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
64 );
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
65
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
66 if (ret != 0) {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
67 throw dukx_exception(m_ctx, -1);
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
68 }
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
69
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
70 duk_get_global_string(m_ctx, "w");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
71 BOOST_REQUIRE_EQUAL(32U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
72 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
73 duk_get_global_string(m_ctx, "h");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
74 BOOST_REQUIRE_EQUAL(32U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
75 duk_pop(m_ctx);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
76 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
77 BOOST_FAIL(ex.what());
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
78 }
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
79 }
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
80
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
81 BOOST_AUTO_TEST_CASE(columns)
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
82 {
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
83 try {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
84 auto ret = duk_peval_string(m_ctx,
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
85 "s = new Malikania.Sprite('sprites/margins.json');"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
86 "n = s.columns;"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
87 );
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
88
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
89 if (ret != 0) {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
90 throw dukx_exception(m_ctx, -1);
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
91 }
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
92
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
93 duk_get_global_string(m_ctx, "n");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
94 BOOST_REQUIRE_EQUAL(4U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
95 duk_pop(m_ctx);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
96 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
97 BOOST_FAIL(ex.what());
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
98 }
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
99 }
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
100
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
101 BOOST_AUTO_TEST_CASE(margins)
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
102 {
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
103 try {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
104 auto ret = duk_peval_string(m_ctx,
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
105 "s = new Malikania.Sprite('sprites/margins.json');"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
106 "w = s.margins.width;"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
107 "h = s.margins.height;"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
108 );
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
109
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
110 if (ret != 0) {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
111 throw dukx_exception(m_ctx, -1);
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
112 }
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
113
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
114 duk_get_global_string(m_ctx, "w");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
115 BOOST_REQUIRE_EQUAL(4U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
116 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
117 duk_get_global_string(m_ctx, "h");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
118 BOOST_REQUIRE_EQUAL(6U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
119 duk_pop(m_ctx);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
120 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
121 BOOST_FAIL(ex.what());
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
122 }
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
123 }
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
124
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
125 BOOST_AUTO_TEST_CASE(rows)
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
126 {
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
127 try {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
128 auto ret = duk_peval_string(m_ctx,
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
129 "s = new Malikania.Sprite('sprites/margins.json');"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
130 "n = s.rows;"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
131 );
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
132
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
133 if (ret != 0) {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
134 throw dukx_exception(m_ctx, -1);
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
135 }
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
136
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
137 duk_get_global_string(m_ctx, "n");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
138 BOOST_REQUIRE_EQUAL(3U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
139 duk_pop(m_ctx);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
140 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
141 BOOST_FAIL(ex.what());
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
142 }
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
143 }
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
144
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
145 BOOST_AUTO_TEST_CASE(space)
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
146 {
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
147 try {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
148 auto ret = duk_peval_string(m_ctx,
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
149 "s = new Malikania.Sprite('sprites/margins.json');"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
150 "w = s.space.width;"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
151 "h = s.space.height;"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
152 );
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
153
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
154 if (ret != 0) {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
155 throw dukx_exception(m_ctx, -1);
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
156 }
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
157
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
158 duk_get_global_string(m_ctx, "w");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
159 BOOST_REQUIRE_EQUAL(2U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
160 duk_pop(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
161 duk_get_global_string(m_ctx, "h");
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
162 BOOST_REQUIRE_EQUAL(3U, duk_to_uint(m_ctx, -1));
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
163 duk_pop(m_ctx);
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
164 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
165 BOOST_FAIL(ex.what());
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
166 }
25
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
167 }
dc47ce56ce36 Client: add properties for Malikania.Sprite, #461
David Demelier <markand@malikania.fr>
parents: 21
diff changeset
168
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
169 BOOST_AUTO_TEST_CASE(basic)
21
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 {
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
171 try {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
172 auto ret = duk_peval_string(m_ctx,
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
173 "w = new Malikania.Window();"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
174 "s = new Malikania.Sprite('sprites/margins.json');"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
175 "c = 0;"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
176 );
21
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
177
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
178 if (ret != 0) {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
179 throw dukx_exception(m_ctx, -1);
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
180 }
21
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
181
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
182 for (unsigned c = 0; c < 12; ++c) {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
183 auto ret = duk_peval_string(m_ctx,
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
184 "w.setDrawingColor('lightskyblue');"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
185 "w.clear();"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
186 "s.draw(w, c++, { x: 320 - 16, y: 240 - 16 });"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
187 "w.present();"
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
188 );
21
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
189
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
190 if (ret != 0) {
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
191 throw dukx_exception(m_ctx, -1);
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
192 }
21
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
193
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
194 std::this_thread::sleep_for(1s);
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
195 }
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
196 } catch (const std::exception &ex) {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
197 BOOST_FAIL(ex.what());
42
a47a4477f347 Misc: new style, closes #578
David Demelier <markand@malikania.fr>
parents: 36
diff changeset
198 }
21
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
199 }
a087bc11ba04 Client: add JavaScript bindings for Sprite, #461
David Demelier <markand@malikania.fr>
parents:
diff changeset
200
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
201 BOOST_AUTO_TEST_SUITE_END()