summaryrefslogtreecommitdiff
path: root/test/unittest_core.cxx
diff options
context:
space:
mode:
authorMatthias Melcher <github@matthiasm.com>2023-09-05 14:45:51 +0200
committerMatthias Melcher <github@matthiasm.com>2023-09-05 14:45:57 +0200
commit6bb5a81cee7e76e8a4e69f7f49869f39c1c382f0 (patch)
tree2a6d6f73dd19dd52aaccd1d99b50a20bb53946d6 /test/unittest_core.cxx
parentb2a41e08c3b9b5fbbd0c899537611b8e28e5993d (diff)
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)
Diffstat (limited to 'test/unittest_core.cxx')
-rw-r--r--test/unittest_core.cxx50
1 files changed, 50 insertions, 0 deletions
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 {