Mercurial > malikania
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 |
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() |