diff --git a/legacy/efreet/Makefile.am b/legacy/efreet/Makefile.am index a5dbb371f3..5e4fbf9b63 100644 --- a/legacy/efreet/Makefile.am +++ b/legacy/efreet/Makefile.am @@ -34,10 +34,58 @@ efreet.pc.in \ efreet-mime.pc.in \ efreet.spec.in \ efreet.spec \ +m4/efl_coverage.m4\ +m4/efl_tests.m4\ README -.PHONY: doc +.PHONY: doc coverage doc: @echo "entering doc/" make -C doc doc + +# Unit tests + +if EFL_ENABLE_TESTS + +check-local: + @./src/tests/efreet_suite + +else + +check-local: + @echo "reconfigure with --enable-tests" + +endif + +# Coverage report + +if EFL_ENABLE_COVERAGE +lcov-reset: + @rm -rf coverage + @find . -name "*.gcda" -exec rm {} \; + @lcov --directory . --zerocounters + +lcov-report: + @mkdir coverage + @lcov --compat-libtool --directory $(top_srcdir)/src --capture --output-file coverage/coverage.info + @lcov -l coverage/coverage.info | grep -v "`cd $(top_srcdir) && pwd`" | cut -d: -f1 > coverage/remove + @lcov -r coverage/coverage.info `cat coverage/remove` > coverage/coverage.cleaned.info + @rm coverage/remove + @mv coverage/coverage.cleaned.info coverage/coverage.info + @genhtml -t "$(PACKAGE_STRING)" -o coverage coverage/coverage.info + +coverage: + @make lcov-reset + @make check + @make lcov-report +else +lcov-reset: + @echo "reconfigure with --enable-coverage" + +lcov-report: + @echo "reconfigure with --enable-coverage" + +coverage: + @echo "reconfigure with --enable-tests --enable-coverage" +endif diff --git a/legacy/efreet/configure.ac b/legacy/efreet/configure.ac index 8f810da654..5a8da4d30a 100644 --- a/legacy/efreet/configure.ac +++ b/legacy/efreet/configure.ac @@ -219,6 +219,17 @@ AC_ISC_POSIX AC_FUNC_ALLOCA AC_CHECK_FUNCS(strlcpy) +### Unit tests, coverage + +EFL_CHECK_TESTS([enable_tests="yes"], [enable_tests="no"]) + +EFL_CHECK_COVERAGE([${enable_tests}], [enable_coverage="yes"], [enable_coverage="no"]) +EFREET_CFLAGS="${EFREET_CFLAGS} ${EFL_COVERAGE_CFLAGS}" +EFREET_LIBS="${EFREET_LIBS} ${EFL_COVERAGE_LIBS}" +if test "x$enable_coverage" = "xyes" ; then + EFREET_CFLAGS="${EFREET_CFLAGS} ${EFL_DEBUG_CFLAGS}" +fi + AC_SUBST(requirement_efreet) AC_OUTPUT([ @@ -232,6 +243,10 @@ doc/Doxyfile src/Makefile src/lib/Makefile src/bin/Makefile +src/tests/Makefile +src/tests/data/Makefile +src/tests/data/sub/Makefile +src/tests/compare/Makefile ]) @@ -253,6 +268,9 @@ echo " Sloppy.............: ${enable_sloppy_spec}" echo echo " Icon cache...........: ${enable_icon_cache}" echo +echo " Tests................: ${enable_tests}" +echo " Coverage.............: ${enable_coverage}" +echo echo " Documentation........: ${build_doc}" echo echo "Compilation............: make (or gmake)" diff --git a/legacy/efreet/src/Makefile.am b/legacy/efreet/src/Makefile.am index ad292fa269..add035f9cc 100644 --- a/legacy/efreet/src/Makefile.am +++ b/legacy/efreet/src/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = lib bin +SUBDIRS = lib bin tests MAINTAINERCLEANFILES = Makefile.in diff --git a/legacy/efreet/src/tests/.cvsignore b/legacy/efreet/src/tests/.cvsignore new file mode 100644 index 0000000000..d8dfbd79a4 --- /dev/null +++ b/legacy/efreet/src/tests/.cvsignore @@ -0,0 +1,7 @@ +.deps +.libs +Makefile +Makefile.in +efreet_spec_test +efreet_test +efreet_cache_test diff --git a/legacy/efreet/src/tests/Makefile.am b/legacy/efreet/src/tests/Makefile.am new file mode 100644 index 0000000000..06155d0b5d --- /dev/null +++ b/legacy/efreet/src/tests/Makefile.am @@ -0,0 +1,69 @@ + +SUBDIRS = data compare + +MAINTAINERCLEANFILES = Makefile.in + +AM_CPPFLAGS = \ +-I. \ +-I$(top_srcdir)/src/lib \ +-DPACKAGE_BIN_DIR=\"$(bindir)\" \ +-DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ +@EFREET_CFLAGS@ + +bin_PROGRAMS = efreet_test efreet_spec_test efreet_cache_test + +if ICON_CACHE +bin_PROGRAMS += efreet_icon_cache_dump +endif + +efreet_test_LDADD = $(top_builddir)/src/lib/libefreet.la \ + $(top_builddir)/src/lib/libefreet_mime.la \ + @EFREET_LIBS@ +efreet_test_SOURCES = \ +ef_test.h \ +ef_data_dirs.c \ +ef_icon_theme.c \ +ef_ini.c \ +ef_utils.c \ +ef_desktop.c \ +ef_menu.c \ +ef_mime.c \ +main.c + +if DEFAULT_VISIBILITY +efreet_test_SOURCES += \ +ef_locale.c +endif + +efreet_spec_test_LDADD = $(top_builddir)/src/lib/libefreet.la @EINA_LIBS@ +efreet_spec_test_SOURCES = \ +efreet_spec_test.c + +efreet_cache_test_LDADD = $(top_builddir)/src/lib/libefreet.la @EFREET_LIBS@ +efreet_cache_test_SOURCES = \ +ef_cache.c + +if EFL_ENABLE_TESTS + +check_PROGRAMS = efreet_suite + +efreet_suite_SOURCES = \ +efreet_suite.c \ +efreet_test_efreet.c \ +efreet_test_efreet_cache.c + +efreet_suite_LDADD = @CHECK_LIBS@ $(top_builddir)/src/lib/libefreet.la + +endif + +if ICON_CACHE + +efreet_icon_cache_dump_LDADD = \ +$(top_builddir)/src/lib/libefreet.la \ +@EFREET_LIBS@ + +efreet_icon_cache_dump_SOURCES = \ +efreet_icon_cache_dump.c + +endif diff --git a/legacy/efreet/src/tests/compare/.cvsignore b/legacy/efreet/src/tests/compare/.cvsignore new file mode 100644 index 0000000000..695ac40781 --- /dev/null +++ b/legacy/efreet/src/tests/compare/.cvsignore @@ -0,0 +1,8 @@ +.deps +.libs +Makefile +Makefile.in +compare_results +ecore_alloc +efreet_alloc +efreet_menu_alloc diff --git a/legacy/efreet/src/tests/compare/Makefile.am b/legacy/efreet/src/tests/compare/Makefile.am new file mode 100644 index 0000000000..bb43591a2f --- /dev/null +++ b/legacy/efreet/src/tests/compare/Makefile.am @@ -0,0 +1,15 @@ +MAINTAINERCLEANFILES = Makefile.in + +AM_CPPFLAGS = \ +-I. \ +-I$(top_srcdir)/src/lib \ +@EFREET_CFLAGS@ + +bin_PROGRAMS = efreet_alloc efreet_menu_alloc + +efreet_menu_alloc_SOURCES = efreet_menu_alloc.c comp.h +efreet_menu_alloc_LDADD = $(top_builddir)/src/lib/libefreet.la @EFREET_LIBS@ + +efreet_alloc_SOURCES = efreet_alloc.c comp.h +efreet_alloc_LDADD = $(top_builddir)/src/lib/libefreet.la @EFREET_LIBS@ + diff --git a/legacy/efreet/src/tests/compare/comp.h b/legacy/efreet/src/tests/compare/comp.h new file mode 100644 index 0000000000..c02eebe2cf --- /dev/null +++ b/legacy/efreet/src/tests/compare/comp.h @@ -0,0 +1,527 @@ +#ifndef COMP_H +#define COMP_H + +#define LOOPS 1000 +#define THEME "Tango" +#define SIZE 16 + +#define ADDRESS_BOOK_NEW "address-book-new" +#define APPLICATION_EXIT "application-exit" +#define APPOINTMENT_NEW "appointment-new" +#define CONTACT_NEW "contact-new" +#define DIALOG_APPLY "dialog-apply" +#define DIALOG_CANCEL "dialog-cancel" +#define DIALOG_CLOSE "dialog-close" +#define DIALOG_OK "dialog-ok" +#define DOCUMENT_NEW "document-new" +#define DOCUMENT_OPEN "document-open" +#define DOCUMENT_OPEN_RECENT "document-open-recent" +#define DOCUMENT_PAGE_SETUP "document-page-setup" +#define DOCUMENT_PRINT "document-print" +#define DOCUMENT_PRINT_PREVIEW "document-print-preview" +#define DOCUMENT_PROPERTIES "document-properties" +#define DOCUMENT_REVERT "document-revert" +#define DOCUMENT_SAVE "document-save" +#define DOCUMENT_SAVE_AS "document-save-as" +#define EDIT_COPY "edit-copy" +#define EDIT_CUT "edit-cut" +#define EDIT_DELETE "edit-delete" +#define EDIT_FIND "edit-find" +#define EDIT_FIND_REPLACE "edit-find-replace" +#define EDIT_PASTE "edit-paste" +#define EDIT_REDO "edit-redo" +#define EDIT_SELECT_ALL "edit-select-all" +#define EDIT_UNDO "edit-undo" +#define FORMAT_INDENT_LESS "format-indent-less" +#define FORMAT_INDENT_MORE "format-indent-more" +#define FORMAT_JUSTIFY_CENTER "format-justify-center" +#define FORMAT_JUSTIFY_FILL "format-justify-fill" +#define FORMAT_JUSTIFY_LEFT "format-justify-left" +#define FORMAT_JUSTIFY_RIGHT "format-justify-right" +#define FORMAT_TEXT_DIRECTION_LTR "format-text-direction-ltr" +#define FORMAT_TEXT_DIRECTION_RTL "format-text-direction-rtl" +#define FORMAT_TEXT_BOLD "format-text-bold" +#define FORMAT_TEXT_ITALIC "format-text-italic" +#define FORMAT_TEXT_UNDERLINE "format-text-underline" +#define FORMAT_TEXT_STRIKETHROUGH "format-text-strikethrough" +#define GO_BOTTOM "go-bottom" +#define GO_DOWN "go-down" +#define GO_FIRST "go-first" +#define GO_HOME "go-home" +#define GO_JUMP "go-jump" +#define GO_LAST "go-last" +#define GO_NEXT "go-next" +#define GO_PREVIOUS "go-previous" +#define GO_TOP "go-top" +#define GO_UP "go-up" +#define HELP_ABOUT "help-about" +#define HELP_CONTENTS "help-contents" +#define HELP_FAQ "help-faq" +#define INSERT_IMAGE "insert-image" +#define INSERT_LINK "insert-link" +#define INSERT_OBJECT "insert-object" +#define INSERT_TEXT "insert-text" +#define LIST_ADD "list-add" +#define LIST_REMOVE "list-remove" +#define MAIL_FORWARD "mail-forward" +#define MAIL_MARK_IMPORTANT "mail-mark-important" +#define MAIL_MARK_JUNK "mail-mark-junk" +#define MAIL_MARK_NOTJUNK "mail-mark-notjunk" +#define MAIL_MARK_READ "mail-mark-read" +#define MAIL_MARK_UNREAD "mail-mark-unread" +#define MAIL_MESSAGE_NEW "mail-message-new" +#define MAIL_REPLY_ALL "mail-reply-all" +#define MAIL_REPLY_SENDER "mail-reply-sender" +#define MAIL_SEND_RECEIVE "mail-send-receive" +#define MEDIA_EJECT "media-eject" +#define MEDIA_PLAYBACK_PAUSE "media-playback-pause" +#define MEDIA_PLAYBACK_START "media-playback-start" +#define MEDIA_PLAYBACK_STOP "media-playback-stop" +#define MEDIA_RECORD "media-record" +#define MEDIA_SEEK_BACKWARD "media-seek-backward" +#define MEDIA_SEEK_FORWARD "media-seek-forward" +#define MEDIA_SKIP_BACKWARD "media-skip-backward" +#define MEDIA_SKIP_FORWARD "media-skip-forward" +#define SYSTEM_LOCK_SCREEN "system-lock-screen" +#define SYSTEM_LOG_OUT "system-log-out" +#define SYSTEM_RUN "system-run" +#define SYSTEM_SEARCH "system-search" +#define TOOLS_CHECK_SPELLING "tools-check-spelling" +#define VIEW_FULLSCREEN "view-fullscreen" +#define VIEW_REFRESH "view-refresh" +#define VIEW_SORT_ASCENDING "view-sort-ascending" +#define VIEW_SORT_DESCENDING "view-sort-descending" +#define WINDOW_CLOSE "window-close" +#define WINDOW_NEW "window-new" +#define ZOOM_BEST_FIT "zoom-best-fit" +#define ZOOM_IN "zoom-in" +#define ZOOM_ORIGINAL "zoom-original" +#define ZOOM_OUT "zoom-out" + +#define PROCESS_WORKING "process-working" + +#define ACCESSORIES_CALCULATOR "accessories-calculator" +#define ACCESSORIES_CHARACTER_MAP "accessories-character-map" +#define ACCESSORIES_DICTIONARY "accessories-dictionary" +#define ACCESSORIES_TEXT_EDITOR "accessories-text-editor" +#define HELP_BROWSER "help-browser" +#define MULTIMEDIA_VOLUME_CONTROL "multimedia-volume-control" +#define PREFERENCES_DESKTOP_ACCESSIBILITY "preferences-desktop-accessibility" +#define PREFERENCES_DESKTOP_FONT "preferences-desktop-font" +#define PREFERENCES_DESKTOP_KEYBOARD "preferences-desktop-keyboard" +#define PREFERENCES_DESKTOP_LOCALE "preferences-desktop-locale" +#define PREFERENCES_DESKTOP_MULTIMEDIA "preferences-desktop-multimedia" +#define PREFERENCES_DESKTOP_SCREENSAVER "preferences-desktop-screensaver" +#define PREFERENCES_DESKTOP_THEME "preferences-desktop-theme" +#define PREFERENCES_DESKTOP_WALLPAPER "preferences-desktop-wallpaper" +#define SYSTEM_FILE_MANAGER "system-file-manager" +#define SYSTEM_SOFTWARE_UPDATE "system-software-update" +#define UTILITIES_TERMINAL "utilities-terminal" + +#define APPLICATIONS_ACCESSORIES "applications-accessories" +#define APPLICATIONS_DEVELOPMENT "applications-development" +#define APPLICATIONS_GAMES "applications-games" +#define APPLICATIONS_GRAPHICS "applications-graphics" +#define APPLICATIONS_INTERNET "applications-internet" +#define APPLICATIONS_MULTIMEDIA "applications-multimedia" +#define APPLICATIONS_OFFICE "applications-office" +#define APPLICATIONS_OTHER "applications-other" +#define APPLICATIONS_SYSTEM "applications-system" +#define APPLICATIONS_UTILITIES "applications-utilities" +#define PREFERENCES_DESKTOP "preferences-desktop" +#define PREFERENCES_DESKTOP_ACCESSIBILITY "preferences-desktop-accessibility" +#define PREFERENCES_DESKTOP_PERIPHERALS "preferences-desktop-peripherals" +#define PREFERENCES_DESKTOP_PERSONAL "preferences-desktop-personal" +#define PREFERENCES_OTHER "preferences-other" +#define PREFERENCES_SYSTEM "preferences-system" +#define PREFERENCES_SYSTEM_NETWORK "preferences-system-network" +#define SYSTEM_HELP "system-help" + +#define AUDIO_CARD "audio-card" +#define AUDIO_INPUT_MICROPHONE "audio-input-microphone" +#define BATTERY "battery" +#define CAMERA_PHOTO "camera-photo" +#define CAMERA_VIDEO "camera-video" +#define COMPUTER "computer" +#define DRIVE_CDROM "drive-cdrom" +#define DRIVE_HARDDISK "drive-harddisk" +#define DRIVE_REMOVABLE_MEDIA "drive-removable-media" +#define INPUT_GAMING "input-gaming" +#define INPUT_KEYBOARD "input-keyboard" +#define INPUT_MOUSE "input-mouse" +#define MEDIA_CDROM "media-cdrom" +#define MEDIA_FLOPPY "media-floppy" +#define MULTIMEDIA_PLAYER "multimedia-player" +#define NETWORK_WIRED "network-wired" +#define NETWORK_WIRELESS "network-wireless" +#define PRINTER "printer" + +#define EMBLEM_DEFAULT "emblem-default" +#define EMBLEM_DOCUMENTS "emblem-documents" +#define EMBLEM_DOWNLOADS "emblem-downloads" +#define EMBLEM_FAVORITE "emblem-favorite" +#define EMBLEM_IMPORTANT "emblem-important" +#define EMBLEM_MAIL "emblem-mail" +#define EMBLEM_PHOTOS "emblem-photos" +#define EMBLEM_READONLY "emblem-readonly" +#define EMBLEM_SHARED "emblem-shared" +#define EMBLEM_SYMBOLIC_LINK "emblem-symbolic-link" +#define EMBLEM_SYNCHRONIZED "emblem-synchronized" +#define EMBLEM_SYSTEM "emblem-system" +#define EMBLEM_UNREADABLE "emblem-unreadable" + +#define FACE_ANGEL "face-angel" +#define FACE_CRYING "face-crying" +#define FACE_DEVIL_GRIN "face-devil-grin" +#define FACE_DEVIL_SAD "face-devil-sad" +#define FACE_GLASSES "face-glasses" +#define FACE_KISS "face-kiss" +#define FACE_MONKEY "face-monkey" +#define FACE_PLAIN "face-plain" +#define FACE_SAD "face-sad" +#define FACE_SMILE "face-smile" +#define FACE_SMILE_BIG "face-smile-big" +#define FACE_SMIRK "face-smirk" +#define FACE_SURPRISE "face-surprise" +#define FACE_WINK "face-wink" + +#define APPLICATION_X_EXECUTABLE "application-x-executable" +#define AUDIO_X_GENERIC "audio-x-generic" +#define FONT_X_GENERIC "font-x-generic" +#define IMAGE_X_GENERIC "image-x-generic" +#define PACKAGE_X_GENERIC "package-x-generic" +#define TEXT_HTML "text-html" +#define TEXT_X_GENERIC "text-x-generic" +#define TEXT_X_GENERIC_TEMPLATE "text-x-generic-template" +#define TEXT_X_SCRIPT "text-x-script" +#define VIDEO_X_GENERIC "video-x-generic" +#define X_OFFICE_ADDRESS_BOOK "x-office-address-book" +#define X_OFFICE_CALENDAR "x-office-calendar" +#define X_OFFICE_DOCUMENT "x-office-document" +#define X_OFFICE_PRESENTATION "x-office-presentation" +#define X_OFFICE_SPREADSHEET "x-office-spreadsheet" + +#define FOLDER "folder" +#define FOLDER_REMOTE "folder-remote" +#define NETWORK_SERVER "network-server" +#define NETWORK_WORKGROUP "network-workgroup" +#define START_HERE "start-here" +#define USER_DESKTOP "user-desktop" +#define USER_HOME "user-home" +#define USER_TRASH "user-trash" + +#define APPOINTMENT_MISSED "appointment-missed" +#define APPOINTMENT_SOON "appointment-soon" +#define AUDIO_VOLUME_HIGH "audio-volume-high" +#define AUDIO_VOLUME_LOW "audio-volume-low" +#define AUDIO_VOLUME_MEDIUM "audio-volume-medium" +#define AUDIO_VOLUME_MUTED "audio-volume-muted" +#define BATTERY_CAUTION "battery-caution" +#define BATTERY_LOW "battery-low" +#define DIALOG_ERROR "dialog-error" +#define DIALOG_INFORMATION "dialog-information" +#define DIALOG_PASSWORD "dialog-password" +#define DIALOG_QUESTION "dialog-question" +#define DIALOG_WARNING "dialog-warning" +#define FOLDER_DRAG_ACCEPT "folder-drag-accept" +#define FOLDER_OPEN "folder-open" +#define FOLDER_VISITING "folder-visiting" +#define IMAGE_LOADING "image-loading" +#define IMAGE_MISSING "image-missing" +#define MAIL_ATTACHMENT "mail-attachment" +#define MAIL_UNREAD "mail-unread" +#define MAIL_READ "mail-read" +#define MAIL_REPLIED "mail-replied" +#define MAIL_SIGNED "mail-signed" +#define MAIL_SIGNED_VERIFIED "mail-signed-verified" +#define MEDIA_PLAYLIST_REPEAT "media-playlist-repeat" +#define MEDIA_PLAYLIST_SHUFFLE "media-playlist-shuffle" +#define NETWORK_ERROR "network-error" +#define NETWORK_IDLE "network-idle" + +#define NETWORK_OFFLINE "network-offline" +#define NETWORK_RECEIVE "network-receive" +#define NETWORK_TRANSMIT "network-transmit" +#define NETWORK_TRANSMIT_RECEIVE "network-transmit-receive" +#define PRINTER_ERROR "printer-error" +#define PRINTER_PRINTING "printer-printing" +#define SOFTWARE_UPDATE_AVAILABLE "software-update-available" +#define SOFTWARE_UPDATE_URGENT "software-update-urgent" +#define SYNC_ERROR "sync-error" +#define SYNC_SYNCHRONIZING "sync-synchronizing" +#define TASK_DUE "task-due" +#define TASK_PASSED_DUE "task-passed-due" +#define USER_AWAY "user-away" +#define USER_IDLE "user-idle" +#define USER_OFFLINE "user-offline" +#define USER_ONLINE "user-online" +#define USER_TRASH_FULL "user-trash-full" +#define WEATHER_CLEAR "weather-clear" +#define WEATHER_CLEAR_NIGHT "weather-clear-night" +#define WEATHER_FEW_CLOUDS "weather-few-clouds" +#define WEATHER_FEW_CLOUDS_NIGHT "weather-few-clouds-night" +#define WEATHER_FOG "weather-fog" +#define WEATHER_OVERCAST "weather-overcast" +#define WEATHER_SEVERE_ALERT "weather-severe-alert" +#define WEATHER_SHOWERS "weather-showers" +#define WEATHER_SHOWERS_SCATTERED "weather-showers-scattered" +#define WEATHER_SNOW "weather-snow" +#define WEATHER_STORM "weather-storm" + +const char *icons[] = { + ADDRESS_BOOK_NEW, + APPLICATION_EXIT, + APPOINTMENT_NEW, + CONTACT_NEW, + DIALOG_APPLY, + DIALOG_CANCEL, + DIALOG_CLOSE, + DIALOG_OK, + DOCUMENT_NEW, + DOCUMENT_OPEN, + DOCUMENT_OPEN_RECENT, + DOCUMENT_PAGE_SETUP, + DOCUMENT_PRINT, + DOCUMENT_PRINT_PREVIEW, + DOCUMENT_PROPERTIES, + DOCUMENT_REVERT, + DOCUMENT_SAVE, + DOCUMENT_SAVE_AS, + EDIT_COPY, + EDIT_CUT, + EDIT_DELETE, + EDIT_FIND, + EDIT_FIND_REPLACE, + EDIT_PASTE, + EDIT_REDO, + EDIT_SELECT_ALL, + EDIT_UNDO, + FORMAT_INDENT_LESS, + FORMAT_INDENT_MORE, + FORMAT_JUSTIFY_CENTER, + FORMAT_JUSTIFY_FILL, + FORMAT_JUSTIFY_LEFT, + FORMAT_JUSTIFY_RIGHT, + FORMAT_TEXT_DIRECTION_LTR, + FORMAT_TEXT_DIRECTION_RTL, + FORMAT_TEXT_BOLD, + FORMAT_TEXT_ITALIC, + FORMAT_TEXT_UNDERLINE, + FORMAT_TEXT_STRIKETHROUGH, + GO_BOTTOM, + GO_DOWN, + GO_FIRST, + GO_HOME, + GO_JUMP, + GO_LAST, + GO_NEXT, + GO_PREVIOUS, + GO_TOP, + GO_UP, + HELP_ABOUT, + HELP_CONTENTS, + HELP_FAQ, + INSERT_IMAGE, + INSERT_LINK, + INSERT_OBJECT, + INSERT_TEXT, + LIST_ADD, + LIST_REMOVE, + MAIL_FORWARD, + MAIL_MARK_IMPORTANT, + MAIL_MARK_JUNK, + MAIL_MARK_NOTJUNK, + MAIL_MARK_READ, + MAIL_MARK_UNREAD, + MAIL_MESSAGE_NEW, + MAIL_REPLY_ALL, + MAIL_REPLY_SENDER, + MAIL_SEND_RECEIVE, + MEDIA_EJECT, + MEDIA_PLAYBACK_PAUSE, + MEDIA_PLAYBACK_START, + MEDIA_PLAYBACK_STOP, + MEDIA_RECORD, + MEDIA_SEEK_BACKWARD, + MEDIA_SEEK_FORWARD, + MEDIA_SKIP_BACKWARD, + MEDIA_SKIP_FORWARD, + SYSTEM_LOCK_SCREEN, + SYSTEM_LOG_OUT, + SYSTEM_RUN, + SYSTEM_SEARCH, + TOOLS_CHECK_SPELLING, + VIEW_FULLSCREEN, + VIEW_REFRESH, + VIEW_SORT_ASCENDING, + VIEW_SORT_DESCENDING, + WINDOW_CLOSE, + WINDOW_NEW, + ZOOM_BEST_FIT, + ZOOM_IN, + ZOOM_ORIGINAL, + ZOOM_OUT, + PROCESS_WORKING, + ACCESSORIES_CALCULATOR, + ACCESSORIES_CHARACTER_MAP, + ACCESSORIES_DICTIONARY, + ACCESSORIES_TEXT_EDITOR, + HELP_BROWSER, + MULTIMEDIA_VOLUME_CONTROL, + PREFERENCES_DESKTOP_ACCESSIBILITY, + PREFERENCES_DESKTOP_FONT, + PREFERENCES_DESKTOP_KEYBOARD, + PREFERENCES_DESKTOP_LOCALE, + PREFERENCES_DESKTOP_MULTIMEDIA, + PREFERENCES_DESKTOP_SCREENSAVER, + PREFERENCES_DESKTOP_THEME, + PREFERENCES_DESKTOP_WALLPAPER, + SYSTEM_FILE_MANAGER, + SYSTEM_SOFTWARE_UPDATE, + UTILITIES_TERMINAL, + APPLICATIONS_ACCESSORIES, + APPLICATIONS_DEVELOPMENT, + APPLICATIONS_GAMES, + APPLICATIONS_GRAPHICS, + APPLICATIONS_INTERNET, + APPLICATIONS_MULTIMEDIA, + APPLICATIONS_OFFICE, + APPLICATIONS_OTHER, + APPLICATIONS_SYSTEM, + APPLICATIONS_UTILITIES, + PREFERENCES_DESKTOP, + PREFERENCES_DESKTOP_ACCESSIBILITY, + PREFERENCES_DESKTOP_PERIPHERALS, + PREFERENCES_DESKTOP_PERSONAL, + PREFERENCES_OTHER, + PREFERENCES_SYSTEM, + PREFERENCES_SYSTEM_NETWORK, + SYSTEM_HELP, + AUDIO_CARD, + AUDIO_INPUT_MICROPHONE, + BATTERY, + CAMERA_PHOTO, + CAMERA_VIDEO, + COMPUTER, + DRIVE_CDROM, + DRIVE_HARDDISK, + DRIVE_REMOVABLE_MEDIA, + INPUT_GAMING, + INPUT_KEYBOARD, + INPUT_MOUSE, + MEDIA_CDROM, + MEDIA_FLOPPY, + MULTIMEDIA_PLAYER, + NETWORK_WIRED, + NETWORK_WIRELESS, + PRINTER, + EMBLEM_DEFAULT, + EMBLEM_DOCUMENTS, + EMBLEM_DOWNLOADS, + EMBLEM_FAVORITE, + EMBLEM_IMPORTANT, + EMBLEM_MAIL, + EMBLEM_PHOTOS, + EMBLEM_READONLY, + EMBLEM_SHARED, + EMBLEM_SYMBOLIC_LINK, + EMBLEM_SYNCHRONIZED, + EMBLEM_SYSTEM, + EMBLEM_UNREADABLE, + FACE_ANGEL, + FACE_CRYING, + FACE_DEVIL_GRIN, + FACE_DEVIL_SAD, + FACE_GLASSES, + FACE_KISS, + FACE_MONKEY, + FACE_PLAIN, + FACE_SAD, + FACE_SMILE, + FACE_SMILE_BIG, + FACE_SMIRK, + FACE_SURPRISE, + FACE_WINK, + APPLICATION_X_EXECUTABLE, + AUDIO_X_GENERIC, + FONT_X_GENERIC, + IMAGE_X_GENERIC, + PACKAGE_X_GENERIC, + TEXT_HTML, + TEXT_X_GENERIC, + TEXT_X_GENERIC_TEMPLATE, + TEXT_X_SCRIPT, + VIDEO_X_GENERIC, + X_OFFICE_ADDRESS_BOOK, + X_OFFICE_CALENDAR, + X_OFFICE_DOCUMENT, + X_OFFICE_PRESENTATION, + X_OFFICE_SPREADSHEET, + FOLDER, + FOLDER_REMOTE, + NETWORK_SERVER, + NETWORK_WORKGROUP, + START_HERE, + USER_DESKTOP, + USER_HOME, + USER_TRASH, + APPOINTMENT_MISSED, + APPOINTMENT_SOON, + AUDIO_VOLUME_HIGH, + AUDIO_VOLUME_LOW, + AUDIO_VOLUME_MEDIUM, + AUDIO_VOLUME_MUTED, + BATTERY_CAUTION, + BATTERY_LOW, + DIALOG_ERROR, + DIALOG_INFORMATION, + DIALOG_PASSWORD, + DIALOG_QUESTION, + DIALOG_WARNING, + FOLDER_DRAG_ACCEPT, + FOLDER_OPEN, + FOLDER_VISITING, + IMAGE_LOADING, + IMAGE_MISSING, + MAIL_ATTACHMENT, + MAIL_UNREAD, + MAIL_READ, + MAIL_REPLIED, + MAIL_SIGNED, + MAIL_SIGNED_VERIFIED, + MEDIA_PLAYLIST_REPEAT, + MEDIA_PLAYLIST_SHUFFLE, + NETWORK_ERROR, + NETWORK_IDLE, + NETWORK_OFFLINE, + NETWORK_RECEIVE, + NETWORK_TRANSMIT, + NETWORK_TRANSMIT_RECEIVE, + PRINTER_ERROR, + PRINTER_PRINTING, + SOFTWARE_UPDATE_AVAILABLE, + SOFTWARE_UPDATE_URGENT, + SYNC_ERROR, + SYNC_SYNCHRONIZING, + TASK_DUE, + TASK_PASSED_DUE, + USER_AWAY, + USER_IDLE, + USER_OFFLINE, + USER_ONLINE, + USER_TRASH_FULL, + WEATHER_CLEAR, + WEATHER_CLEAR_NIGHT, + WEATHER_FEW_CLOUDS, + WEATHER_FEW_CLOUDS_NIGHT, + WEATHER_FOG, + WEATHER_OVERCAST, + WEATHER_SEVERE_ALERT, + WEATHER_SHOWERS, + WEATHER_SHOWERS_SCATTERED, + WEATHER_SNOW, + WEATHER_STORM, + NULL + }; + +#endif diff --git a/legacy/efreet/src/tests/compare/efreet_alloc.c b/legacy/efreet/src/tests/compare/efreet_alloc.c new file mode 100644 index 0000000000..65b0c883d2 --- /dev/null +++ b/legacy/efreet/src/tests/compare/efreet_alloc.c @@ -0,0 +1,27 @@ +#include +#include +#include +#include "comp.h" + +int +main(void) +{ + int i = 0, k; + const char *path; + + efreet_init(); + + for (k = 0; k < LOOPS; k++) + { + for (i = 0; icons[i]; i++) + { + path = efreet_icon_path_find(THEME, icons[i], SIZE); +// printf("%s: %s\n", icons[i], (path ? path : "NOT FOUND")); + } + } + + efreet_shutdown(); + + return 0; +} + diff --git a/legacy/efreet/src/tests/compare/efreet_menu_alloc.c b/legacy/efreet/src/tests/compare/efreet_menu_alloc.c new file mode 100644 index 0000000000..fcfb75b4bb --- /dev/null +++ b/legacy/efreet/src/tests/compare/efreet_menu_alloc.c @@ -0,0 +1,23 @@ +#include +#include +#include "comp.h" + +int +main(void) +{ + int k; + + efreet_init(); + + for (k = 0; k < LOOPS; k++) + { + Efreet_Menu *menu; + menu = efreet_menu_get(); + efreet_menu_free(menu); + } + + efreet_shutdown(); + + return 0; +} + diff --git a/legacy/efreet/src/tests/data/.cvsignore b/legacy/efreet/src/tests/data/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/legacy/efreet/src/tests/data/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/legacy/efreet/src/tests/data/Makefile.am b/legacy/efreet/src/tests/data/Makefile.am new file mode 100644 index 0000000000..50eef85503 --- /dev/null +++ b/legacy/efreet/src/tests/data/Makefile.am @@ -0,0 +1,18 @@ +SUBDIRS = sub + +MAINTAINERCLEANFILES = Makefile.in + +testdir = $(pkgdatadir)/test +test_DATA = \ +test.ini \ +long.ini \ +test.desktop \ +test_type.desktop \ +test.menu \ +test_menu_slash_bad.menu \ +entry.png \ +entry \ +preferences.menu \ +test_garbage + +EXTRA_DIST = $(test_DATA) diff --git a/legacy/efreet/src/tests/data/entry b/legacy/efreet/src/tests/data/entry new file mode 100644 index 0000000000..503d8e5ae5 Binary files /dev/null and b/legacy/efreet/src/tests/data/entry differ diff --git a/legacy/efreet/src/tests/data/entry.png b/legacy/efreet/src/tests/data/entry.png new file mode 100644 index 0000000000..82e5cbe497 Binary files /dev/null and b/legacy/efreet/src/tests/data/entry.png differ diff --git a/legacy/efreet/src/tests/data/long.ini b/legacy/efreet/src/tests/data/long.ini new file mode 100644 index 0000000000..32154ddcad --- /dev/null +++ b/legacy/efreet/src/tests/data/long.ini @@ -0,0 +1,3 @@ +[section] +key=averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,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 +key2=averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,averylongvalue,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/legacy/efreet/src/tests/data/preferences.menu b/legacy/efreet/src/tests/data/preferences.menu new file mode 100644 index 0000000000..904dbd2c06 --- /dev/null +++ b/legacy/efreet/src/tests/data/preferences.menu @@ -0,0 +1,41 @@ + + + + Preferences + Preferences.directory + + blah + /var/tmp + + + BlahBorp + + + + House + House.directory + + House + Garden + + + + Mouse + House.directory + + House + Garden + + + + House + House.directory + + Cat + + + + diff --git a/legacy/efreet/src/tests/data/sub/.cvsignore b/legacy/efreet/src/tests/data/sub/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/legacy/efreet/src/tests/data/sub/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/legacy/efreet/src/tests/data/sub/Makefile.am b/legacy/efreet/src/tests/data/sub/Makefile.am new file mode 100644 index 0000000000..7aaf7fc20e --- /dev/null +++ b/legacy/efreet/src/tests/data/sub/Makefile.am @@ -0,0 +1,8 @@ + +MAINTAINERCLEANFILES = Makefile.in + +testdir = $(pkgdatadir)/test/sub +test_DATA = \ +test.desktop + +EXTRA_DIST = $(test_DATA) diff --git a/legacy/efreet/src/tests/data/sub/test.desktop b/legacy/efreet/src/tests/data/sub/test.desktop new file mode 100644 index 0000000000..7abf2aed81 --- /dev/null +++ b/legacy/efreet/src/tests/data/sub/test.desktop @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Application +Name=Sub +Exec=subtest +Categories=Test diff --git a/legacy/efreet/src/tests/data/test.desktop b/legacy/efreet/src/tests/data/test.desktop new file mode 100644 index 0000000000..412601f3e0 --- /dev/null +++ b/legacy/efreet/src/tests/data/test.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=Efreet Test Application +GenericName=Test Application +Exec=efreet_test %F %i +Categories=Test;Enlightenment; +Icon=TestIcon +X-Test=Own key diff --git a/legacy/efreet/src/tests/data/test.ini b/legacy/efreet/src/tests/data/test.ini new file mode 100644 index 0000000000..7f73d81823 --- /dev/null +++ b/legacy/efreet/src/tests/data/test.ini @@ -0,0 +1,21 @@ +# Comments should be ignored (and empty lines) + +[contact] +Name=Foo Bar +Name[en_US]=English Foo Bar +Email= foo@bar.com +Email[de_DE] = foo@bar.de +Age = 30 +TrueBoolean=true +FalseBoolean=false +InvalidBoolean=invalid +Escaped=line1\nline2\r\nline3\ttabbed \\ with a backslash\sand\sspaces + +[AIM] +Username=foobar + +# the next line has a single space. it should be skipped as well + +[Jabber] +Username=foobar@bar.de + diff --git a/legacy/efreet/src/tests/data/test.menu b/legacy/efreet/src/tests/data/test.menu new file mode 100644 index 0000000000..7ae21ff03f --- /dev/null +++ b/legacy/efreet/src/tests/data/test.menu @@ -0,0 +1,52 @@ + + + + Applications + Applications.directory + + + + + applications-merged + + /usr/share/applnk + + + + + + More + + + + Foo + Bar + Foo2 + Bar2 + + + + Preferences + Preferences.directory + preferences.menu + + + + Office + Office.directory + + Office + + + foo.desktop + + + bar.desktop + + + + + + diff --git a/legacy/efreet/src/tests/data/test_garbage b/legacy/efreet/src/tests/data/test_garbage new file mode 100644 index 0000000000..7d178fd436 --- /dev/null +++ b/legacy/efreet/src/tests/data/test_garbage @@ -0,0 +1,2341 @@ +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcdef +abcd \ No newline at end of file diff --git a/legacy/efreet/src/tests/data/test_menu_bad_comment.menu b/legacy/efreet/src/tests/data/test_menu_bad_comment.menu new file mode 100644 index 0000000000..5815b89f97 --- /dev/null +++ b/legacy/efreet/src/tests/data/test_menu_bad_comment.menu @@ -0,0 +1,14 @@ + + + + Applications + Applications.directory + + + This should be commented + --> + + diff --git a/legacy/efreet/src/tests/data/test_menu_slash_bad.menu b/legacy/efreet/src/tests/data/test_menu_slash_bad.menu new file mode 100644 index 0000000000..8f7b6f05a6 --- /dev/null +++ b/legacy/efreet/src/tests/data/test_menu_slash_bad.menu @@ -0,0 +1,11 @@ + + + + Applications/Bar + + + Preferences/Baz + + diff --git a/legacy/efreet/src/tests/data/test_type.desktop b/legacy/efreet/src/tests/data/test_type.desktop new file mode 100644 index 0000000000..1b67ff58e0 --- /dev/null +++ b/legacy/efreet/src/tests/data/test_type.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=My_Type +Name=Efreet Test Application +GenericName=Test Application +Exec=efreet_test %F %i +Categories=Test;Enlightenment; +Icon=TestIcon +X-Test=Own key diff --git a/legacy/efreet/src/tests/ef_cache.c b/legacy/efreet/src/tests/ef_cache.c new file mode 100644 index 0000000000..1fc5cc6ee3 --- /dev/null +++ b/legacy/efreet/src/tests/ef_cache.c @@ -0,0 +1,143 @@ +#include "Efreet.h" +#include +#include +#include "ef_test.h" + +#if 0 +EAPI Efreet_Desktop *efreet_util_desktop_file_id_find(const char *file_id); + +EAPI Eina_List *efreet_util_desktop_generic_name_glob_list(const char *glob); +EAPI Eina_List *efreet_util_desktop_comment_glob_list(const char *glob); +#endif + +static void +check(void) +{ + Eina_List *list; + Efreet_Desktop *desktop; + double start; + const char *id; + + // EAPI char *efreet_util_path_to_file_id(const char *path); + start = ecore_time_get(); + id = efreet_util_path_to_file_id("/usr/share/applications/gnome-panel.desktop"); + if (id) + { + printf("efreet_util_path_to_file_id(/usr/share/applications/gnome-panel.desktop): %s %.6f\n", id, (ecore_time_get() - start)); + } + else + printf("efreet_util_path_to_file_id(/usr/share/applications/gnome-panel.desktop): NULL %.6f\n", (ecore_time_get() - start)); + + //EAPI Efreet_Desktop *efreet_util_desktop_name_find(const char *name); + start = ecore_time_get(); + desktop = efreet_util_desktop_name_find("Evolution"); + if (desktop) + printf("efreet_util_desktop_name_find(Evolution): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start)); + else + printf("efreet_util_desktop_name_find(Evolution): NULL %.6f\n", (ecore_time_get() - start)); + efreet_desktop_free(desktop); + + //EAPI Efreet_Desktop *efreet_util_desktop_generic_name_find(const char *generic_name); + start = ecore_time_get(); + desktop = efreet_util_desktop_generic_name_find("Spreadsheet"); + if (desktop) + printf("efreet_util_desktop_generic_name_find(Spreadsheet): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start)); + else + printf("efreet_util_desktop_generic_name_find(Spreadsheet): NULL %.6f\n", (ecore_time_get() - start)); + efreet_desktop_free(desktop); + + //EAPI Efreet_Desktop *efreet_util_desktop_wm_class_find(const char *wmname, const char *wmclass); + start = ecore_time_get(); + desktop = efreet_util_desktop_wm_class_find("Firefox", NULL); + if (desktop) + printf("efreet_util_desktop_wm_class_find(Firefox): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start)); + else + printf("efreet_util_desktop_wm_class_find(Firefox): NULL %.6f\n", (ecore_time_get() - start)); + efreet_desktop_free(desktop); + + //EAPI Efreet_Desktop *efreet_util_desktop_exec_find(const char *exec); + start = ecore_time_get(); + desktop = efreet_util_desktop_exec_find("/usr/bin/update-manager"); + if (desktop) + printf("efreet_util_desktop_exec_find(update-manager): %s %.6f\n", desktop->orig_path, (ecore_time_get() - start)); + else + printf("efreet_util_desktop_exec_find(update-manager): NULL %.6f\n", (ecore_time_get() - start)); + efreet_desktop_free(desktop); + + //EAPI Eina_List *efreet_util_desktop_name_glob_list(const char *glob); + start = ecore_time_get(); + list = efreet_util_desktop_name_glob_list("Ubuntu*"); + if (list) + { + EINA_LIST_FREE(list, desktop) + { + printf("efreet_util_desktop_name_glob_list(Ubuntu*): %s\n", desktop->name); + efreet_desktop_free(desktop); + } + } + printf("time: %.6f\n", (ecore_time_get() - start)); + + //EAPI Eina_List *efreet_util_desktop_mime_list(const char *mime); + start = ecore_time_get(); + list = efreet_util_desktop_mime_list("application/ogg"); + if (list) + { + EINA_LIST_FREE(list, desktop) + { + printf("efreet_util_desktop_mime_list(application/ogg): %s\n", desktop->name); + efreet_desktop_free(desktop); + } + } + printf("time: %.6f\n", (ecore_time_get() - start)); + + //EAPI Eina_List *efreet_util_desktop_exec_glob_list(const char *glob); + start = ecore_time_get(); + list = efreet_util_desktop_exec_glob_list("*gnome*"); + if (list) + { + EINA_LIST_FREE(list, desktop) + { + printf("efreet_util_desktop_exec_glob_list(*gnome*): %s\n", desktop->exec); + efreet_desktop_free(desktop); + } + } + printf("time: %.6f\n", (ecore_time_get() - start)); + + //EAPI Eina_List *efreet_util_desktop_categories_list(void); + start = ecore_time_get(); + list = efreet_util_desktop_categories_list(); + if (list) + { + EINA_LIST_FREE(list, id) + { + printf("efreet_util_desktop_categories_list(): %s\n", id); + } + } + printf("time: %.6f\n", (ecore_time_get() - start)); + + //EAPI Eina_List *efreet_util_desktop_category_list(const char *category); + start = ecore_time_get(); + list = efreet_util_desktop_category_list("Graphics"); + if (list) + { + EINA_LIST_FREE(list, desktop) + { + printf("efreet_util_desktop_category_list(Graphics): %s\n", desktop->name); + efreet_desktop_free(desktop); + } + } + printf("time: %.6f\n", (ecore_time_get() - start)); + + desktop = efreet_desktop_get("/opt/google/chrome/google-chrome.desktop"); + if (desktop) efreet_desktop_free(desktop); +} + +int +main(int argc __UNUSED__, char **argv __UNUSED__) +{ + if (!efreet_init()) return 1; + check(); + ecore_main_loop_begin(); + efreet_shutdown(); + return 0; +} diff --git a/legacy/efreet/src/tests/ef_data_dirs.c b/legacy/efreet/src/tests/ef_data_dirs.c new file mode 100644 index 0000000000..d6c629b5ea --- /dev/null +++ b/legacy/efreet/src/tests/ef_data_dirs.c @@ -0,0 +1,307 @@ +#include "Efreet.h" +#include +#include +#include + +int +ef_cb_efreet_data_home(void) +{ + const char *tmp; + int ret = 1; + + efreet_shutdown(); + setenv("XDG_DATA_HOME", "/var/tmp", 1); + efreet_init(); + + tmp = efreet_data_home_get(); + if (strcmp(tmp, "/var/tmp")) + { + printf("efreet_data_home_get() returned incorrect " + "value (%s) on XDG_DATA_HOME=/var/tmp\n", tmp); + ret = 0; + } + + /* reset efreet here so we can set a new home dir */ + efreet_shutdown(); + unsetenv("XDG_DATA_HOME"); + setenv("HOME", "/home/tmp", 1); + efreet_init(); + + tmp = efreet_data_home_get(); + if (strcmp(tmp, "/home/tmp/.local/share")) + { + printf("efreet_data_home_get() returned incorrect " + "value (%s) on blank XDG_DATA_HOME\n", tmp); + ret = 0; + } + + /* reset efreet here so we can set a new home dir */ + efreet_shutdown(); + unsetenv("XDG_DATA_HOME"); + unsetenv("HOME"); +#ifdef _WIN32 + unsetenv("USERPROFILE"); +#endif + efreet_init(); + + tmp = efreet_data_home_get(); + if (strcmp(tmp, "/tmp/.local/share")) + { + printf("efreet_data_home_get() returned incorrect " + "value (%s) on blank XDG_DATA_HOME and blank HOME\n", tmp); + ret = 0; + } + + return ret; +} + +int +ef_cb_efreet_config_home(void) +{ + const char *tmp; + int ret = 1; + + efreet_shutdown(); + setenv("XDG_CONFIG_HOME", "/var/tmp", 1); + efreet_init(); + + tmp = efreet_config_home_get(); + if (strcmp(tmp, "/var/tmp")) + { + printf("efreet_config_home_get() returned incorrect " + "value (%s) on XDG_CONFIG_HOME=/var/tmp\n", tmp); + ret = 0; + } + + /* reset efreet here so we can set a new home dir */ + efreet_shutdown(); + unsetenv("XDG_CONFIG_HOME"); + setenv("HOME", "/home/tmp", 1); + efreet_init(); + + tmp = efreet_config_home_get(); + if (strcmp(tmp, "/home/tmp/.config")) + { + printf("efreet_config_home_get() returned incorrect " + "value (%s) on blank XDG_CONFIG_HOME\n", tmp); + ret = 0; + } + + /* reset efreet here so we can set a new home dir */ + efreet_shutdown(); + unsetenv("XDG_CONFIG_HOME"); + unsetenv("HOME"); +#ifdef _WIN32 + unsetenv("USERPROFILE"); +#endif + efreet_init(); + + tmp = efreet_config_home_get(); + if (strcmp(tmp, "/tmp/.config")) + { + printf("efreet_config_home_get() returned incorrect " + "value (%s) on blank XDG_CONFIG_HOME and blank HOME\n", tmp); + ret = 0; + } + + return ret; +} + +int +ef_cb_efreet_cache_home(void) +{ + const char *tmp; + int ret = 1; + + efreet_shutdown(); + setenv("XDG_CACHE_HOME", "/var/tmp", 1); + efreet_init(); + + tmp = efreet_cache_home_get(); + if (strcmp(tmp, "/var/tmp")) + { + printf("efreet_cache_home_get() returned incorrect " + "value (%s) on XDG_CACHE_HOME=/var/tmp\n", tmp); + ret = 0; + } + + /* reset efreet here so we can set a new home dir */ + efreet_shutdown(); + unsetenv("XDG_CACHE_HOME"); + setenv("HOME", "/home/tmp", 1); + efreet_init(); + + tmp = efreet_cache_home_get(); + if (strcmp(tmp, "/home/tmp/.cache")) + { + printf("efreet_cache_home_get() returned incorrect " + "value (%s) on blank XDG_CACHE_HOME\n", tmp); + ret = 0; + } + + /* reset efreet here so we can set a new home dir */ + efreet_shutdown(); + unsetenv("XDG_CACHE_HOME"); + unsetenv("HOME"); +#ifdef _WIN32 + unsetenv("USERPROFILE"); +#endif + efreet_init(); + + tmp = efreet_cache_home_get(); + if (strcmp(tmp, "/tmp/.cache")) + { + printf("efreet_cache_home_get() returned incorrect " + "value (%s) on blank XDG_CACHE_HOME and blank HOME\n", tmp); + ret = 0; + } + + return ret; +} + +int +ef_cb_efreet_data_dirs(void) +{ + Eina_List *tmp, *l; + int ret = 1, i; + char dirs[128], *val; + char *vals[] = {"/var/tmp/a", "/tmp/b", "/usr/local/share", "/etc", NULL}; + char *def_vals[] = {PACKAGE_DATA_DIR, "/usr/share", "/usr/local/share", NULL}; + + dirs[0] = '\0'; + for (i = 0; vals[i]; i++) + { + if (i > 0) strcat(dirs, ":"); + strcat(dirs, vals[i]); + } + + efreet_shutdown(); + setenv("XDG_DATA_DIRS", dirs, 1); + efreet_init(); + + i = 0; + tmp = efreet_data_dirs_get(); + EINA_LIST_FOREACH(tmp, l, val) + { + if (!vals[i]) + { + printf("efreet_data_dirs_get() returned more values then it " + "should have given %s as input\n", dirs); + ret = 0; + break; + } + + if (strcmp(val, vals[i])) + { + printf("efreet_data_dirs_get() returned incorrect value (%s) when " + "%s set\n", val, dirs); + ret = 0; + } + + i++; + } + + efreet_shutdown(); + unsetenv("XDG_DATA_DIRS"); + efreet_init(); + + i = 0; + tmp = efreet_data_dirs_get(); + if (eina_list_count(tmp) != 3) + { + printf("efreet_data_dirs_get() nodes is differnet from expected default\n"); + ret = 0; + } + + EINA_LIST_FOREACH(tmp, l, val) + { + if (!def_vals[i]) + { + printf("efreet_data_dirs_get() returned more values then it " + "should have given %s as input\n", dirs); + ret = 0; + break; + } + + if (strcmp(val, def_vals[i])) + { + printf("efreet_data_dirs_get() returned incorrect value (%s) when " + "XDG_DATA_DIRS= is set %s\n", val, def_vals[i]); + ret = 0; + } + + i++; + } + return ret; +} + +int +ef_cb_efreet_config_dirs(void) +{ + Eina_List *tmp, *l; + int ret = 1, i; + char dirs[128], *val; + char *vals[] = {"/var/tmp/a", "/tmp/b", "/usr/local/share", "/etc", NULL}; + char *def_vals[] = {"/etc/xdg", NULL}; + + dirs[0] = '\0'; + + for (i = 0; vals[i]; i++) + { + if (i > 0) strcat(dirs, ":"); + strcat(dirs, vals[i]); + } + + efreet_shutdown(); + setenv("XDG_CONFIG_DIRS", dirs, 1); + efreet_init(); + + i = 0; + tmp = efreet_config_dirs_get(); + EINA_LIST_FOREACH(tmp, l, val) + { + if (!vals[i]) + { + printf("efreet_config_dirs_get() returned more values then it " + "should have given %s as input\n", dirs); + ret = 0; + break; + } + + if (strcmp(val, vals[i])) + { + printf("efreet_config_dirs_get() returned incorrect value (%s) when " + "%s set\n", val, dirs); + ret = 0; + } + + i++; + } + + efreet_shutdown(); + unsetenv("XDG_CONFIG_DIRS"); + efreet_init(); + + i = 0; + tmp = efreet_config_dirs_get(); + EINA_LIST_FOREACH(tmp, l, val) + { + if (!def_vals[i]) + { + printf("efreet_config_dirs_get() returned more values then it " + "should have given %s as input\n", dirs); + ret = 0; + break; + } + + if (strcmp(val, def_vals[i])) + { + printf("efreet_config_dirs_get() returned incorrect value (%s) when " + "XDG_CONFIG_DIRS= is set\n", val); + ret = 0; + } + + i++; + } + return ret; +} diff --git a/legacy/efreet/src/tests/ef_desktop.c b/legacy/efreet/src/tests/ef_desktop.c new file mode 100644 index 0000000000..6a5e338f58 --- /dev/null +++ b/legacy/efreet/src/tests/ef_desktop.c @@ -0,0 +1,401 @@ +#include "Efreet.h" +#include "config.h" +#include +#include +#include +#include +#include +#include "ef_test.h" + +static void *_cb_command(void *data, Efreet_Desktop *desktop, char *exec, int remaining); + + +int +ef_cb_desktop_parse(void) +{ + Efreet_Desktop *desktop; + Eina_List *l; + int ret = 1; + + desktop = efreet_desktop_get(PACKAGE_DATA_DIR"/test/test.desktop"); + if (!desktop) + { + printf("No desktop found.\n"); + return 0; + } + + if (!desktop->name || strcmp(desktop->name, "Efreet Test Application")) + { + printf("Invalid Name\n"); + ret = 0; + } + + if (!desktop->generic_name || + strcmp(desktop->generic_name, "Test Application")) + { + printf("Incorrent GenericName\n"); + ret = 0; + } + + if (!desktop->exec || strcmp(desktop->exec, "efreet_test %F %i")) + { + printf("Incorrect Exec (%s)\n", (desktop->exec ? desktop->exec : "(null)")); + ret = 0; + } + + if (desktop->categories) + { + const char *categories[] = {"Test", "Enlightenment"}; + const char *cat; + int num_categories = 2, i = 0; + + EINA_LIST_FOREACH(desktop->categories, l, cat) + { + if (i >= num_categories) + { + printf("Too many categories found.\n"); + ret = 0; + break; + } + + if (!cat || !categories[i] || strcmp(cat, categories[i])) + { + printf("Expected category %s, found %s\n", categories[i], cat); + ret = 0; + } + i++; + } + } + else ret = 0; + + efreet_desktop_free(desktop); + + return ret; +} + +#if 0 +int +ef_cb_desktop_file_id(void) +{ + Efreet_Desktop *desktop; + int ret = 1; + + desktop = efreet_desktop_get(PACKAGE_DATA_DIR"/test/test.desktop"); + if (desktop) + { + const char *id; + int i = 0; + + struct { + char *dir; + int legacy; + char *prefix; + char *expected; + } tests[] = { + {PACKAGE_DATA_DIR"/test/", 0, NULL, "test.desktop"}, + {PACKAGE_DATA_DIR"/", 0, NULL, "test-test.desktop"}, + {PACKAGE_DATA_DIR"/", 1, NULL, "test.desktop"}, + {PACKAGE_DATA_DIR"/", 1, "prefix", "prefix-test.desktop"}, + {NULL, 0, NULL, NULL} + }; + + for (i = 0; tests[i].dir != NULL; i++) + { + id = efreet_desktop_id_get(desktop, + tests[i].dir, + tests[i].legacy, + tests[i].prefix); + if (!id || strcmp(id, tests[i].expected)) + { + printf("Expecting id: %s, got: %s\n", tests[i].expected, id); + ret = 0; + } + if (id) eina_stringshare_del(id); + } + } + else + ret = 0; + + return ret; +} +#endif + +int +ef_cb_desktop_save(void) +{ + Efreet_Desktop *desktop; + + printf("\n"); + desktop = efreet_desktop_get(PACKAGE_DATA_DIR"/test/test.desktop"); + if (!desktop) + { + printf("Failed to get Desktop file\n"); + return 0; + } + + printf("save data: %d\n", efreet_desktop_save(desktop)); + efreet_desktop_free(desktop); + + desktop = efreet_desktop_empty_new("/tmp/test.desktop"); + desktop->name = strdup("Efreet Test Application"); + desktop->type = EFREET_DESKTOP_TYPE_APPLICATION; + desktop->generic_name = strdup("Test Application"); + desktop->exec = strdup("efreet_test"); + desktop->categories = NULL; + desktop->categories = eina_list_append(desktop->categories, eina_stringshare_add("Test")); + desktop->categories = eina_list_append(desktop->categories, eina_stringshare_add("Enlightenment")); + printf("save test: %d\n", efreet_desktop_save(desktop)); + unlink("/tmp/test.desktop"); + efreet_desktop_free(desktop); + + return 1; +} + +typedef struct +{ + Eina_List *expected; + int error; + char type; +} Test_Info; + +int +ef_cb_desktop_command_get(void) +{ + Efreet_Desktop *desktop; + Eina_List *files, *expected; + char olddir[PATH_MAX]; + Test_Info *info; + int ret; + + if (getcwd(olddir, PATH_MAX) != 0) ret = 0; + if (chdir("/") != 0) ret = 0; + + printf("\n"); + desktop = efreet_desktop_empty_new("test.desktop"); + + desktop->name = strdup("App Name"); + desktop->icon = strdup("icon.png"); + + files = NULL; + files = eina_list_append(files, "/tmp/absolute_path"); + files = eina_list_append(files, "relative_path"); + files = eina_list_append(files, "file:///tmp/absolute_uri"); + files = eina_list_append(files, "file:relative_uri"); + + info = NEW(Test_Info, 1); + expected = NULL; + info->error = 0; + + /* test single full path */ + info->type = 'f'; + IF_FREE(desktop->exec); + desktop->exec = strdup("app %f"); + expected = eina_list_append(expected, "app '/tmp/absolute_path'"); + expected = eina_list_append(expected, "app '/relative_path'"); + expected = eina_list_append(expected, "app '/tmp/absolute_uri'"); + expected = eina_list_append(expected, "app '/relative_uri'"); + + info->expected = expected; + efreet_desktop_command_get(desktop, files, _cb_command, info); + expected = eina_list_free(expected); + + /* test single uri */ + info->type = 'u'; + IF_FREE(desktop->exec); + desktop->exec = strdup("app %u"); + expected = eina_list_append(expected, "app 'file:///tmp/absolute_path'"); + expected = eina_list_append(expected, "app 'file:///relative_path'"); + expected = eina_list_append(expected, "app 'file:///tmp/absolute_uri'"); + expected = eina_list_append(expected, "app 'file:///relative_uri'"); + + info->expected = expected; + efreet_desktop_command_get(desktop, files, _cb_command, info); + expected = eina_list_free(expected); + + /* test single dir */ +#if 0 + info->type = 'd'; + IF_FREE(desktop->exec); + desktop->exec = strdup("app %d"); + expected = eina_list_append(expected, "app '/tmp'"); + expected = eina_list_append(expected, "app '/'"); + expected = eina_list_append(expected, "app '/tmp'"); + expected = eina_list_append(expected, "app '/'"); + + info->expected = expected; + efreet_desktop_command_get(desktop, files, _cb_command, info); + expected = eina_list_free(expected); +#endif + + + /* test single names */ +#if 0 + info->type = 'n'; + IF_FREE(desktop->exec); + desktop->exec = strdup("app %n"); + expected = eina_list_append(expected, "app 'absolute_path'"); + expected = eina_list_append(expected, "app 'relative_path'"); + expected = eina_list_append(expected, "app 'absolute_uri'"); + expected = eina_list_append(expected, "app 'relative_uri'"); + + info->expected = expected; + efreet_desktop_command_get(desktop, files, _cb_command, info); + expected = eina_list_free(expected); +#endif + + /* test multiple fullpaths */ + info->type = 'F'; + IF_FREE(desktop->exec); + desktop->exec = strdup("app %F"); + expected = eina_list_append(expected, "app '/tmp/absolute_path' '/relative_path' '/tmp/absolute_uri' '/relative_uri'"); + + info->expected = expected; + efreet_desktop_command_get(desktop, files, _cb_command, info); + expected = eina_list_free(expected); + + /* test multiple URIs */ + info->type = 'U'; + IF_FREE(desktop->exec); + desktop->exec = strdup("app %U"); + expected = eina_list_append(expected, "app 'file:///tmp/absolute_path' 'file:///relative_path' 'file:///tmp/absolute_uri' 'file:///relative_uri'"); + + info->expected = expected; + efreet_desktop_command_get(desktop, files, _cb_command, info); + expected = eina_list_free(expected); + + /* test multiple dirs */ +#if 0 + info->type = 'D'; + IF_FREE(desktop->exec); + desktop->exec = strdup("app %D"); + expected = eina_list_append(expected, "app '/tmp' '/' '/tmp' '/'"); + + info->expected = expected; + efreet_desktop_command_get(desktop, files, _cb_command, info); + expected = eina_list_free(expected); +#endif + + /* test multiple names */ +#if 0 + info->type = 'N'; + IF_FREE(desktop->exec); + desktop->exec = strdup("app %N"); + expected = eina_list_append(expected, "app 'absolute_path' 'relative_path' 'absolute_uri' 'relative_uri'"); + + info->expected = expected; + efreet_desktop_command_get(desktop, files, _cb_command, info); + expected = eina_list_free(expected); +#endif + + /* test icon appending */ + info->type = 'i'; + IF_FREE(desktop->exec); + desktop->exec = strdup("app %i"); + expected = eina_list_append(expected, "app --icon 'icon.png'"); + + info->expected = expected; + efreet_desktop_command_get(desktop, NULL, _cb_command, info); + expected = eina_list_free(expected); + + /* test app name */ + info->type = 'c'; + IF_FREE(desktop->exec); + desktop->exec = strdup("app %c"); + expected = eina_list_append(expected, "app 'App Name'"); + + info->expected = expected; + efreet_desktop_command_get(desktop, NULL, _cb_command, info); + expected = eina_list_free(expected); + + /* test desktop path */ + info->type = 'k'; + IF_FREE(desktop->exec); + desktop->exec = strdup("app %k"); + expected = eina_list_append(expected, "app 'test.desktop'"); + + info->expected = expected; + efreet_desktop_command_get(desktop, NULL, _cb_command, info); + eina_list_free(expected); + + /* clean up */ + efreet_desktop_free(desktop); + eina_list_free(files); + + if (chdir(olddir) != 0) ret = 0; + + ret = info->error > 0 ? 0 : 1; + free(info); + + return ret; +} + +static void * +_cb_command(void *data, Efreet_Desktop *desktop __UNUSED__, + char *exec, int remaining __UNUSED__) +{ + Test_Info *info = data; + char *expected; + + expected = eina_list_data_get(info->expected); + info->expected = eina_list_demote_list(info->expected, info->expected); + if (!expected) + { + printf(" ERROR: (%%%c) got \"%s\", expected nothing\n", info->type, exec); + info->error++; + } + else + { + if (strcmp(exec, expected)) + { + printf(" ERROR: (%%%c) got \"%s\", expected \"%s\"\n", info->type, exec, expected); + info->error++; + } + } + free(exec); + return NULL; +} + +static void * +cb_type_parse(Efreet_Desktop *desktop __UNUSED__, Efreet_Ini *ini) +{ + const char *val; + val = efreet_ini_string_get(ini, "X-Test"); + if (!val) return NULL; + return (void *)strdup(val); +} + +int +ef_cb_desktop_type_parse(void) +{ + Efreet_Desktop *desktop; + int my_type; + char *val; + int ret = 1; + + /* add my custom desktop type to efreet */ + my_type = efreet_desktop_type_add("My_Type", cb_type_parse, NULL, + (Efreet_Desktop_Type_Free_Cb)free); + + desktop = efreet_desktop_get(PACKAGE_DATA_DIR"/test/test_type.desktop"); + if (!desktop) + { + printf("No desktop found.\n"); + return 0; + } + + if (desktop->type != my_type) + { + printf("Invalid type returned in desktop"); + ret = 0; + } + + val = (char *)efreet_desktop_type_data_get(desktop); + if (!val || strcmp(val, "Own key")) + { + printf("Invalid value of custom key (%s).\n", val); + ret = 0; + } + + efreet_desktop_free(desktop); + return ret; +} diff --git a/legacy/efreet/src/tests/ef_icon_theme.c b/legacy/efreet/src/tests/ef_icon_theme.c new file mode 100644 index 0000000000..90eb6684b4 --- /dev/null +++ b/legacy/efreet/src/tests/ef_icon_theme.c @@ -0,0 +1,605 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "Efreet.h" +#include +#include +#include +#include +#include +#include + +#define SIZE 128 +#define THEME "Tango" +#define FREE(x) do { free(x); x = NULL; } while (0); + +static Eina_Bool _hash_keys(Eina_Hash *hash, const char *key, void *list); +static void ef_icon_theme_themes_find(const char *search_dir, + Eina_Hash *themes); +static void ef_icons_find(Efreet_Icon_Theme *theme, Eina_Hash *icons); +static void ef_read_dir(const char *dir, Eina_Hash *icons); + +int +ef_cb_efreet_icon_theme(void) +{ + int ret = 1; + const char *tmp; + + unsetenv("XDG_DATA_HOME"); + efreet_shutdown(); + putenv("HOME=/var/tmp"); + efreet_init(); + + tmp = efreet_icon_user_dir_get(); + if (strcmp(tmp, "/var/tmp/.local/share/icons")) + { + printf("efreet_icon_user_dir_get() returned incorrect " + "value (%s) on HOME=/var/tmp\n", tmp); + ret = 0; + } + + efreet_shutdown(); + unsetenv("HOME"); +#ifdef _WIN32 + unsetenv("USERPROFILE"); +#endif + efreet_init(); + + tmp = efreet_icon_user_dir_get(); + if (strcmp(tmp, "/tmp/.local/share/icons")) + { + printf("efreet_icon_user_dir_get() returned incorrect " + "value (%s) on HOME=\n", tmp); + ret = 0; + } + + return ret; +} + +static Eina_Bool +_hash_keys(Eina_Hash *hash __UNUSED__, const char *key, void *list) +{ + Eina_List **l = list; + + *l = eina_list_append(*l, key); + return EINA_TRUE; +} + +int +ef_cb_efreet_icon_theme_list(void) +{ + int ret = 1; + Eina_List *themes; + Eina_List *icon_dirs; + Eina_List *l; + Eina_Hash *dirs; + Eina_Iterator *it; + Efreet_Icon_Theme *theme; + const char *dir; + char buf[PATH_MAX]; + + dirs = eina_hash_string_superfast_new(free); + + icon_dirs = efreet_data_dirs_get(); + + ef_icon_theme_themes_find(efreet_icon_user_dir_get(), dirs); + EINA_LIST_FOREACH(icon_dirs, l, dir) + { + snprintf(buf, sizeof(buf), "%s/icons", dir); + ef_icon_theme_themes_find(buf, dirs); + } + EINA_LIST_FOREACH(icon_dirs, l, dir) + { + snprintf(buf, sizeof(buf), "%s/pixmaps", dir); + ef_icon_theme_themes_find(buf, dirs); + } + ef_icon_theme_themes_find("/usr/share/pixmaps", dirs); + + themes = efreet_icon_theme_list_get(); + EINA_LIST_FOREACH(themes, l, theme) + { + if ((eina_hash_find(dirs, theme->name.internal))) + eina_hash_del(dirs, theme->name.internal, NULL); + else + { + printf("efreet_icon_theme_list_get() returned %s which we didn't " + "see when scanning the directories.\n", theme->name.internal); + ret = 0; + } + } + while (themes) + { + themes = eina_list_remove_list(themes, themes); + } + + themes = NULL; + it = eina_hash_iterator_key_new(dirs); + eina_iterator_foreach(it, EINA_EACH_CB(_hash_keys), &themes); + eina_iterator_free(it); + + if (eina_list_count(themes) > 0) + { + printf("efreet_icon_theme_list_get() missed: "); + EINA_LIST_FOREACH(themes, l, dir) + printf("%s ", dir); + printf("\n"); + + ret = 0; + } + while (themes) + { + themes = eina_list_remove_list(themes, themes); + } + eina_hash_free(dirs); + + return ret; +} + +static void +ef_icon_theme_themes_find(const char *search_dir, Eina_Hash *themes) +{ + Eina_List *dirs; + char *dir; + + if (!search_dir || !themes) return; + + dirs = ecore_file_ls(search_dir); + if (!dirs) return; + + while ((dir = eina_list_data_get(dirs))) + { + char p[PATH_MAX]; + + dirs = eina_list_remove_list(dirs, dirs); + /* if we've already added the theme we're done */ + if (eina_hash_find(themes, dir)) + { + free(dir); + continue; + } + + /* if the index.theme file exists we open it and look for the hidden + * flag. */ + snprintf(p, sizeof(p), "%s/%s/index.theme", search_dir, dir); + if (ecore_file_exists(p)) + { + Efreet_Ini *ini; + char *d; + int skip = 0; + + ini = efreet_ini_new(p); + efreet_ini_section_set(ini, "Icon Theme"); + + if (efreet_ini_boolean_get(ini, "Hidden")) skip = 1; + if (!efreet_ini_localestring_get(ini, "Name")) skip = 1; + efreet_ini_free(ini); + + if (!skip) + { + d = strdup(dir); + eina_hash_add(themes, dir, d); + } + } + free(dir); + } +} + +const char *system_icons[] = +{ + "address-book-new", + "application-exit", + "appointment-new", + "contact-new", + "dialog-apply", + "dialog-cancel", + "dialog-close", + "dialog-ok", + "document-new", + "document-open", + "document-open-recent", + "document-page-setup", + "document-print", + "document-print-preview", + "document-properties", + "document-revert", + "document-save", + "document-save-as", + "edit-copy", + "edit-cut", + "edit-delete", + "edit-find", + "edit-find-replace", + "edit-paste", + "edit-redo", + "edit-select-all", + "edit-undo", + "format-indent-less", + "format-indent-more", + "format-justify-center", + "format-justify-fill", + "format-justify-left", + "format-justify-right", + "format-text-direction-ltr", + "format-text-direction-rtl", + "format-text-bold", + "format-text-italic", + "format-text-underline", + "format-text-strikethrough", + "go-bottom", + "go-down", + "go-first", + "go-home", + "go-jump", + "go-last", + "go-next", + "go-previous", + "go-top", + "go-up", + "help-about", + "help-contents", + "help-faq", + "insert-image", + "insert-link", + "insert-object", + "insert-text", + "list-add", + "list-remove", + "mail-forward", + "mail-mark-important", + "mail-mark-junk", + "mail-mark-notjunk", + "mail-mark-read", + "mail-mark-unread", + "mail-message-new", + "mail-reply-all", + "mail-reply-sender", + "mail-send-receive", + "media-eject", + "media-playback-pause", + "media-playback-start", + "media-playback-stop", + "media-record", + "media-seek-backward", + "media-seek-forward", + "media-skip-backward", + "media-skip-forward", + "system-lock-screen", + "system-log-out", + "system-run", + "system-search", + "system-search", + "tools-check-spelling", + "view-fullscreen", + "view-refresh", + "view-sort-ascending", + "view-sort-descending", + "window-close", + "window-new", + "zoom-best-fit", + "zoom-in", + "zoom-original", + "zoom-out", + "process-working", + "accessories-calculator", + "accessories-character-map", + "accessories-dictionary", + "accessories-text-editor", + "help-browser", + "multimedia-volume-control", +#if 0 + "preferences-desktop-accessibility", + "preferences-desktop-font", + "preferences-desktop-keyboard", + "preferences-desktop-locale", + "preferences-desktop-multimedia", + "preferences-desktop-screensaver", + "preferences-desktop-theme", + "preferences-desktop-wallpaper", + "system-file-manager", + "system-software-update", + "utilities-terminal", + "applications-accessories", + "applications-development", + "applications-games", + "applications-graphics", + "applications-internet", + "applications-multimedia", + "applications-office", + "applications-other", + "applications-system", + "applications-utilities", + "preferences-desktop", + "preferences-desktop-accessibility", + "preferences-desktop-peripherals", + "preferences-desktop-personal", + "preferences-other", + "preferences-system", + "preferences-system-network", + "system-help", + "audio-card", + "audio-input-microphone", + "battery", + "camera-photo", + "camera-video", + "computer", + "drive-cdrom", + "drive-harddisk", + "drive-removable-media", + "input-gaming", + "input-keyboard", + "input-mouse", + "media-cdrom", + "media-floppy", + "multimedia-player", + "multimedia-player", + "network-wired", + "network-wireless", + "printer", + "emblem-default", + "emblem-documents", + "emblem-downloads", + "emblem-favorite", + "emblem-important", + "emblem-mail", + "emblem-photos", + "emblem-readonly", + "emblem-shared", + "emblem-symbolic-link", + "emblem-synchronized", + "emblem-system", + "emblem-unreadable", + "face-angel", + "face-crying", + "face-devil-grin", + "face-devil-sad", + "face-glasses", + "face-kiss", + "face-monkey", + "face-plain", + "face-sad", + "face-smile", + "face-smile-big", + "face-smirk", + "face-surprise", + "face-wink", + "application-x-executable", + "audio-x-generic", + "font-x-generic", + "image-x-generic", + "package-x-generic", + "text-html", + "text-x-generic", + "text-x-generic-template", + "text-x-script", + "video-x-generic", + "x-office-address-book", + "x-office-calendar", + "x-office-document", + "x-office-presentation", + "x-office-spreadsheet", + "folder", + "folder-remote", + "network-server", + "network-workgroup", + "start-here", + "user-desktop", + "user-home", + "user-trash", + "appointment-missed", + "appointment-soon", + "audio-volume-high", + "audio-volume-low", + "audio-volume-medium", + "audio-volume-muted", + "battery-caution", + "battery-low", + "dialog-error", + "dialog-information", + "dialog-password", + "dialog-question", + "dialog-warning", + "folder-drag-accept", + "folder-open", + "folder-visiting", + "image-loading", + "image-missing", + "mail-attachment", + "mail-unread", + "mail-read", + "mail-replied", + "mail-signed", + "mail-signed-verified", + "media-playlist-repeat", + "media-playlist-shuffle", + "network-error", + "network-idle", + "network-offline", + "network-receive", + "network-transmit", + "network-transmit-receive", + "printer-error", + "printer-printing", + "software-update-available", + "software-update-urgent", + "sync-error", + "sync-synchronizing", + "task-due", + "task-passed-due", + "user-away", + "user-idle", + "user-offline", + "user-online", + "user-trash-full", + "weather-clear", + "weather-clear-night", + "weather-few-clouds", + "weather-few-clouds-night", + "weather-fog", + "weather-overcast", + "weather-severe-alert", + "weather-showers", + "weather-showers-scattered", + "weather-snow", + "weather-storm", +#endif + NULL +}; + +int +ef_cb_efreet_icon_match(void) +{ + int i, ret = 1; + Eina_Hash *icon_hash; + Efreet_Icon_Theme *theme; + + theme = efreet_icon_theme_find(THEME); + icon_hash = eina_hash_string_superfast_new(free); + + ef_icons_find(theme, icon_hash); + + double start = ecore_time_get(); + for (i = 0; system_icons[i]; i++) + { + const char *path; + char *p, *s; + + path = efreet_icon_path_find(THEME, system_icons[i], SIZE); + + if (!path) + { +#if 1 + if (eina_hash_find(icon_hash, system_icons[i])) + { + printf("NOT FOUND %s\n", system_icons[i]); + ret = 0; + } +#endif + continue; + } + else if (!eina_hash_find(icon_hash, system_icons[i])) + { + printf("Found icon not in hash: %s\n", system_icons[i]); + } + + p = strdup(path); + s = strrchr(p, '.'); + if (s) *s = '\0'; + s = strrchr(p, '/'); + if (s) s++; + + if (s && strcmp(s, system_icons[i])) + { + printf("Name mismatch name (%s) vs ef (%s)\n", system_icons[i], s); + ret = 0; + } + free(p); + } + printf("Time: %f\n", (ecore_time_get() - start)); + eina_hash_free(icon_hash); + + start = ecore_time_get(); + for (i = 0; system_icons[i]; i++) + { + const char *path; + char *p, *s; + + path = efreet_icon_path_find(THEME, system_icons[i], SIZE); + + if (!path) continue; + p = strdup(path); + + s = strrchr(p, '.'); + if (s) *s = '\0'; + s = strrchr(p, '/'); + if (s) s++; + + if (s && strcmp(s, system_icons[i])) + { + printf("Name mismatch name (%s) vs ef (%s)\n", system_icons[i], s); + ret = 0; + } + free(p); + } + printf("Time: %f\n", (ecore_time_get() - start)); + + return ret; +} + +static void +ef_icons_find(Efreet_Icon_Theme *theme, Eina_Hash *icons) +{ + Eina_List *l, *ll; + char path[PATH_MAX]; + const char *theme_path; + + if (!theme || !icons) return; + + EINA_LIST_FOREACH(theme->paths, l, theme_path) + { + Efreet_Icon_Theme_Directory *dir; + + EINA_LIST_FOREACH(theme->directories, ll, dir) + { + snprintf(path, sizeof(path), "%s/%s/", theme_path, dir->name); + ef_read_dir(path, icons); + } + } + + if (theme->inherits) + { + Efreet_Icon_Theme *parent_theme; + char *parent; + + EINA_LIST_FOREACH(theme->inherits, l, parent) + { + parent_theme = efreet_icon_theme_find(parent); + if (parent_theme) + ef_icons_find(parent_theme, icons); + } + } + else if (theme->valid && strcmp(theme->name.internal, "hicolor")) + { + Efreet_Icon_Theme *parent_theme; + + parent_theme = efreet_icon_theme_find("hicolor"); + if (parent_theme) + ef_icons_find(parent_theme, icons); + } + + ef_read_dir("/usr/share/pixmaps", icons); +} + +static void +ef_read_dir(const char *dir, Eina_Hash *icons) +{ + Eina_List *files; + char *file; + + if (!dir || !icons) return; + + files = ecore_file_ls(dir); + if (!files) return; + + while ((file = eina_list_data_get(files))) + { + char *p; + + files = eina_list_remove_list(files, files); + p = strrchr(file, '.'); + if (!p) + { + FREE(file); + continue; + } + + if (!strcmp(p, ".png") || !strcmp(p, ".xpm")) + { + *p = '\0'; + + eina_hash_add(icons, file, strdup(file)); + } + + FREE(file); + } +} diff --git a/legacy/efreet/src/tests/ef_ini.c b/legacy/efreet/src/tests/ef_ini.c new file mode 100644 index 0000000000..d31fb456f8 --- /dev/null +++ b/legacy/efreet/src/tests/ef_ini.c @@ -0,0 +1,174 @@ +#include "Efreet.h" +#include "config.h" +#include +#include +#include + +int +ef_cb_ini_parse(void) +{ + int ret = 1; + Efreet_Ini *ini; + + putenv("LC_ALL=en_US"); + + ini = efreet_ini_new(PACKAGE_DATA_DIR"/test/test.ini"); + if (!ini) + { + printf("efreet_ini_parse() Failed to initialize Efreet_Ini\n"); + return 0; + } + + if (efreet_ini_section_set(ini, "contact")) + { + const char *val; + int ival; + unsigned int bval; + + val = efreet_ini_string_get(ini, "Name"); + if (!val || strcmp(val, "Foo Bar")) + { + printf("efreet_ini_string_get() Name parsed incorrectly\n"); + ret = 0; + } + + val = efreet_ini_localestring_get(ini, "Name"); + if (!val || strcmp(val, "English Foo Bar")) + { + printf("efreet_ini_localestring_get() Name parsed incorrectly\n"); + ret = 0; + } + + val = efreet_ini_string_get(ini, "Email"); + if (!val || strcmp(val, "foo@bar.com")) + { + printf("efreet_ini_string_get() Email parsed incorrectly\n"); + ret = 0; + } + + val = efreet_ini_localestring_get(ini, "Email"); + if (!val || strcmp(val, "foo@bar.com")) + { + printf("efreet_ini_localestring_get() Email parsed incorrectly\n"); + ret = 0; + } + + ival = efreet_ini_int_get(ini, "Age"); + if (ival != 30) + { + printf("efreet_ini_int_get() Age parsed incorrectly\n"); + ret = 0; + } + + bval = efreet_ini_boolean_get(ini, "TrueBoolean"); + if (!bval) + { + printf("efreet_ini_boolean_get() TrueBoolean parsed incorrectly\n"); + ret = 0; + } + + bval = efreet_ini_boolean_get(ini, "FalseBoolean"); + if (bval) + { + printf("efreet_ini_boolean_get() FalseBoolean parsed incorrectly\n"); + ret = 0; + } + + bval = efreet_ini_boolean_get(ini, "InvalidBoolean"); + if (bval) + { + printf("efreet_ini_boolean_get() InvalidBoolean parsed incorrectly\n"); + ret = 0; + } + + val = efreet_ini_string_get(ini, "Escaped"); + if (!val || strcmp(val, "line1\nline2\r\nline3\ttabbed \\ with a backslash and spaces")) + { + printf("efreet_ini_unescape() improperly unescaped value\n"); + ret = 0; + } + } + else + { + printf("efreet_ini_section_set() Failed to set 'contact' section\n"); + ret = 0; + } + + efreet_ini_free(ini); + + return ret; +} + +int +ef_cb_ini_long_line(void) +{ + Efreet_Ini *ini; + int ret = 1; + + struct + { + char *key; + int len; + } tests[] = { + {"key", 5099}, + {"key2", 5099}, + {NULL, 0} + }; + + ini = efreet_ini_new(PACKAGE_DATA_DIR"/test/long.ini"); + if (!ini) + { + printf("Ini failed to parse.\n"); + ret = 0; + } + + if (ret) ret = efreet_ini_section_set(ini, "section"); + if (ret) + { + const char *val; + int i, len; + + for (i = 0; tests[i].key; i++) + { + val = efreet_ini_string_get(ini, tests[i].key); + if (val) + { + len = strlen(val); + if (len != tests[i].len) + { + printf("Invalid long line parsing. Value length: %d (expected %d)\n", len, tests[i].len); + ret = 0; + } + } + else + { + printf("Key missing: %s.", tests[i].key); + ret = 0; + } + } + } + else + { + printf("Section missing: 'section'."); + } + + if (ini) efreet_ini_free(ini); + return ret; +} + +int +ef_cb_ini_garbage(void) +{ + Efreet_Ini *ini; + int ret = 1; + + ini = efreet_ini_new(PACKAGE_DATA_DIR"/test/test_garbage"); + if (!ini) + { + printf("Ini failed to parse.\n"); + return 0; + } + if (ini->data) ret = 0; + efreet_ini_free(ini); + return ret; +} diff --git a/legacy/efreet/src/tests/ef_locale.c b/legacy/efreet/src/tests/ef_locale.c new file mode 100644 index 0000000000..cfc50e2626 --- /dev/null +++ b/legacy/efreet/src/tests/ef_locale.c @@ -0,0 +1,85 @@ +#include "Efreet.h" +#include "efreet_private.h" +#include +#include +#include + +int +ef_cb_locale(void) +{ + int ret = 1, i; + struct + { + char *lc_message; + char *lang; + char *country; + char *modifier; + } langs[] = { + /* these are ordered such that when we move from LANG to LC_MESSAGES + * the LANG env will still be effect. Same with moving from + * LC_MESSAGES to LANG */ + {"LANG=", NULL, NULL, NULL}, + {"LANG=en", "en", NULL, NULL}, + {"LANG=en@Latn", "en", NULL, "Latn"}, + {"LANG=en_US", "en", "US", NULL}, + {"LANG=en_US@Latn", "en", "US", "Latn"}, + {"LANG=en_US.blah@Latn", "en", "US", "Latn"}, + {"LC_MESSAGES=", "en", "US", "Latn"}, /* This will fallback to LANG */ + {"LC_MESSAGES=fr", "fr", NULL, NULL}, + {"LC_MESSAGES=fr@Blah", "fr", NULL, "Blah"}, + {"LC_MESSAGES=fr_FR", "fr", "FR", NULL}, + {"LC_MESSAGES=fr_FR@Blah", "fr", "FR", "Blah"}, + {"LC_MESSAGES=fr_FR.Foo@Blah", "fr", "FR", "Blah"}, + {"LC_ALL=", "fr", "FR", "Blah"}, /* this will fallback to LC_MESSAGES */ + {"LC_ALL=sr", "sr", NULL, NULL}, + {"LC_ALL=sr@Ret", "sr", NULL, "Ret"}, + {"LC_ALL=sr_YU", "sr", "YU", NULL}, + {"LC_ALL=sr_YU@Ret", "sr", "YU", "Ret"}, + {"LC_ALL=sr_YU.ssh@Ret", "sr", "YU", "Ret"}, + {NULL, NULL, NULL, NULL} + }; + + /* reset everything to blank */ + putenv("LC_ALL="); + putenv("LC_MESSAGES="); + putenv("LANG="); + + for (i = 0; langs[i].lc_message; i++) + { + const char *tmp; + + putenv(langs[i].lc_message); + + tmp = efreet_lang_get(); + if ((langs[i].lang && (!tmp || strcmp(tmp, langs[i].lang))) + || (!langs[i].lang && tmp)) + { + printf("efreet_lang_get() is wrong (%s) with %s\n", + tmp, langs[i].lang); + ret = 0; + } + + tmp = efreet_lang_country_get(); + if ((langs[i].country && (!tmp || strcmp(tmp, langs[i].country))) + || (!langs[i].country && tmp)) + { + printf("efreet_lang_country_get() is wrong (%s) with %s\n", + tmp, langs[i].lang); + ret = 0; + } + + tmp = efreet_lang_modifier_get(); + if ((langs[i].modifier && (!tmp || strcmp(tmp, langs[i].modifier))) + || (!langs[i].modifier && tmp)) + { + printf("efreet_lang_modifier_get() is wrong with %s with %s\n", + tmp, langs[i].lang); + ret = 0; + } + + efreet_shutdown(); + efreet_init(); + } + + return ret; +} diff --git a/legacy/efreet/src/tests/ef_menu.c b/legacy/efreet/src/tests/ef_menu.c new file mode 100644 index 0000000000..4adbd941c0 --- /dev/null +++ b/legacy/efreet/src/tests/ef_menu.c @@ -0,0 +1,150 @@ +#include "Efreet.h" +#include "config.h" +#include +#include + +#if 0 +static void +ef_menu_desktop_exec(Efreet_Menu *menu) +{ + Eina_List *l; + + if (menu->entries) + { + Efreet_Desktop *desktop; + + EINA_LIST_FOREACH(menu->entries, l, desktop) + efreet_desktop_exec(desktop, NULL); + } + if (menu->sub_menus) + { + Efreet_Menu *sub_menu; + + EINA_LIST_FOREACH(menu->sub_menus, l, sub_menu) + ef_menu_desktop_exec(sub_menu); + } +} +#endif + +int +ef_cb_menu_get(void) +{ + Efreet_Menu *menu; + + menu = efreet_menu_get(); +// menu = efreet_menu_parse(PACKAGE_DATA_DIR"/test/test.menu"); + if (!menu) + { + printf("efreet_menu_get() returned NULL\n"); + return 0; + } + printf("\n"); + efreet_menu_dump(menu, ""); + efreet_menu_free(menu); + + return 1; +} + +int +ef_cb_menu_with_slashes(void) +{ + Efreet_Menu *menu; + + menu = efreet_menu_parse(PACKAGE_DATA_DIR"/test/test_menu_slash_bad.menu"); + if (menu) + { + printf("efreet_menu_get() didn't return NULL\n"); + return 0; + } + + return 1; +} + +int +ef_cb_menu_save(void) +{ + Efreet_Menu *menu; + int ret; + +// menu = efreet_menu_get(); + menu = efreet_menu_parse(PACKAGE_DATA_DIR"/test/test.menu"); + if (!menu) + { + printf("efreet_menu_get() returned NULL\n"); + return 0; + } + unlink("/tmp/test.menu"); + ret = efreet_menu_save(menu, "/tmp/test.menu"); + efreet_menu_free(menu); + return ret; +} + +int +ef_cb_menu_edit(void) +{ + Efreet_Menu *menu, *entry; + Efreet_Desktop *desktop; + +// menu = efreet_menu_get(); + menu = efreet_menu_parse(PACKAGE_DATA_DIR"/test/test.menu"); + if (!menu) + { + printf("efreet_menu_get() returned NULL\n"); + return 0; + } +#if 0 + printf("\n"); + efreet_menu_dump(menu, ""); + printf("\n"); +#endif + + desktop = efreet_desktop_get(PACKAGE_DATA_DIR"/test/test.desktop"); + if (!desktop) + { + efreet_menu_free(menu); + printf("No desktop found.\n"); + return 0; + } + + efreet_menu_desktop_insert(menu, desktop, 0); +#if 0 + printf("\n"); + efreet_menu_dump(menu, ""); + printf("\n"); +#endif + entry = eina_list_data_get(menu->entries); + if (desktop != entry->desktop) + { + efreet_menu_free(menu); + return 0; + } + + efreet_menu_desktop_insert(menu, desktop, 2); +#if 0 + printf("\n"); + efreet_menu_dump(menu, ""); + printf("\n"); +#endif + entry = eina_list_nth(menu->entries, 2); + if (desktop != entry->desktop) + { + efreet_menu_free(menu); + return 0; + } + + efreet_menu_desktop_insert(menu, desktop, -1); +#if 0 + printf("\n"); + efreet_menu_dump(menu, ""); + printf("\n"); +#endif + entry = eina_list_data_get(eina_list_last(menu->entries)); + if (desktop != entry->desktop) + { + efreet_menu_free(menu); + return 0; + } + + efreet_menu_free(menu); + return 1; +} diff --git a/legacy/efreet/src/tests/ef_mime.c b/legacy/efreet/src/tests/ef_mime.c new file mode 100644 index 0000000000..9202f5bb51 --- /dev/null +++ b/legacy/efreet/src/tests/ef_mime.c @@ -0,0 +1,58 @@ +#include "Efreet.h" +#include "Efreet_Mime.h" +#include "config.h" +#include +#include +#include +#include +#include + +#define THEME "Tango" +#define SIZE 128 + +int +ef_mime_cb_get(void) +{ + const char *mime = NULL, *icon; + int misses = 0, i = 0; + struct + { + char *file; + char *mime; + } files[] = { + {PACKAGE_DATA_DIR"/test/test_type.desktop", "application/x-desktop"}, + {PACKAGE_DATA_DIR"/test/entry.png", "image/png"}, + {PACKAGE_DATA_DIR"/test/entry", "image/png"}, + {PACKAGE_DATA_DIR"/test/sub", "inode/directory"}, + {NULL, NULL} + }; + double start; + + if (!efreet_mime_init()) + { + printf("Could not init efreet\n"); + return 1; + } + + for (i = 0; files[i].file; ++i) + { + mime = efreet_mime_type_get(files[i].file); + if (!mime) + { + printf("Got %s as null instead of %s\n", files[i].file, files[i].mime); + misses ++; + } + else if (strcmp(mime, files[i].mime)) + { + printf("Got %s as %s instead of %s\n", files[i].file, mime, files[i].mime); + misses ++; + } + start = ecore_time_get(); + icon = efreet_mime_type_icon_get(files[i].mime, THEME, SIZE); + printf("mime icon: %s %s %f\n", files[i].mime, icon, ecore_time_get() - start); + } + + efreet_mime_shutdown(); + + return !misses; +} diff --git a/legacy/efreet/src/tests/ef_test.h b/legacy/efreet/src/tests/ef_test.h new file mode 100644 index 0000000000..2e88c68d25 --- /dev/null +++ b/legacy/efreet/src/tests/ef_test.h @@ -0,0 +1,11 @@ +#ifndef EF_TEST +#define EF_TEST + +#include "config.h" + +#include + +#define IF_FREE(x) do { if (x) free(x); x = NULL; } while (0); +#define NEW(x, c) calloc(c, sizeof(x)) + +#endif diff --git a/legacy/efreet/src/tests/ef_utils.c b/legacy/efreet/src/tests/ef_utils.c new file mode 100644 index 0000000000..67e10ca4ce --- /dev/null +++ b/legacy/efreet/src/tests/ef_utils.c @@ -0,0 +1,29 @@ +#include "Efreet.h" +#include "efreet_private.h" +#include + +int +ef_cb_utils(void) +{ + Efreet_Desktop *desktop; + const char *tmp2; + + printf("\n"); + + tmp2 = efreet_util_path_to_file_id("/usr/share/applications/this/tmp/test.desktop"); + if (tmp2) printf("%s\n", tmp2); + + desktop = efreet_util_desktop_file_id_find("kde-kresources.desktop"); + printf("kde-kresources.desktop: %p\n", desktop); + efreet_desktop_free(desktop); + + desktop = efreet_util_desktop_file_id_find("mplayer.desktop"); + printf("mplayer.desktop: %p\n", desktop); + efreet_desktop_free(desktop); + + desktop = efreet_util_desktop_file_id_find("nautilus-computer.desktop"); + printf("nautilus-computer.desktop: %p\n", desktop); + efreet_desktop_free(desktop); + + return 1; +} diff --git a/legacy/efreet/src/tests/efreet_icon_cache_dump.c b/legacy/efreet/src/tests/efreet_icon_cache_dump.c new file mode 100644 index 0000000000..40abf1866f --- /dev/null +++ b/legacy/efreet/src/tests/efreet_icon_cache_dump.c @@ -0,0 +1,134 @@ +#ifdef HAVE_CONFIG_H +# include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "Efreet.h" +#include "efreet_private.h" +#include "efreet_cache_private.h" + +static Eet_Data_Descriptor *edd = NULL; + +int verbose = 0; + +static void +dump(Efreet_Icon_Theme *theme, Eet_File *ef) +{ + Efreet_Cache_Icons *cache; + Eina_Iterator *it; + const char *key; + unsigned int count = 0; + double start, avg; + + start = ecore_time_get(); + + printf("open: %s\n", theme->name.internal); + + cache = eet_data_read(ef, edd, theme->name.internal); + + printf("read: %s %f\n", theme->name.internal, ecore_time_get() - start); + + if (!cache || !cache->icons) return ; + + it = eina_hash_iterator_key_new(cache->icons); + + EINA_ITERATOR_FOREACH(it, key) + { + Efreet_Cache_Icon *icon; + unsigned int i; + + icon = eina_hash_find(cache->icons, key); + + for (i = 0; i < icon->icons_count; ++i) + count += icon->icons[i]->paths_count; + } + + eina_iterator_free(it); + + efreet_hash_free(cache->icons, EINA_FREE_CB(efreet_cache_icon_free)); + free(cache); + + start = ecore_time_get() - start; + avg = start / count; + printf("read: %s - %u paths (time: %f) (avg %f)\n", theme->name.internal, count, start, avg); +} + +int +main(int argc, char **argv) +{ + Eet_File *icons_ef; + Eet_File *theme_ef; + Eina_List *l = NULL; + Efreet_Icon_Theme *theme; + int i; + + efreet_cache_update = 0; + + if (!efreet_init()) return -1; + + theme_ef = eet_open(efreet_icon_theme_cache_file(), EET_FILE_MODE_READ); + if (!theme_ef) return -1; + + edd = efreet_icons_edd(EINA_FALSE); + if (!edd) return -1; + + if (argc > 1) + { + for (i = 1; i < argc; i++) + { + theme = eet_data_read(theme_ef, efreet_icon_theme_edd(), argv[i]); + if (theme) l = eina_list_append(l, theme); + } + } + else + { + char **keys; + int num; + + keys = eet_list(theme_ef, "*", &num); + if (keys) + { + for (i = 0; i < num; i++) + { + theme = eet_data_read(theme_ef, efreet_icon_theme_edd(), keys[i]); + if (theme) l = eina_list_append(l, theme); + } + free(keys); + } + } + + icons_ef = eet_open(efreet_icon_cache_file(), EET_FILE_MODE_READ); + if (!icons_ef) return -1; + + EINA_LIST_FREE(l, theme) + { + void *data; + + dump(theme, icons_ef); + + /* free theme */ + eina_list_free(theme->paths); + eina_list_free(theme->inherits); + EINA_LIST_FREE(theme->directories, data) + free(data); + free(theme); + } + + eet_close(icons_ef); + + efreet_shutdown(); + return 0; +} diff --git a/legacy/efreet/src/tests/efreet_spec_test.c b/legacy/efreet/src/tests/efreet_spec_test.c new file mode 100644 index 0000000000..7c414b5812 --- /dev/null +++ b/legacy/efreet/src/tests/efreet_spec_test.c @@ -0,0 +1,57 @@ +#include +#include +#include +#include "ef_test.h" + +static void dump(Efreet_Menu *menu, const char *path); + +int +main(int argc __UNUSED__, char **argv __UNUSED__) +{ + Efreet_Menu *menu; + + if (!efreet_init()) + { + fprintf(stderr, "Failed to init Efreet\n"); + return 1; + } + + menu = efreet_menu_get(); + if (!menu) + { + fprintf(stderr, "Failed to read menu\n"); + return 1; + } + + dump(menu, ""); + + efreet_menu_free(menu); + efreet_shutdown(); + return 0; +} + +static void +dump(Efreet_Menu *menu, const char *path) +{ + Efreet_Menu *entry; + Eina_List *l; + + if (!menu || !menu->entries) return; + + EINA_LIST_FOREACH(menu->entries, l, entry) + { + if (entry->type == EFREET_MENU_ENTRY_DESKTOP) + { + if (!path || !*path) path = "/"; + printf("%s\t%s\t%s\n", path, entry->id, + entry->desktop->orig_path); + } + else if (entry->type == EFREET_MENU_ENTRY_MENU) + { + char new_path[PATH_MAX]; + + snprintf(new_path, sizeof(new_path), "%s%s/", path, entry->name); + dump(entry, new_path); + } + } +} diff --git a/legacy/efreet/src/tests/efreet_suite.c b/legacy/efreet/src/tests/efreet_suite.c new file mode 100644 index 0000000000..7424435b5f --- /dev/null +++ b/legacy/efreet/src/tests/efreet_suite.c @@ -0,0 +1,103 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include + +#include + +#include "efreet_suite.h" + +typedef struct _Efreet_Test_Case Efreet_Test_Case; + +struct _Efreet_Test_Case +{ + const char *test_case; + void (*build)(TCase *tc); +}; + +static const Efreet_Test_Case etc[] = { + { "Efreet", efreet_test_efreet }, + { "Efreet Cache", efreet_test_efreet_cache }, + { NULL, NULL } +}; + +static void +_list_tests(void) +{ + const Efreet_Test_Case *itr; + + itr = etc; + fputs("Available Test Cases:\n", stderr); + for (; itr->test_case; itr++) + fprintf(stderr, "\t%s\n", itr->test_case); +} + +static Eina_Bool +_use_test(int argc, const char **argv, const char *test_case) +{ + if (argc < 1) + return 1; + + for (; argc > 0; argc--, argv++) + if (strcmp(test_case, *argv) == 0) + return 1; + return 0; +} + +static Suite * +efreet_suite_build(int argc, const char **argv) +{ + TCase *tc; + Suite *s; + int i; + + s = suite_create("Efreet"); + + for (i = 0; etc[i].test_case; ++i) + { + if (!_use_test(argc, argv, etc[i].test_case)) continue; + tc = tcase_create(etc[i].test_case); + + etc[i].build(tc); + + suite_add_tcase(s, tc); + tcase_set_timeout(tc, 0); + } + + return s; +} + +int +main(int argc, char **argv) +{ + Suite *s; + SRunner *sr; + int i, failed_count; + + for (i = 1; i < argc; i++) + if ((strcmp(argv[i], "-h") == 0) || + (strcmp(argv[i], "--help") == 0)) + { + fprintf(stderr, "Usage:\n\t%s [test_case1 .. [test_caseN]]\n", + argv[0]); + _list_tests(); + return 0; + } + else if ((strcmp(argv[i], "-l") == 0) || + (strcmp(argv[i], "--list") == 0)) + { + _list_tests(); + return 0; + } + + s = efreet_suite_build(argc - 1, (const char **)argv + 1); + sr = srunner_create(s); + + srunner_run_all(sr, CK_NORMAL); + failed_count = srunner_ntests_failed(sr); + srunner_free(sr); + + return (failed_count == 0) ? 0 : 255; +} diff --git a/legacy/efreet/src/tests/efreet_suite.h b/legacy/efreet/src/tests/efreet_suite.h new file mode 100644 index 0000000000..bfb47f9dab --- /dev/null +++ b/legacy/efreet/src/tests/efreet_suite.h @@ -0,0 +1,10 @@ +#ifndef _EFREET_SUITE_H +#define _EFREET_SUITE_H + +#include + +void efreet_test_efreet(TCase *tc); +void efreet_test_efreet_cache(TCase *tc); + + +#endif /* _EFREET_SUITE_H */ diff --git a/legacy/efreet/src/tests/efreet_test_efreet.c b/legacy/efreet/src/tests/efreet_test_efreet.c new file mode 100644 index 0000000000..d35ec9effd --- /dev/null +++ b/legacy/efreet/src/tests/efreet_test_efreet.c @@ -0,0 +1,25 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +#include "efreet_suite.h" + + +START_TEST(efreet_test_efreet_init) +{ + int ret; + + ret = efreet_init(); + fail_if(ret != 1); + + ret = efreet_shutdown(); + fail_if(ret != 0); +} +END_TEST + +void efreet_test_efreet(TCase *tc) +{ + tcase_add_test(tc, efreet_test_efreet_init); +} diff --git a/legacy/efreet/src/tests/efreet_test_efreet_cache.c b/legacy/efreet/src/tests/efreet_test_efreet_cache.c new file mode 100644 index 0000000000..2f8972de33 --- /dev/null +++ b/legacy/efreet/src/tests/efreet_test_efreet_cache.c @@ -0,0 +1,25 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include + +#include "efreet_suite.h" + + +START_TEST(efreet_test_efreet_cache_init) +{ + int ret; + + ret = efreet_init(); + fail_if(ret != 1); + + ret = efreet_shutdown(); + fail_if(ret != 0); +} +END_TEST + +void efreet_test_efreet_cache(TCase *tc) +{ + tcase_add_test(tc, efreet_test_efreet_cache_init); +} diff --git a/legacy/efreet/src/tests/main.c b/legacy/efreet/src/tests/main.c new file mode 100644 index 0000000000..f0093b0c1a --- /dev/null +++ b/legacy/efreet/src/tests/main.c @@ -0,0 +1,180 @@ +#include "Efreet.h" +#include "Efreet_Mime.h" +#include +#include +#include +#include + +int ef_cb_efreet_data_home(void); +int ef_cb_efreet_config_home(void); +int ef_cb_efreet_cache_home(void); +int ef_cb_efreet_data_dirs(void); +int ef_cb_efreet_config_dirs(void); +int ef_cb_efreet_icon_theme(void); +int ef_cb_efreet_icon_theme_list(void); +int ef_cb_efreet_icon_match(void); +int ef_cb_ini_parse(void); +int ef_cb_ini_long_line(void); +int ef_cb_ini_garbage(void); +#if DEFAULT_VISIBILITY +int ef_cb_locale(void); +#endif +int ef_cb_desktop_parse(void); +int ef_cb_desktop_save(void); +int ef_cb_desktop_command_get(void); +int ef_cb_desktop_type_parse(void); +#if 0 +int ef_cb_desktop_file_id(void); +#endif +int ef_cb_menu_get(void); +int ef_cb_menu_with_slashes(void); +int ef_cb_menu_save(void); +#if 0 +int ef_cb_menu_edit(void); +#endif +int ef_cb_utils(void); +int ef_mime_cb_get(void); + +typedef struct Efreet_Test Efreet_Test; +struct Efreet_Test +{ + char *name; + int (*cb)(void); +}; + +static Efreet_Test tests[] = { + {"Data Home", ef_cb_efreet_data_home}, + {"Config Home", ef_cb_efreet_config_home}, + {"Cache Home", ef_cb_efreet_cache_home}, + {"Data Directories", ef_cb_efreet_data_dirs}, + {"Config Directories", ef_cb_efreet_config_dirs}, + {"Icon Theme Basic", ef_cb_efreet_icon_theme}, + {"Icon Theme List", ef_cb_efreet_icon_theme_list}, + {"Icon Matching", ef_cb_efreet_icon_match}, + {"INI Parsing", ef_cb_ini_parse}, + {"INI Long Line Parsing", ef_cb_ini_long_line}, + {"INI Garbage Parsing", ef_cb_ini_garbage}, +#if DEFAULT_VISIBILITY + {"Locale Parsing", ef_cb_locale}, +#endif + {"Desktop Parsing", ef_cb_desktop_parse}, + {"Desktop Type Parsing", ef_cb_desktop_type_parse}, + {"Desktop Save", ef_cb_desktop_save}, + {"Desktop Command", ef_cb_desktop_command_get}, +#if 0 + {"Desktop File ID", ef_cb_desktop_file_id}, +#endif + {"Menu Parsing", ef_cb_menu_get}, + {"Menu Incorrect Names", ef_cb_menu_with_slashes}, + {"Menu Save", ef_cb_menu_save}, +#if 0 + {"Menu Edit", ef_cb_menu_edit}, +#endif + {"Utils", ef_cb_utils}, + {"Mime", ef_mime_cb_get}, + {NULL, NULL} +}; + +extern char **environ; +static Eina_List *environment = NULL; + +void +environment_store(void) +{ + char *env; + char **e; + + EINA_LIST_FREE(environment, env) + free(env); + + for (e = environ; *e; e++) + environment = eina_list_append(environment, strdup(*e)); +} + +void +environment_restore(void) +{ + Eina_List *l; + char *e; + if (!environment) return; + + clearenv(); + EINA_LIST_FOREACH(environment, l, e) + putenv(e); +} + +int +main(int argc, char ** argv) +{ + int i, passed = 0, num_tests = 0; + Eina_List *run = NULL; + double total; + char *env; + + eina_init(); + ecore_init(); + + total = ecore_time_get(); + if (argc > 1) + { + for (i = 1; i < argc; i++) + { + if ((!strcmp(argv[i], "-h")) || + (!strcmp(argv[i], "--help"))) + { + for (i = 0; tests[i].name; i++) + { + printf("%s\n", tests[i].name); + } + return 1; + } + run = eina_list_append(run, argv[i]); + } + } + + environment_store(); + for (i = 0; tests[i].name; i++) + { + int ret; + double start; + + /* we've been given specific tests and it isn't in the list */ + if (run && !eina_list_search_unsorted(run, EINA_COMPARE_CB(strcasecmp), + tests[i].name)) + continue; + + if (!efreet_init()) + { + printf("Error initializing Efreet\n"); + continue; + } + + num_tests ++; + + printf("%s:\t\t", tests[i].name); + fflush(stdout); + start = ecore_time_get(); + ret = tests[i].cb(); + printf("%s in %.3f seconds\n", (ret ? "PASSED" : "FAILED"), + ecore_time_get() - start); + passed += ret; + + efreet_shutdown(); + environment_restore(); + } + + printf("\n-----------------\n"); + clearenv(); + EINA_LIST_FREE(environment, env) + free(env); + printf("Passed %d of %d tests.\n", passed, num_tests); + + while (run) + run = eina_list_remove_list(run, run); + + printf("Total run: %.3f seconds\n", ecore_time_get() - total); + + ecore_shutdown(); + eina_shutdown(); + return 0; +}