2
Test code for keyword mapping
4
Copyright 2012 Canonical Ltd.
6
This program is free software: you can redistribute it and/or modify it
7
under the terms of the GNU General Public License version 3, as published
8
by the Free Software Foundation.
10
This program is distributed in the hope that it will be useful, but
11
WITHOUT ANY WARRANTY; without even the implied warranties of
12
MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
13
PURPOSE. See the GNU General Public License for more details.
15
You should have received a copy of the GNU General Public License along
16
with this program. If not, see <http://www.gnu.org/licenses/>.
20
#include <glib-object.h>
21
#include <glib/gi18n.h>
27
#include "hudsettings.h"
28
#include "hudkeywordmapping.h"
30
/* hardcode some parameters so the test doesn't fail if the user
31
* has bogus things in GSettings.
33
HudSettings hud_settings = {
34
.indicator_penalty = 50,
37
.end_drop_penalty = 1,
46
return g_getenv ("LANGUAGE");
53
set_language (const gchar* language)
55
/* Change language. */
56
g_setenv ("LANGUAGE", language, 1);
58
/* Make change known. */
60
extern int _nl_msg_cat_cntr;
66
test_keyword_mapping_unknown_action (void)
68
HudKeywordMapping *mapping;
69
GPtrArray *results, *results2;
71
mapping = hud_keyword_mapping_new ();
73
const gchar* original_language = get_language ();
74
set_language ("en_EVENMOREFAKELANG");
75
hud_keyword_mapping_load (mapping, "gnome-terminal",
76
KEYWORD_MAPPING, KEYWORD_LOCALE_DIR);
77
set_language (original_language);
79
results = hud_keyword_mapping_transform (mapping, "random action string");
80
g_assert_cmpint(results->len, ==, 0);
82
results2 = hud_keyword_mapping_transform (mapping, "random action string");
83
g_assert_cmpint(results2->len, ==, 0);
85
/* Check the keyword miss was cached */
86
g_assert(results == results2);
88
g_object_unref (mapping);
92
test_keyword_mapping_open_tab (void)
94
HudKeywordMapping *mapping;
97
mapping = hud_keyword_mapping_new ();
99
const gchar* original_language = get_language ();
100
set_language ("en_EVENMOREFAKELANG");
101
hud_keyword_mapping_load (mapping, "gnome-terminal",
102
KEYWORD_MAPPING, KEYWORD_LOCALE_DIR);
103
set_language (original_language);
105
results = hud_keyword_mapping_transform (mapping, "Open Ta_b");
107
g_assert_cmpint(results->len, ==, 2);
108
g_assert_cmpstr((gchar*) g_ptr_array_index(results, 0), ==, "New Tab");
109
g_assert_cmpstr((gchar*) g_ptr_array_index(results, 1), ==, "Another Tab");
111
g_object_unref (mapping);
115
test_keyword_mapping_open_tab_with_translation (void)
117
HudKeywordMapping *mapping;
120
const gchar* original_language = get_language ();
121
mapping = hud_keyword_mapping_new ();
123
/* Temporarily change to language to read in our translations */
124
set_language ("en_FAKELANG");
125
hud_keyword_mapping_load (mapping, "gnome-terminal",
126
KEYWORD_MAPPING, KEYWORD_LOCALE_DIR);
127
set_language (original_language);
129
results = hud_keyword_mapping_transform (mapping, "Open Ta_b");
131
g_assert_cmpint(results->len, ==, 3);
132
g_assert_cmpstr((gchar*) g_ptr_array_index(results, 0), ==, "More Tabs");
133
g_assert_cmpstr((gchar*) g_ptr_array_index(results, 1), ==,
135
g_assert_cmpstr((gchar*) g_ptr_array_index(results, 2), ==, "Giv Tab Plz");
137
g_object_unref (mapping);
141
test_keyword_mapping_open_terminal (void)
143
HudKeywordMapping *mapping;
146
mapping = hud_keyword_mapping_new ();
148
const gchar* original_language = get_language ();
149
set_language ("en_EVENMOREFAKELANG");
150
hud_keyword_mapping_load (mapping, "gnome-terminal", KEYWORD_MAPPING,
152
set_language (original_language);
154
results = hud_keyword_mapping_transform (mapping, "Open _Terminal");
156
g_assert_cmpint(results->len, ==, 2);
157
g_assert_cmpstr((gchar*) g_ptr_array_index(results, 0), ==, "New Terminal");
158
g_assert_cmpstr((gchar*) g_ptr_array_index(results, 1), ==,
161
g_object_unref (mapping);
164
/* Build the test suite */
165
static void test_keyword_mapping_suite (void)
167
g_test_add_func ("/hud/keyword/unknown_action", test_keyword_mapping_unknown_action);
168
g_test_add_func ("/hud/keyword/open_tab", test_keyword_mapping_open_tab);
169
g_test_add_func ("/hud/keyword/open_tab_with_translation",
170
test_keyword_mapping_open_tab_with_translation);
171
g_test_add_func ("/hud/keyword/open_terminal",
172
test_keyword_mapping_open_terminal);
177
main (gint argc, gchar * argv[])
179
g_setenv ("LANG", "C.UTF-8", 1);
180
g_unsetenv("LC_ALL");
181
setlocale (LC_ALL, "");
183
#ifndef GLIB_VERSION_2_36
187
g_test_init (&argc, &argv, NULL );
190
test_keyword_mapping_suite ();
192
gint result = g_test_run ();