summaryrefslogtreecommitdiff
path: root/src/tests/efreet
diff options
context:
space:
mode:
authorGustavo Sverzut Barbieri <barbieri@gmail.com>2012-12-29 23:04:40 +0000
committerGustavo Sverzut Barbieri <barbieri@gmail.com>2012-12-29 23:04:40 +0000
commit4bc0210bd31ed1de6554441562bd93ea863ee9d9 (patch)
tree5d83be12538f8c8d3816bbf65916ce383d050c2e /src/tests/efreet
parent727ddbeaf0c53f31cd62c254fdebe26823d537eb (diff)
efl: merge efreet.
seems to be fine, pass distcheck and friends. please report. changes: - documentation hierarchy fixes - replaced __UNUSED__ with EINA_UNUSED - replaced PKG_DATA_DIR with PACKAGE_DATA_DIR"/efreet" SVN revision: 81889
Diffstat (limited to 'src/tests/efreet')
-rw-r--r--src/tests/efreet/compare/comp.h527
-rw-r--r--src/tests/efreet/compare/efreet_alloc.c30
-rw-r--r--src/tests/efreet/compare/efreet_menu_alloc.c23
-rw-r--r--src/tests/efreet/data/entrybin0 -> 647 bytes
-rw-r--r--src/tests/efreet/data/entry.pngbin0 -> 648 bytes
-rw-r--r--src/tests/efreet/data/long.ini3
-rw-r--r--src/tests/efreet/data/preferences.menu41
-rw-r--r--src/tests/efreet/data/sub/Makefile.am8
-rw-r--r--src/tests/efreet/data/sub/test.desktop5
-rw-r--r--src/tests/efreet/data/test.desktop10
-rw-r--r--src/tests/efreet/data/test.ini21
-rw-r--r--src/tests/efreet/data/test.menu52
-rw-r--r--src/tests/efreet/data/test_garbage2341
-rw-r--r--src/tests/efreet/data/test_menu_bad_comment.menu14
-rw-r--r--src/tests/efreet/data/test_menu_slash_bad.menu11
-rw-r--r--src/tests/efreet/data/test_type.desktop10
-rw-r--r--src/tests/efreet/ef_cache.c199
-rw-r--r--src/tests/efreet/ef_data_dirs.c330
-rw-r--r--src/tests/efreet/ef_desktop.c401
-rw-r--r--src/tests/efreet/ef_icon_theme.c605
-rw-r--r--src/tests/efreet/ef_ini.c174
-rw-r--r--src/tests/efreet/ef_locale.c85
-rw-r--r--src/tests/efreet/ef_menu.c150
-rw-r--r--src/tests/efreet/ef_mime.c57
-rw-r--r--src/tests/efreet/ef_test.h11
-rw-r--r--src/tests/efreet/ef_utils.c28
-rw-r--r--src/tests/efreet/efreet_icon_cache_dump.c120
-rw-r--r--src/tests/efreet/efreet_spec_test.c57
-rw-r--r--src/tests/efreet/efreet_suite.c103
-rw-r--r--src/tests/efreet/efreet_suite.h10
-rw-r--r--src/tests/efreet/efreet_test_efreet.c25
-rw-r--r--src/tests/efreet/efreet_test_efreet_cache.c25
-rw-r--r--src/tests/efreet/efreet_user_dir.c276
-rw-r--r--src/tests/efreet/main.c188
34 files changed, 5940 insertions, 0 deletions
diff --git a/src/tests/efreet/compare/comp.h b/src/tests/efreet/compare/comp.h
new file mode 100644
index 0000000..c02eebe
--- /dev/null
+++ b/src/tests/efreet/compare/comp.h
@@ -0,0 +1,527 @@
1#ifndef COMP_H
2#define COMP_H
3
4#define LOOPS 1000
5#define THEME "Tango"
6#define SIZE 16
7
8#define ADDRESS_BOOK_NEW "address-book-new"
9#define APPLICATION_EXIT "application-exit"
10#define APPOINTMENT_NEW "appointment-new"
11#define CONTACT_NEW "contact-new"
12#define DIALOG_APPLY "dialog-apply"
13#define DIALOG_CANCEL "dialog-cancel"
14#define DIALOG_CLOSE "dialog-close"
15#define DIALOG_OK "dialog-ok"
16#define DOCUMENT_NEW "document-new"
17#define DOCUMENT_OPEN "document-open"
18#define DOCUMENT_OPEN_RECENT "document-open-recent"
19#define DOCUMENT_PAGE_SETUP "document-page-setup"
20#define DOCUMENT_PRINT "document-print"
21#define DOCUMENT_PRINT_PREVIEW "document-print-preview"
22#define DOCUMENT_PROPERTIES "document-properties"
23#define DOCUMENT_REVERT "document-revert"
24#define DOCUMENT_SAVE "document-save"
25#define DOCUMENT_SAVE_AS "document-save-as"
26#define EDIT_COPY "edit-copy"
27#define EDIT_CUT "edit-cut"
28#define EDIT_DELETE "edit-delete"
29#define EDIT_FIND "edit-find"
30#define EDIT_FIND_REPLACE "edit-find-replace"
31#define EDIT_PASTE "edit-paste"
32#define EDIT_REDO "edit-redo"
33#define EDIT_SELECT_ALL "edit-select-all"
34#define EDIT_UNDO "edit-undo"
35#define FORMAT_INDENT_LESS "format-indent-less"
36#define FORMAT_INDENT_MORE "format-indent-more"
37#define FORMAT_JUSTIFY_CENTER "format-justify-center"
38#define FORMAT_JUSTIFY_FILL "format-justify-fill"
39#define FORMAT_JUSTIFY_LEFT "format-justify-left"
40#define FORMAT_JUSTIFY_RIGHT "format-justify-right"
41#define FORMAT_TEXT_DIRECTION_LTR "format-text-direction-ltr"
42#define FORMAT_TEXT_DIRECTION_RTL "format-text-direction-rtl"
43#define FORMAT_TEXT_BOLD "format-text-bold"
44#define FORMAT_TEXT_ITALIC "format-text-italic"
45#define FORMAT_TEXT_UNDERLINE "format-text-underline"
46#define FORMAT_TEXT_STRIKETHROUGH "format-text-strikethrough"
47#define GO_BOTTOM "go-bottom"
48#define GO_DOWN "go-down"
49#define GO_FIRST "go-first"
50#define GO_HOME "go-home"
51#define GO_JUMP "go-jump"
52#define GO_LAST "go-last"
53#define GO_NEXT "go-next"
54#define GO_PREVIOUS "go-previous"
55#define GO_TOP "go-top"
56#define GO_UP "go-up"
57#define HELP_ABOUT "help-about"
58#define HELP_CONTENTS "help-contents"
59#define HELP_FAQ "help-faq"
60#define INSERT_IMAGE "insert-image"
61#define INSERT_LINK "insert-link"
62#define INSERT_OBJECT "insert-object"
63#define INSERT_TEXT "insert-text"
64#define LIST_ADD "list-add"
65#define LIST_REMOVE "list-remove"
66#define MAIL_FORWARD "mail-forward"
67#define MAIL_MARK_IMPORTANT "mail-mark-important"
68#define MAIL_MARK_JUNK "mail-mark-junk"
69#define MAIL_MARK_NOTJUNK "mail-mark-notjunk"
70#define MAIL_MARK_READ "mail-mark-read"
71#define MAIL_MARK_UNREAD "mail-mark-unread"
72#define MAIL_MESSAGE_NEW "mail-message-new"
73#define MAIL_REPLY_ALL "mail-reply-all"
74#define MAIL_REPLY_SENDER "mail-reply-sender"
75#define MAIL_SEND_RECEIVE "mail-send-receive"
76#define MEDIA_EJECT "media-eject"
77#define MEDIA_PLAYBACK_PAUSE "media-playback-pause"
78#define MEDIA_PLAYBACK_START "media-playback-start"
79#define MEDIA_PLAYBACK_STOP "media-playback-stop"
80#define MEDIA_RECORD "media-record"
81#define MEDIA_SEEK_BACKWARD "media-seek-backward"
82#define MEDIA_SEEK_FORWARD "media-seek-forward"
83#define MEDIA_SKIP_BACKWARD "media-skip-backward"
84#define MEDIA_SKIP_FORWARD "media-skip-forward"
85#define SYSTEM_LOCK_SCREEN "system-lock-screen"
86#define SYSTEM_LOG_OUT "system-log-out"
87#define SYSTEM_RUN "system-run"
88#define SYSTEM_SEARCH "system-search"
89#define TOOLS_CHECK_SPELLING "tools-check-spelling"
90#define VIEW_FULLSCREEN "view-fullscreen"
91#define VIEW_REFRESH "view-refresh"
92#define VIEW_SORT_ASCENDING "view-sort-ascending"
93#define VIEW_SORT_DESCENDING "view-sort-descending"
94#define WINDOW_CLOSE "window-close"
95#define WINDOW_NEW "window-new"
96#define ZOOM_BEST_FIT "zoom-best-fit"
97#define ZOOM_IN "zoom-in"
98#define ZOOM_ORIGINAL "zoom-original"
99#define ZOOM_OUT "zoom-out"
100
101#define PROCESS_WORKING "process-working"
102
103#define ACCESSORIES_CALCULATOR "accessories-calculator"
104#define ACCESSORIES_CHARACTER_MAP "accessories-character-map"
105#define ACCESSORIES_DICTIONARY "accessories-dictionary"
106#define ACCESSORIES_TEXT_EDITOR "accessories-text-editor"
107#define HELP_BROWSER "help-browser"
108#define MULTIMEDIA_VOLUME_CONTROL "multimedia-volume-control"
109#define PREFERENCES_DESKTOP_ACCESSIBILITY "preferences-desktop-accessibility"
110#define PREFERENCES_DESKTOP_FONT "preferences-desktop-font"
111#define PREFERENCES_DESKTOP_KEYBOARD "preferences-desktop-keyboard"
112#define PREFERENCES_DESKTOP_LOCALE "preferences-desktop-locale"
113#define PREFERENCES_DESKTOP_MULTIMEDIA "preferences-desktop-multimedia"
114#define PREFERENCES_DESKTOP_SCREENSAVER "preferences-desktop-screensaver"
115#define PREFERENCES_DESKTOP_THEME "preferences-desktop-theme"
116#define PREFERENCES_DESKTOP_WALLPAPER "preferences-desktop-wallpaper"
117#define SYSTEM_FILE_MANAGER "system-file-manager"
118#define SYSTEM_SOFTWARE_UPDATE "system-software-update"
119#define UTILITIES_TERMINAL "utilities-terminal"
120
121#define APPLICATIONS_ACCESSORIES "applications-accessories"
122#define APPLICATIONS_DEVELOPMENT "applications-development"
123#define APPLICATIONS_GAMES "applications-games"
124#define APPLICATIONS_GRAPHICS "applications-graphics"
125#define APPLICATIONS_INTERNET "applications-internet"
126#define APPLICATIONS_MULTIMEDIA "applications-multimedia"
127#define APPLICATIONS_OFFICE "applications-office"
128#define APPLICATIONS_OTHER "applications-other"
129#define APPLICATIONS_SYSTEM "applications-system"
130#define APPLICATIONS_UTILITIES "applications-utilities"
131#define PREFERENCES_DESKTOP "preferences-desktop"
132#define PREFERENCES_DESKTOP_ACCESSIBILITY "preferences-desktop-accessibility"
133#define PREFERENCES_DESKTOP_PERIPHERALS "preferences-desktop-peripherals"
134#define PREFERENCES_DESKTOP_PERSONAL "preferences-desktop-personal"
135#define PREFERENCES_OTHER "preferences-other"
136#define PREFERENCES_SYSTEM "preferences-system"
137#define PREFERENCES_SYSTEM_NETWORK "preferences-system-network"
138#define SYSTEM_HELP "system-help"
139
140#define AUDIO_CARD "audio-card"
141#define AUDIO_INPUT_MICROPHONE "audio-input-microphone"
142#define BATTERY "battery"
143#define CAMERA_PHOTO "camera-photo"
144#define CAMERA_VIDEO "camera-video"
145#define COMPUTER "computer"
146#define DRIVE_CDROM "drive-cdrom"
147#define DRIVE_HARDDISK "drive-harddisk"
148#define DRIVE_REMOVABLE_MEDIA "drive-removable-media"
149#define INPUT_GAMING "input-gaming"
150#define INPUT_KEYBOARD "input-keyboard"
151#define INPUT_MOUSE "input-mouse"
152#define MEDIA_CDROM "media-cdrom"
153#define MEDIA_FLOPPY "media-floppy"
154#define MULTIMEDIA_PLAYER "multimedia-player"
155#define NETWORK_WIRED "network-wired"
156#define NETWORK_WIRELESS "network-wireless"
157#define PRINTER "printer"
158
159#define EMBLEM_DEFAULT "emblem-default"
160#define EMBLEM_DOCUMENTS "emblem-documents"
161#define EMBLEM_DOWNLOADS "emblem-downloads"
162#define EMBLEM_FAVORITE "emblem-favorite"
163#define EMBLEM_IMPORTANT "emblem-important"
164#define EMBLEM_MAIL "emblem-mail"
165#define EMBLEM_PHOTOS "emblem-photos"
166#define EMBLEM_READONLY "emblem-readonly"
167#define EMBLEM_SHARED "emblem-shared"
168#define EMBLEM_SYMBOLIC_LINK "emblem-symbolic-link"
169#define EMBLEM_SYNCHRONIZED "emblem-synchronized"
170#define EMBLEM_SYSTEM "emblem-system"
171#define EMBLEM_UNREADABLE "emblem-unreadable"
172
173#define FACE_ANGEL "face-angel"
174#define FACE_CRYING "face-crying"
175#define FACE_DEVIL_GRIN "face-devil-grin"
176#define FACE_DEVIL_SAD "face-devil-sad"
177#define FACE_GLASSES "face-glasses"
178#define FACE_KISS "face-kiss"
179#define FACE_MONKEY "face-monkey"
180#define FACE_PLAIN "face-plain"
181#define FACE_SAD "face-sad"
182#define FACE_SMILE "face-smile"
183#define FACE_SMILE_BIG "face-smile-big"
184#define FACE_SMIRK "face-smirk"
185#define FACE_SURPRISE "face-surprise"
186#define FACE_WINK "face-wink"
187
188#define APPLICATION_X_EXECUTABLE "application-x-executable"
189#define AUDIO_X_GENERIC "audio-x-generic"
190#define FONT_X_GENERIC "font-x-generic"
191#define IMAGE_X_GENERIC "image-x-generic"
192#define PACKAGE_X_GENERIC "package-x-generic"
193#define TEXT_HTML "text-html"
194#define TEXT_X_GENERIC "text-x-generic"
195#define TEXT_X_GENERIC_TEMPLATE "text-x-generic-template"
196#define TEXT_X_SCRIPT "text-x-script"
197#define VIDEO_X_GENERIC "video-x-generic"
198#define X_OFFICE_ADDRESS_BOOK "x-office-address-book"
199#define X_OFFICE_CALENDAR "x-office-calendar"
200#define X_OFFICE_DOCUMENT "x-office-document"
201#define X_OFFICE_PRESENTATION "x-office-presentation"
202#define X_OFFICE_SPREADSHEET "x-office-spreadsheet"
203
204#define FOLDER "folder"
205#define FOLDER_REMOTE "folder-remote"
206#define NETWORK_SERVER "network-server"
207#define NETWORK_WORKGROUP "network-workgroup"
208#define START_HERE "start-here"
209#define USER_DESKTOP "user-desktop"
210#define USER_HOME "user-home"
211#define USER_TRASH "user-trash"
212
213#define APPOINTMENT_MISSED "appointment-missed"
214#define APPOINTMENT_SOON "appointment-soon"
215#define AUDIO_VOLUME_HIGH "audio-volume-high"
216#define AUDIO_VOLUME_LOW "audio-volume-low"
217#define AUDIO_VOLUME_MEDIUM "audio-volume-medium"
218#define AUDIO_VOLUME_MUTED "audio-volume-muted"
219#define BATTERY_CAUTION "battery-caution"
220#define BATTERY_LOW "battery-low"
221#define DIALOG_ERROR "dialog-error"
222#define DIALOG_INFORMATION "dialog-information"
223#define DIALOG_PASSWORD "dialog-password"
224#define DIALOG_QUESTION "dialog-question"
225#define DIALOG_WARNING "dialog-warning"
226#define FOLDER_DRAG_ACCEPT "folder-drag-accept"
227#define FOLDER_OPEN "folder-open"
228#define FOLDER_VISITING "folder-visiting"
229#define IMAGE_LOADING "image-loading"
230#define IMAGE_MISSING "image-missing"
231#define MAIL_ATTACHMENT "mail-attachment"
232#define MAIL_UNREAD "mail-unread"
233#define MAIL_READ "mail-read"
234#define MAIL_REPLIED "mail-replied"
235#define MAIL_SIGNED "mail-signed"
236#define MAIL_SIGNED_VERIFIED "mail-signed-verified"
237#define MEDIA_PLAYLIST_REPEAT "media-playlist-repeat"
238#define MEDIA_PLAYLIST_SHUFFLE "media-playlist-shuffle"
239#define NETWORK_ERROR "network-error"
240#define NETWORK_IDLE "network-idle"
241
242#define NETWORK_OFFLINE "network-offline"
243#define NETWORK_RECEIVE "network-receive"
244#define NETWORK_TRANSMIT "network-transmit"
245#define NETWORK_TRANSMIT_RECEIVE "network-transmit-receive"
246#define PRINTER_ERROR "printer-error"
247#define PRINTER_PRINTING "printer-printing"
248#define SOFTWARE_UPDATE_AVAILABLE "software-update-available"
249#define SOFTWARE_UPDATE_URGENT "software-update-urgent"
250#define SYNC_ERROR "sync-error"
251#define SYNC_SYNCHRONIZING "sync-synchronizing"
252#define TASK_DUE "task-due"
253#define TASK_PASSED_DUE "task-passed-due"
254#define USER_AWAY "user-away"
255#define USER_IDLE "user-idle"
256#define USER_OFFLINE "user-offline"
257#define USER_ONLINE "user-online"
258#define USER_TRASH_FULL "user-trash-full"
259#define WEATHER_CLEAR "weather-clear"
260#define WEATHER_CLEAR_NIGHT "weather-clear-night"
261#define WEATHER_FEW_CLOUDS "weather-few-clouds"
262#define WEATHER_FEW_CLOUDS_NIGHT "weather-few-clouds-night"
263#define WEATHER_FOG "weather-fog"
264#define WEATHER_OVERCAST "weather-overcast"
265#define WEATHER_SEVERE_ALERT "weather-severe-alert"
266#define WEATHER_SHOWERS "weather-showers"
267#define WEATHER_SHOWERS_SCATTERED "weather-showers-scattered"
268#define WEATHER_SNOW "weather-snow"
269#define WEATHER_STORM "weather-storm"
270
271const char *icons[] = {
272 ADDRESS_BOOK_NEW,
273 APPLICATION_EXIT,
274 APPOINTMENT_NEW,
275 CONTACT_NEW,
276 DIALOG_APPLY,
277 DIALOG_CANCEL,
278 DIALOG_CLOSE,
279 DIALOG_OK,
280 DOCUMENT_NEW,
281 DOCUMENT_OPEN,
282 DOCUMENT_OPEN_RECENT,
283 DOCUMENT_PAGE_SETUP,
284 DOCUMENT_PRINT,
285 DOCUMENT_PRINT_PREVIEW,
286 DOCUMENT_PROPERTIES,
287 DOCUMENT_REVERT,
288 DOCUMENT_SAVE,
289 DOCUMENT_SAVE_AS,
290 EDIT_COPY,
291 EDIT_CUT,
292 EDIT_DELETE,
293 EDIT_FIND,
294 EDIT_FIND_REPLACE,
295 EDIT_PASTE,
296 EDIT_REDO,
297 EDIT_SELECT_ALL,
298 EDIT_UNDO,
299 FORMAT_INDENT_LESS,
300 FORMAT_INDENT_MORE,
301 FORMAT_JUSTIFY_CENTER,
302 FORMAT_JUSTIFY_FILL,
303 FORMAT_JUSTIFY_LEFT,
304 FORMAT_JUSTIFY_RIGHT,
305 FORMAT_TEXT_DIRECTION_LTR,
306 FORMAT_TEXT_DIRECTION_RTL,
307 FORMAT_TEXT_BOLD,
308 FORMAT_TEXT_ITALIC,
309 FORMAT_TEXT_UNDERLINE,
310 FORMAT_TEXT_STRIKETHROUGH,
311 GO_BOTTOM,
312 GO_DOWN,
313 GO_FIRST,
314 GO_HOME,
315 GO_JUMP,
316 GO_LAST,
317 GO_NEXT,
318 GO_PREVIOUS,
319 GO_TOP,
320 GO_UP,
321 HELP_ABOUT,
322 HELP_CONTENTS,
323 HELP_FAQ,
324 INSERT_IMAGE,
325 INSERT_LINK,
326 INSERT_OBJECT,
327 INSERT_TEXT,
328 LIST_ADD,
329 LIST_REMOVE,
330 MAIL_FORWARD,
331 MAIL_MARK_IMPORTANT,
332 MAIL_MARK_JUNK,
333 MAIL_MARK_NOTJUNK,
334 MAIL_MARK_READ,
335 MAIL_MARK_UNREAD,
336 MAIL_MESSAGE_NEW,
337 MAIL_REPLY_ALL,
338 MAIL_REPLY_SENDER,
339 MAIL_SEND_RECEIVE,
340 MEDIA_EJECT,
341 MEDIA_PLAYBACK_PAUSE,
342 MEDIA_PLAYBACK_START,
343 MEDIA_PLAYBACK_STOP,
344 MEDIA_RECORD,
345 MEDIA_SEEK_BACKWARD,
346 MEDIA_SEEK_FORWARD,
347 MEDIA_SKIP_BACKWARD,
348 MEDIA_SKIP_FORWARD,
349 SYSTEM_LOCK_SCREEN,
350 SYSTEM_LOG_OUT,
351 SYSTEM_RUN,
352 SYSTEM_SEARCH,
353 TOOLS_CHECK_SPELLING,
354 VIEW_FULLSCREEN,
355 VIEW_REFRESH,
356 VIEW_SORT_ASCENDING,
357 VIEW_SORT_DESCENDING,
358 WINDOW_CLOSE,
359 WINDOW_NEW,
360 ZOOM_BEST_FIT,
361 ZOOM_IN,
362 ZOOM_ORIGINAL,
363 ZOOM_OUT,
364 PROCESS_WORKING,
365 ACCESSORIES_CALCULATOR,
366 ACCESSORIES_CHARACTER_MAP,
367 ACCESSORIES_DICTIONARY,
368 ACCESSORIES_TEXT_EDITOR,
369 HELP_BROWSER,
370 MULTIMEDIA_VOLUME_CONTROL,
371 PREFERENCES_DESKTOP_ACCESSIBILITY,
372 PREFERENCES_DESKTOP_FONT,
373 PREFERENCES_DESKTOP_KEYBOARD,
374 PREFERENCES_DESKTOP_LOCALE,
375 PREFERENCES_DESKTOP_MULTIMEDIA,
376 PREFERENCES_DESKTOP_SCREENSAVER,
377 PREFERENCES_DESKTOP_THEME,
378 PREFERENCES_DESKTOP_WALLPAPER,
379 SYSTEM_FILE_MANAGER,
380 SYSTEM_SOFTWARE_UPDATE,
381 UTILITIES_TERMINAL,
382 APPLICATIONS_ACCESSORIES,
383 APPLICATIONS_DEVELOPMENT,
384 APPLICATIONS_GAMES,
385 APPLICATIONS_GRAPHICS,
386 APPLICATIONS_INTERNET,
387 APPLICATIONS_MULTIMEDIA,
388 APPLICATIONS_OFFICE,
389 APPLICATIONS_OTHER,
390 APPLICATIONS_SYSTEM,
391 APPLICATIONS_UTILITIES,
392 PREFERENCES_DESKTOP,
393 PREFERENCES_DESKTOP_ACCESSIBILITY,
394 PREFERENCES_DESKTOP_PERIPHERALS,
395 PREFERENCES_DESKTOP_PERSONAL,
396 PREFERENCES_OTHER,
397 PREFERENCES_SYSTEM,
398 PREFERENCES_SYSTEM_NETWORK,
399 SYSTEM_HELP,
400 AUDIO_CARD,
401 AUDIO_INPUT_MICROPHONE,
402 BATTERY,
403 CAMERA_PHOTO,
404 CAMERA_VIDEO,
405 COMPUTER,
406 DRIVE_CDROM,
407 DRIVE_HARDDISK,
408 DRIVE_REMOVABLE_MEDIA,
409 INPUT_GAMING,
410 INPUT_KEYBOARD,
411 INPUT_MOUSE,
412 MEDIA_CDROM,
413 MEDIA_FLOPPY,
414 MULTIMEDIA_PLAYER,
415 NETWORK_WIRED,
416 NETWORK_WIRELESS,
417 PRINTER,
418 EMBLEM_DEFAULT,
419 EMBLEM_DOCUMENTS,
420 EMBLEM_DOWNLOADS,
421 EMBLEM_FAVORITE,
422 EMBLEM_IMPORTANT,
423 EMBLEM_MAIL,
424 EMBLEM_PHOTOS,
425 EMBLEM_READONLY,
426 EMBLEM_SHARED,
427 EMBLEM_SYMBOLIC_LINK,
428 EMBLEM_SYNCHRONIZED,
429 EMBLEM_SYSTEM,
430 EMBLEM_UNREADABLE,
431 FACE_ANGEL,
432 FACE_CRYING,
433 FACE_DEVIL_GRIN,
434 FACE_DEVIL_SAD,
435 FACE_GLASSES,
436 FACE_KISS,
437 FACE_MONKEY,
438 FACE_PLAIN,
439 FACE_SAD,
440 FACE_SMILE,
441 FACE_SMILE_BIG,
442 FACE_SMIRK,
443 FACE_SURPRISE,
444 FACE_WINK,
445 APPLICATION_X_EXECUTABLE,
446 AUDIO_X_GENERIC,
447 FONT_X_GENERIC,
448 IMAGE_X_GENERIC,
449 PACKAGE_X_GENERIC,
450 TEXT_HTML,
451 TEXT_X_GENERIC,
452 TEXT_X_GENERIC_TEMPLATE,
453 TEXT_X_SCRIPT,
454 VIDEO_X_GENERIC,
455 X_OFFICE_ADDRESS_BOOK,
456 X_OFFICE_CALENDAR,
457 X_OFFICE_DOCUMENT,
458 X_OFFICE_PRESENTATION,
459 X_OFFICE_SPREADSHEET,
460 FOLDER,
461 FOLDER_REMOTE,
462 NETWORK_SERVER,
463 NETWORK_WORKGROUP,
464 START_HERE,
465 USER_DESKTOP,
466 USER_HOME,
467 USER_TRASH,
468 APPOINTMENT_MISSED,
469 APPOINTMENT_SOON,
470 AUDIO_VOLUME_HIGH,
471 AUDIO_VOLUME_LOW,
472 AUDIO_VOLUME_MEDIUM,
473 AUDIO_VOLUME_MUTED,
474 BATTERY_CAUTION,
475 BATTERY_LOW,
476 DIALOG_ERROR,
477 DIALOG_INFORMATION,
478 DIALOG_PASSWORD,
479 DIALOG_QUESTION,
480 DIALOG_WARNING,
481 FOLDER_DRAG_ACCEPT,
482 FOLDER_OPEN,
483 FOLDER_VISITING,
484 IMAGE_LOADING,
485 IMAGE_MISSING,
486 MAIL_ATTACHMENT,
487 MAIL_UNREAD,
488 MAIL_READ,
489 MAIL_REPLIED,
490 MAIL_SIGNED,
491 MAIL_SIGNED_VERIFIED,
492 MEDIA_PLAYLIST_REPEAT,
493 MEDIA_PLAYLIST_SHUFFLE,
494 NETWORK_ERROR,
495 NETWORK_IDLE,
496 NETWORK_OFFLINE,
497 NETWORK_RECEIVE,
498 NETWORK_TRANSMIT,
499 NETWORK_TRANSMIT_RECEIVE,
500 PRINTER_ERROR,
501 PRINTER_PRINTING,
502 SOFTWARE_UPDATE_AVAILABLE,
503 SOFTWARE_UPDATE_URGENT,
504 SYNC_ERROR,
505 SYNC_SYNCHRONIZING,
506 TASK_DUE,
507 TASK_PASSED_DUE,
508 USER_AWAY,
509 USER_IDLE,
510 USER_OFFLINE,
511 USER_ONLINE,
512 USER_TRASH_FULL,
513 WEATHER_CLEAR,
514 WEATHER_CLEAR_NIGHT,
515 WEATHER_FEW_CLOUDS,
516 WEATHER_FEW_CLOUDS_NIGHT,
517 WEATHER_FOG,
518 WEATHER_OVERCAST,
519 WEATHER_SEVERE_ALERT,
520 WEATHER_SHOWERS,
521 WEATHER_SHOWERS_SCATTERED,
522 WEATHER_SNOW,
523 WEATHER_STORM,
524 NULL
525 };
526
527#endif
diff --git a/src/tests/efreet/compare/efreet_alloc.c b/src/tests/efreet/compare/efreet_alloc.c
new file mode 100644
index 0000000..1527f77
--- /dev/null
+++ b/src/tests/efreet/compare/efreet_alloc.c
@@ -0,0 +1,30 @@
1#include <Efreet.h>
2#include <stdio.h>
3#include <stdlib.h>
4#include "comp.h"
5
6int
7main(void)
8{
9 int i = 0, k, errs = 0;
10 const char *path;
11
12 efreet_init();
13
14 for (k = 0; k < LOOPS; k++)
15 {
16 for (i = 0; icons[i]; i++)
17 {
18 path = efreet_icon_path_find(THEME, icons[i], SIZE);
19 if (!path)
20 {
21 printf("%s: NOT FOUND\n", icons[i]);
22 errs++;
23 }
24 }
25 }
26
27 efreet_shutdown();
28
29 return errs > 0;
30}
diff --git a/src/tests/efreet/compare/efreet_menu_alloc.c b/src/tests/efreet/compare/efreet_menu_alloc.c
new file mode 100644
index 0000000..fcfb75b
--- /dev/null
+++ b/src/tests/efreet/compare/efreet_menu_alloc.c
@@ -0,0 +1,23 @@
1#include <Efreet.h>
2#include <stdio.h>
3#include "comp.h"
4
5int
6main(void)
7{
8 int k;
9
10 efreet_init();
11
12 for (k = 0; k < LOOPS; k++)
13 {
14 Efreet_Menu *menu;
15 menu = efreet_menu_get();
16 efreet_menu_free(menu);
17 }
18
19 efreet_shutdown();
20
21 return 0;
22}
23
diff --git a/src/tests/efreet/data/entry b/src/tests/efreet/data/entry
new file mode 100644
index 0000000..503d8e5
--- /dev/null
+++ b/src/tests/efreet/data/entry
Binary files differ
diff --git a/src/tests/efreet/data/entry.png b/src/tests/efreet/data/entry.png
new file mode 100644
index 0000000..82e5cbe
--- /dev/null
+++ b/src/tests/efreet/data/entry.png
Binary files differ
diff --git a/src/tests/efreet/data/long.ini b/src/tests/efreet/data/long.ini
new file mode 100644
index 0000000..32154dd
--- /dev/null
+++ b/src/tests/efreet/data/long.ini
@@ -0,0 +1,3 @@
1[section]
2key=averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,the last value
3key2=averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,the last value
diff --git a/src/tests/efreet/data/preferences.menu b/src/tests/efreet/data/preferences.menu
new file mode 100644
index 0000000..904dbd2
--- /dev/null
+++ b/src/tests/efreet/data/preferences.menu
@@ -0,0 +1,41 @@
1<!DOCTYPE Menu PUBLIC
2 "-//freedesktop//DTD Menu 1.0//EN"
3 "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">
4
5<Menu>
6 <Name>Preferences</Name>
7 <Directory>Preferences.directory</Directory>
8
9 <AppDir>blah</AppDir>
10 <AppDir>/var/tmp</AppDir>
11
12 <Move>
13 <Old>Blah</Old
14 <New>Borp</New>
15 </Move>
16
17 <Menu>
18 <Name>House</Name>
19 <Directory>House.directory</Directory>
20 <Include>
21 <Category>House</Category>
22 <Category>Garden</Category>
23 </Include>
24 </Menu>
25 <Menu>
26 <Name>Mouse</Name>
27 <Directory>House.directory</Directory>
28 <Include>
29 <Category>House</Category>
30 <Category>Garden</Category>
31 </Include>
32 </Menu>
33 <Menu>
34 <Name>House</Name>
35 <Directory>House.directory</Directory>
36 <Include>
37 <Category>Cat</Category>
38 </Include>
39 </Menu>
40</Menu>
41
diff --git a/src/tests/efreet/data/sub/Makefile.am b/src/tests/efreet/data/sub/Makefile.am
new file mode 100644
index 0000000..7aaf7fc
--- /dev/null
+++ b/src/tests/efreet/data/sub/Makefile.am
@@ -0,0 +1,8 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4testdir = $(pkgdatadir)/test/sub
5test_DATA = \
6test.desktop
7
8EXTRA_DIST = $(test_DATA)
diff --git a/src/tests/efreet/data/sub/test.desktop b/src/tests/efreet/data/sub/test.desktop
new file mode 100644
index 0000000..7abf2ae
--- /dev/null
+++ b/src/tests/efreet/data/sub/test.desktop
@@ -0,0 +1,5 @@
1[Desktop Entry]
2Type=Application
3Name=Sub
4Exec=subtest
5Categories=Test
diff --git a/src/tests/efreet/data/test.desktop b/src/tests/efreet/data/test.desktop
new file mode 100644
index 0000000..f2207b4
--- /dev/null
+++ b/src/tests/efreet/data/test.desktop
@@ -0,0 +1,10 @@
1[Desktop Entry]
2Type=Application
3Name=Efreet Test Application
4Name[eo]=Provoversia aplikaĵo Efreet
5GenericName=Test Application
6GenericName[eo]=Provoversia aplikaĵo
7Exec=efreet_test %F %i
8Categories=Test;Enlightenment;
9Icon=TestIcon
10X-Test=Own key
diff --git a/src/tests/efreet/data/test.ini b/src/tests/efreet/data/test.ini
new file mode 100644
index 0000000..7f73d81
--- /dev/null
+++ b/src/tests/efreet/data/test.ini
@@ -0,0 +1,21 @@
1# Comments should be ignored (and empty lines)
2
3[contact]
4Name=Foo Bar
5Name[en_US]=English Foo Bar
6Email= foo@bar.com
7Email[de_DE] = foo@bar.de
8Age = 30
9TrueBoolean=true
10FalseBoolean=false
11InvalidBoolean=invalid
12Escaped=line1\nline2\r\nline3\ttabbed \\ with a backslash\sand\sspaces
13
14[AIM]
15Username=foobar
16
17# the next line has a single space. it should be skipped as well
18
19[Jabber]
20Username=foobar@bar.de
21
diff --git a/src/tests/efreet/data/test.menu b/src/tests/efreet/data/test.menu
new file mode 100644
index 0000000..7ae21ff
--- /dev/null
+++ b/src/tests/efreet/data/test.menu
@@ -0,0 +1,52 @@
1<!DOCTYPE Menu PUBLIC
2 "-//freedesktop//DTD Menu 1.0//EN"
3 "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">
4
5<Menu>
6 <Name>Applications</Name>
7 <Directory>Applications.directory</Directory>
8
9 <DefaultAppDirs/>
10 <DefaultDirectoryDirs/>
11
12 <MergeDir>applications-merged</MergeDir>
13
14 <LegacyDir>/usr/share/applnk</LegacyDir>
15
16 <DefaultLayout>
17 <Merge type="menus"/>
18 <Merge type="files"/>
19 <Separator/>
20 <Menuname>More</Menuname>
21 </DefaultLayout>
22
23 <Move>
24 <Old>Foo</Old>
25 <New>Bar</New>
26 <Old>Foo2</Old>
27 <New>Bar2</New>
28 </Move>
29
30 <Menu>
31 <Name>Preferences</Name>
32 <Directory>Preferences.directory</Directory>
33 <MergeFile>preferences.menu</MergeFile>
34 </Menu>
35
36 <Menu>
37 <Name>Office</Name>
38 <Directory>Office.directory</Directory>
39 <Include>
40 <Category>Office</Category>
41 </Include>
42 <Exclude>
43 <Filename>foo.desktop</Filename>
44 <And>
45 <Not>
46 <Filename>bar.desktop</Filename>
47 </Not>
48 </And>
49 </Exclude>
50 </Menu>
51</Menu>
52
diff --git a/src/tests/efreet/data/test_garbage b/src/tests/efreet/data/test_garbage
new file mode 100644
index 0000000..7d178fd
--- /dev/null
+++ b/src/tests/efreet/data/test_garbage
@@ -0,0 +1,2341 @@
1abcdef
2abcdef
3abcdef
4abcdef
5abcdef
6abcdef
7abcdef
8abcdef
9abcdef
10abcdef
11abcdef
12abcdef
13abcdef
14abcdef
15abcdef
16abcdef
17abcdef
18abcdef
19abcdef
20abcdef
21abcdef
22abcdef
23abcdef
24abcdef
25abcdef
26abcdef
27abcdef
28abcdef
29abcdef
30abcdef
31abcdef
32abcdef
33abcdef
34abcdef
35abcdef
36abcdef
37abcdef
38abcdef
39abcdef
40abcdef
41abcdef
42abcdef
43abcdef
44abcdef
45abcdef
46abcdef
47abcdef
48abcdef
49abcdef
50abcdef
51abcdef
52abcdef
53abcdef
54abcdef
55abcdef
56abcdef
57abcdef
58abcdef
59abcdef
60abcdef
61abcdef
62abcdef
63abcdef
64abcdef
65abcdef
66abcdef
67abcdef
68abcdef
69abcdef
70abcdef
71abcdef
72abcdef
73abcdef
74abcdef
75abcdef
76abcdef
77abcdef
78abcdef
79abcdef
80abcdef
81abcdef
82abcdef
83abcdef
84abcdef
85abcdef
86abcdef
87abcdef
88abcdef
89abcdef
90abcdef
91abcdef
92abcdef
93abcdef
94abcdef
95abcdef
96abcdef
97abcdef
98abcdef
99abcdef
100abcdef
101abcdef
102abcdef
103abcdef
104abcdef
105abcdef
106abcdef
107abcdef
108abcdef
109abcdef
110abcdef
111abcdef
112abcdef
113abcdef
114abcdef
115abcdef
116abcdef
117abcdef
118abcdef
119abcdef
120abcdef
121abcdef
122abcdef
123abcdef
124abcdef
125abcdef
126abcdef
127abcdef
128abcdef
129abcdef
130abcdef
131abcdef
132abcdef
133abcdef
134abcdef
135abcdef
136abcdef
137abcdef
138abcdef
139abcdef
140abcdef
141abcdef
142abcdef
143abcdef
144abcdef
145abcdef
146abcdef
147abcdef
148abcdef
149abcdef
150abcdef
151abcdef
152abcdef
153abcdef
154abcdef
155abcdef
156abcdef
157abcdef
158abcdef
159abcdef
160abcdef
161abcdef
162abcdef
163abcdef
164abcdef
165abcdef
166abcdef
167abcdef
168abcdef
169abcdef
170abcdef
171abcdef
172abcdef
173abcdef
174abcdef
175abcdef
176abcdef
177abcdef
178abcdef
179abcdef
180abcdef
181abcdef
182abcdef
183abcdef
184abcdef
185abcdef
186abcdef
187abcdef
188abcdef
189abcdef
190abcdef
191abcdef
192abcdef
193abcdef
194abcdef
195abcdef
196abcdef
197abcdef
198abcdef
199abcdef
200abcdef
201abcdef
202abcdef
203abcdef
204abcdef
205abcdef
206abcdef
207abcdef
208abcdef
209abcdef
210abcdef
211abcdef
212abcdef
213abcdef
214abcdef
215abcdef
216abcdef
217abcdef
218abcdef
219abcdef
220abcdef
221abcdef
222abcdef
223abcdef
224abcdef
225abcdef
226abcdef
227abcdef
228abcdef
229abcdef
230abcdef
231abcdef
232abcdef
233abcdef
234abcdef
235abcdef
236abcdef
237abcdef
238abcdef
239abcdef
240abcdef
241abcdef
242abcdef
243abcdef
244abcdef
245abcdef
246abcdef
247abcdef
248abcdef
249abcdef
250abcdef
251abcdef
252abcdef
253abcdef
254abcdef
255abcdef
256abcdef
257abcdef
258abcdef
259abcdef
260abcdef
261abcdef
262abcdef
263abcdef
264abcdef
265abcdef
266abcdef
267abcdef
268abcdef
269abcdef
270abcdef
271abcdef
272abcdef
273abcdef
274abcdef
275abcdef
276abcdef
277abcdef
278abcdef
279abcdef
280abcdef
281abcdef
282abcdef
283abcdef
284abcdef
285abcdef
286abcdef
287abcdef
288abcdef
289abcdef
290abcdef
291abcdef
292abcdef
293abcdef
294abcdef
295abcdef
296abcdef
297abcdef
298abcdef
299abcdef
300abcdef
301abcdef
302abcdef
303abcdef
304abcdef
305abcdef
306abcdef
307abcdef
308abcdef
309abcdef
310abcdef
311abcdef
312abcdef
313abcdef
314abcdef
315abcdef
316abcdef
317abcdef
318abcdef
319abcdef
320abcdef
321abcdef
322abcdef
323abcdef
324abcdef
325abcdef
326abcdef
327abcdef
328abcdef
329abcdef
330abcdef
331abcdef
332abcdef
333abcdef
334abcdef
335abcdef
336abcdef
337abcdef
338abcdef
339abcdef
340abcdef
341abcdef
342abcdef
343abcdef
344abcdef
345abcdef
346abcdef
347abcdef
348abcdef
349abcdef
350abcdef
351abcdef
352abcdef
353abcdef
354abcdef
355abcdef
356abcdef
357abcdef
358abcdef
359abcdef
360abcdef
361abcdef
362abcdef
363abcdef
364abcdef
365abcdef
366abcdef
367abcdef
368abcdef
369abcdef
370abcdef
371abcdef
372abcdef
373abcdef
374abcdef
375abcdef
376abcdef
377abcdef
378abcdef
379abcdef
380abcdef
381abcdef
382abcdef
383abcdef
384abcdef
385abcdef
386abcdef
387abcdef
388abcdef
389abcdef
390abcdef
391abcdef
392abcdef
393abcdef
394abcdef
395abcdef
396abcdef
397abcdef
398abcdef
399abcdef
400abcdef
401abcdef
402abcdef
403abcdef
404abcdef
405abcdef
406abcdef
407abcdef
408abcdef
409abcdef
410abcdef
411abcdef
412abcdef
413abcdef
414abcdef
415abcdef
416abcdef
417abcdef
418abcdef
419abcdef
420abcdef
421abcdef
422abcdef
423abcdef
424abcdef
425abcdef
426abcdef
427abcdef
428abcdef
429abcdef
430abcdef
431abcdef
432abcdef
433abcdef
434abcdef
435abcdef
436abcdef
437abcdef
438abcdef
439abcdef
440abcdef
441abcdef
442abcdef
443abcdef
444abcdef
445abcdef
446abcdef
447abcdef
448abcdef
449abcdef
450abcdef
451abcdef
452abcdef
453abcdef
454abcdef
455abcdef
456abcdef
457abcdef
458abcdef
459abcdef
460abcdef
461abcdef
462abcdef
463abcdef
464abcdef
465abcdef
466abcdef
467abcdef
468abcdef
469abcdef
470abcdef
471abcdef
472abcdef
473abcdef
474abcdef
475abcdef
476abcdef
477abcdef
478abcdef
479abcdef
480abcdef
481abcdef
482abcdef
483abcdef
484abcdef
485abcdef
486abcdef
487abcdef
488abcdef
489abcdef
490abcdef
491abcdef
492abcdef
493abcdef
494abcdef
495abcdef
496abcdef
497abcdef
498abcdef
499abcdef
500abcdef
501abcdef
502abcdef
503abcdef
504abcdef
505abcdef
506abcdef
507abcdef
508abcdef
509abcdef
510abcdef
511abcdef
512abcdef
513abcdef
514abcdef
515abcdef
516abcdef
517abcdef
518abcdef
519abcdef
520abcdef
521abcdef
522abcdef
523abcdef
524abcdef
525abcdef
526abcdef
527abcdef
528abcdef
529abcdef
530abcdef
531abcdef
532abcdef
533abcdef
534abcdef
535abcdef
536abcdef
537abcdef
538abcdef
539abcdef
540abcdef
541abcdef
542abcdef
543abcdef
544abcdef
545abcdef
546abcdef
547abcdef
548abcdef
549abcdef
550abcdef
551abcdef
552abcdef
553abcdef
554abcdef
555abcdef
556abcdef
557abcdef
558abcdef
559abcdef
560abcdef
561abcdef
562abcdef
563abcdef
564abcdef
565abcdef
566abcdef
567abcdef
568abcdef
569abcdef
570abcdef
571abcdef
572abcdef
573abcdef
574abcdef
575abcdef
576abcdef
577abcdef
578abcdef
579abcdef
580abcdef
581abcdef
582abcdef
583abcdef
584abcdef
585abcdef
586abcdef
587abcdef
588abcdef
589abcdef
590abcdef
591abcdef
592abcdef
593abcdef
594abcdef
595abcdef
596abcdef
597abcdef
598abcdef
599abcdef
600abcdef
601abcdef
602abcdef
603abcdef
604abcdef
605abcdef
606abcdef
607abcdef
608abcdef
609abcdef
610abcdef
611abcdef
612abcdef
613abcdef
614abcdef
615abcdef
616abcdef
617abcdef
618abcdef
619abcdef
620abcdef
621abcdef
622abcdef
623abcdef
624abcdef
625abcdef
626abcdef
627abcdef
628abcdef
629abcdef
630abcdef
631abcdef
632abcdef
633abcdef
634abcdef
635abcdef
636abcdef
637abcdef
638abcdef
639abcdef
640abcdef
641abcdef
642abcdef
643abcdef
644abcdef
645abcdef
646abcdef
647abcdef
648abcdef
649abcdef
650abcdef
651abcdef
652abcdef
653abcdef
654abcdef
655abcdef
656abcdef
657abcdef
658abcdef
659abcdef
660abcdef
661abcdef
662abcdef
663abcdef
664abcdef
665abcdef
666abcdef
667abcdef
668abcdef
669abcdef
670abcdef
671abcdef
672abcdef
673abcdef
674abcdef
675abcdef
676abcdef
677abcdef
678abcdef
679abcdef
680abcdef
681abcdef
682abcdef
683abcdef
684abcdef
685abcdef
686abcdef
687abcdef
688abcdef
689abcdef
690abcdef
691abcdef
692abcdef
693abcdef
694abcdef
695abcdef
696abcdef
697abcdef
698abcdef
699abcdef
700abcdef
701abcdef
702abcdef
703abcdef
704abcdef
705abcdef
706abcdef
707abcdef
708abcdef
709abcdef
710abcdef
711abcdef
712abcdef
713abcdef
714abcdef
715abcdef
716abcdef
717abcdef
718abcdef
719abcdef
720abcdef
721abcdef
722abcdef
723abcdef
724abcdef
725abcdef
726abcdef
727abcdef
728abcdef
729abcdef
730abcdef
731abcdef
732abcdef
733abcdef
734abcdef
735abcdef
736abcdef
737abcdef
738abcdef
739abcdef
740abcdef
741abcdef
742abcdef
743abcdef
744abcdef
745abcdef
746abcdef
747abcdef
748abcdef
749abcdef
750abcdef
751abcdef
752abcdef
753abcdef
754abcdef
755abcdef
756abcdef
757abcdef
758abcdef
759abcdef
760abcdef
761abcdef
762abcdef
763abcdef
764abcdef
765abcdef
766abcdef
767abcdef
768abcdef
769abcdef
770abcdef
771abcdef
772abcdef
773abcdef
774abcdef
775abcdef
776abcdef
777abcdef
778abcdef
779abcdef
780abcdef
781abcdef
782abcdef
783abcdef
784abcdef
785abcdef
786abcdef
787abcdef
788abcdef
789abcdef
790abcdef
791abcdef
792abcdef
793abcdef
794abcdef
795abcdef
796abcdef
797abcdef
798abcdef
799abcdef
800abcdef
801abcdef
802abcdef
803abcdef
804abcdef
805abcdef
806abcdef
807abcdef
808abcdef
809abcdef
810abcdef
811abcdef
812abcdef
813abcdef
814abcdef
815abcdef
816abcdef
817abcdef
818abcdef
819abcdef
820abcdef
821abcdef
822abcdef
823abcdef
824abcdef
825abcdef
826abcdef
827abcdef
828abcdef
829abcdef
830abcdef
831abcdef
832abcdef
833abcdef
834abcdef
835abcdef
836abcdef
837abcdef
838abcdef
839abcdef
840abcdef
841abcdef
842abcdef
843abcdef
844abcdef
845abcdef
846abcdef
847abcdef
848abcdef
849abcdef
850abcdef
851abcdef
852abcdef
853abcdef
854abcdef
855abcdef
856abcdef
857abcdef
858abcdef
859abcdef
860abcdef
861abcdef
862abcdef
863abcdef
864abcdef
865abcdef
866abcdef
867abcdef
868abcdef
869abcdef
870abcdef
871abcdef
872abcdef
873abcdef
874abcdef
875abcdef
876abcdef
877abcdef
878abcdef
879abcdef
880abcdef
881abcdef
882abcdef
883abcdef
884abcdef
885abcdef
886abcdef
887abcdef
888abcdef
889abcdef
890abcdef
891abcdef
892abcdef
893abcdef
894abcdef
895abcdef
896abcdef
897abcdef
898abcdef
899abcdef
900abcdef
901abcdef
902abcdef
903abcdef
904abcdef
905abcdef
906abcdef
907abcdef
908abcdef
909abcdef
910abcdef
911abcdef
912abcdef
913abcdef
914abcdef
915abcdef
916abcdef
917abcdef
918abcdef
919abcdef
920abcdef
921abcdef
922abcdef
923abcdef
924abcdef
925abcdef
926abcdef
927abcdef
928abcdef
929abcdef
930abcdef
931abcdef
932abcdef
933abcdef
934abcdef
935abcdef
936abcdef
937abcdef
938abcdef
939abcdef
940abcdef
941abcdef
942abcdef
943abcdef
944abcdef
945abcdef
946abcdef
947abcdef
948abcdef
949abcdef
950abcdef
951abcdef
952abcdef
953abcdef
954abcdef
955abcdef
956abcdef
957abcdef
958abcdef
959abcdef
960abcdef
961abcdef
962abcdef
963abcdef
964abcdef
965abcdef
966abcdef
967abcdef
968abcdef
969abcdef
970abcdef
971abcdef
972abcdef
973abcdef
974abcdef
975abcdef
976abcdef
977abcdef
978abcdef
979abcdef
980abcdef
981abcdef
982abcdef
983abcdef
984abcdef
985abcdef
986abcdef
987abcdef
988abcdef
989abcdef
990abcdef
991abcdef
992abcdef
993abcdef
994abcdef
995abcdef
996abcdef
997abcdef
998abcdef
999abcdef
1000abcdef
1001abcdef
1002abcdef
1003abcdef
1004abcdef
1005abcdef
1006abcdef
1007abcdef
1008abcdef
1009abcdef
1010abcdef
1011abcdef
1012abcdef
1013abcdef
1014abcdef
1015abcdef
1016abcdef
1017abcdef
1018abcdef
1019abcdef
1020abcdef
1021abcdef
1022abcdef
1023abcdef
1024abcdef
1025abcdef
1026abcdef
1027abcdef
1028abcdef
1029abcdef
1030abcdef
1031abcdef
1032abcdef
1033abcdef
1034abcdef
1035abcdef
1036abcdef
1037abcdef
1038abcdef
1039abcdef
1040abcdef
1041abcdef
1042abcdef
1043abcdef
1044abcdef
1045abcdef
1046abcdef
1047abcdef
1048abcdef
1049abcdef
1050abcdef
1051abcdef
1052abcdef
1053abcdef
1054abcdef
1055abcdef
1056abcdef
1057abcdef
1058abcdef
1059abcdef
1060abcdef
1061abcdef
1062abcdef
1063abcdef
1064abcdef
1065abcdef
1066abcdef
1067abcdef
1068abcdef
1069abcdef
1070abcdef
1071abcdef
1072abcdef
1073abcdef
1074abcdef
1075abcdef
1076abcdef
1077abcdef
1078abcdef
1079abcdef
1080abcdef
1081abcdef
1082abcdef
1083abcdef
1084abcdef
1085abcdef
1086abcdef
1087abcdef
1088abcdef
1089abcdef
1090abcdef
1091abcdef
1092abcdef
1093abcdef
1094abcdef
1095abcdef
1096abcdef
1097abcdef
1098abcdef
1099abcdef
1100abcdef
1101abcdef
1102abcdef
1103abcdef
1104abcdef
1105abcdef
1106abcdef
1107abcdef
1108abcdef
1109abcdef
1110abcdef
1111abcdef
1112abcdef
1113abcdef
1114abcdef
1115abcdef
1116abcdef
1117abcdef
1118abcdef
1119abcdef
1120abcdef
1121abcdef
1122abcdef
1123abcdef
1124abcdef
1125abcdef
1126abcdef
1127abcdef
1128abcdef
1129abcdef
1130abcdef
1131abcdef
1132abcdef
1133abcdef
1134abcdef
1135abcdef
1136abcdef
1137abcdef
1138abcdef
1139abcdef
1140abcdef
1141abcdef
1142abcdef
1143abcdef
1144abcdef
1145abcdef
1146abcdef
1147abcdef
1148abcdef
1149abcdef
1150abcdef
1151abcdef
1152abcdef
1153abcdef
1154abcdef
1155abcdef
1156abcdef
1157abcdef
1158abcdef
1159abcdef
1160abcdef
1161abcdef
1162abcdef
1163abcdef
1164abcdef
1165abcdef
1166abcdef
1167abcdef
1168abcdef
1169abcdef
1170abcdef
1171abcdef
1172abcdef
1173abcdef
1174abcdef
1175abcdef
1176abcdef
1177abcdef
1178abcdef
1179abcdef
1180abcdef
1181abcdef
1182abcdef
1183abcdef
1184abcdef
1185abcdef
1186abcdef
1187abcdef
1188abcdef
1189abcdef
1190abcdef
1191abcdef
1192abcdef
1193abcdef
1194abcdef
1195abcdef
1196abcdef
1197abcdef
1198abcdef
1199abcdef
1200abcdef
1201abcdef
1202abcdef
1203abcdef
1204abcdef
1205abcdef
1206abcdef
1207abcdef
1208abcdef
1209abcdef
1210abcdef
1211abcdef
1212abcdef
1213abcdef
1214abcdef
1215abcdef
1216abcdef
1217abcdef
1218abcdef
1219abcdef
1220abcdef
1221abcdef
1222abcdef
1223abcdef
1224abcdef
1225abcdef
1226abcdef
1227abcdef
1228abcdef
1229abcdef
1230abcdef
1231abcdef
1232abcdef
1233abcdef
1234abcdef
1235abcdef
1236abcdef
1237abcdef
1238abcdef
1239abcdef
1240abcdef
1241abcdef
1242abcdef
1243abcdef
1244abcdef
1245abcdef
1246abcdef
1247abcdef
1248abcdef
1249abcdef
1250abcdef
1251abcdef
1252abcdef
1253abcdef
1254abcdef
1255abcdef
1256abcdef
1257abcdef
1258abcdef
1259abcdef
1260abcdef
1261abcdef
1262abcdef
1263abcdef
1264abcdef
1265abcdef
1266abcdef
1267abcdef
1268abcdef
1269abcdef
1270abcdef
1271abcdef
1272abcdef
1273abcdef
1274abcdef
1275abcdef
1276abcdef
1277abcdef
1278abcdef
1279abcdef
1280abcdef
1281abcdef
1282abcdef
1283abcdef
1284abcdef
1285abcdef
1286abcdef
1287abcdef
1288abcdef
1289abcdef
1290abcdef
1291abcdef
1292abcdef
1293abcdef
1294abcdef
1295abcdef
1296abcdef
1297abcdef
1298abcdef
1299abcdef
1300abcdef
1301abcdef
1302abcdef
1303abcdef
1304abcdef
1305abcdef
1306abcdef
1307abcdef
1308abcdef
1309abcdef
1310abcdef
1311abcdef
1312abcdef
1313abcdef
1314abcdef
1315abcdef
1316abcdef
1317abcdef
1318abcdef
1319abcdef
1320abcdef
1321abcdef
1322abcdef
1323abcdef
1324abcdef
1325abcdef
1326abcdef
1327abcdef
1328abcdef
1329abcdef
1330abcdef
1331abcdef
1332abcdef
1333abcdef
1334abcdef
1335abcdef
1336abcdef
1337abcdef
1338abcdef
1339abcdef
1340abcdef
1341abcdef
1342abcdef
1343abcdef
1344abcdef
1345abcdef
1346abcdef
1347abcdef
1348abcdef
1349abcdef
1350abcdef
1351abcdef
1352abcdef
1353abcdef
1354abcdef
1355abcdef
1356abcdef
1357abcdef
1358abcdef
1359abcdef
1360abcdef
1361abcdef
1362abcdef
1363abcdef
1364abcdef
1365abcdef
1366abcdef
1367abcdef
1368abcdef
1369abcdef
1370abcdef
1371abcdef
1372abcdef
1373abcdef
1374abcdef
1375abcdef
1376abcdef
1377abcdef
1378abcdef
1379abcdef
1380abcdef
1381abcdef
1382abcdef
1383abcdef
1384abcdef
1385abcdef
1386abcdef
1387abcdef
1388abcdef
1389abcdef
1390abcdef
1391abcdef
1392abcdef
1393abcdef
1394abcdef
1395abcdef
1396abcdef
1397abcdef
1398abcdef
1399abcdef
1400abcdef
1401abcdef
1402abcdef
1403abcdef
1404abcdef
1405abcdef
1406abcdef
1407abcdef
1408abcdef
1409abcdef
1410abcdef
1411abcdef
1412abcdef
1413abcdef
1414abcdef
1415abcdef
1416abcdef
1417abcdef
1418abcdef
1419abcdef
1420abcdef
1421abcdef
1422abcdef
1423abcdef
1424abcdef
1425abcdef
1426abcdef
1427abcdef
1428abcdef
1429abcdef
1430abcdef
1431abcdef
1432abcdef
1433abcdef
1434abcdef
1435abcdef
1436abcdef
1437abcdef
1438abcdef
1439abcdef
1440abcdef
1441abcdef
1442abcdef
1443abcdef
1444abcdef
1445abcdef
1446abcdef
1447abcdef
1448abcdef
1449abcdef
1450abcdef
1451abcdef
1452abcdef
1453abcdef
1454abcdef
1455abcdef
1456abcdef
1457abcdef
1458abcdef
1459abcdef
1460abcdef
1461abcdef
1462abcdef
1463abcdef
1464abcdef
1465abcdef
1466abcdef
1467abcdef
1468abcdef
1469abcdef
1470abcdef
1471abcdef
1472abcdef
1473abcdef
1474abcdef
1475abcdef
1476abcdef
1477abcdef
1478abcdef
1479abcdef
1480abcdef
1481abcdef
1482abcdef
1483abcdef
1484abcdef
1485abcdef
1486abcdef
1487abcdef
1488abcdef
1489abcdef
1490abcdef
1491abcdef
1492abcdef
1493abcdef
1494abcdef
1495abcdef
1496abcdef
1497abcdef
1498abcdef
1499abcdef
1500abcdef
1501abcdef
1502abcdef
1503abcdef
1504abcdef
1505abcdef
1506abcdef
1507abcdef
1508abcdef
1509abcdef
1510abcdef
1511abcdef
1512abcdef
1513abcdef
1514abcdef
1515abcdef
1516abcdef
1517abcdef
1518abcdef
1519abcdef
1520abcdef
1521abcdef
1522abcdef
1523abcdef
1524abcdef
1525abcdef
1526abcdef
1527abcdef
1528abcdef
1529abcdef
1530abcdef
1531abcdef
1532abcdef
1533abcdef
1534abcdef
1535abcdef
1536abcdef
1537abcdef
1538abcdef
1539abcdef
1540abcdef
1541abcdef
1542abcdef
1543abcdef
1544abcdef
1545abcdef
1546abcdef
1547abcdef
1548abcdef
1549abcdef
1550abcdef
1551abcdef
1552abcdef
1553abcdef
1554abcdef
1555abcdef
1556abcdef
1557abcdef
1558abcdef
1559abcdef
1560abcdef
1561abcdef
1562abcdef
1563abcdef
1564abcdef
1565abcdef
1566abcdef
1567abcdef
1568abcdef
1569abcdef
1570abcdef
1571abcdef
1572abcdef
1573abcdef
1574abcdef
1575abcdef
1576abcdef
1577abcdef
1578abcdef
1579abcdef
1580abcdef
1581abcdef
1582abcdef
1583abcdef
1584abcdef
1585abcdef
1586abcdef
1587abcdef
1588abcdef
1589abcdef
1590abcdef
1591abcdef
1592abcdef
1593abcdef
1594abcdef
1595abcdef
1596abcdef
1597abcdef
1598abcdef
1599abcdef
1600abcdef
1601abcdef
1602abcdef
1603abcdef
1604abcdef
1605abcdef
1606abcdef
1607abcdef
1608abcdef
1609abcdef
1610abcdef
1611abcdef
1612abcdef
1613abcdef
1614abcdef
1615abcdef
1616abcdef
1617abcdef
1618abcdef
1619abcdef
1620abcdef
1621abcdef
1622abcdef
1623abcdef
1624abcdef
1625abcdef
1626abcdef
1627abcdef
1628abcdef
1629abcdef
1630abcdef
1631abcdef
1632abcdef
1633abcdef
1634abcdef
1635abcdef
1636abcdef
1637abcdef
1638abcdef
1639abcdef
1640abcdef
1641abcdef
1642abcdef
1643abcdef
1644abcdef
1645abcdef
1646abcdef
1647abcdef
1648abcdef
1649abcdef
1650abcdef
1651abcdef
1652abcdef
1653abcdef
1654abcdef
1655abcdef
1656abcdef
1657abcdef
1658abcdef
1659abcdef
1660abcdef
1661abcdef
1662abcdef
1663abcdef
1664abcdef
1665abcdef
1666abcdef
1667abcdef
1668abcdef
1669abcdef
1670abcdef
1671abcdef
1672abcdef
1673abcdef
1674abcdef
1675abcdef
1676abcdef
1677abcdef
1678abcdef
1679abcdef
1680abcdef
1681abcdef
1682abcdef
1683abcdef
1684abcdef
1685abcdef
1686abcdef
1687abcdef
1688abcdef
1689abcdef
1690abcdef
1691abcdef
1692abcdef
1693abcdef
1694abcdef
1695abcdef
1696abcdef
1697abcdef
1698abcdef
1699abcdef
1700abcdef
1701abcdef
1702abcdef
1703abcdef
1704abcdef
1705abcdef
1706abcdef
1707abcdef
1708abcdef
1709abcdef
1710abcdef
1711abcdef
1712abcdef
1713abcdef
1714abcdef
1715abcdef
1716abcdef
1717abcdef
1718abcdef
1719abcdef
1720abcdef
1721abcdef
1722abcdef
1723abcdef
1724abcdef
1725abcdef
1726abcdef
1727abcdef
1728abcdef
1729abcdef
1730abcdef
1731abcdef
1732abcdef
1733abcdef
1734abcdef
1735abcdef
1736abcdef
1737abcdef
1738abcdef
1739abcdef
1740abcdef
1741abcdef
1742abcdef
1743abcdef
1744abcdef
1745abcdef
1746abcdef
1747abcdef
1748abcdef
1749abcdef
1750abcdef
1751abcdef
1752abcdef
1753abcdef
1754abcdef
1755abcdef
1756abcdef
1757abcdef
1758abcdef
1759abcdef
1760abcdef
1761abcdef
1762abcdef
1763abcdef
1764abcdef
1765abcdef
1766abcdef
1767abcdef
1768abcdef
1769abcdef
1770abcdef
1771abcdef
1772abcdef
1773abcdef
1774abcdef
1775abcdef
1776abcdef
1777abcdef
1778abcdef
1779abcdef
1780abcdef
1781abcdef
1782abcdef
1783abcdef
1784abcdef
1785abcdef
1786abcdef
1787abcdef
1788abcdef
1789abcdef
1790abcdef
1791abcdef
1792abcdef
1793abcdef
1794abcdef
1795abcdef
1796abcdef
1797abcdef
1798abcdef
1799abcdef
1800abcdef
1801abcdef
1802abcdef
1803abcdef
1804abcdef
1805abcdef
1806abcdef
1807abcdef
1808abcdef
1809abcdef
1810abcdef
1811abcdef
1812abcdef
1813abcdef
1814abcdef
1815abcdef
1816abcdef
1817abcdef
1818abcdef
1819abcdef
1820abcdef
1821abcdef
1822abcdef
1823abcdef
1824abcdef
1825abcdef
1826abcdef
1827abcdef
1828abcdef
1829abcdef
1830abcdef
1831abcdef
1832abcdef
1833abcdef
1834abcdef
1835abcdef
1836abcdef
1837abcdef
1838abcdef
1839abcdef
1840abcdef
1841abcdef
1842abcdef
1843abcdef
1844abcdef
1845abcdef
1846abcdef
1847abcdef
1848abcdef
1849abcdef
1850abcdef
1851abcdef
1852abcdef
1853abcdef
1854abcdef
1855abcdef
1856abcdef
1857abcdef
1858abcdef
1859abcdef
1860abcdef
1861abcdef
1862abcdef
1863abcdef
1864abcdef
1865abcdef
1866abcdef
1867abcdef
1868abcdef
1869abcdef
1870abcdef
1871abcdef
1872abcdef
1873abcdef
1874abcdef
1875abcdef
1876abcdef
1877abcdef
1878abcdef
1879abcdef
1880abcdef
1881abcdef
1882abcdef
1883abcdef
1884abcdef
1885abcdef
1886abcdef
1887abcdef
1888abcdef
1889abcdef
1890abcdef
1891abcdef
1892abcdef
1893abcdef
1894abcdef
1895abcdef
1896abcdef
1897abcdef
1898abcdef
1899abcdef
1900abcdef
1901abcdef
1902abcdef
1903abcdef
1904abcdef
1905abcdef
1906abcdef
1907abcdef
1908abcdef
1909abcdef
1910abcdef
1911abcdef
1912abcdef
1913abcdef
1914abcdef
1915abcdef
1916abcdef
1917abcdef
1918abcdef
1919abcdef
1920abcdef
1921abcdef
1922abcdef
1923abcdef
1924abcdef
1925abcdef
1926abcdef
1927abcdef
1928abcdef
1929abcdef
1930abcdef
1931abcdef
1932abcdef
1933abcdef
1934abcdef
1935abcdef
1936abcdef
1937abcdef
1938abcdef
1939abcdef
1940abcdef
1941abcdef
1942abcdef
1943abcdef
1944abcdef
1945abcdef
1946abcdef
1947abcdef
1948abcdef
1949abcdef
1950abcdef
1951abcdef
1952abcdef
1953abcdef
1954abcdef
1955abcdef
1956abcdef
1957abcdef
1958abcdef
1959abcdef
1960abcdef
1961abcdef
1962abcdef
1963abcdef
1964abcdef
1965abcdef
1966abcdef
1967abcdef
1968abcdef
1969abcdef
1970abcdef
1971abcdef
1972abcdef
1973abcdef
1974abcdef
1975abcdef
1976abcdef
1977abcdef
1978abcdef
1979abcdef
1980abcdef
1981abcdef
1982abcdef
1983abcdef
1984abcdef
1985abcdef
1986abcdef
1987abcdef
1988abcdef
1989abcdef
1990abcdef
1991abcdef
1992abcdef
1993abcdef
1994abcdef
1995abcdef
1996abcdef
1997abcdef
1998abcdef
1999abcdef
2000abcdef
2001abcdef
2002abcdef
2003abcdef
2004abcdef
2005abcdef
2006abcdef
2007abcdef
2008abcdef
2009abcdef
2010abcdef
2011abcdef
2012abcdef
2013abcdef
2014abcdef
2015abcdef
2016abcdef
2017abcdef
2018abcdef
2019abcdef
2020abcdef
2021abcdef
2022abcdef
2023abcdef
2024abcdef
2025abcdef
2026abcdef
2027abcdef
2028abcdef
2029abcdef
2030abcdef
2031abcdef
2032abcdef
2033abcdef
2034abcdef
2035abcdef
2036abcdef
2037abcdef
2038abcdef
2039abcdef
2040abcdef
2041abcdef
2042abcdef
2043abcdef
2044abcdef
2045abcdef
2046abcdef
2047abcdef
2048abcdef
2049abcdef
2050abcdef
2051abcdef
2052abcdef
2053abcdef
2054abcdef
2055abcdef
2056abcdef
2057abcdef
2058abcdef
2059abcdef
2060abcdef
2061abcdef
2062abcdef
2063abcdef
2064abcdef
2065abcdef
2066abcdef
2067abcdef
2068abcdef
2069abcdef
2070abcdef
2071abcdef
2072abcdef
2073abcdef
2074abcdef
2075abcdef
2076abcdef
2077abcdef
2078abcdef
2079abcdef
2080abcdef
2081abcdef
2082abcdef
2083abcdef
2084abcdef
2085abcdef
2086abcdef
2087abcdef
2088abcdef
2089abcdef
2090abcdef
2091abcdef
2092abcdef
2093abcdef
2094abcdef
2095abcdef
2096abcdef
2097abcdef
2098abcdef
2099abcdef
2100abcdef
2101abcdef
2102abcdef
2103abcdef
2104abcdef
2105abcdef
2106abcdef
2107abcdef
2108abcdef
2109abcdef
2110abcdef
2111abcdef
2112abcdef
2113abcdef
2114abcdef
2115abcdef
2116abcdef
2117abcdef
2118abcdef
2119abcdef
2120abcdef
2121abcdef
2122abcdef
2123abcdef
2124abcdef
2125abcdef
2126abcdef
2127abcdef
2128abcdef
2129abcdef
2130abcdef
2131abcdef
2132abcdef
2133abcdef
2134abcdef
2135abcdef
2136abcdef
2137abcdef
2138abcdef
2139abcdef
2140abcdef
2141abcdef
2142abcdef
2143abcdef
2144abcdef
2145abcdef
2146abcdef
2147abcdef
2148abcdef
2149abcdef
2150abcdef
2151abcdef
2152abcdef
2153abcdef
2154abcdef
2155abcdef
2156abcdef
2157abcdef
2158abcdef
2159abcdef
2160abcdef
2161abcdef
2162abcdef
2163abcdef
2164abcdef
2165abcdef
2166abcdef
2167abcdef
2168abcdef
2169abcdef
2170abcdef
2171abcdef
2172abcdef
2173abcdef
2174abcdef
2175abcdef
2176abcdef
2177abcdef
2178abcdef
2179abcdef
2180abcdef
2181abcdef
2182abcdef
2183abcdef
2184abcdef
2185abcdef
2186abcdef
2187abcdef
2188abcdef
2189abcdef
2190abcdef
2191abcdef
2192abcdef
2193abcdef
2194abcdef
2195abcdef
2196abcdef
2197abcdef
2198abcdef
2199abcdef
2200abcdef
2201abcdef
2202abcdef
2203abcdef
2204abcdef
2205abcdef
2206abcdef
2207abcdef
2208abcdef
2209abcdef
2210abcdef
2211abcdef
2212abcdef
2213abcdef
2214abcdef
2215abcdef
2216abcdef
2217abcdef
2218abcdef
2219abcdef
2220abcdef
2221abcdef
2222abcdef
2223abcdef
2224abcdef
2225abcdef
2226abcdef
2227abcdef
2228abcdef
2229abcdef
2230abcdef
2231abcdef
2232abcdef
2233abcdef
2234abcdef
2235abcdef
2236abcdef
2237abcdef
2238abcdef
2239abcdef
2240abcdef
2241abcdef
2242abcdef
2243abcdef
2244abcdef
2245abcdef
2246abcdef
2247abcdef
2248abcdef
2249abcdef
2250abcdef
2251abcdef
2252abcdef
2253abcdef
2254abcdef
2255abcdef
2256abcdef
2257abcdef
2258abcdef
2259abcdef
2260abcdef
2261abcdef
2262abcdef
2263abcdef
2264abcdef
2265abcdef
2266abcdef
2267abcdef
2268abcdef
2269abcdef
2270abcdef
2271abcdef
2272abcdef
2273abcdef
2274abcdef
2275abcdef
2276abcdef
2277abcdef
2278abcdef
2279abcdef
2280abcdef
2281abcdef
2282abcdef
2283abcdef
2284abcdef
2285abcdef
2286abcdef
2287abcdef
2288abcdef
2289abcdef
2290abcdef
2291abcdef
2292abcdef
2293abcdef
2294abcdef
2295abcdef
2296abcdef
2297abcdef
2298abcdef
2299abcdef
2300abcdef
2301abcdef
2302abcdef
2303abcdef
2304abcdef
2305abcdef
2306abcdef
2307abcdef
2308abcdef
2309abcdef
2310abcdef
2311abcdef
2312abcdef
2313abcdef
2314abcdef
2315abcdef
2316abcdef
2317abcdef
2318abcdef
2319abcdef
2320abcdef
2321abcdef
2322abcdef
2323abcdef
2324abcdef
2325abcdef
2326abcdef
2327abcdef
2328abcdef
2329abcdef
2330abcdef
2331abcdef
2332abcdef
2333abcdef
2334abcdef
2335abcdef
2336abcdef
2337abcdef
2338abcdef
2339abcdef
2340abcdef
2341abcd \ No newline at end of file
diff --git a/src/tests/efreet/data/test_menu_bad_comment.menu b/src/tests/efreet/data/test_menu_bad_comment.menu
new file mode 100644
index 0000000..5815b89
--- /dev/null
+++ b/src/tests/efreet/data/test_menu_bad_comment.menu
@@ -0,0 +1,14 @@
1<!DOCTYPE Menu PUBLIC
2 "-//freedesktop//DTD Menu 1.0//EN"
3 "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">
4
5<Menu>
6 <Name>Applications</Name>
7 <Directory>Applications.directory</Directory>
8
9 <!-- a comment
10 <!-- with a comment -->
11 <Or> This should be commented </Or>
12 -->
13</Menu>
14
diff --git a/src/tests/efreet/data/test_menu_slash_bad.menu b/src/tests/efreet/data/test_menu_slash_bad.menu
new file mode 100644
index 0000000..8f7b6f0
--- /dev/null
+++ b/src/tests/efreet/data/test_menu_slash_bad.menu
@@ -0,0 +1,11 @@
1<!DOCTYPE Menu PUBLIC
2 "-//freedesktop//DTD Menu 1.0//EN"
3 "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">
4
5<Menu>
6 <Name>Applications/Bar</Name>
7
8 <Menu>
9 <Name>Preferences/Baz</Name>
10 </Menu>
11</Menu>
diff --git a/src/tests/efreet/data/test_type.desktop b/src/tests/efreet/data/test_type.desktop
new file mode 100644
index 0000000..18f7103
--- /dev/null
+++ b/src/tests/efreet/data/test_type.desktop
@@ -0,0 +1,10 @@
1[Desktop Entry]
2Type=My_Type
3Name=Efreet Test Application
4Name[eo]=Provoversia aplikaĵo Efreet
5GenericName=Test Application
6GenericName[eo]=Provoversia aplikaĵo
7Exec=efreet_test %F %i
8Categories=Test;Enlightenment;
9Icon=TestIcon
10X-Test=Own key
diff --git a/src/tests/efreet/ef_cache.c b/src/tests/efreet/ef_cache.c
new file mode 100644
index 0000000..cf40eaf
--- /dev/null
+++ b/src/tests/efreet/ef_cache.c
@@ -0,0 +1,199 @@
1#include "Efreet.h"
2#include <stdio.h>
3#include <Ecore.h>
4#include "ef_test.h"
5
6#if 0
7EAPI Efreet_Desktop *efreet_util_desktop_file_id_find(const char *file_id);
8
9EAPI Eina_List *efreet_util_desktop_generic_name_glob_list(const char *glob);
10EAPI Eina_List *efreet_util_desktop_comment_glob_list(const char *glob);
11#endif
12
13static Eina_Bool icon_cb = EINA_FALSE;
14static Eina_Bool desktop_cb = EINA_FALSE;
15
16static void
17check(void)
18{
19 Eina_List *list;
20 Efreet_Desktop *desktop, *desktop2;
21 double start;
22 const char *id;
23
24 // EAPI char *efreet_util_path_to_file_id(const char *path);
25 start = ecore_time_get();
26 id = efreet_util_path_to_file_id("/usr/share/applications/gnome-panel.desktop");
27 if (id)
28 {
29 printf("efreet_util_path_to_file_id(/usr/share/applications/gnome-panel.desktop): %s %.6f\n", id, (ecore_time_get() - start));
30 }
31 else
32 printf("efreet_util_path_to_file_id(/usr/share/applications/gnome-panel.desktop): NULL %.6f\n", (ecore_time_get() - start));
33
34 //EAPI Efreet_Desktop *efreet_util_desktop_name_find(const char *name);
35 start = ecore_time_get();
36 desktop = efreet_util_desktop_name_find("Evolution");
37 if (desktop)
38 printf("efreet_util_desktop_name_find(Evolution): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
39 else
40 printf("efreet_util_desktop_name_find(Evolution): NULL %.6f\n", (ecore_time_get() - start));
41 efreet_desktop_free(desktop);
42
43 //EAPI Efreet_Desktop *efreet_util_desktop_generic_name_find(const char *generic_name);
44 start = ecore_time_get();
45 desktop = efreet_util_desktop_generic_name_find("Spreadsheet");
46 if (desktop)
47 printf("efreet_util_desktop_generic_name_find(Spreadsheet): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
48 else
49 printf("efreet_util_desktop_generic_name_find(Spreadsheet): NULL %.6f\n", (ecore_time_get() - start));
50 efreet_desktop_free(desktop);
51
52 //EAPI Efreet_Desktop *efreet_util_desktop_wm_class_find(const char *wmname, const char *wmclass);
53 start = ecore_time_get();
54 desktop = efreet_util_desktop_wm_class_find("Firefox", NULL);
55 if (desktop)
56 printf("efreet_util_desktop_wm_class_find(Firefox): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
57 else
58 printf("efreet_util_desktop_wm_class_find(Firefox): NULL %.6f\n", (ecore_time_get() - start));
59 efreet_desktop_free(desktop);
60
61 //EAPI Efreet_Desktop *efreet_util_desktop_exec_find(const char *exec);
62 start = ecore_time_get();
63 desktop = efreet_util_desktop_exec_find("/usr/bin/update-manager");
64 if (desktop)
65 printf("efreet_util_desktop_exec_find(update-manager): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start));
66 else
67 printf("efreet_util_desktop_exec_find(update-manager): NULL %.6f\n", (ecore_time_get() - start));
68 efreet_desktop_free(desktop);
69
70 //EAPI Eina_List *efreet_util_desktop_name_glob_list(const char *glob);
71 start = ecore_time_get();
72 list = efreet_util_desktop_name_glob_list("Ubuntu*");
73 if (list)
74 {
75 EINA_LIST_FREE(list, desktop)
76 {
77 printf("efreet_util_desktop_name_glob_list(Ubuntu*): %s\n", desktop->name);
78 efreet_desktop_free(desktop);
79 }
80 }
81 printf("time: %.6f\n", (ecore_time_get() - start));
82
83 //EAPI Eina_List *efreet_util_desktop_mime_list(const char *mime);
84 start = ecore_time_get();
85 list = efreet_util_desktop_mime_list("application/ogg");
86 if (list)
87 {
88 EINA_LIST_FREE(list, desktop)
89 {
90 printf("efreet_util_desktop_mime_list(application/ogg): %s\n", desktop->name);
91 efreet_desktop_free(desktop);
92 }
93 }
94 printf("time: %.6f\n", (ecore_time_get() - start));
95
96 //EAPI Eina_List *efreet_util_desktop_exec_glob_list(const char *glob);
97 start = ecore_time_get();
98 list = efreet_util_desktop_exec_glob_list("*gnome*");
99 if (list)
100 {
101 EINA_LIST_FREE(list, desktop)
102 {
103 printf("efreet_util_desktop_exec_glob_list(*gnome*): %s\n", desktop->exec);
104 efreet_desktop_free(desktop);
105 }
106 }
107 printf("time: %.6f\n", (ecore_time_get() - start));
108
109 //EAPI Eina_List *efreet_util_desktop_categories_list(void);
110 start = ecore_time_get();
111 list = efreet_util_desktop_categories_list();
112 if (list)
113 {
114 EINA_LIST_FREE(list, id)
115 {
116 printf("efreet_util_desktop_categories_list(): %s\n", id);
117 }
118 }
119 printf("time: %.6f\n", (ecore_time_get() - start));
120
121 //EAPI Eina_List *efreet_util_desktop_category_list(const char *category);
122 start = ecore_time_get();
123 list = efreet_util_desktop_category_list("Graphics");
124 if (list)
125 {
126 EINA_LIST_FREE(list, desktop)
127 {
128 printf("efreet_util_desktop_category_list(Graphics): %s\n", desktop->name);
129 efreet_desktop_free(desktop);
130 }
131 }
132 printf("time: %.6f\n", (ecore_time_get() - start));
133
134 desktop = efreet_desktop_get("/opt/google/chrome/google-chrome.desktop");
135 if (desktop)
136 printf("%s: %d %d\n", desktop->orig_path, desktop->ref, desktop->eet);
137 desktop2 = efreet_desktop_new("/opt/google/chrome/google-chrome.desktop");
138 if (desktop2)
139 {
140 printf("%s: %d %d\n", desktop2->orig_path, desktop2->ref, desktop2->eet);
141 efreet_desktop_free(desktop2);
142 }
143 if (desktop)
144 efreet_desktop_free(desktop);
145
146 desktop = efreet_desktop_get("/usr/share/applications/firefox.desktop");
147 if (desktop)
148 printf("%s: %d %d\n", desktop->orig_path, desktop->ref, desktop->eet);
149 desktop2 = efreet_desktop_new("/usr/share/applications/firefox.desktop");
150 if (desktop2)
151 {
152 printf("%s: %d %d\n", desktop2->orig_path, desktop2->ref, desktop2->eet);
153 efreet_desktop_free(desktop2);
154 }
155 if (desktop)
156 efreet_desktop_free(desktop);
157 fflush(stdout);
158}
159
160static Eina_Bool
161icon_handler_cb(void *data EINA_UNUSED, int event_type EINA_UNUSED, void *event EINA_UNUSED)
162{
163 icon_cb = EINA_TRUE;
164 if (icon_cb && desktop_cb)
165 {
166 check();
167 ecore_main_loop_quit();
168 }
169 return ECORE_CALLBACK_PASS_ON;
170}
171
172static Eina_Bool
173desktop_handler_cb(void *data EINA_UNUSED, int event_type EINA_UNUSED, void *event EINA_UNUSED)
174{
175 desktop_cb = EINA_TRUE;
176 if (icon_cb && desktop_cb)
177 {
178 check();
179 ecore_main_loop_quit();
180 }
181 return ECORE_CALLBACK_PASS_ON;
182}
183
184int
185main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
186{
187 Ecore_Event_Handler *icon_handler;
188 Ecore_Event_Handler *desktop_handler;
189
190 if (!efreet_init()) return 1;
191 icon_handler = ecore_event_handler_add(EFREET_EVENT_ICON_CACHE_UPDATE, icon_handler_cb, NULL);
192 desktop_handler = ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_UPDATE, desktop_handler_cb, NULL);
193 check();
194 ecore_main_loop_begin();
195 ecore_event_handler_del(icon_handler);
196 ecore_event_handler_del(desktop_handler);
197 efreet_shutdown();
198 return 0;
199}
diff --git a/src/tests/efreet/ef_data_dirs.c b/src/tests/efreet/ef_data_dirs.c
new file mode 100644
index 0000000..a99b2ae
--- /dev/null
+++ b/src/tests/efreet/ef_data_dirs.c
@@ -0,0 +1,330 @@
1#include "Efreet.h"
2#include <Ecore_File.h>
3#include <stdio.h>
4#include <string.h>
5#include <stdlib.h>
6
7int
8ef_cb_efreet_data_home(void)
9{
10 const char *tmp;
11 int ret = 1;
12
13 efreet_shutdown();
14 setenv("XDG_DATA_HOME", "/var/tmp", 1);
15 efreet_init();
16
17 tmp = efreet_data_home_get();
18 if (strcmp(tmp, "/var/tmp"))
19 {
20 printf("efreet_data_home_get() returned incorrect "
21 "value (%s) on XDG_DATA_HOME=/var/tmp\n", tmp);
22 ret = 0;
23 }
24
25 /* reset efreet here so we can set a new home dir */
26 efreet_shutdown();
27 unsetenv("XDG_DATA_HOME");
28 setenv("HOME", "/home/tmp", 1);
29 efreet_init();
30
31 tmp = efreet_data_home_get();
32 if (strcmp(tmp, "/home/tmp/.local/share"))
33 {
34 printf("efreet_data_home_get() returned incorrect "
35 "value (%s) on blank XDG_DATA_HOME\n", tmp);
36 ret = 0;
37 }
38
39 /* reset efreet here so we can set a new home dir */
40 efreet_shutdown();
41 unsetenv("XDG_DATA_HOME");
42 unsetenv("HOME");
43#ifdef _WIN32
44 unsetenv("USERPROFILE");
45#endif
46 efreet_init();
47
48 tmp = efreet_data_home_get();
49 if (strcmp(tmp, "/tmp/.local/share"))
50 {
51 printf("efreet_data_home_get() returned incorrect "
52 "value (%s) on blank XDG_DATA_HOME and blank HOME\n", tmp);
53 ret = 0;
54 }
55
56 return ret;
57}
58
59int
60ef_cb_efreet_config_home(void)
61{
62 const char *tmp;
63 int ret = 1;
64
65 efreet_shutdown();
66 setenv("XDG_CONFIG_HOME", "/var/tmp", 1);
67 efreet_init();
68
69 tmp = efreet_config_home_get();
70 if (strcmp(tmp, "/var/tmp"))
71 {
72 printf("efreet_config_home_get() returned incorrect "
73 "value (%s) on XDG_CONFIG_HOME=/var/tmp\n", tmp);
74 ret = 0;
75 }
76
77 /* reset efreet here so we can set a new home dir */
78 efreet_shutdown();
79 unsetenv("XDG_CONFIG_HOME");
80 setenv("HOME", "/home/tmp", 1);
81 efreet_init();
82
83 tmp = efreet_config_home_get();
84 if (strcmp(tmp, "/home/tmp/.config"))
85 {
86 printf("efreet_config_home_get() returned incorrect "
87 "value (%s) on blank XDG_CONFIG_HOME\n", tmp);
88 ret = 0;
89 }
90
91 /* reset efreet here so we can set a new home dir */
92 efreet_shutdown();
93 unsetenv("XDG_CONFIG_HOME");
94 unsetenv("HOME");
95#ifdef _WIN32
96 unsetenv("USERPROFILE");
97#endif
98 efreet_init();
99
100 tmp = efreet_config_home_get();
101 if (strcmp(tmp, "/tmp/.config"))
102 {
103 printf("efreet_config_home_get() returned incorrect "
104 "value (%s) on blank XDG_CONFIG_HOME and blank HOME\n", tmp);
105 ret = 0;
106 }
107
108 return ret;
109}
110
111int
112ef_cb_efreet_cache_home(void)
113{
114 const char *tmp;
115 int ret = 1;
116
117 efreet_shutdown();
118 setenv("XDG_CACHE_HOME", "/var/tmp", 1);
119 efreet_init();
120
121 tmp = efreet_cache_home_get();
122 if (strcmp(tmp, "/var/tmp"))
123 {
124 printf("efreet_cache_home_get() returned incorrect "
125 "value (%s) on XDG_CACHE_HOME=/var/tmp\n", tmp);
126 ret = 0;
127 }
128
129 /* reset efreet here so we can set a new home dir */
130 efreet_shutdown();
131 unsetenv("XDG_CACHE_HOME");
132 setenv("HOME", "/home/tmp", 1);
133 efreet_init();
134
135 tmp = efreet_cache_home_get();
136 if (strcmp(tmp, "/home/tmp/.cache"))
137 {
138 printf("efreet_cache_home_get() returned incorrect "
139 "value (%s) on blank XDG_CACHE_HOME\n", tmp);
140 ret = 0;
141 }
142
143 /* reset efreet here so we can set a new home dir */
144 efreet_shutdown();
145 unsetenv("XDG_CACHE_HOME");
146 unsetenv("HOME");
147#ifdef _WIN32
148 unsetenv("USERPROFILE");
149#endif
150 efreet_init();
151
152 tmp = efreet_cache_home_get();
153 if (strcmp(tmp, "/tmp/.cache"))
154 {
155 printf("efreet_cache_home_get() returned incorrect "
156 "value (%s) on blank XDG_CACHE_HOME and blank HOME\n", tmp);
157 ret = 0;
158 }
159
160 return ret;
161}
162
163int
164ef_cb_efreet_data_dirs(void)
165{
166 Eina_List *tmp, *l;
167 int ret = 1;
168 unsigned int i;
169 unsigned int ok;
170 char dirs[128], *val;
171 char *vals[] = {"/var/tmp/a", "/tmp/b", "/usr/local/share", "/etc", NULL};
172 char *def_vals[] = {PACKAGE_DATA_DIR, "/usr/share", "/usr/local/share", NULL};
173
174 dirs[0] = '\0';
175 for (i = 0; vals[i]; i++)
176 {
177 if (i > 0) strcat(dirs, ":");
178 strcat(dirs, vals[i]);
179 }
180
181 efreet_shutdown();
182 setenv("XDG_DATA_DIRS", dirs, 1);
183 efreet_init();
184
185 ok = 0;
186 tmp = efreet_data_dirs_get();
187 for (i = 0; vals[i]; i++)
188 {
189 char *found;
190
191 found = eina_list_search_unsorted(tmp, EINA_COMPARE_CB(strcmp), vals[i]);
192 if (!ecore_file_exists(vals[i]) && found)
193 {
194 printf("efreet_data_dirs_get() includes non-existing dir (%s) when "
195 "%s set\n", vals[i], dirs);
196 ret = 0;
197 continue;
198 }
199 if (ecore_file_exists(vals[i]) && !found)
200 {
201 printf("efreet_data_dirs_get() is missing dir (%s) when "
202 "%s set\n", vals[i], dirs);
203 ret = 0;
204 continue;
205 }
206 if (ecore_file_exists(vals[i]) && found)
207 ok++;
208 }
209 if (eina_list_count(tmp) != ok)
210 {
211 printf("efreet_data_dirs_get() returned more values then it "
212 "should have given %s as input\n", dirs);
213 ret = 0;
214 }
215
216 efreet_shutdown();
217 unsetenv("XDG_DATA_DIRS");
218 efreet_init();
219
220 i = 0;
221 tmp = efreet_data_dirs_get();
222 if (eina_list_count(tmp) != 3)
223 {
224 printf("efreet_data_dirs_get() nodes is differnet from expected default\n");
225 ret = 0;
226 }
227
228 EINA_LIST_FOREACH(tmp, l, val)
229 {
230 if (!def_vals[i])
231 {
232 printf("efreet_data_dirs_get() returned more values then it "
233 "should have given %s as input\n", dirs);
234 ret = 0;
235 break;
236 }
237
238 if (strcmp(val, def_vals[i]))
239 {
240 printf("efreet_data_dirs_get() returned incorrect value (%s) when "
241 "XDG_DATA_DIRS= is set %s\n", val, def_vals[i]);
242 ret = 0;
243 }
244
245 i++;
246 }
247 return ret;
248}
249
250int
251ef_cb_efreet_config_dirs(void)
252{
253 Eina_List *tmp, *l;
254 int ret = 1;
255 unsigned int i;
256 unsigned int ok;
257 char dirs[128], *val;
258 char *vals[] = {"/var/tmp/a", "/tmp/b", "/usr/local/share", "/etc", NULL};
259 char *def_vals[] = {"/etc/xdg", NULL};
260
261 dirs[0] = '\0';
262
263 for (i = 0; vals[i]; i++)
264 {
265 if (i > 0) strcat(dirs, ":");
266 strcat(dirs, vals[i]);
267 }
268
269 efreet_shutdown();
270 setenv("XDG_CONFIG_DIRS", dirs, 1);
271 efreet_init();
272
273 ok = 0;
274 tmp = efreet_config_dirs_get();
275 for (i = 0; vals[i]; i++)
276 {
277 char *found;
278
279 found = eina_list_search_unsorted(tmp, EINA_COMPARE_CB(strcmp), vals[i]);
280 if (!ecore_file_exists(vals[i]) && found)
281 {
282 printf("efreet_data_dirs_get() includes non-existing dir (%s) when "
283 "%s set\n", vals[i], dirs);
284 ret = 0;
285 continue;
286 }
287 if (ecore_file_exists(vals[i]) && !found)
288 {
289 printf("efreet_data_dirs_get() is missing dir (%s) when "
290 "%s set\n", vals[i], dirs);
291 ret = 0;
292 continue;
293 }
294 if (ecore_file_exists(vals[i]) && found)
295 ok++;
296 }
297 if (eina_list_count(tmp) != ok)
298 {
299 printf("efreet_data_dirs_get() returned more values then it "
300 "should have given %s as input\n", dirs);
301 ret = 0;
302 }
303
304 efreet_shutdown();
305 unsetenv("XDG_CONFIG_DIRS");
306 efreet_init();
307
308 i = 0;
309 tmp = efreet_config_dirs_get();
310 EINA_LIST_FOREACH(tmp, l, val)
311 {
312 if (!def_vals[i])
313 {
314 printf("efreet_config_dirs_get() returned more values then it "
315 "should have given %s as input\n", dirs);
316 ret = 0;
317 break;
318 }
319
320 if (strcmp(val, def_vals[i]))
321 {
322 printf("efreet_config_dirs_get() returned incorrect value (%s) when "
323 "XDG_CONFIG_DIRS= is set\n", val);
324 ret = 0;
325 }
326
327 i++;
328 }
329 return ret;
330}
diff --git a/src/tests/efreet/ef_desktop.c b/src/tests/efreet/ef_desktop.c
new file mode 100644
index 0000000..d386b38
--- /dev/null
+++ b/src/tests/efreet/ef_desktop.c
@@ -0,0 +1,401 @@
1#include "Efreet.h"
2#include "config.h"
3#include <stdio.h>
4#include <string.h>
5#include <stdlib.h>
6#include <unistd.h>
7#include <limits.h>
8#include "ef_test.h"
9
10static void *_cb_command(void *data, Efreet_Desktop *desktop, char *exec, int remaining);
11
12
13int
14ef_cb_desktop_parse(void)
15{
16 Efreet_Desktop *desktop;
17 Eina_List *l;
18 int ret = 1;
19
20 desktop = efreet_desktop_get(PACKAGE_DATA_DIR"/efreet/test/test.desktop");
21 if (!desktop)
22 {
23 printf("No desktop found.\n");
24 return 0;
25 }
26
27 if (!desktop->name || strcmp(desktop->name, "Efreet Test Application"))
28 {
29 printf("Invalid Name\n");
30 ret = 0;
31 }
32
33 if (!desktop->generic_name ||
34 strcmp(desktop->generic_name, "Test Application"))
35 {
36 printf("Incorrent GenericName\n");
37 ret = 0;
38 }
39
40 if (!desktop->exec || strcmp(desktop->exec, "efreet_test %F %i"))
41 {
42 printf("Incorrect Exec (%s)\n", (desktop->exec ? desktop->exec : "(null)"));
43 ret = 0;
44 }
45
46 if (desktop->categories)
47 {
48 const char *categories[] = {"Test", "Enlightenment"};
49 const char *cat;
50 int num_categories = 2, i = 0;
51
52 EINA_LIST_FOREACH(desktop->categories, l, cat)
53 {
54 if (i >= num_categories)
55 {
56 printf("Too many categories found.\n");
57 ret = 0;
58 break;
59 }
60
61 if (!cat || !categories[i] || strcmp(cat, categories[i]))
62 {
63 printf("Expected category %s, found %s\n", categories[i], cat);
64 ret = 0;
65 }
66 i++;
67 }
68 }
69 else ret = 0;
70
71 efreet_desktop_free(desktop);
72
73 return ret;
74}
75
76#if 0
77int
78ef_cb_desktop_file_id(void)
79{
80 Efreet_Desktop *desktop;
81 int ret = 1;
82
83 desktop = efreet_desktop_get(PACKAGE_DATA_DIR"/efreet/test/test.desktop");
84 if (desktop)
85 {
86 const char *id;
87 int i = 0;
88
89 struct {
90 char *dir;
91 int legacy;
92 char *prefix;
93 char *expected;
94 } tests[] = {
95 {PACKAGE_DATA_DIR"/efreet/test/", 0, NULL, "test.desktop"},
96 {PACKAGE_DATA_DIR"/efreet/", 0, NULL, "test-test.desktop"},
97 {PACKAGE_DATA_DIR"/efreet/", 1, NULL, "test.desktop"},
98 {PACKAGE_DATA_DIR"/efreet/", 1, "prefix", "prefix-test.desktop"},
99 {NULL, 0, NULL, NULL}
100 };
101
102 for (i = 0; tests[i].dir != NULL; i++)
103 {
104 id = efreet_desktop_id_get(desktop,
105 tests[i].dir,
106 tests[i].legacy,
107 tests[i].prefix);
108 if (!id || strcmp(id, tests[i].expected))
109 {
110 printf("Expecting id: %s, got: %s\n", tests[i].expected, id);
111 ret = 0;
112 }
113 if (id) eina_stringshare_del(id);
114 }
115 }
116 else
117 ret = 0;
118
119 return ret;
120}
121#endif
122
123int
124ef_cb_desktop_save(void)
125{
126 Efreet_Desktop *desktop;
127
128 printf("\n");
129 desktop = efreet_desktop_get(PACKAGE_DATA_DIR"/efreet/test/test.desktop");
130 if (!desktop)
131 {
132 printf("Failed to get Desktop file\n");
133 return 0;
134 }
135
136 printf("save data: %d\n", efreet_desktop_save(desktop));
137 efreet_desktop_free(desktop);
138
139 desktop = efreet_desktop_empty_new("/tmp/test.desktop");
140 desktop->name = strdup("Efreet Test Application");
141 desktop->type = EFREET_DESKTOP_TYPE_APPLICATION;
142 desktop->generic_name = strdup("Test Application");
143 desktop->exec = strdup("efreet_test");
144 desktop->categories = NULL;
145 desktop->categories = eina_list_append(desktop->categories, eina_stringshare_add("Test"));
146 desktop->categories = eina_list_append(desktop->categories, eina_stringshare_add("Enlightenment"));
147 printf("save test: %d\n", efreet_desktop_save(desktop));
148 unlink("/tmp/test.desktop");
149 efreet_desktop_free(desktop);
150
151 return 1;
152}
153
154typedef struct
155{
156 Eina_List *expected;
157 int error;
158 char type;
159} Test_Info;
160
161int
162ef_cb_desktop_command_get(void)
163{
164 Efreet_Desktop *desktop;
165 Eina_List *files, *expected;
166 char olddir[PATH_MAX];
167 Test_Info *info;
168 int ret;
169
170 if (getcwd(olddir, PATH_MAX) != 0) ret = 0;
171 if (chdir("/") != 0) ret = 0;
172
173 printf("\n");
174 desktop = efreet_desktop_empty_new("test.desktop");
175
176 desktop->name = strdup("App Name");
177 desktop->icon = strdup("icon.png");
178
179 files = NULL;
180 files = eina_list_append(files, "/tmp/absolute_path");
181 files = eina_list_append(files, "relative_path");
182 files = eina_list_append(files, "file:///tmp/absolute_uri");
183 files = eina_list_append(files, "file:relative_uri");
184
185 info = NEW(Test_Info, 1);
186 expected = NULL;
187 info->error = 0;
188
189 /* test single full path */
190 info->type = 'f';
191 IF_FREE(desktop->exec);
192 desktop->exec = strdup("app %f");
193 expected = eina_list_append(expected, "app '/tmp/absolute_path'");
194 expected = eina_list_append(expected, "app '/relative_path'");
195 expected = eina_list_append(expected, "app '/tmp/absolute_uri'");
196 expected = eina_list_append(expected, "app '/relative_uri'");
197
198 info->expected = expected;
199 efreet_desktop_command_get(desktop, files, _cb_command, info);
200 expected = eina_list_free(expected);
201
202 /* test single uri */
203 info->type = 'u';
204 IF_FREE(desktop->exec);
205 desktop->exec = strdup("app %u");
206 expected = eina_list_append(expected, "app 'file:///tmp/absolute_path'");
207 expected = eina_list_append(expected, "app 'file:///relative_path'");
208 expected = eina_list_append(expected, "app 'file:///tmp/absolute_uri'");
209 expected = eina_list_append(expected, "app 'file:///relative_uri'");
210
211 info->expected = expected;
212 efreet_desktop_command_get(desktop, files, _cb_command, info);
213 expected = eina_list_free(expected);
214
215 /* test single dir */
216#if 0
217 info->type = 'd';
218 IF_FREE(desktop->exec);
219 desktop->exec = strdup("app %d");
220 expected = eina_list_append(expected, "app '/tmp'");
221 expected = eina_list_append(expected, "app '/'");
222 expected = eina_list_append(expected, "app '/tmp'");
223 expected = eina_list_append(expected, "app '/'");
224
225 info->expected = expected;
226 efreet_desktop_command_get(desktop, files, _cb_command, info);
227 expected = eina_list_free(expected);
228#endif
229
230
231 /* test single names */
232#if 0
233 info->type = 'n';
234 IF_FREE(desktop->exec);
235 desktop->exec = strdup("app %n");
236 expected = eina_list_append(expected, "app 'absolute_path'");
237 expected = eina_list_append(expected, "app 'relative_path'");
238 expected = eina_list_append(expected, "app 'absolute_uri'");
239 expected = eina_list_append(expected, "app 'relative_uri'");
240
241 info->expected = expected;
242 efreet_desktop_command_get(desktop, files, _cb_command, info);
243 expected = eina_list_free(expected);
244#endif
245
246 /* test multiple fullpaths */
247 info->type = 'F';
248 IF_FREE(desktop->exec);
249 desktop->exec = strdup("app %F");
250 expected = eina_list_append(expected, "app '/tmp/absolute_path' '/relative_path' '/tmp/absolute_uri' '/relative_uri'");
251
252 info->expected = expected;
253 efreet_desktop_command_get(desktop, files, _cb_command, info);
254 expected = eina_list_free(expected);
255
256 /* test multiple URIs */
257 info->type = 'U';
258 IF_FREE(desktop->exec);
259 desktop->exec = strdup("app %U");
260 expected = eina_list_append(expected, "a