1 /* -*- c-basic-offset: 4; -*- */
6 #include <gdk/gdkkeysyms.h>
7 #include <sys/socket.h>
11 #include <sys/utsname.h>
13 #include <webkit/webkit.h>
14 #include <libsoup/soup.h>
15 #include <JavaScriptCore/JavaScript.h>
30 extern gchar* expand_template(const char*, gboolean);
34 uzbl.state.uri = g_strdup("http://www.uzbl.org/");
35 g_assert_cmpstr(expand_template("URI", FALSE), ==, uzbl.state.uri);
36 g_free(uzbl.state.uri);
40 test_LOAD_PROGRESS (void) {
41 uzbl.gui.sbar.load_progress = 50;
42 g_assert_cmpstr(expand_template("LOAD_PROGRESS", FALSE), ==, "50");
46 test_LOAD_PROGRESSBAR (void) {
47 uzbl.gui.sbar.load_progress = 75;
48 uzbl.gui.sbar.progress_w = 4;
50 uzbl.gui.sbar.progress_s = "*";
51 uzbl.gui.sbar.progress_u = "-";
53 g_assert_cmpstr(expand_template("LOAD_PROGRESSBAR", FALSE), ==, "***-");
58 uzbl.gui.main_title = "Lorem Ipsum";
59 g_assert_cmpstr(expand_template("TITLE", FALSE), ==, "Lorem Ipsum");
63 test_SELECTED_URI (void) {
64 uzbl.state.selected_url = "http://example.org/";
65 g_assert_cmpstr(expand_template("SELECTED_URI", FALSE), ==, "http://example.org/");
70 uzbl.state.instance_name = "12345";
71 g_assert_cmpstr(expand_template("NAME", FALSE), ==, "12345");
76 uzbl.state.keycmd = g_string_new("gg winslow");
77 g_assert_cmpstr(expand_template("KEYCMD", FALSE), ==, "gg winslow");
78 g_string_free(uzbl.state.keycmd, TRUE);
83 uzbl.behave.cmd_indicator = "C";
84 uzbl.behave.insert_indicator = "I";
86 uzbl.behave.insert_mode = 0;
87 g_assert_cmpstr(expand_template("MODE", FALSE), ==, "C");
89 uzbl.behave.insert_mode = 1;
90 g_assert_cmpstr(expand_template("MODE", FALSE), ==, "I");
95 uzbl.gui.sbar.msg = "Hello from frosty Edmonton!";
96 g_assert_cmpstr(expand_template("MSG", FALSE), ==, "Hello from frosty Edmonton!");
100 test_WEBKIT_VERSION (void) {
101 GString* expected = g_string_new("");
102 g_string_append(expected, itos(WEBKIT_MAJOR_VERSION));
103 g_string_append(expected, " ");
104 g_string_append(expected, itos(WEBKIT_MINOR_VERSION));
105 g_string_append(expected, " ");
106 g_string_append(expected, itos(WEBKIT_MICRO_VERSION));
108 g_assert_cmpstr(expand_template("WEBKIT_MAJOR WEBKIT_MINOR WEBKIT_MICRO", FALSE), ==, g_string_free(expected, FALSE));
112 test_UNAMEINFO (void) {
113 GString* expected = g_string_new("");
115 if(uname(&uzbl.state.unameinfo) == -1)
116 g_printerr("Can't retrieve unameinfo. This test might fail.\n");
118 g_string_append(expected, uzbl.state.unameinfo.sysname);
119 g_string_append(expected, " ");
120 g_string_append(expected, uzbl.state.unameinfo.nodename);
121 g_string_append(expected, " ");
122 g_string_append(expected, uzbl.state.unameinfo.release);
123 g_string_append(expected, " ");
124 g_string_append(expected, uzbl.state.unameinfo.version);
125 g_string_append(expected, " ");
126 g_string_append(expected, uzbl.state.unameinfo.machine);
128 g_assert_cmpstr(expand_template("SYSNAME NODENAME KERNREL KERNVER ARCH_SYSTEM", FALSE), ==, g_string_free(expected, FALSE));
132 test_ARCH_UZBL (void) {
133 g_assert_cmpstr(expand_template("ARCH_UZBL", FALSE), ==, ARCH);
138 g_assert_cmpstr(expand_template("COMMIT", FALSE), ==, COMMIT);
142 test_cmd_useragent (void) {
143 GString* expected = g_string_new("Uzbl (Webkit ");
144 g_string_append(expected, itos(WEBKIT_MAJOR_VERSION));
145 g_string_append(expected, ".");
146 g_string_append(expected, itos(WEBKIT_MINOR_VERSION));
147 g_string_append(expected, ".");
148 g_string_append(expected, itos(WEBKIT_MICRO_VERSION));
149 g_string_append(expected, " ");
150 g_string_append(expected, ARCH);
151 g_string_append(expected, ")");
153 set_var_value("useragent", "Uzbl (Webkit WEBKIT_MAJOR.WEBKIT_MINOR.WEBKIT_MICRO ARCH_UZBL)");
155 g_assert_cmpstr(uzbl.net.useragent, ==, g_string_free(expected, FALSE));
159 main (int argc, char *argv[]) {
161 g_test_init(&argc, &argv, NULL);
163 g_test_add_func("/test-expand/URI", test_URI);
164 g_test_add_func("/test-expand/LOAD_PROGRESS", test_LOAD_PROGRESS);
165 g_test_add_func("/test-expand/LOAD_PROGRESSBAR", test_LOAD_PROGRESSBAR);
166 g_test_add_func("/test-expand/TITLE", test_TITLE);
167 g_test_add_func("/test-expand/SELECTED_URI", test_SELECTED_URI);
168 g_test_add_func("/test-expand/NAME", test_NAME);
169 g_test_add_func("/test-expand/KEYCMD", test_KEYCMD);
170 g_test_add_func("/test-expand/MODE", test_MODE);
171 g_test_add_func("/test-expand/MSG", test_MSG);
172 g_test_add_func("/test-expand/WEBKIT_VERSION", test_WEBKIT_VERSION);
173 g_test_add_func("/test-expand/UNAMEINFO", test_UNAMEINFO);
174 g_test_add_func("/test-expand/ARCH_UZBL", test_ARCH_UZBL);
175 /* this only exists on _GNU_SOURCE i guess */
176 /* g_test_add_func("/test-expand/DOMAINNAME", test_DOMAINNAME); */
177 g_test_add_func("/test-expand/COMMIT", test_COMMIT);
179 g_test_add_func("/test-expand/cmd_useragent", test_cmd_useragent);
181 if (!g_thread_supported ())
182 g_thread_init (NULL);
184 uzbl.net.soup_session = webkit_get_default_session();
186 make_var_to_name_hash();
191 /* vi: set et ts=4: */