Merge lp:~3v1n0/bamf/javaws-matching into lp:bamf/0.4
- javaws-matching
- Merge into 0.4
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Marco Trevisan (Treviño) | ||||
Approved revision: | 529 | ||||
Merged at revision: | 516 | ||||
Proposed branch: | lp:~3v1n0/bamf/javaws-matching | ||||
Merge into: | lp:bamf/0.4 | ||||
Diff against target: |
332 lines (+140/-45) 3 files modified
src/bamf-legacy-window.c (+25/-41) src/bamf-matcher.c (+34/-4) tests/bamfdaemon/test-matcher.c (+81/-0) |
||||
To merge this branch: | bzr merge lp:~3v1n0/bamf/javaws-matching | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot (community) | continuous-integration | Needs Fixing | |
Brandon Schaefer (community) | Approve | ||
Review via email: mp+142617@code.launchpad.net |
Commit message
BamfMatcher: Don't associate .desktopless applications with different exec string, fix JavaWS apps
Description of the change
Don't associate to the similar application, windows that have different execution path. Also add some rules to fix Java Web Start applications matching.
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:529
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Autolanding.
Unapproved changes made after approval.
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
Preview Diff
1 | === modified file 'src/bamf-legacy-window.c' | |||
2 | --- src/bamf-legacy-window.c 2013-01-08 13:29:11 +0000 | |||
3 | +++ src/bamf-legacy-window.c 2013-01-10 00:24:22 +0000 | |||
4 | @@ -48,10 +48,6 @@ | |||
5 | 48 | { | 48 | { |
6 | 49 | WnckWindow * legacy_window; | 49 | WnckWindow * legacy_window; |
7 | 50 | char * mini_icon_path; | 50 | char * mini_icon_path; |
8 | 51 | gulong closed_id; | ||
9 | 52 | gulong name_changed_id; | ||
10 | 53 | gulong state_changed_id; | ||
11 | 54 | gulong geometry_changed_id; | ||
12 | 55 | gboolean is_closed; | 51 | gboolean is_closed; |
13 | 56 | }; | 52 | }; |
14 | 57 | 53 | ||
15 | @@ -203,9 +199,9 @@ | |||
16 | 203 | WnckWindow *window; | 199 | WnckWindow *window; |
17 | 204 | GdkPixbuf *pbuf; | 200 | GdkPixbuf *pbuf; |
18 | 205 | char *tmp; | 201 | char *tmp; |
20 | 206 | 202 | ||
21 | 207 | g_return_val_if_fail (BAMF_IS_LEGACY_WINDOW (self), NULL); | 203 | g_return_val_if_fail (BAMF_IS_LEGACY_WINDOW (self), NULL); |
23 | 208 | 204 | ||
24 | 209 | if (self->priv->mini_icon_path) | 205 | if (self->priv->mini_icon_path) |
25 | 210 | { | 206 | { |
26 | 211 | if (g_file_test (self->priv->mini_icon_path, G_FILE_TEST_EXISTS)) | 207 | if (g_file_test (self->priv->mini_icon_path, G_FILE_TEST_EXISTS)) |
27 | @@ -213,23 +209,23 @@ | |||
28 | 213 | else | 209 | else |
29 | 214 | g_free (self->priv->mini_icon_path); | 210 | g_free (self->priv->mini_icon_path); |
30 | 215 | } | 211 | } |
32 | 216 | 212 | ||
33 | 217 | window = self->priv->legacy_window; | 213 | window = self->priv->legacy_window; |
35 | 218 | 214 | ||
36 | 219 | if (!window) | 215 | if (!window) |
37 | 220 | return NULL; | 216 | return NULL; |
39 | 221 | 217 | ||
40 | 222 | if (wnck_window_get_icon_is_fallback (window)) | 218 | if (wnck_window_get_icon_is_fallback (window)) |
41 | 223 | return NULL; | 219 | return NULL; |
43 | 224 | 220 | ||
44 | 225 | tmp = tmpnam (NULL); | 221 | tmp = tmpnam (NULL); |
45 | 226 | if (!tmp) | 222 | if (!tmp) |
46 | 227 | return NULL; | 223 | return NULL; |
48 | 228 | 224 | ||
49 | 229 | pbuf = wnck_window_get_icon (window); | 225 | pbuf = wnck_window_get_icon (window); |
50 | 230 | if (!gdk_pixbuf_save (pbuf, tmp, "png", NULL, NULL)) | 226 | if (!gdk_pixbuf_save (pbuf, tmp, "png", NULL, NULL)) |
51 | 231 | return NULL; | 227 | return NULL; |
53 | 232 | 228 | ||
54 | 233 | self->priv->mini_icon_path = g_strdup (tmp); | 229 | self->priv->mini_icon_path = g_strdup (tmp); |
55 | 234 | return self->priv->mini_icon_path; | 230 | return self->priv->mini_icon_path; |
56 | 235 | } | 231 | } |
57 | @@ -301,12 +297,12 @@ | |||
58 | 301 | bamf_legacy_window_get_stacking_position (BamfLegacyWindow *self) | 297 | bamf_legacy_window_get_stacking_position (BamfLegacyWindow *self) |
59 | 302 | { | 298 | { |
60 | 303 | BamfLegacyScreen *screen; | 299 | BamfLegacyScreen *screen; |
62 | 304 | 300 | ||
63 | 305 | g_return_val_if_fail (BAMF_IS_LEGACY_WINDOW (self), -1); | 301 | g_return_val_if_fail (BAMF_IS_LEGACY_WINDOW (self), -1); |
64 | 306 | 302 | ||
65 | 307 | screen = bamf_legacy_screen_get_default (); | 303 | screen = bamf_legacy_screen_get_default (); |
66 | 308 | g_return_val_if_fail (BAMF_IS_LEGACY_SCREEN (screen), -1); | 304 | g_return_val_if_fail (BAMF_IS_LEGACY_SCREEN (screen), -1); |
68 | 309 | 305 | ||
69 | 310 | return g_list_index (bamf_legacy_screen_get_windows (screen), self); | 306 | return g_list_index (bamf_legacy_screen_get_windows (screen), self); |
70 | 311 | } | 307 | } |
71 | 312 | 308 | ||
72 | @@ -494,8 +490,6 @@ | |||
73 | 494 | 490 | ||
74 | 495 | self = BAMF_LEGACY_WINDOW (object); | 491 | self = BAMF_LEGACY_WINDOW (object); |
75 | 496 | 492 | ||
76 | 497 | g_signal_handler_disconnect (wnck_screen_get_default (), | ||
77 | 498 | self->priv->closed_id); | ||
78 | 499 | 493 | ||
79 | 500 | if (self->priv->mini_icon_path) | 494 | if (self->priv->mini_icon_path) |
80 | 501 | { | 495 | { |
81 | @@ -507,16 +501,11 @@ | |||
82 | 507 | self->priv->mini_icon_path = NULL; | 501 | self->priv->mini_icon_path = NULL; |
83 | 508 | } | 502 | } |
84 | 509 | 503 | ||
85 | 504 | g_signal_handlers_disconnect_by_data (wnck_screen_get_default (), self); | ||
86 | 505 | |||
87 | 510 | if (self->priv->legacy_window) | 506 | if (self->priv->legacy_window) |
88 | 511 | { | 507 | { |
97 | 512 | g_signal_handler_disconnect (self->priv->legacy_window, | 508 | g_signal_handlers_disconnect_by_data (self->priv->legacy_window, self); |
90 | 513 | self->priv->name_changed_id); | ||
91 | 514 | |||
92 | 515 | g_signal_handler_disconnect (self->priv->legacy_window, | ||
93 | 516 | self->priv->state_changed_id); | ||
94 | 517 | |||
95 | 518 | g_signal_handler_disconnect (self->priv->legacy_window, | ||
96 | 519 | self->priv->geometry_changed_id); | ||
98 | 520 | } | 509 | } |
99 | 521 | 510 | ||
100 | 522 | G_OBJECT_CLASS (bamf_legacy_window_parent_class)->dispose (object); | 511 | G_OBJECT_CLASS (bamf_legacy_window_parent_class)->dispose (object); |
101 | @@ -525,15 +514,10 @@ | |||
102 | 525 | static void | 514 | static void |
103 | 526 | bamf_legacy_window_init (BamfLegacyWindow * self) | 515 | bamf_legacy_window_init (BamfLegacyWindow * self) |
104 | 527 | { | 516 | { |
114 | 528 | WnckScreen *screen; | 517 | self->priv = BAMF_LEGACY_WINDOW_GET_PRIVATE (self); |
115 | 529 | 518 | ||
116 | 530 | BamfLegacyWindowPrivate *priv; | 519 | g_signal_connect (wnck_screen_get_default (), "window-closed", |
117 | 531 | priv = self->priv = BAMF_LEGACY_WINDOW_GET_PRIVATE (self); | 520 | (GCallback) handle_window_closed, self); |
109 | 532 | |||
110 | 533 | screen = wnck_screen_get_default (); | ||
111 | 534 | |||
112 | 535 | priv->closed_id = g_signal_connect (G_OBJECT (screen), "window-closed", | ||
113 | 536 | (GCallback) handle_window_closed, self); | ||
118 | 537 | } | 521 | } |
119 | 538 | 522 | ||
120 | 539 | static void | 523 | static void |
121 | @@ -590,14 +574,14 @@ | |||
122 | 590 | 574 | ||
123 | 591 | self->priv->legacy_window = legacy_window; | 575 | self->priv->legacy_window = legacy_window; |
124 | 592 | 576 | ||
133 | 593 | self->priv->name_changed_id = g_signal_connect (G_OBJECT (legacy_window), "name-changed", | 577 | g_signal_connect (G_OBJECT (legacy_window), "name-changed", |
134 | 594 | (GCallback) handle_name_changed, self); | 578 | (GCallback) handle_name_changed, self); |
135 | 595 | 579 | ||
136 | 596 | self->priv->state_changed_id = g_signal_connect (G_OBJECT (legacy_window), "state-changed", | 580 | g_signal_connect (G_OBJECT (legacy_window), "state-changed", |
137 | 597 | (GCallback) handle_state_changed, self); | 581 | (GCallback) handle_state_changed, self); |
138 | 598 | 582 | ||
139 | 599 | self->priv->geometry_changed_id = g_signal_connect (G_OBJECT (legacy_window), "geometry-changed", | 583 | g_signal_connect (G_OBJECT (legacy_window), "geometry-changed", |
140 | 600 | (GCallback) handle_geometry_changed, self); | 584 | (GCallback) handle_geometry_changed, self); |
141 | 601 | 585 | ||
142 | 602 | return self; | 586 | return self; |
143 | 603 | } | 587 | } |
144 | 604 | 588 | ||
145 | === modified file 'src/bamf-matcher.c' | |||
146 | --- src/bamf-matcher.c 2013-01-08 22:42:09 +0000 | |||
147 | +++ src/bamf-matcher.c 2013-01-10 00:24:22 +0000 | |||
148 | @@ -56,7 +56,8 @@ | |||
149 | 56 | { | 56 | { |
150 | 57 | "^gksu(do)?$", "^sudo$", "^su-to-root$", "^amdxdg-su$", "^java(ws)?$", | 57 | "^gksu(do)?$", "^sudo$", "^su-to-root$", "^amdxdg-su$", "^java(ws)?$", |
151 | 58 | "^mono$", "^ruby$", "^padsp$", "^aoss$", "^python(\\d.\\d)?$", "^(ba)?sh$", | 58 | "^mono$", "^ruby$", "^padsp$", "^aoss$", "^python(\\d.\\d)?$", "^(ba)?sh$", |
153 | 59 | "^perl$", "^env$", "^xdg-open$" | 59 | "^perl$", "^env$", "^xdg-open$", |
154 | 60 | /* javaws strings: */ "^net\\.sourceforge\\.jnlp\\.runtime\\.Boot$", "^rt.jar$" | ||
155 | 60 | }; | 61 | }; |
156 | 61 | 62 | ||
157 | 62 | // Prefixes that must be considered starting point of exec strings | 63 | // Prefixes that must be considered starting point of exec strings |
158 | @@ -995,7 +996,6 @@ | |||
159 | 995 | if (!enumerator) | 996 | if (!enumerator) |
160 | 996 | continue; | 997 | continue; |
161 | 997 | 998 | ||
162 | 998 | |||
163 | 999 | info = g_file_enumerator_next_file (enumerator, NULL, NULL); | 999 | info = g_file_enumerator_next_file (enumerator, NULL, NULL); |
164 | 1000 | 1000 | ||
165 | 1001 | while (info) | 1001 | while (info) |
166 | @@ -1075,7 +1075,7 @@ | |||
167 | 1075 | 1075 | ||
168 | 1076 | dirs = list_prepend_desktop_file_env_directories (dirs, "XDG_DATA_HOME"); | 1076 | dirs = list_prepend_desktop_file_env_directories (dirs, "XDG_DATA_HOME"); |
169 | 1077 | 1077 | ||
171 | 1078 | //If this doesn't exist, we need to track .local or the home itself! | 1078 | /* If XDG_DATA_HOME doesn't exist, we need to track .local or the home itself! */ |
172 | 1079 | path = g_build_filename (g_get_home_dir (), ".local/share/applications", NULL); | 1079 | path = g_build_filename (g_get_home_dir (), ".local/share/applications", NULL); |
173 | 1080 | 1080 | ||
174 | 1081 | if (!g_list_find_custom (dirs, path, (GCompareFunc) g_strcmp0)) | 1081 | if (!g_list_find_custom (dirs, path, (GCompareFunc) g_strcmp0)) |
175 | @@ -1860,6 +1860,36 @@ | |||
176 | 1860 | 1860 | ||
177 | 1861 | if (bamf_application_contains_similar_to_window (app, bamf_window)) | 1861 | if (bamf_application_contains_similar_to_window (app, bamf_window)) |
178 | 1862 | { | 1862 | { |
179 | 1863 | char *exec_string = bamf_legacy_window_get_exec_string (window); | ||
180 | 1864 | char *trimmed_exec = bamf_matcher_get_trimmed_exec (self, exec_string); | ||
181 | 1865 | g_free (exec_string); | ||
182 | 1866 | |||
183 | 1867 | GList *ll; | ||
184 | 1868 | gboolean found_exec = FALSE; | ||
185 | 1869 | for (ll = bamf_view_get_children (BAMF_VIEW (app)); ll && !found_exec; ll = ll->next) | ||
186 | 1870 | { | ||
187 | 1871 | if (!BAMF_IS_WINDOW (ll->data)) | ||
188 | 1872 | continue; | ||
189 | 1873 | |||
190 | 1874 | BamfLegacyWindow *w = bamf_window_get_window (BAMF_WINDOW (ll->data)); | ||
191 | 1875 | char *wexec = bamf_legacy_window_get_exec_string (w); | ||
192 | 1876 | char *wtrimmed = bamf_matcher_get_trimmed_exec (self, wexec); | ||
193 | 1877 | g_free (wexec); | ||
194 | 1878 | |||
195 | 1879 | if (g_strcmp0 (trimmed_exec, wtrimmed) == 0) | ||
196 | 1880 | { | ||
197 | 1881 | best = BAMF_APPLICATION (view); | ||
198 | 1882 | found_exec = TRUE; | ||
199 | 1883 | } | ||
200 | 1884 | |||
201 | 1885 | g_free (wtrimmed); | ||
202 | 1886 | } | ||
203 | 1887 | |||
204 | 1888 | g_free (trimmed_exec); | ||
205 | 1889 | |||
206 | 1890 | if (!found_exec) | ||
207 | 1891 | continue; | ||
208 | 1892 | |||
209 | 1863 | app_desktop_class = bamf_application_get_wmclass (app); | 1893 | app_desktop_class = bamf_application_get_wmclass (app); |
210 | 1864 | 1894 | ||
211 | 1865 | if (target_class && g_strcmp0 (target_class, app_desktop_class) == 0) | 1895 | if (target_class && g_strcmp0 (target_class, app_desktop_class) == 0) |
212 | @@ -2033,7 +2063,7 @@ | |||
213 | 2033 | 2063 | ||
214 | 2034 | if (role) | 2064 | if (role) |
215 | 2035 | { | 2065 | { |
217 | 2036 | gchar *exec = g_strdup_printf ("gnome-control-center %s", role); | 2066 | gchar *exec = g_strconcat ("gnome-control-center ", role, NULL); |
218 | 2037 | list = g_hash_table_lookup (self->priv->desktop_file_table, exec); | 2067 | list = g_hash_table_lookup (self->priv->desktop_file_table, exec); |
219 | 2038 | g_free (exec); | 2068 | g_free (exec); |
220 | 2039 | g_free (role); | 2069 | g_free (role); |
221 | 2040 | 2070 | ||
222 | === modified file 'tests/bamfdaemon/test-matcher.c' | |||
223 | --- tests/bamfdaemon/test-matcher.c 2013-01-08 18:55:38 +0000 | |||
224 | +++ tests/bamfdaemon/test-matcher.c 2013-01-10 00:24:22 +0000 | |||
225 | @@ -33,6 +33,7 @@ | |||
226 | 33 | static void test_match_desktop_application (void); | 33 | static void test_match_desktop_application (void); |
227 | 34 | static void test_match_libreoffice_windows (void); | 34 | static void test_match_libreoffice_windows (void); |
228 | 35 | static void test_match_gnome_control_center_panels (void); | 35 | static void test_match_gnome_control_center_panels (void); |
229 | 36 | static void test_match_javaws_windows (void); | ||
230 | 36 | static void test_new_desktop_matches_unmatched_windows (void); | 37 | static void test_new_desktop_matches_unmatched_windows (void); |
231 | 37 | static void test_match_transient_windows (void); | 38 | static void test_match_transient_windows (void); |
232 | 38 | static void test_trim_exec_string (void); | 39 | static void test_trim_exec_string (void); |
233 | @@ -55,6 +56,7 @@ | |||
234 | 55 | g_test_add_func (DOMAIN"/Matching/Application/Desktop", test_match_desktop_application); | 56 | g_test_add_func (DOMAIN"/Matching/Application/Desktop", test_match_desktop_application); |
235 | 56 | g_test_add_func (DOMAIN"/Matching/Application/LibreOffice", test_match_libreoffice_windows); | 57 | g_test_add_func (DOMAIN"/Matching/Application/LibreOffice", test_match_libreoffice_windows); |
236 | 57 | g_test_add_func (DOMAIN"/Matching/Application/GnomeControlCenter", test_match_gnome_control_center_panels); | 58 | g_test_add_func (DOMAIN"/Matching/Application/GnomeControlCenter", test_match_gnome_control_center_panels); |
237 | 59 | g_test_add_func (DOMAIN"/Matching/Application/JavaWebStart", test_match_javaws_windows); | ||
238 | 58 | g_test_add_func (DOMAIN"/Matching/Windows/UnmatchedOnNewDesktop", test_new_desktop_matches_unmatched_windows); | 60 | g_test_add_func (DOMAIN"/Matching/Windows/UnmatchedOnNewDesktop", test_new_desktop_matches_unmatched_windows); |
239 | 59 | g_test_add_func (DOMAIN"/Matching/Windows/Transient", test_match_transient_windows); | 61 | g_test_add_func (DOMAIN"/Matching/Windows/Transient", test_match_transient_windows); |
240 | 60 | g_test_add_func (DOMAIN"/ExecStringTrimming", test_trim_exec_string); | 62 | g_test_add_func (DOMAIN"/ExecStringTrimming", test_trim_exec_string); |
241 | @@ -559,6 +561,73 @@ | |||
242 | 559 | } | 561 | } |
243 | 560 | 562 | ||
244 | 561 | static void | 563 | static void |
245 | 564 | test_match_javaws_windows (void) | ||
246 | 565 | { | ||
247 | 566 | BamfMatcher *matcher; | ||
248 | 567 | BamfLegacyScreen *screen; | ||
249 | 568 | BamfLegacyWindowTest *test_win; | ||
250 | 569 | BamfApplication *app1, *app2, *app3; | ||
251 | 570 | GList *app_children; | ||
252 | 571 | |||
253 | 572 | screen = bamf_legacy_screen_get_default (); | ||
254 | 573 | matcher = bamf_matcher_get_default (); | ||
255 | 574 | const char *exec_prefix = "/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java " \ | ||
256 | 575 | "-Xbootclasspath/a:/usr/share/icedtea-web/netx.jar " \ | ||
257 | 576 | "-Xms8m -Djava.security.manager " \ | ||
258 | 577 | "-Djava.security.policy=/etc/icedtea-web/javaws.policy " \ | ||
259 | 578 | "-classpath /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/rt.jar " \ | ||
260 | 579 | "-Dicedtea-web.bin.name=javaws " \ | ||
261 | 580 | "-Dicedtea-web.bin.location=/usr/bin/javaws "\ | ||
262 | 581 | "net.sourceforge.jnlp.runtime.Boot"; | ||
263 | 582 | const char *class_name = "sun-awt-X11-XFramePeer"; | ||
264 | 583 | const char *class_instance = "net-sourceforge-jnlp-runtime-Boot"; | ||
265 | 584 | |||
266 | 585 | cleanup_matcher_tables (matcher); | ||
267 | 586 | export_matcher_on_bus (matcher); | ||
268 | 587 | |||
269 | 588 | guint xid = g_random_int (); | ||
270 | 589 | char *exec = g_strconcat (exec_prefix, " Notepad.jnlp", NULL); | ||
271 | 590 | test_win = bamf_legacy_window_test_new (xid, "Notepad", NULL, exec); | ||
272 | 591 | bamf_legacy_window_test_set_wmclass (test_win, class_name, class_instance); | ||
273 | 592 | _bamf_legacy_screen_open_test_window (screen, test_win); | ||
274 | 593 | g_free (exec); | ||
275 | 594 | app1 = bamf_matcher_get_application_by_xid (matcher, xid); | ||
276 | 595 | g_assert (BAMF_IS_APPLICATION (app1)); | ||
277 | 596 | app_children = bamf_view_get_children (BAMF_VIEW (app1)); | ||
278 | 597 | g_assert_cmpuint (g_list_length (app_children), ==, 1); | ||
279 | 598 | g_assert (find_window_in_app (app1, BAMF_LEGACY_WINDOW (test_win))); | ||
280 | 599 | |||
281 | 600 | xid = g_random_int (); | ||
282 | 601 | exec = g_strconcat (exec_prefix, " Draw.jnlp", NULL); | ||
283 | 602 | test_win = bamf_legacy_window_test_new (xid, "Draw", NULL, exec); | ||
284 | 603 | bamf_legacy_window_test_set_wmclass (test_win, class_name, class_instance); | ||
285 | 604 | _bamf_legacy_screen_open_test_window (screen, test_win); | ||
286 | 605 | g_free (exec); | ||
287 | 606 | app2 = bamf_matcher_get_application_by_xid (matcher, xid); | ||
288 | 607 | g_assert (BAMF_IS_APPLICATION (app2)); | ||
289 | 608 | g_assert (app1 != app2); | ||
290 | 609 | app_children = bamf_view_get_children (BAMF_VIEW (app2)); | ||
291 | 610 | g_assert_cmpuint (g_list_length (app_children), ==, 1); | ||
292 | 611 | g_assert (find_window_in_app (app2, BAMF_LEGACY_WINDOW (test_win))); | ||
293 | 612 | |||
294 | 613 | xid = g_random_int (); | ||
295 | 614 | exec = g_strconcat (exec_prefix, " Notepad.jnlp", NULL); | ||
296 | 615 | test_win = bamf_legacy_window_test_new (xid, "Notepad Subwin", NULL, exec); | ||
297 | 616 | bamf_legacy_window_test_set_wmclass (test_win, class_name, class_instance); | ||
298 | 617 | _bamf_legacy_screen_open_test_window (screen, test_win); | ||
299 | 618 | g_free (exec); | ||
300 | 619 | app3 = bamf_matcher_get_application_by_xid (matcher, xid); | ||
301 | 620 | g_assert (app3 == app1); | ||
302 | 621 | g_assert (BAMF_IS_APPLICATION (app3)); | ||
303 | 622 | app_children = bamf_view_get_children (BAMF_VIEW (app3)); | ||
304 | 623 | g_assert_cmpuint (g_list_length (app_children), ==, 2); | ||
305 | 624 | g_assert (find_window_in_app (app3, BAMF_LEGACY_WINDOW (test_win))); | ||
306 | 625 | |||
307 | 626 | g_object_unref (matcher); | ||
308 | 627 | g_object_unref (screen); | ||
309 | 628 | } | ||
310 | 629 | |||
311 | 630 | static void | ||
312 | 562 | test_match_transient_windows (void) | 631 | test_match_transient_windows (void) |
313 | 563 | { | 632 | { |
314 | 564 | BamfMatcher *matcher; | 633 | BamfMatcher *matcher; |
315 | @@ -660,5 +729,17 @@ | |||
316 | 660 | g_assert_cmpstr (trimmed, ==, "myprog"); | 729 | g_assert_cmpstr (trimmed, ==, "myprog"); |
317 | 661 | g_free (trimmed); | 730 | g_free (trimmed); |
318 | 662 | 731 | ||
319 | 732 | const char *exec = "/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java " \ | ||
320 | 733 | "-Xbootclasspath/a:/usr/share/icedtea-web/netx.jar " \ | ||
321 | 734 | "-Xms8m -Djava.security.manager " \ | ||
322 | 735 | "-Djava.security.policy=/etc/icedtea-web/javaws.policy " \ | ||
323 | 736 | "-classpath /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/rt.jar " \ | ||
324 | 737 | "-Dicedtea-web.bin.name=javaws " \ | ||
325 | 738 | "-Dicedtea-web.bin.location=/usr/bin/javaws "\ | ||
326 | 739 | "net.sourceforge.jnlp.runtime.Boot Notepad.jnlp"; | ||
327 | 740 | trimmed = bamf_matcher_get_trimmed_exec (matcher, exec); | ||
328 | 741 | g_assert_cmpstr (trimmed, ==, "notepad.jnlp"); | ||
329 | 742 | g_free (trimmed); | ||
330 | 743 | |||
331 | 663 | g_object_unref (matcher); | 744 | g_object_unref (matcher); |
332 | 664 | } | 745 | } |
LGTM.