annotate tests/libclient/js-window/main.cpp @ 33:d4f5f7231b84

Misc: switch to .hpp, dos2unix everything while here, #478
author David Demelier <markand@malikania.fr>
date Fri, 17 Jun 2016 13:12:35 +0200
parents a1e80d991968
children 9af360f34c7d
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:
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
32 duk::Context 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:
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
35 TestWindow()
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
36 {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
37 duk::putGlobal(m_ctx, "Malikania", duk::Object());
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
38
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
39 loadMalikaniaWindow(m_ctx);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
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 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
45 try {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
46 auto ret = duk::pevalString(m_ctx,
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
47 "w = new Malikania.Window();"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
48 "w.setDrawingColor('lightskyblue');"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
49 "w.clear();"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
50 "w.present();"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
51 );
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
52
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
53 if (ret != 0) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
54 throw duk::exception(m_ctx, -1);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
55 }
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
56
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
57 std::this_thread::sleep_for(3s);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
58 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
59 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
60 }
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 }
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
62
18
cc13926bed59 Client: add more bindings for Window, #462
David Demelier <markand@malikania.fr>
parents: 14
diff changeset
63 TEST_F(TestWindow, rect)
cc13926bed59 Client: add more bindings for Window, #462
David Demelier <markand@malikania.fr>
parents: 14
diff changeset
64 {
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
65 try {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
66 auto ret = duk::pevalString(m_ctx,
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
67 "w = new Malikania.Window();"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
68 "w.setDrawingColor('lightskyblue');"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
69 "w.clear();"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
70 "w.setDrawingColor('white');"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
71 "w.drawRectangle({ x: 10, y: 10, width: 10, height: 10 });"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
72 "w.present();"
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
73 );
18
cc13926bed59 Client: add more bindings for Window, #462
David Demelier <markand@malikania.fr>
parents: 14
diff changeset
74
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
75 if (ret != 0) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
76 throw duk::exception(m_ctx, -1);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
77 }
18
cc13926bed59 Client: add more bindings for Window, #462
David Demelier <markand@malikania.fr>
parents: 14
diff changeset
78
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
79 std::this_thread::sleep_for(3s);
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
80 } catch (const std::exception &ex) {
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
81 FAIL() << ex.what();
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
82 }
18
cc13926bed59 Client: add more bindings for Window, #462
David Demelier <markand@malikania.fr>
parents: 14
diff changeset
83 }
cc13926bed59 Client: add more bindings for Window, #462
David Demelier <markand@malikania.fr>
parents: 14
diff changeset
84
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 int main(int argc, char **argv)
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 testing::InitGoogleTest(&argc, argv);
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
30
a1e80d991968 Misc: convert to spaces, #519
David Demelier <markand@malikania.fr>
parents: 27
diff changeset
89 return RUN_ALL_TESTS();
14
26efd2928f01 Client: add some JavaScript bindings for Window, #462
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 }