#include "StringUtils.h" #include "Path.h" #include "Assert.h" #include using namespace crown; int main() { char path_output[128]; // Test is_valid_segment CE_ASSERT(path::is_valid_segment(".") == false); CE_ASSERT(path::is_valid_segment("/") == false); CE_ASSERT(path::is_valid_segment("\\") == false); CE_ASSERT(path::is_valid_segment(":") == false); CE_ASSERT(path::is_valid_segment("tga/") == false); CE_ASSERT(path::is_valid_segment("tga\\foo") == false); CE_ASSERT(path::is_valid_segment("tga") == true); CE_ASSERT(path::is_valid_segment("back_texture") == true); // Test pathname path::pathname("/home/project/texture.tga", path_output, 128); CE_ASSERT(string::strcmp("/home/project", path_output) == 0); path::pathname("/home/project", path_output, 128); CE_ASSERT(string::strcmp("/home", path_output) == 0); path::pathname("/home", path_output, 128); CE_ASSERT(string::strcmp("", path_output) == 0); path::pathname("/", path_output, 128); CE_ASSERT(string::strcmp("", path_output) == 0); path::pathname("", path_output, 128); CE_ASSERT(string::strcmp("", path_output) == 0); // Test filename path::filename("/home/project/texture.tga", path_output, 128); CE_ASSERT(string::strcmp("texture.tga", path_output) == 0); path::filename("/home/project/texture", path_output, 128); CE_ASSERT(string::strcmp("texture", path_output) == 0); path::filename("/home", path_output, 128); CE_ASSERT(string::strcmp("home", path_output) == 0); path::filename("/", path_output, 128); CE_ASSERT(string::strcmp("", path_output) == 0); path::filename("", path_output, 128); CE_ASSERT(string::strcmp("", path_output) == 0); // Test basename path::basename("/home/project/texture.tga", path_output, 128); CE_ASSERT(string::strcmp("texture", path_output) == 0); path::basename("/home/project/textureabc", path_output, 128); printf(path_output); CE_ASSERT(string::strcmp("textureabc", path_output) == 0); path::basename("/hom.e/proj./e.ct/textu.reabc", path_output, 128); CE_ASSERT(string::strcmp("textu", path_output) == 0); path::basename("texture.tga", path_output, 128); CE_ASSERT(string::strcmp("texture", path_output) == 0); path::basename("/home", path_output, 128); CE_ASSERT(string::strcmp("home", path_output) == 0); path::basename("/", path_output, 128); CE_ASSERT(string::strcmp("", path_output) == 0); path::basename("", path_output, 128); CE_ASSERT(string::strcmp("", path_output) == 0); // Test extension path::extension("/home/project/texture.tga", path_output, 128); CE_ASSERT(string::strcmp("tga", path_output) == 0); path::extension("/home/project/texture", path_output, 128); CE_ASSERT(string::strcmp("", path_output) == 0); path::extension("/home/project.x/texture.tga", path_output, 128); CE_ASSERT(string::strcmp("tga", path_output) == 0); // Test filename_without_extension path::filename_without_extension("/home/project/texture.tga", path_output, 128); CE_ASSERT(string::strcmp("/home/project/texture", path_output) == 0); // Test strip_trailing_separator path::strip_trailing_separator("/home/project/texture.tga", path_output, 128); CE_ASSERT(string::strcmp("/home/project/texture.tga", path_output) == 0); path::strip_trailing_separator("/home/project/texture2.tga/", path_output, 128); CE_ASSERT(string::strcmp("/home/project/texture2.tga", path_output) == 0); path::strip_trailing_separator("texture.tga", path_output, 128); CE_ASSERT(string::strcmp("texture.tga", path_output) == 0); }