uri_test.cc 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #include <apt-pkg/strutl.h>
  2. #include "assert.h"
  3. int main() {
  4. // Basic stuff
  5. {
  6. URI U("http://www.debian.org:90/temp/test");
  7. equals("http", U.Access);
  8. equals("", U.User);
  9. equals("", U.Password);
  10. equals(90, U.Port);
  11. equals("www.debian.org", U.Host);
  12. equals("/temp/test", U.Path);
  13. } {
  14. URI U("http://jgg:foo@ualberta.ca/blah");
  15. equals("http", U.Access);
  16. equals("jgg", U.User);
  17. equals("foo", U.Password);
  18. equals(0, U.Port);
  19. equals("ualberta.ca", U.Host);
  20. equals("/blah", U.Path);
  21. } {
  22. URI U("file:/usr/bin/foo");
  23. equals("file", U.Access);
  24. equals("", U.User);
  25. equals("", U.Password);
  26. equals(0, U.Port);
  27. equals("", U.Host);
  28. equals("/usr/bin/foo", U.Path);
  29. } {
  30. URI U("cdrom:Moo Cow Rom:/debian");
  31. equals("cdrom", U.Access);
  32. equals("", U.User);
  33. equals("", U.Password);
  34. equals(0, U.Port);
  35. equals("Moo Cow Rom", U.Host);
  36. equals("/debian", U.Path);
  37. } {
  38. URI U("gzip:./bar/cow");
  39. equals("gzip", U.Access);
  40. equals("", U.User);
  41. equals("", U.Password);
  42. equals(0, U.Port);
  43. equals(".", U.Host);
  44. equals("/bar/cow", U.Path);
  45. } {
  46. URI U("ftp:ftp.fr.debian.org/debian/pool/main/x/xtel/xtel_3.2.1-15_i386.deb");
  47. equals("ftp", U.Access);
  48. equals("", U.User);
  49. equals("", U.Password);
  50. equals(0, U.Port);
  51. equals("ftp.fr.debian.org", U.Host);
  52. equals("/debian/pool/main/x/xtel/xtel_3.2.1-15_i386.deb", U.Path);
  53. }
  54. // RFC 2732 stuff
  55. {
  56. URI U("http://[1080::8:800:200C:417A]/foo");
  57. equals("http", U.Access);
  58. equals("", U.User);
  59. equals("", U.Password);
  60. equals(0, U.Port);
  61. equals("1080::8:800:200C:417A", U.Host);
  62. equals("/foo", U.Path);
  63. } {
  64. URI U("http://[::FFFF:129.144.52.38]:80/index.html");
  65. equals("http", U.Access);
  66. equals("", U.User);
  67. equals("", U.Password);
  68. equals(80, U.Port);
  69. equals("::FFFF:129.144.52.38", U.Host);
  70. equals("/index.html", U.Path);
  71. } {
  72. URI U("http://[::FFFF:129.144.52.38:]:80/index.html");
  73. equals("http", U.Access);
  74. equals("", U.User);
  75. equals("", U.Password);
  76. equals(80, U.Port);
  77. equals("::FFFF:129.144.52.38:", U.Host);
  78. equals("/index.html", U.Path);
  79. } {
  80. URI U("http://[::FFFF:129.144.52.38:]/index.html");
  81. equals("http", U.Access);
  82. equals("", U.User);
  83. equals("", U.Password);
  84. equals(0, U.Port);
  85. equals("::FFFF:129.144.52.38:", U.Host);
  86. equals("/index.html", U.Path);
  87. }
  88. /* My Evil Corruption of RFC 2732 to handle CDROM names! Fun for
  89. the whole family! */
  90. {
  91. URI U("cdrom:[The Debian 1.2 disk, 1/2 R1:6]/debian/");
  92. equals("cdrom", U.Access);
  93. equals("", U.User);
  94. equals("", U.Password);
  95. equals(0, U.Port);
  96. equals("The Debian 1.2 disk, 1/2 R1:6", U.Host);
  97. equals("/debian/", U.Path);
  98. } {
  99. URI U("cdrom:Foo Bar Cow/debian/");
  100. equals("cdrom", U.Access);
  101. equals("", U.User);
  102. equals("", U.Password);
  103. equals(0, U.Port);
  104. equals("Foo Bar Cow", U.Host);
  105. equals("/debian/", U.Path);
  106. }
  107. return 0;
  108. }