annotate tests/test-jsapi-util.c @ 1069:827431b41132

misc: remove usage of BSD sys/queue.h (plugin)
author David Demelier <markand@malikania.fr>
date Mon, 12 Jul 2021 21:11:53 +0200
parents 8f8ce47aba8a
children f06e9761cc90
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * test-jsapi-util.c -- test Irccd.Util API
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2013-2021 David Demelier <markand@malikania.fr>
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #define GREATEST_USE_ABBREVS 0
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #include <greatest.h>
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #include <irccd/js-plugin.h>
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 #include <irccd/plugin.h>
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
24
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 static struct irc_plugin *plugin;
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
26 static duk_context *ctx;
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 static void
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 setup(void *udata)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 {
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 (void)udata;
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
1037
8f8ce47aba8a make: switch to GNU make
David Demelier <markand@malikania.fr>
parents: 985
diff changeset
33 plugin = js_plugin_open("example", TOP "/tests/data/example-plugin.js");
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
34 ctx = js_plugin_get_context(plugin);
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 static void
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 teardown(void *udata)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 {
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 (void)udata;
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
41
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 irc_plugin_finish(plugin);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
43
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 plugin = NULL;
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
45 ctx = NULL;
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
47
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 GREATEST_TEST
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 basics_splituser(void)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 {
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
51 if (duk_peval_string(ctx, "result = Irccd.Util.splituser(\"user!~user@hyper/super/host\");") != 0)
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 GREATEST_FAIL();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
53
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
54 GREATEST_ASSERT(duk_get_global_string(ctx, "result"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
55 GREATEST_ASSERT_STR_EQ("user", duk_get_string(ctx, -1));
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
56
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 GREATEST_PASS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
59
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 GREATEST_TEST
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 basics_splithost(void)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 {
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
63 if (duk_peval_string(ctx, "result = Irccd.Util.splithost(\"user!~user@hyper/super/host\");") != 0)
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 GREATEST_FAIL();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
65
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
66 GREATEST_ASSERT(duk_get_global_string(ctx, "result"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
67 GREATEST_ASSERT_STR_EQ("hyper/super/host", duk_get_string(ctx, -1));
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
68
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 GREATEST_PASS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
71
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 GREATEST_SUITE(suite_basics)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 {
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 GREATEST_SET_SETUP_CB(setup, NULL);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 GREATEST_SET_TEARDOWN_CB(teardown, NULL);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 GREATEST_RUN_TEST(basics_splituser);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 GREATEST_RUN_TEST(basics_splithost);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
79
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 GREATEST_TEST
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 format_simple(void)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 {
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
83 const int ret = duk_peval_string(ctx,
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 "result = Irccd.Util.format(\"#{target}\", { target: \"markand\" })"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 );
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
86
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 if (ret != 0)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 GREATEST_FAIL();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
89
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
90 GREATEST_ASSERT(duk_get_global_string(ctx, "result"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
91 GREATEST_ASSERT_STR_EQ("markand", duk_get_string(ctx, -1));
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
92
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 GREATEST_PASS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
95
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 GREATEST_SUITE(suite_format)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 {
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 GREATEST_RUN_TEST(format_simple);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
100
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 GREATEST_TEST
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 cut_string_simple(void)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 {
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
104 const int ret = duk_peval_string(ctx,
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 "lines = Irccd.Util.cut('hello world');\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 "line0 = lines[0];\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 );
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
108
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 if (ret != 0)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 GREATEST_FAIL();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
111
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
112 GREATEST_ASSERT(duk_get_global_string(ctx, "line0"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
113 GREATEST_ASSERT_STR_EQ("hello world", duk_get_string(ctx, -1));
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
114
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 GREATEST_PASS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
117
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 GREATEST_TEST
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 cut_string_double(void)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 {
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
121 const int ret = duk_peval_string(ctx,
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 "lines = Irccd.Util.cut('hello world', 5);\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 "line0 = lines[0];\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 "line1 = lines[1];\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
125 );
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
126
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 if (ret != 0)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 GREATEST_FAIL();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
129
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
130 GREATEST_ASSERT(duk_get_global_string(ctx, "line0"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
131 GREATEST_ASSERT_STR_EQ("hello", duk_get_string(ctx, -1));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
132 GREATEST_ASSERT(duk_get_global_string(ctx, "line1"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
133 GREATEST_ASSERT_STR_EQ("world", duk_get_string(ctx, -1));
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
134
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 GREATEST_PASS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
136 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
137
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 GREATEST_TEST
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 cut_string_dirty(void)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 {
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
141 const int ret = duk_peval_string(ctx,
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 "lines = Irccd.Util.cut(' hello world ', 5);\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 "line0 = lines[0];\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 "line1 = lines[1];\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 );
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
146
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 if (ret != 0)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 GREATEST_FAIL();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
149
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
150 GREATEST_ASSERT(duk_get_global_string(ctx, "line0"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
151 GREATEST_ASSERT_STR_EQ("hello", duk_get_string(ctx, -1));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
152 GREATEST_ASSERT(duk_get_global_string(ctx, "line1"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
153 GREATEST_ASSERT_STR_EQ("world", duk_get_string(ctx, -1));
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
154
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 GREATEST_PASS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
157
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 GREATEST_TEST
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 cut_string_too_much_lines(void)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 {
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
161 const int ret = duk_peval_string(ctx,
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 "try {"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 " lines = Irccd.Util.cut('abc def ghi jkl', 3, 3);"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 "} catch (e) {\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 " name = e.name;\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 " message = e.message;\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 "}\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 );
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
169
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 if (ret != 0)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 GREATEST_FAIL();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
172
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
173 GREATEST_ASSERT(duk_get_global_string(ctx, "name"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
174 GREATEST_ASSERT_STR_EQ("RangeError", duk_get_string(ctx, -1));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
175 GREATEST_ASSERT(duk_get_global_string(ctx, "message"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
176 GREATEST_ASSERT_STR_EQ("number of lines exceeds maxl (3)", duk_get_string(ctx, -1));
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 GREATEST_PASS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
179
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 GREATEST_TEST
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
181 cut_string_token_too_big(void)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 {
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
183 const int ret = duk_peval_string(ctx,
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 "try {\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 " lines = Irccd.Util.cut('hello world', 3);\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
186 "} catch (e) {\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 " name = e.name;\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 " message = e.message;\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
189 "}\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 );
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
191
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 if (ret != 0)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 GREATEST_FAIL();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
194
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
195 GREATEST_ASSERT(duk_get_global_string(ctx, "name"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
196 GREATEST_ASSERT_STR_EQ("RangeError", duk_get_string(ctx, -1));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
197 GREATEST_ASSERT(duk_get_global_string(ctx, "message"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
198 GREATEST_ASSERT_STR_EQ("token 'hello' could not fit in maxc limit (3)", duk_get_string(ctx, -1));
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
199
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
200 GREATEST_PASS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
201 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
202
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
203 GREATEST_TEST
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
204 cut_string_negative_maxc(void)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
205 {
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
206 const int ret = duk_peval_string(ctx,
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
207 "try {\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 " lines = Irccd.Util.cut('hello world', -3);\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
209 "} catch (e) {\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
210 " name = e.name;\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
211 " message = e.message;\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
212 "}\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
213 );
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
214
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
215 if (ret != 0)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
216 GREATEST_FAIL();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
217
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
218 GREATEST_ASSERT(duk_get_global_string(ctx, "name"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
219 GREATEST_ASSERT_STR_EQ("RangeError", duk_get_string(ctx, -1));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
220 GREATEST_ASSERT(duk_get_global_string(ctx, "message"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
221 GREATEST_ASSERT_STR_EQ("argument 1 (maxc) must be positive", duk_get_string(ctx, -1));
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
222
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
223 GREATEST_PASS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
224 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
225
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
226 GREATEST_TEST
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
227 cut_string_negative_maxl(void)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
228 {
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
229 const int ret = duk_peval_string(ctx,
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
230 "try {\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
231 " lines = Irccd.Util.cut('hello world', undefined, -1);\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
232 "} catch (e) {\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
233 " name = e.name;\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
234 " message = e.message;\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
235 "}\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
236 );
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
237
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
238 if (ret != 0)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
239 GREATEST_FAIL();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
240
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
241 GREATEST_ASSERT(duk_get_global_string(ctx, "name"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
242 GREATEST_ASSERT_STR_EQ("RangeError", duk_get_string(ctx, -1));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
243 GREATEST_ASSERT(duk_get_global_string(ctx, "message"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
244 GREATEST_ASSERT_STR_EQ("argument 2 (maxl) must be positive", duk_get_string(ctx, -1));
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
245
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
246 GREATEST_PASS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
247 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
248
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
249 GREATEST_TEST
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
250 cut_array_simple(void)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
251 {
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
252 const int ret = duk_peval_string(ctx,
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
253 "lines = Irccd.Util.cut([ 'hello', 'world' ]);\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
254 "line0 = lines[0];\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
255 );
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
256
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
257 if (ret != 0)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
258 GREATEST_FAIL();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
259
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
260 GREATEST_ASSERT(duk_get_global_string(ctx, "line0"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
261 GREATEST_ASSERT_STR_EQ("hello world", duk_get_string(ctx, -1));
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
262
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
263 GREATEST_PASS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
264 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
265
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
266 GREATEST_TEST
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
267 cut_array_double(void)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
268 {
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
269 const int ret = duk_peval_string(ctx,
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
270 "lines = Irccd.Util.cut([ 'hello', 'world' ], 5);\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
271 "line0 = lines[0];\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
272 "line1 = lines[1];\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
273 );
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
274
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
275 if (ret != 0)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
276 GREATEST_FAIL();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
277
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
278 GREATEST_ASSERT(duk_get_global_string(ctx, "line0"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
279 GREATEST_ASSERT_STR_EQ("hello", duk_get_string(ctx, -1));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
280 GREATEST_ASSERT(duk_get_global_string(ctx, "line1"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
281 GREATEST_ASSERT_STR_EQ("world", duk_get_string(ctx, -1));
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
282
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
283 GREATEST_PASS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
284 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
285
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
286 GREATEST_TEST
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
287 cut_array_dirty(void)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
288 {
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
289 const int ret = duk_peval_string(ctx,
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
290 "lines = Irccd.Util.cut([ ' ', ' hello ', ' world ', ' '], 5);\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
291 "line0 = lines[0];\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
292 "line1 = lines[1];\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
293 );
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
294
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
295 if (ret != 0)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
296 GREATEST_FAIL();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
297
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
298 GREATEST_ASSERT(duk_get_global_string(ctx, "line0"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
299 GREATEST_ASSERT_STR_EQ("hello", duk_get_string(ctx, -1));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
300 GREATEST_ASSERT(duk_get_global_string(ctx, "line1"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
301 GREATEST_ASSERT_STR_EQ("world", duk_get_string(ctx, -1));
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
302
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
303 GREATEST_PASS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
304 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
305
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
306 GREATEST_TEST
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
307 cut_invalid_data(void)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
308 {
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
309 const int ret = duk_peval_string(ctx,
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
310 "try {\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
311 " lines = Irccd.Util.cut(123);\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
312 "} catch (e) {\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
313 " name = e.name;\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
314 " message = e.message;\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
315 "}\n"
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
316 );
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
317
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
318 if (ret != 0)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
319 GREATEST_FAIL();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
320
965
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
321 GREATEST_ASSERT(duk_get_global_string(ctx, "name"));
a518664b20a0 irccd: move javascript API from library to frontend
David Demelier <markand@malikania.fr>
parents: 963
diff changeset
322 GREATEST_ASSERT_STR_EQ("TypeError", duk_get_string(ctx, -1));
963
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
323
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
324 GREATEST_PASS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
325 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
326
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
327 GREATEST_SUITE(suite_cut)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
328 {
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
329 GREATEST_SET_SETUP_CB(setup, NULL);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
330 GREATEST_SET_TEARDOWN_CB(teardown, NULL);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
331 GREATEST_RUN_TEST(cut_string_simple);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
332 GREATEST_RUN_TEST(cut_string_double);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
333 GREATEST_RUN_TEST(cut_string_dirty);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
334 GREATEST_RUN_TEST(cut_string_too_much_lines);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
335 GREATEST_RUN_TEST(cut_string_token_too_big);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
336 GREATEST_RUN_TEST(cut_string_negative_maxc);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
337 GREATEST_RUN_TEST(cut_string_negative_maxl);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
338 GREATEST_RUN_TEST(cut_array_simple);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
339 GREATEST_RUN_TEST(cut_array_double);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
340 GREATEST_RUN_TEST(cut_array_dirty);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
341 GREATEST_RUN_TEST(cut_invalid_data);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
342 }
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
343
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
344 GREATEST_MAIN_DEFS();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
345
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
346 int
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
347 main(int argc, char **argv)
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
348 {
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
349 GREATEST_MAIN_BEGIN();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
350 GREATEST_RUN_SUITE(suite_basics);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
351 GREATEST_RUN_SUITE(suite_cut);
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
352 GREATEST_MAIN_END();
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
353
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
354 return 0;
371e1cc2c697 tests: add 80% of the Javascript API
David Demelier <markand@malikania.fr>
parents:
diff changeset
355 }