2
0

paths.cpp 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #include "StringUtils.h"
  2. #include "Path.h"
  3. #include "Assert.h"
  4. #include <stdio.h>
  5. using namespace crown;
  6. int main()
  7. {
  8. char path_output[128];
  9. // Test is_valid_segment
  10. CE_ASSERT(path::is_valid_segment(".") == false, "");
  11. CE_ASSERT(path::is_valid_segment("/") == false, "");
  12. CE_ASSERT(path::is_valid_segment("\\") == false, "");
  13. CE_ASSERT(path::is_valid_segment(":") == false, "");
  14. CE_ASSERT(path::is_valid_segment("tga/") == false, "");
  15. CE_ASSERT(path::is_valid_segment("tga\\foo") == false, "");
  16. CE_ASSERT(path::is_valid_segment("tga") == true, "");
  17. CE_ASSERT(path::is_valid_segment("back_texture") == true, "");
  18. // Test pathname
  19. path::pathname("/home/project/texture.tga", path_output, 128);
  20. CE_ASSERT(string::strcmp("/home/project", path_output) == 0, "");
  21. path::pathname("/home/project", path_output, 128);
  22. CE_ASSERT(string::strcmp("/home", path_output) == 0, "");
  23. path::pathname("/home", path_output, 128);
  24. CE_ASSERT(string::strcmp("", path_output) == 0, "");
  25. path::pathname("/", path_output, 128);
  26. CE_ASSERT(string::strcmp("", path_output) == 0, "");
  27. path::pathname("", path_output, 128);
  28. CE_ASSERT(string::strcmp("", path_output) == 0, "");
  29. // Test filename
  30. path::filename("/home/project/texture.tga", path_output, 128);
  31. CE_ASSERT(string::strcmp("texture.tga", path_output) == 0, "");
  32. path::filename("/home/project/texture", path_output, 128);
  33. CE_ASSERT(string::strcmp("texture", path_output) == 0, "");
  34. path::filename("/home", path_output, 128);
  35. CE_ASSERT(string::strcmp("home", path_output) == 0, "");
  36. path::filename("/", path_output, 128);
  37. CE_ASSERT(string::strcmp("", path_output) == 0, "");
  38. path::filename("", path_output, 128);
  39. CE_ASSERT(string::strcmp("", path_output) == 0, "");
  40. // Test basename
  41. path::basename("/home/project/texture.tga", path_output, 128);
  42. CE_ASSERT(string::strcmp("texture", path_output) == 0, "");
  43. path::basename("/home/project/textureabc", path_output, 128);
  44. printf(path_output);
  45. CE_ASSERT(string::strcmp("textureabc", path_output) == 0, "");
  46. path::basename("/hom.e/proj./e.ct/textu.reabc", path_output, 128);
  47. CE_ASSERT(string::strcmp("textu", path_output) == 0, "");
  48. path::basename("texture.tga", path_output, 128);
  49. CE_ASSERT(string::strcmp("texture", path_output) == 0, "");
  50. path::basename("/home", path_output, 128);
  51. CE_ASSERT(string::strcmp("home", path_output) == 0, "");
  52. path::basename("/", path_output, 128);
  53. CE_ASSERT(string::strcmp("", path_output) == 0, "");
  54. path::basename("", path_output, 128);
  55. CE_ASSERT(string::strcmp("", path_output) == 0, "");
  56. // Test extension
  57. path::extension("/home/project/texture.tga", path_output, 128);
  58. CE_ASSERT(string::strcmp("tga", path_output) == 0, "");
  59. path::extension("/home/project/texture", path_output, 128);
  60. CE_ASSERT(string::strcmp("", path_output) == 0, "");
  61. path::extension("/home/project.x/texture.tga", path_output, 128);
  62. CE_ASSERT(string::strcmp("tga", path_output) == 0, "");
  63. // Test filename_without_extension
  64. path::filename_without_extension("/home/project/texture.tga", path_output, 128);
  65. CE_ASSERT(string::strcmp("/home/project/texture", path_output) == 0, "");
  66. // Test strip_trailing_separator
  67. path::strip_trailing_separator("/home/project/texture.tga", path_output, 128);
  68. CE_ASSERT(string::strcmp("/home/project/texture.tga", path_output) == 0, "");
  69. path::strip_trailing_separator("/home/project/texture2.tga/", path_output, 128);
  70. CE_ASSERT(string::strcmp("/home/project/texture2.tga", path_output) == 0, "");
  71. path::strip_trailing_separator("texture.tga", path_output, 128);
  72. CE_ASSERT(string::strcmp("texture.tga", path_output) == 0, "");
  73. }