annotate tests/libclient/js-window/main.cpp @ 41:3645200f46bf

Misc: switch to Boost.Timer, closes #586
author David Demelier <markand@malikania.fr>
date Sun, 27 Nov 2016 20:50:38 +0100
parents 9af360f34c7d
children a47a4477f347
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test Window (JavaScript binding)
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2013-2016 Malikania Authors
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <chrono>
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #include <thread>
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #include <gtest/gtest.h>
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
24 #include <malikania/js-window.hpp>
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 using namespace malikania;
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 using namespace std::chrono_literals;
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
29
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 class TestWindow : public testing::Test {
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 protected:
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
32 UniqueContext m_ctx;
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
33
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 public:
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
35 TestWindow()
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
36 {
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
37 duk_push_object(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
38 duk_put_global_string(m_ctx, "Malikania");
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
39 dukx_load_window(m_ctx);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
40 }
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 };
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
42
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 TEST_F(TestWindow, basic)
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
45 try {
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
46 auto ret = duk_peval_string(m_ctx,
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
47 "w = new Malikania.Window();"
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
48 "w.setDrawingColor('lightskyblue');"
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
49 "w.clear();"
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
50 "w.present();"
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
51 );
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
52
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
53 if (ret != 0)
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
54 throw dukx_exception(m_ctx, -1);
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
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 std::this_thread::sleep_for(3s);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
57 } catch (const std::exception &ex) {
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
58 FAIL() << ex.what();
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
59 }
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 }
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
61
18
cc13926bed59 Client: add more bindings for Window, #462
David Demelier <markand@malikania.fr>
parents: 14
diff changeset
62 TEST_F(TestWindow, rect)
cc13926bed59 Client: add more bindings for Window, #462
David Demelier <markand@malikania.fr>
parents: 14
diff changeset
63 {
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
64 try {
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
65 auto ret = duk_peval_string(m_ctx,
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
66 "w = new Malikania.Window();"
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
67 "w.setDrawingColor('lightskyblue');"
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
68 "w.clear();"
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
69 "w.setDrawingColor('white');"
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
70 "w.drawRectangle({ x: 10, y: 10, width: 10, height: 10 });"
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
71 "w.present();"
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
72 );
18
cc13926bed59 Client: add more bindings for Window, #462
David Demelier <markand@malikania.fr>
parents: 14
diff changeset
73
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
74 if (ret != 0)
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
75 throw dukx_exception(m_ctx, -1);
18
cc13926bed59 Client: add more bindings for Window, #462
David Demelier <markand@malikania.fr>
parents: 14
diff changeset
76
36
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
77 std::this_thread::sleep_for(3s);
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
78 } catch (const std::exception &ex) {
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
79 FAIL() << ex.what();
9af360f34c7d Misc: use raw duktape API
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
80 }
18
cc13926bed59 Client: add more bindings for Window, #462
David Demelier <markand@malikania.fr>
parents: 14
diff changeset
81 }
cc13926bed59 Client: add more bindings for Window, #462
David Demelier <markand@malikania.fr>
parents: 14
diff changeset
82
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 int main(int argc, char **argv)
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
85 testing::InitGoogleTest(&argc, argv);
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
86
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
87 return RUN_ALL_TESTS();
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 }