/Tests/Objective-J/CFURLTest.j

http://github.com/cacaodev/cappuccino · Unknown · 99 lines · 90 code · 9 blank · 0 comment · 0 complexity · 42ff5933f066994e8bd7811569cab6c1 MD5 · raw file

  1. @implementation CFURLTest : OJTestCase
  2. {
  3. }
  4. - (void)testRelativeURLs
  5. {
  6. var URLStrings =
  7. {
  8. "g:h" : "g:h",
  9. "g" : "http://a/b/c/g",
  10. "./g" : "http://a/b/c/g",
  11. "g/" : "http://a/b/c/g/",
  12. "/g" : "http://a/g",
  13. //"//g" : "http://g",
  14. "?y" : "http://a/b/c/?y",
  15. "g?y" : "http://a/b/c/g?y",
  16. //"#s" : "(current document)#s",
  17. "g#s" : "http://a/b/c/g#s",
  18. "g?y#s" : "http://a/b/c/g?y#s",
  19. ";x" : "http://a/b/c/;x",
  20. "g;x" : "http://a/b/c/g;x",
  21. "g;x?y#s" : "http://a/b/c/g;x?y#s",
  22. "." : "http://a/b/c/",
  23. "./" : "http://a/b/c/",
  24. ".." : "http://a/b/",
  25. "../" : "http://a/b/",
  26. "../g" : "http://a/b/g",
  27. "../.." : "http://a/",
  28. "../../" : "http://a/",
  29. "../../g" : "http://a/g",
  30. "../../../g" : "http://a/g",//"http://a/../g",
  31. "../../../../g" : "http://a/g",//"http://a/../../g",
  32. "/./g" : "http://a/g",//"http://a/./g",
  33. "/../g" : "http://a/g",//"http://a/../g",
  34. "g." : "http://a/b/c/g.",
  35. ".g" : "http://a/b/c/.g",
  36. "g.." : "http://a/b/c/g..",
  37. "..g" : "http://a/b/c/..g",
  38. "./../g" : "http://a/b/g",
  39. "./g/." : "http://a/b/c/g/",
  40. "g/./h" : "http://a/b/c/g/h",
  41. "g/../h" : "http://a/b/c/h",
  42. "g;x=1/./y" : "http://a/b/c/g;x=1/y",
  43. "g;x=1/../y" : "http://a/b/c/y",
  44. "g?y/./x" : "http://a/b/c/g?y/./x",
  45. "g?y/../x" : "http://a/b/c/g?y/../x",
  46. "g#s/./x" : "http://a/b/c/g#s/./x",
  47. "g#s/../x" : "http://a/b/c/g#s/../x"
  48. };
  49. var URLString,
  50. baseURL = new CFURL("http://a/b/c/d;p?q");
  51. for (URLString in URLStrings)
  52. if (URLStrings.hasOwnProperty(URLString))
  53. {
  54. // print(URLStrings[URLString] + " " + new CFURL(URLString, baseURL).absoluteString());
  55. [self assert:URLStrings[URLString] equals:new CFURL(URLString, baseURL).absoluteString()];
  56. }
  57. }
  58. - (void)testPeriods
  59. {
  60. var URLStrings =
  61. {
  62. "." : "./",
  63. "./" : "./",
  64. ".//" : "./",
  65. "/." : "/",
  66. "/./" : "/",
  67. "/.//" : "/",
  68. "./a/" : "a/",
  69. "./a" : "a",
  70. ".." : "../",
  71. "../" : "../",
  72. "..//" : "../",
  73. "/.." : "/",
  74. "/../" : "/",
  75. "/..//" : "/",
  76. "../a/" : "../a/",
  77. "../a" : "../a"
  78. };
  79. var URLString;
  80. for (URLString in URLStrings)
  81. if (URLStrings.hasOwnProperty(URLString))
  82. [self assert:new CFURL(URLString).absoluteString() equals:URLStrings[URLString]];
  83. }
  84. - (void)testDoubleSlash
  85. {
  86. [self assert:"//a" equals:new CFURL("//a").absoluteString()];
  87. [self assert:"ftp://a" equals:new CFURL("//a", new CFURL("ftp://example.com/b")).absoluteString()];
  88. [self assert:"ftp://example.com/a" equals:new CFURL("/a", new CFURL("ftp://example.com/b")).absoluteString()];
  89. }
  90. @end