From 6bb5a81cee7e76e8a4e69f7f49869f39c1c382f0 Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Tue, 5 Sep 2023 14:45:51 +0200 Subject: Adds some convenience methods. fl_filename_absolute can no generate a path using arbitrary source paths. Fl_Menu_ adds find_item_with_user_data and find_item_with_argument Fl_String adds find(string, start) --- test/unittest_core.cxx | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'test') diff --git a/test/unittest_core.cxx b/test/unittest_core.cxx index baccdbd04..6091dd7b4 100644 --- a/test/unittest_core.cxx +++ b/test/unittest_core.cxx @@ -243,6 +243,56 @@ TEST(Fl_Preferences, Strings) { return true; } +TEST(fl_filename, ext) { + Fl_String r = fl_filename_ext("test.txt"); + EXPECT_STREQ(r.c_str(), ".txt"); + r = fl_filename_ext("test"); + EXPECT_STREQ(r.c_str(), ""); + r = fl_filename_ext(""); + EXPECT_STREQ(r.c_str(), ""); + return true; +} + +TEST(fl_filename, setext) { + Fl_String r = fl_filename_setext(Fl_String("test.txt"), ".rtf"); + EXPECT_STREQ(r.c_str(), "test.rtf"); + r = fl_filename_setext(Fl_String("test"), ".rtf"); + EXPECT_STREQ(r.c_str(), "test.rtf"); + r = fl_filename_setext(Fl_String("test.txt"), ""); + EXPECT_STREQ(r.c_str(), "test"); + r = fl_filename_setext(Fl_String(""), ".rtf"); + EXPECT_STREQ(r.c_str(), ".rtf"); + r = fl_filename_setext(Fl_String("path/test"), ".rtf"); + EXPECT_STREQ(r.c_str(), "path/test.rtf"); + return true; +} + +TEST(fl_filename, relative) { + Fl_String base = "/var/tmp/somedir"; + Fl_String r = fl_filename_relative("/var/tmp/somedir/foo.txt", base); + EXPECT_STREQ(r.c_str(), "foo.txt"); + r = fl_filename_relative("/var/tmp/foo.txt", base); + EXPECT_STREQ(r.c_str(), "../foo.txt"); + r = fl_filename_relative("./foo.txt", base); + EXPECT_STREQ(r.c_str(), "./foo.txt"); + r = fl_filename_relative("../foo.txt", base); + EXPECT_STREQ(r.c_str(), "../foo.txt"); + return true; + } + +TEST(fl_filename, absolute) { + Fl_String base = "/var/tmp/somedir"; + Fl_String r = fl_filename_absolute("foo.txt", base); + EXPECT_STREQ(r.c_str(), "/var/tmp/somedir/foo.txt"); + r = fl_filename_absolute("/var/tmp/foo.txt", base); + EXPECT_STREQ(r.c_str(), "/var/tmp/foo.txt"); + r = fl_filename_absolute("./foo.txt", base); + EXPECT_STREQ(r.c_str(), "/var/tmp/somedir/foo.txt"); + r = fl_filename_absolute("../foo.txt", base); + EXPECT_STREQ(r.c_str(), "/var/tmp/foo.txt"); + return true; +} + bool cb1a_ok = false, cb1b_ok = false, cb1c_ok = false; int cb1_alloc = 0; class MyString : public Fl_String { -- cgit v1.2.3