diff options
author | Ernestas Kulik <ernestask@gnome.org> | 2017-12-23 17:28:00 +0200 |
---|---|---|
committer | Ernestas Kulik <ernestask@gnome.org> | 2017-12-23 17:38:17 +0200 |
commit | 61ac48bdc0230eed8466b7d1a3164aae2a5e8594 (patch) | |
tree | bb96c868ab81ff65012b179585ebe660abea7fb7 /test | |
parent | 351e3f7d4b25a5e8db6e5fee80acea5254fa32d1 (diff) | |
download | nautilus-61ac48bdc0230eed8466b7d1a3164aae2a5e8594.tar.gz |
file-utilities: rework common prefix computation
Currently, the process for getting the common prefix of a list of file
names is a tad too greedy:
1. Find the common prefix of all the strings.
2. Strip the extension from the prefix.
3. Strip trailing punctuation.
Step 2 may strip dots if there’s trailing whitespace and step 3 may
strip useful punctuation (e.g. parentheses). This commit reworks the
process as such:
1. Strip the extension from all the file names.
2. Find the common prefix of all the strings.
3. Trim trailing whitespace.
Fixes #174.
Diffstat (limited to 'test')
-rw-r--r-- | test/meson.build | 5 | ||||
-rw-r--r-- | test/test-eel-string-rtrim-punctuation.c | 122 |
2 files changed, 0 insertions, 127 deletions
diff --git a/test/meson.build b/test/meson.build index 0c7d830d5..f6ad5b007 100644 --- a/test/meson.build +++ b/test/meson.build @@ -16,10 +16,6 @@ test_file_utilities_get_common_filename_prefix = executable ('test-file-utilitie 'test-file-utilities-get-common-filename-prefix.c', dependencies: libnautilus_dep) -test_eel_string_rtrim_punctuation = executable ('test-eel-string-rtrim-punctuation', - 'test-eel-string-rtrim-punctuation.c', - dependencies: libnautilus_dep) - test_eel_string_get_common_prefix = executable ('test-eel-string-get-common-prefix', 'test-eel-string-get-common-prefix.c', dependencies: libnautilus_dep) @@ -27,5 +23,4 @@ test_eel_string_get_common_prefix = executable ('test-eel-string-get-common-pref test ('test-nautilus-search-engine', test_nautilus_search_engine) test ('test-nautilus-directory-async', test_nautilus_directory_async) test ('test-file-utilities-get-common-filename-prefix', test_file_utilities_get_common_filename_prefix) -test ('test-eel-string-rtrim-punctuation', test_eel_string_rtrim_punctuation) test ('test-eel-string-get-common-prefix', test_eel_string_get_common_prefix) diff --git a/test/test-eel-string-rtrim-punctuation.c b/test/test-eel-string-rtrim-punctuation.c deleted file mode 100644 index 526ac9fb4..000000000 --- a/test/test-eel-string-rtrim-punctuation.c +++ /dev/null @@ -1,122 +0,0 @@ -#include <glib.h> - -#include "eel/eel-string.h" - - -static void -test_single_punctuation_character_removed () -{ - char *actual; - actual = eel_str_rtrim_punctuation ("Yossarian-"); - g_assert_cmpstr ("Yossarian", ==, actual); - g_free (actual); -} - -static void -test_tailing_space_is_removed () -{ - char *actual; - actual = eel_str_rtrim_punctuation ("Yossarian "); - g_assert_cmpstr ("Yossarian", ==, actual); - g_free (actual); -} - -static void -test_multiple_punctuation_characters_removed () -{ - char *actual; - actual = eel_str_rtrim_punctuation ("Yossarian-$$!£"); - g_assert_cmpstr ("Yossarian", ==, actual); - g_free (actual); -} - -static void -test_multiple_punctuation_characters_removed_try_all_punctuation_characters () -{ - char *actual; - actual = eel_str_rtrim_punctuation ("Yossarian-`¬!\"£$%^&*()_+-= {}[]:@~;'#<>?,./\\"); - g_assert_cmpstr ("Yossarian", ==, actual); - g_free (actual); -} - -static void -test_punctuation_characters_removed_when_punctuation_in_middle_of_string () -{ - char *actual; - actual = eel_str_rtrim_punctuation ("Yoss,,arian-$$!£"); - g_assert_cmpstr ("Yoss,,arian", ==, actual); - g_free (actual); -} - -static void -test_punctuation_characters_removed_when_prefix_is_single_character () -{ - char *actual; - actual = eel_str_rtrim_punctuation ("Y-$$ !£"); - g_assert_cmpstr ("Y", ==, actual); - g_free (actual); -} - -static void -test_punctuation_characters_removed_when_unicode_characters_are_used () -{ - char *actual; - actual = eel_str_rtrim_punctuation ("Y✺ǨǨǨ-$$ !£"); - g_assert_cmpstr ("Y✺ǨǨǨ", ==, actual); - g_free (actual); -} - -static void -test_when_no_trailing_punctuation () -{ - char *actual; - actual = eel_str_rtrim_punctuation ("Yoss,,arian"); - g_assert_cmpstr ("Yoss,,arian", ==, actual); - g_free (actual); -} - -static void -test_when_single_character_and_no_trailing_punctuation () -{ - char *actual; - actual = eel_str_rtrim_punctuation ("t"); - g_assert_cmpstr ("t", ==, actual); - g_free (actual); -} - -static void -setup_test_suite () -{ - g_test_add_func ("/rtrim-punctuation/1.0", - test_single_punctuation_character_removed); - g_test_add_func ("/rtrim-punctuation/1.1", - test_tailing_space_is_removed); - g_test_add_func ("/rtrim-punctuation/1.2", - test_multiple_punctuation_characters_removed); - g_test_add_func ("/rtrim-punctuation/1.3", - test_multiple_punctuation_characters_removed_try_all_punctuation_characters); - g_test_add_func ("/rtrim-punctuation/1.4", - test_punctuation_characters_removed_when_punctuation_in_middle_of_string); - g_test_add_func ("/rtrim-punctuation/1.5", - test_punctuation_characters_removed_when_prefix_is_single_character); - g_test_add_func ("/rtrim-punctuation/1.6", - test_punctuation_characters_removed_when_unicode_characters_are_used); - - g_test_add_func ("/rtrim-punctuation/2.0", - test_when_no_trailing_punctuation); - g_test_add_func ("/rtrim-punctuation/2.1", - test_when_single_character_and_no_trailing_punctuation); -} - -int -main (int argc, - char *argv[]) -{ - g_test_init (&argc, &argv, NULL); - g_test_bug_base ("http://bugzilla.gnome.org/show_bug.cgi?id=747907"); - g_test_set_nonfatal_assertions (); - - setup_test_suite (); - - return g_test_run (); -} |