narf 0.6.2 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. data/ChangeLog +22 -0
  2. data/lib/web/htmltools/xmltree.rb +2 -2
  3. data/lib/web/htmltools/xpath.rb +1 -1
  4. data/narf.gemspec +1 -1
  5. metadata +2 -460
  6. data/InstalledFiles +0 -2227
  7. data/config.save +0 -12
  8. data/doc/apache_cgi.txt~ +0 -17
  9. data/doc/fastcgi.txt~ +0 -19
  10. data/doc/rdoc/classes/Web.html +0 -369
  11. data/doc/rdoc/classes/Web.src/M000002.html +0 -15
  12. data/doc/rdoc/classes/Web.src/M000003.html +0 -15
  13. data/doc/rdoc/classes/Web.src/M000004.html +0 -15
  14. data/doc/rdoc/classes/Web.src/M000005.html +0 -15
  15. data/doc/rdoc/classes/Web.src/M000006.html +0 -20
  16. data/doc/rdoc/classes/Web.src/M000007.html +0 -18
  17. data/doc/rdoc/classes/Web.src/M000008.html +0 -18
  18. data/doc/rdoc/classes/Web.src/M000009.html +0 -18
  19. data/doc/rdoc/classes/Web.src/M000010.html +0 -15
  20. data/doc/rdoc/classes/Web.src/M000011.html +0 -15
  21. data/doc/rdoc/classes/Web.src/M000012.html +0 -15
  22. data/doc/rdoc/classes/Web/CGD.html +0 -173
  23. data/doc/rdoc/classes/Web/CGD.src/M000037.html +0 -24
  24. data/doc/rdoc/classes/Web/CGD.src/M000038.html +0 -24
  25. data/doc/rdoc/classes/Web/CGD.src/M000039.html +0 -15
  26. data/doc/rdoc/classes/Web/CGD.src/M000040.html +0 -15
  27. data/doc/rdoc/classes/Web/CGD.src/M000041.html +0 -23
  28. data/doc/rdoc/classes/Web/CGI.html +0 -946
  29. data/doc/rdoc/classes/Web/CGI.src/M000051.html +0 -15
  30. data/doc/rdoc/classes/Web/CGI.src/M000052.html +0 -24
  31. data/doc/rdoc/classes/Web/CGI.src/M000053.html +0 -15
  32. data/doc/rdoc/classes/Web/CGI.src/M000054.html +0 -15
  33. data/doc/rdoc/classes/Web/CGI.src/M000055.html +0 -15
  34. data/doc/rdoc/classes/Web/CGI.src/M000056.html +0 -15
  35. data/doc/rdoc/classes/Web/CGI.src/M000057.html +0 -17
  36. data/doc/rdoc/classes/Web/CGI.src/M000058.html +0 -34
  37. data/doc/rdoc/classes/Web/CGI.src/M000059.html +0 -22
  38. data/doc/rdoc/classes/Web/CGI.src/M000060.html +0 -15
  39. data/doc/rdoc/classes/Web/CGI.src/M000061.html +0 -15
  40. data/doc/rdoc/classes/Web/CGI.src/M000062.html +0 -19
  41. data/doc/rdoc/classes/Web/CGI.src/M000063.html +0 -18
  42. data/doc/rdoc/classes/Web/CGI.src/M000064.html +0 -19
  43. data/doc/rdoc/classes/Web/CGI.src/M000065.html +0 -15
  44. data/doc/rdoc/classes/Web/CGI.src/M000066.html +0 -15
  45. data/doc/rdoc/classes/Web/CGI.src/M000067.html +0 -15
  46. data/doc/rdoc/classes/Web/CGI.src/M000068.html +0 -13
  47. data/doc/rdoc/classes/Web/CGI.src/M000069.html +0 -13
  48. data/doc/rdoc/classes/Web/CGI.src/M000070.html +0 -13
  49. data/doc/rdoc/classes/Web/CGI.src/M000071.html +0 -13
  50. data/doc/rdoc/classes/Web/CGI.src/M000072.html +0 -19
  51. data/doc/rdoc/classes/Web/CGI.src/M000073.html +0 -15
  52. data/doc/rdoc/classes/Web/CGI.src/M000074.html +0 -19
  53. data/doc/rdoc/classes/Web/CGI.src/M000075.html +0 -15
  54. data/doc/rdoc/classes/Web/CGI.src/M000076.html +0 -15
  55. data/doc/rdoc/classes/Web/CGI.src/M000077.html +0 -15
  56. data/doc/rdoc/classes/Web/CGI.src/M000078.html +0 -20
  57. data/doc/rdoc/classes/Web/CGI.src/M000079.html +0 -36
  58. data/doc/rdoc/classes/Web/CGI.src/M000080.html +0 -19
  59. data/doc/rdoc/classes/Web/CGI.src/M000081.html +0 -18
  60. data/doc/rdoc/classes/Web/CGI.src/M000082.html +0 -15
  61. data/doc/rdoc/classes/Web/CGI.src/M000083.html +0 -17
  62. data/doc/rdoc/classes/Web/CGI.src/M000084.html +0 -15
  63. data/doc/rdoc/classes/Web/CGI.src/M000085.html +0 -16
  64. data/doc/rdoc/classes/Web/CGI.src/M000086.html +0 -15
  65. data/doc/rdoc/classes/Web/CGI.src/M000087.html +0 -15
  66. data/doc/rdoc/classes/Web/CGI.src/M000088.html +0 -15
  67. data/doc/rdoc/classes/Web/CGI.src/M000089.html +0 -16
  68. data/doc/rdoc/classes/Web/CGI.src/M000090.html +0 -15
  69. data/doc/rdoc/classes/Web/CGI.src/M000091.html +0 -15
  70. data/doc/rdoc/classes/Web/CGI.src/M000092.html +0 -15
  71. data/doc/rdoc/classes/Web/CGI.src/M000093.html +0 -15
  72. data/doc/rdoc/classes/Web/CGI.src/M000094.html +0 -15
  73. data/doc/rdoc/classes/Web/CGI.src/M000095.html +0 -15
  74. data/doc/rdoc/classes/Web/CGI.src/M000096.html +0 -19
  75. data/doc/rdoc/classes/Web/CGI.src/M000097.html +0 -15
  76. data/doc/rdoc/classes/Web/CGI.src/M000098.html +0 -15
  77. data/doc/rdoc/classes/Web/CGI.src/M000099.html +0 -43
  78. data/doc/rdoc/classes/Web/CGI.src/M000100.html +0 -18
  79. data/doc/rdoc/classes/Web/CGI.src/M000101.html +0 -20
  80. data/doc/rdoc/classes/Web/CGI.src/M000102.html +0 -15
  81. data/doc/rdoc/classes/Web/CGI.src/M000103.html +0 -15
  82. data/doc/rdoc/classes/Web/CGI.src/M000104.html +0 -15
  83. data/doc/rdoc/classes/Web/CGI.src/M000105.html +0 -24
  84. data/doc/rdoc/classes/Web/CGI.src/M000106.html +0 -24
  85. data/doc/rdoc/classes/Web/CGI.src/M000107.html +0 -22
  86. data/doc/rdoc/classes/Web/CaseInsensitiveHash.html +0 -104
  87. data/doc/rdoc/classes/Web/CaseInsensitiveHash.src/M000118.html +0 -15
  88. data/doc/rdoc/classes/Web/CaseInsensitiveHash.src/M000119.html +0 -15
  89. data/doc/rdoc/classes/Web/CaseInsensitiveHash.src/M000120.html +0 -15
  90. data/doc/rdoc/classes/Web/Mime.html +0 -122
  91. data/doc/rdoc/classes/Web/Mime.src/M000118.html +0 -15
  92. data/doc/rdoc/classes/Web/Mime.src/M000119.html +0 -15
  93. data/doc/rdoc/classes/Web/Mime.src/M000120.html +0 -23
  94. data/doc/rdoc/classes/Web/Mime.src/M000121.html +0 -15
  95. data/doc/rdoc/classes/Web/Mime.src/M000122.html +0 -15
  96. data/doc/rdoc/classes/Web/Mime.src/M000123.html +0 -23
  97. data/doc/rdoc/classes/Web/Mime.src/M000124.html +0 -15
  98. data/doc/rdoc/classes/Web/Narflates.html +0 -134
  99. data/doc/rdoc/classes/Web/Parser.html +0 -219
  100. data/doc/rdoc/classes/Web/Parser.src/M000013.html +0 -21
  101. data/doc/rdoc/classes/Web/Parser.src/M000014.html +0 -19
  102. data/doc/rdoc/classes/Web/Parser.src/M000015.html +0 -21
  103. data/doc/rdoc/classes/Web/Parser.src/M000016.html +0 -15
  104. data/doc/rdoc/classes/Web/Parser.src/M000017.html +0 -30
  105. data/doc/rdoc/classes/Web/Parser.src/M000018.html +0 -15
  106. data/doc/rdoc/classes/Web/Parser.src/M000019.html +0 -19
  107. data/doc/rdoc/classes/Web/Parser.src/M000020.html +0 -27
  108. data/doc/rdoc/classes/Web/Parser.src/M000021.html +0 -15
  109. data/doc/rdoc/classes/Web/Parser.src/M000022.html +0 -16
  110. data/doc/rdoc/classes/Web/Parser.src/M000023.html +0 -18
  111. data/doc/rdoc/classes/Web/Session.html +0 -178
  112. data/doc/rdoc/classes/Web/Session.src/M000042.html +0 -20
  113. data/doc/rdoc/classes/Web/Session.src/M000043.html +0 -19
  114. data/doc/rdoc/classes/Web/Session.src/M000044.html +0 -21
  115. data/doc/rdoc/classes/Web/Session.src/M000045.html +0 -21
  116. data/doc/rdoc/classes/Web/Session.src/M000046.html +0 -15
  117. data/doc/rdoc/classes/Web/Session.src/M000047.html +0 -17
  118. data/doc/rdoc/classes/Web/Session.src/M000048.html +0 -15
  119. data/doc/rdoc/classes/Web/Session.src/M000049.html +0 -15
  120. data/doc/rdoc/classes/Web/Session.src/M000050.html +0 -16
  121. data/doc/rdoc/classes/Web/Testing.html +0 -474
  122. data/doc/rdoc/classes/Web/Testing.src/M000024.html +0 -15
  123. data/doc/rdoc/classes/Web/Testing.src/M000025.html +0 -25
  124. data/doc/rdoc/classes/Web/Testing.src/M000026.html +0 -15
  125. data/doc/rdoc/classes/Web/Testing.src/M000027.html +0 -25
  126. data/doc/rdoc/classes/Web/Testing.src/M000028.html +0 -57
  127. data/doc/rdoc/classes/Web/Testing.src/M000029.html +0 -15
  128. data/doc/rdoc/classes/Web/Testing.src/M000030.html +0 -15
  129. data/doc/rdoc/classes/Web/Testing.src/M000031.html +0 -15
  130. data/doc/rdoc/classes/Web/Testing.src/M000032.html +0 -15
  131. data/doc/rdoc/classes/Web/Testing.src/M000033.html +0 -15
  132. data/doc/rdoc/classes/Web/Testing.src/M000034.html +0 -15
  133. data/doc/rdoc/classes/Web/Testing.src/M000035.html +0 -15
  134. data/doc/rdoc/classes/Web/Testing.src/M000036.html +0 -18
  135. data/doc/rdoc/classes/Web/Upload.html +0 -160
  136. data/doc/rdoc/classes/Web/Upload.src/M000108.html +0 -25
  137. data/doc/rdoc/classes/Web/Upload.src/M000109.html +0 -18
  138. data/doc/rdoc/classes/Web/Upload.src/M000110.html +0 -16
  139. data/doc/rdoc/classes/Web/Upload.src/M000111.html +0 -16
  140. data/doc/rdoc/classes/Web/Wiki.html +0 -249
  141. data/doc/rdoc/classes/Web/Wiki.src/M000112.html +0 -25
  142. data/doc/rdoc/classes/Web/Wiki.src/M000113.html +0 -15
  143. data/doc/rdoc/classes/Web/Wiki.src/M000114.html +0 -26
  144. data/doc/rdoc/classes/Web/Wiki.src/M000115.html +0 -21
  145. data/doc/rdoc/classes/Web/Wiki.src/M000116.html +0 -18
  146. data/doc/rdoc/classes/Web/Wiki.src/M000117.html +0 -19
  147. data/doc/rdoc/created.rid +0 -1
  148. data/doc/rdoc/files/README.html +0 -230
  149. data/doc/rdoc/files/doc/apache_cgi_txt.html +0 -76
  150. data/doc/rdoc/files/doc/fastcgi_txt.html +0 -82
  151. data/doc/rdoc/files/doc/mod_ruby_txt.html +0 -62
  152. data/doc/rdoc/files/doc/webrick_txt.html +0 -79
  153. data/doc/rdoc/files/examples/examples_rdoc.html +0 -73
  154. data/doc/rdoc/files/lib/web/cgi_rb.html +0 -75
  155. data/doc/rdoc/files/lib/web/mime_rb.html +0 -67
  156. data/doc/rdoc/files/lib/web/parser_rb.html +0 -73
  157. data/doc/rdoc/files/lib/web/session_rb.html +0 -73
  158. data/doc/rdoc/files/lib/web/template_rb.html +0 -73
  159. data/doc/rdoc/files/lib/web/testing_rb.html +0 -67
  160. data/doc/rdoc/files/lib/web/upload_rb.html +0 -73
  161. data/doc/rdoc/files/lib/web/wiki_rb.html +0 -79
  162. data/doc/rdoc/files/lib/web_rb.html +0 -116
  163. data/doc/rdoc/files/lib/web_rb.src/M000001.html +0 -15
  164. data/doc/rdoc/fr_class_index.html +0 -47
  165. data/doc/rdoc/fr_file_index.html +0 -52
  166. data/doc/rdoc/fr_method_index.html +0 -158
  167. data/doc/rdoc/index.html +0 -22
  168. data/doc/rdoc/rdoc-style.css +0 -99
  169. data/examples/admin.rb~ +0 -5
  170. data/examples/cookbook.rdoc~ +0 -238
  171. data/examples/examples.rdoc~ +0 -17
  172. data/examples/hello.world.rb~ +0 -3
  173. data/examples/session.rb~ +0 -31
  174. data/examples/test/test.hello.world.rb~ +0 -9
  175. data/examples/test/test.session.rb~ +0 -37
  176. data/examples/wiki.rb~ +0 -5
  177. data/lib/web.rb~ +0 -290
  178. data/lib/web/#assertinclude.rb# +0 -110
  179. data/lib/web/assertinclude.rb~ +0 -110
  180. data/lib/web/cgi.rb~ +0 -640
  181. data/lib/web/htmlparser/html-parser.rb~ +0 -429
  182. data/lib/web/htmlparser/sgml-parser.rb~ +0 -332
  183. data/lib/web/htmltools/element.rb~ +0 -296
  184. data/lib/web/htmltools/stparser.rb~ +0 -276
  185. data/lib/web/htmltools/tags.rb~ +0 -286
  186. data/lib/web/htmltools/tree.rb~ +0 -139
  187. data/lib/web/htmltools/xmltree.rb~ +0 -160
  188. data/lib/web/htmltools/xpath.rb~ +0 -71
  189. data/lib/web/parser.rb~ +0 -288
  190. data/lib/web/request.rb~ +0 -238
  191. data/lib/web/runner.rb~ +0 -26
  192. data/lib/web/sapi/fastcgi.rb~ +0 -25
  193. data/lib/web/sapi/mod_ruby.rb~ +0 -46
  194. data/lib/web/sapi/webrick.rb~ +0 -89
  195. data/lib/web/session.rb~ +0 -75
  196. data/lib/web/tagparser.rb~ +0 -96
  197. data/lib/web/template.rb~ +0 -613
  198. data/lib/web/testing.rb~ +0 -546
  199. data/lib/web/unit/response.rb~ +0 -461
  200. data/lib/web/unit/ui/cui/testrunner.rb~ +0 -50
  201. data/lib/web/upload.rb~ +0 -262
  202. data/lib/web/wiki.rb~ +0 -517
  203. data/lib/web/wiki/linker.rb~ +0 -72
  204. data/lib/web/wiki/mime.rb~ +0 -68
  205. data/lib/web/wiki/page.rb~ +0 -192
  206. data/lib/web/wiki/resources/#edit.html# +0 -65
  207. data/lib/web/wiki/resources/admin.html~ +0 -13
  208. data/lib/web/wiki/resources/default-content_editor.html~ +0 -1
  209. data/lib/web/wiki/resources/edit.html~ +0 -2
  210. data/lib/web/wiki/resources/home.html~ +0 -10
  211. data/lib/web/wiki/resources/htmlarea/ChangeLog +0 -1185
  212. data/lib/web/wiki/resources/htmlarea/dialog.js +0 -72
  213. data/lib/web/wiki/resources/htmlarea/examples/2-areas.cgi +0 -16
  214. data/lib/web/wiki/resources/htmlarea/examples/2-areas.html +0 -158
  215. data/lib/web/wiki/resources/htmlarea/examples/context-menu.html +0 -95
  216. data/lib/web/wiki/resources/htmlarea/examples/core.html +0 -184
  217. data/lib/web/wiki/resources/htmlarea/examples/css.html +0 -88
  218. data/lib/web/wiki/resources/htmlarea/examples/custom.css +0 -29
  219. data/lib/web/wiki/resources/htmlarea/examples/full-page.html +0 -75
  220. data/lib/web/wiki/resources/htmlarea/examples/fully-loaded.html +0 -248
  221. data/lib/web/wiki/resources/htmlarea/examples/index.html +0 -40
  222. data/lib/web/wiki/resources/htmlarea/examples/spell-checker.html +0 -132
  223. data/lib/web/wiki/resources/htmlarea/examples/table-operations.html +0 -116
  224. data/lib/web/wiki/resources/htmlarea/examples/test.cgi +0 -21
  225. data/lib/web/wiki/resources/htmlarea/htmlarea.css +0 -180
  226. data/lib/web/wiki/resources/htmlarea/htmlarea.js +0 -2175
  227. data/lib/web/wiki/resources/htmlarea/images/ed_about.gif +0 -0
  228. data/lib/web/wiki/resources/htmlarea/images/ed_align_center.gif +0 -0
  229. data/lib/web/wiki/resources/htmlarea/images/ed_align_justify.gif +0 -0
  230. data/lib/web/wiki/resources/htmlarea/images/ed_align_left.gif +0 -0
  231. data/lib/web/wiki/resources/htmlarea/images/ed_align_right.gif +0 -0
  232. data/lib/web/wiki/resources/htmlarea/images/ed_blank.gif +0 -0
  233. data/lib/web/wiki/resources/htmlarea/images/ed_charmap.gif +0 -0
  234. data/lib/web/wiki/resources/htmlarea/images/ed_color_bg.gif +0 -0
  235. data/lib/web/wiki/resources/htmlarea/images/ed_color_fg.gif +0 -0
  236. data/lib/web/wiki/resources/htmlarea/images/ed_copy.gif +0 -0
  237. data/lib/web/wiki/resources/htmlarea/images/ed_custom.gif +0 -0
  238. data/lib/web/wiki/resources/htmlarea/images/ed_cut.gif +0 -0
  239. data/lib/web/wiki/resources/htmlarea/images/ed_delete.gif +0 -0
  240. data/lib/web/wiki/resources/htmlarea/images/ed_format_bold.gif +0 -0
  241. data/lib/web/wiki/resources/htmlarea/images/ed_format_italic.gif +0 -0
  242. data/lib/web/wiki/resources/htmlarea/images/ed_format_strike.gif +0 -0
  243. data/lib/web/wiki/resources/htmlarea/images/ed_format_sub.gif +0 -0
  244. data/lib/web/wiki/resources/htmlarea/images/ed_format_sup.gif +0 -0
  245. data/lib/web/wiki/resources/htmlarea/images/ed_format_underline.gif +0 -0
  246. data/lib/web/wiki/resources/htmlarea/images/ed_help.gif +0 -0
  247. data/lib/web/wiki/resources/htmlarea/images/ed_hr.gif +0 -0
  248. data/lib/web/wiki/resources/htmlarea/images/ed_html.gif +0 -0
  249. data/lib/web/wiki/resources/htmlarea/images/ed_image.gif +0 -0
  250. data/lib/web/wiki/resources/htmlarea/images/ed_indent_less.gif +0 -0
  251. data/lib/web/wiki/resources/htmlarea/images/ed_indent_more.gif +0 -0
  252. data/lib/web/wiki/resources/htmlarea/images/ed_left_to_right.gif +0 -0
  253. data/lib/web/wiki/resources/htmlarea/images/ed_link.gif +0 -0
  254. data/lib/web/wiki/resources/htmlarea/images/ed_list_bullet.gif +0 -0
  255. data/lib/web/wiki/resources/htmlarea/images/ed_list_num.gif +0 -0
  256. data/lib/web/wiki/resources/htmlarea/images/ed_paste.gif +0 -0
  257. data/lib/web/wiki/resources/htmlarea/images/ed_redo.gif +0 -0
  258. data/lib/web/wiki/resources/htmlarea/images/ed_right_to_left.gif +0 -0
  259. data/lib/web/wiki/resources/htmlarea/images/ed_save.gif +0 -0
  260. data/lib/web/wiki/resources/htmlarea/images/ed_show_border.gif +0 -0
  261. data/lib/web/wiki/resources/htmlarea/images/ed_splitcel.gif +0 -0
  262. data/lib/web/wiki/resources/htmlarea/images/ed_undo.gif +0 -0
  263. data/lib/web/wiki/resources/htmlarea/images/fullscreen_maximize.gif +0 -0
  264. data/lib/web/wiki/resources/htmlarea/images/fullscreen_minimize.gif +0 -0
  265. data/lib/web/wiki/resources/htmlarea/images/insert_table.gif +0 -0
  266. data/lib/web/wiki/resources/htmlarea/index.html +0 -199
  267. data/lib/web/wiki/resources/htmlarea/lang/b5.js +0 -36
  268. data/lib/web/wiki/resources/htmlarea/lang/cz.js +0 -63
  269. data/lib/web/wiki/resources/htmlarea/lang/da.js +0 -38
  270. data/lib/web/wiki/resources/htmlarea/lang/de.js +0 -54
  271. data/lib/web/wiki/resources/htmlarea/lang/ee.js +0 -63
  272. data/lib/web/wiki/resources/htmlarea/lang/el.js +0 -75
  273. data/lib/web/wiki/resources/htmlarea/lang/en.js +0 -88
  274. data/lib/web/wiki/resources/htmlarea/lang/es.js +0 -51
  275. data/lib/web/wiki/resources/htmlarea/lang/fi.js +0 -46
  276. data/lib/web/wiki/resources/htmlarea/lang/fr.js +0 -61
  277. data/lib/web/wiki/resources/htmlarea/lang/gb.js +0 -36
  278. data/lib/web/wiki/resources/htmlarea/lang/he.js +0 -63
  279. data/lib/web/wiki/resources/htmlarea/lang/hu.js +0 -63
  280. data/lib/web/wiki/resources/htmlarea/lang/it.js +0 -54
  281. data/lib/web/wiki/resources/htmlarea/lang/ja-euc.js +0 -37
  282. data/lib/web/wiki/resources/htmlarea/lang/ja-jis.js +0 -37
  283. data/lib/web/wiki/resources/htmlarea/lang/ja-sjis.js +0 -37
  284. data/lib/web/wiki/resources/htmlarea/lang/ja-utf8.js +0 -37
  285. data/lib/web/wiki/resources/htmlarea/lang/lt.js +0 -55
  286. data/lib/web/wiki/resources/htmlarea/lang/lv.js +0 -55
  287. data/lib/web/wiki/resources/htmlarea/lang/nb.js +0 -36
  288. data/lib/web/wiki/resources/htmlarea/lang/nl.js +0 -90
  289. data/lib/web/wiki/resources/htmlarea/lang/no.js +0 -79
  290. data/lib/web/wiki/resources/htmlarea/lang/pl.js +0 -36
  291. data/lib/web/wiki/resources/htmlarea/lang/pt_br.js +0 -37
  292. data/lib/web/wiki/resources/htmlarea/lang/ro.js +0 -80
  293. data/lib/web/wiki/resources/htmlarea/lang/ru.js +0 -63
  294. data/lib/web/wiki/resources/htmlarea/lang/se.js +0 -38
  295. data/lib/web/wiki/resources/htmlarea/lang/si.js +0 -63
  296. data/lib/web/wiki/resources/htmlarea/lang/vn.js +0 -51
  297. data/lib/web/wiki/resources/htmlarea/license.txt +0 -30
  298. data/lib/web/wiki/resources/htmlarea/plugins/CSS/css.js +0 -116
  299. data/lib/web/wiki/resources/htmlarea/plugins/CSS/lang/en.js +0 -2
  300. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/context-menu.js +0 -416
  301. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/de.js +0 -59
  302. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/el.js +0 -57
  303. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/en.js +0 -66
  304. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/nl.js +0 -66
  305. data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/menu.css +0 -64
  306. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/full-page.js +0 -143
  307. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/img/docprop.gif +0 -0
  308. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/lang/en.js +0 -25
  309. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/lang/ro.js +0 -25
  310. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/popups/docprop.html +0 -131
  311. data/lib/web/wiki/resources/htmlarea/plugins/FullPage/test.html +0 -89
  312. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/img/spell-check.gif +0 -0
  313. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/cz.js +0 -37
  314. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/da.js +0 -37
  315. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/de.js +0 -28
  316. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/en.js +0 -38
  317. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/hu.js +0 -37
  318. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/it.js +0 -28
  319. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/ro.js +0 -37
  320. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/readme-tech.html +0 -114
  321. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-logic.cgi +0 -210
  322. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-style.css +0 -10
  323. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-ui.html +0 -122
  324. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-ui.js +0 -397
  325. data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-checker.js +0 -79
  326. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-delete.gif +0 -0
  327. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-insert-after.gif +0 -0
  328. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-insert-before.gif +0 -0
  329. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-merge.gif +0 -0
  330. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-prop.gif +0 -0
  331. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-split.gif +0 -0
  332. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-delete.gif +0 -0
  333. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-insert-after.gif +0 -0
  334. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-insert-before.gif +0 -0
  335. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-split.gif +0 -0
  336. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-delete.gif +0 -0
  337. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-insert-above.gif +0 -0
  338. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-insert-under.gif +0 -0
  339. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-prop.gif +0 -0
  340. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-split.gif +0 -0
  341. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/table-prop.gif +0 -0
  342. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/cz.js +0 -90
  343. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/da.js +0 -90
  344. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/de.js +0 -81
  345. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/el.js +0 -81
  346. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/en.js +0 -90
  347. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/fi.js +0 -66
  348. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/hu.js +0 -63
  349. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/it.js +0 -81
  350. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/nl.js +0 -90
  351. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/no.js +0 -91
  352. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/ro.js +0 -90
  353. data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/table-operations.js +0 -1160
  354. data/lib/web/wiki/resources/htmlarea/popupdiv.js +0 -369
  355. data/lib/web/wiki/resources/htmlarea/popups/about.html +0 -378
  356. data/lib/web/wiki/resources/htmlarea/popups/blank.html +0 -2
  357. data/lib/web/wiki/resources/htmlarea/popups/custom2.html +0 -35
  358. data/lib/web/wiki/resources/htmlarea/popups/editor_help.html +0 -16
  359. data/lib/web/wiki/resources/htmlarea/popups/fullscreen.html +0 -133
  360. data/lib/web/wiki/resources/htmlarea/popups/insert_image.html +0 -191
  361. data/lib/web/wiki/resources/htmlarea/popups/insert_table.html +0 -174
  362. data/lib/web/wiki/resources/htmlarea/popups/link.html +0 -142
  363. data/lib/web/wiki/resources/htmlarea/popups/old-fullscreen.html +0 -131
  364. data/lib/web/wiki/resources/htmlarea/popups/old_insert_image.html +0 -206
  365. data/lib/web/wiki/resources/htmlarea/popups/popup.js +0 -109
  366. data/lib/web/wiki/resources/htmlarea/popups/select_color.html +0 -347
  367. data/lib/web/wiki/resources/htmlarea/popupwin.js +0 -139
  368. data/lib/web/wiki/resources/htmlarea/reference.html +0 -523
  369. data/lib/web/wiki/resources/htmlarea/release-notes.html +0 -165
  370. data/lib/web/wiki/resources/illustration.html~ +0 -1
  371. data/lib/web/wiki/resources/index.html~ +0 -4
  372. data/lib/web/wiki/resources/more_news.html~ +0 -5
  373. data/lib/web/wiki/resources/more_news_rss_0.91.html +0 -23
  374. data/lib/web/wiki/resources/page_history.html~ +0 -19
  375. data/lib/web/wiki/resources/template.html~ +0 -13
  376. data/narf.gemspec~ +0 -40
  377. data/sapi/apache_cgi/INSTALL.txt~ +0 -9
  378. data/sapi/apache_cgi/README~ +0 -0
  379. data/sapi/fastcgi/INSTALL.txt~ +0 -17
  380. data/sapi/mod_ruby/INSTALL.txt~ +0 -5
  381. data/sapi/webrick/INSTALL.txt~ +0 -21
  382. data/sapi/webrick/run_webrick.rb~ +0 -16
  383. data/scripts/makedist.rb~ +0 -49
  384. data/test/mod_ruby_stub.rb~ +0 -38
  385. data/test/test.action.rb~ +0 -142
  386. data/test/test.assertinclude.rb~ +0 -109
  387. data/test/test.narf.cgi.rb~ +0 -105
  388. data/test/test.request.rb~ +0 -328
  389. data/test/test.response.rb~ +0 -556
  390. data/test/test.template.rb~ +0 -832
  391. data/test/test.web.test.rb~ +0 -461
  392. data/test/webunit/test_cookie.rb~ +0 -128
  393. data/test/webunit/test_form.rb~ +0 -43
  394. data/test/webunit/test_multipart.rb~ +0 -53
  395. data/test/webunit/test_params.rb~ +0 -211
  396. data/test/webunit/test_response.rb~ +0 -145
  397. data/test/webunit/test_site/assert.html~ +0 -1
  398. data/test/webunit/test_site/auth/index.html~ +0 -1
  399. data/test/webunit/test_site/badtags.html~ +0 -1
  400. data/test/webunit/test_site/cookie.cgi~ +0 -35
  401. data/test/webunit/test_site/document.xml~ +0 -1
  402. data/test/webunit/test_site/form.html~ +0 -1
  403. data/test/webunit/test_site/frame-0.html~ +0 -1
  404. data/test/webunit/test_site/frame-1.html~ +0 -1
  405. data/test/webunit/test_site/frame.html~ +0 -1
  406. data/test/webunit/test_site/image.html~ +0 -1
  407. data/test/webunit/test_site/include.cgi~ +0 -10
  408. data/test/webunit/test_site/jscript-0.html~ +0 -1
  409. data/test/webunit/test_site/jscript-1.html~ +0 -1
  410. data/test/webunit/test_site/jscript.html~ +0 -1
  411. data/test/webunit/test_site/link.html~ +0 -1
  412. data/test/webunit/test_site/multipart.cgi~ +0 -25
  413. data/test/webunit/test_site/multipart.html~ +0 -1
  414. data/test/webunit/test_site/params.html~ +0 -1
  415. data/test/webunit/test_site/redirect.cgi~ +0 -14
  416. data/test/webunit/test_site/response.html~ +0 -1
  417. data/test/webunit/test_site/simple.cgi~ +0 -17
  418. data/test/webunit/test_site/stock.cgi~ +0 -34
  419. data/test/webunit/test_site/table.html~ +0 -1
  420. data/test/webunit/test_site/test.cgi~ +0 -25
  421. data/test/wiki/test.history.rb~ +0 -254
  422. data/test/wiki/test.illustration_page.rb~ +0 -287
  423. data/test/wiki/test.tarpit.rb~ +0 -40
  424. data/test/wiki/test.wiki.rb~ +0 -295
@@ -1,556 +0,0 @@
1
- require 'test/mod_ruby_stub'
2
-
3
- class TestResponse < Test::Unit::TestCase
4
-
5
- def output
6
- @output = StringIO.new unless @output
7
- @output
8
- end
9
-
10
- def unbuffered_response
11
- @unbuffered_response ||= Web::CGI.new( :out => output, :unbuffered => true, :session => {} )
12
- @unbuffered_response
13
- end
14
-
15
- def nph_response
16
- @nph_response ||= Web::CGI.new( :out => output, :nph => true, :session => {} )
17
- @nph_response
18
- end
19
-
20
- def response
21
- @response ||= Web::CGI.new( :out => output, :session => {} )
22
- @response
23
- end
24
-
25
- def mod_response
26
- require 'web/sapi/mod_ruby'
27
- @mod_response ||= Web::CGI.new( :out => output,
28
- :session => {},
29
- :cgd => Web::CGD::ModRuby.new( :out => output ) )
30
- @mod_response
31
- end
32
-
33
- def setup
34
- @old_record = $\
35
- @old_newline = $/
36
- @old_readline = $_
37
- @old_stdin = $stdin
38
- end
39
-
40
- def teardown
41
- $\ = @old_record
42
- $/ = @old_newline
43
- $_ = @old_readline
44
- $stdin = @old_stdin
45
- @output = @response = @nph_response = @unbuffered_response = @mod_response = nil
46
- ENV["SCRIPT_NAME"] = nil
47
- ENV["SERVER_PROTOCOL"] = nil
48
- ENV["SERVER_SOFTWARE"] = nil
49
- Apache.reset
50
- end
51
-
52
- def test_outputs
53
- mockio = ""
54
- response = Web::CGI.new( :out => mockio, :session => {} )
55
-
56
- response.content_type = "text/html"
57
- response.add_header("Location", "/home.html" )
58
- response.print "Hello, World"
59
- response.flush
60
-
61
- expected = "Content-Type: text/html\r\n"
62
- expected += "Location: /home.html\r\n"
63
- expected += "Status: 200 OK\r\n"
64
- expected += "\r\n"
65
- expected += "Hello, World"
66
-
67
- assert_equal( expected, mockio )
68
- response.flush
69
- assert_equal( expected, mockio )
70
-
71
- # and check that flushing again doesn't output anymore
72
- end
73
-
74
- def test_default_out
75
- response = Web::CGI.new
76
-
77
- assert_equal( $stdout, response.cgd.output )
78
- end
79
-
80
- def test_default_content_type
81
- response.flush
82
- assert_equal( "Content-Type: text/html\r\nStatus: 200 OK\r\n\r\n", output.string )
83
- end
84
-
85
- def test_set_content_type
86
- response.content_type = "text/plain"
87
- response.flush
88
- assert_equal( "text/plain", response.content_type )
89
- assert_equal( "Content-Type: text/plain\r\nStatus: 200 OK\r\n\r\n", output.string )
90
-
91
- assert_raises( Web::Error ) {
92
- response.content_type = "text/something"
93
- }
94
- end
95
-
96
- def test_set_charset_after_flush_raises_cgiexception
97
- response.flush
98
- assert_raises( Web::Error ) {
99
- response.charset = "foo"
100
- }
101
- end
102
-
103
- def test_set_location
104
- assert_equal( nil, response.location )
105
- response.location = "/somewhere"
106
- assert_equal( "/somewhere", response.location )
107
- response.flush
108
- assert_equal( "Content-Type: text/html\r\nLocation: /somewhere\r\nStatus: 200 OK\r\n\r\n", output.string )
109
-
110
- assert_raises( Web::Error ) {
111
- response.location = "foo"
112
- }
113
- end
114
-
115
- def test_encoding_sends_header
116
- response.encoding = "7bit"
117
- response.flush
118
- assert_equal( "Content-Encoding: 7bit\r\nContent-Type: text/html\r\nStatus: 200 OK\r\n\r\n", output.string )
119
-
120
- assert_raises( Web::Error ) {
121
- response.encoding = "foo"
122
- }
123
- end
124
-
125
- def test_status_sends_header
126
- response.status = "300"
127
- response.flush
128
- assert_equal( "Content-Type: text/html\r\nStatus: 300 Multiple Choices\r\n\r\n", output.string )
129
-
130
- assert_raises( Web::Error ) {
131
- response.status = "500"
132
- }
133
- end
134
-
135
- def test_status_message
136
- Web::HTTP_STATUS.each{ |code, message|
137
- setup
138
- response.status = code
139
- response.flush
140
- assert_equal( "Content-Type: text/html\r\n" +
141
- "Status: #{ code } #{ message }\r\n\r\n",
142
- output.string )
143
- teardown
144
- }
145
- end
146
-
147
- def test_set_status_with_i
148
- Web::HTTP_STATUS.each{ |code, message|
149
- setup
150
- response.status = code.to_i
151
- response.flush
152
- assert_equal( "Content-Type: text/html\r\n" +
153
- "Status: #{ code } #{ message }\r\n\r\n",
154
- output.string )
155
- teardown
156
- }
157
- end
158
-
159
- def test_get_header
160
- # test no result
161
- assert_equal( [], response.get_header("not there") )
162
-
163
- response.add_header( "patrick", "dufus" )
164
- response.add_header( "tom", "smarty-pants" )
165
- response.add_header( "tom", "drinker" )
166
-
167
- # test single
168
- assert_equal( ["dufus"], response.get_header("patrick") )
169
- # test multiple
170
- assert_equal( ["smarty-pants", "drinker"], response.get_header("tom") )
171
- # test state unaffected (return value, not reference)
172
- response.get_header("patrick").push "drunk"
173
- assert_equal( ["dufus"], response.get_header("patrick") )
174
- # test case insensitivity
175
- assert_equal( ["dufus"], response.get_header("PAtrIck") )
176
- end
177
-
178
- def test_assert_header
179
- # missing header
180
- assert_raises( Test::Unit::AssertionFailedError ){
181
- response.assert_header( "non-existent", "this header doesn't exist" )
182
- }
183
-
184
- # incorrect header
185
- response.add_header( "patrick", "dufus" );
186
- assert_raises( Test::Unit::AssertionFailedError ){
187
- response.assert_header( "patrick", "genius" )
188
- }
189
-
190
- # works with single header
191
- response.assert_header( "patrick", "dufus" );
192
- # or array
193
- response.assert_header( "patrick", ["dufus"] );
194
-
195
- response.add_header( "patrick", "dumbo" );
196
-
197
- # multiple headers need the whole array
198
- assert_raises( Test::Unit::AssertionFailedError ){
199
- response.assert_header( "patrick", "dufus" )
200
- }
201
-
202
- # full array works
203
- response.assert_header( "patrick", ["dufus", "dumbo"] )
204
-
205
- # order matters
206
- assert_raises( Test::Unit::AssertionFailedError ){
207
- response.assert_header( "patrick", ["dumbo", "dufus"] )
208
- }
209
-
210
- end
211
-
212
- def test_add_header_only_adds_one
213
- response.add_header( "Content-Type", "text/plain" )
214
- response.add_header( "Content-Type", "text/fancy" )
215
- response.add_header( "charset", "foo" )
216
- response.add_header( "charset", "yoo" )
217
- response.add_header( "Status", "300" )
218
- response.add_header( "status", "404" )
219
- response.add_header( "Content-Encoding", "7bit" )
220
- response.add_header( "contEnt-enCoding", "16bit")
221
- response.add_header( "location", "somewhere" )
222
- response.add_header( "LocaTion", "somewhere/else" )
223
-
224
- response.flush
225
-
226
- assert_equal( "Content-Encoding: 16bit\r\n" +
227
- "Content-Type: text/fancy; charset=yoo\r\n" +
228
- "Location: somewhere/else\r\n" +
229
- "Status: 404 Not Found\r\n\r\n",
230
- output.string )
231
- end
232
-
233
- def test_send_headers
234
- assert_equal( "", output.string )
235
- response.flush
236
- assert_equal( "Content-Type: text/html\r\nStatus: 200 OK\r\n\r\n",
237
- output.string )
238
- assert_raises( Web::Error ) {
239
- response.add_header("Set-Cookie", "something")
240
- }
241
- response << "Hello World"
242
- response.flush
243
- assert_equal( "Content-Type: text/html\r\nStatus: 200 OK\r\n\r\nHello World",
244
- output.string )
245
- end
246
-
247
- def test_send_multiple_headers
248
- response.add_header( "Patrick", "Genius" )
249
- response.add_header( "Patrick", "Dufus" )
250
- response.flush
251
-
252
- expected = "Content-Type: text/html\r\nPatrick: Genius\r\nPatrick: Dufus\r\nStatus: 200 OK\r\n\r\n"
253
- assert_equal( expected, output.string )
254
- end
255
-
256
- def test_send_nph_headers
257
- nph_response.flush
258
- assert_match( %r|HTTP/1.0: 200 OK\r\nDate: |, output.string )
259
- end
260
-
261
- def test_nph_uses_env_server_protocol
262
- ENV["SERVER_PROTOCOL"] = "HTTP/1.1"
263
- nph_response.flush
264
- assert_match( %r|HTTP/1.1: 200 OK\r\nDate: |, output.string )
265
- end
266
-
267
- def test_nph_uses_status
268
- nph_response.status = "300"
269
- nph_response.flush
270
- assert_match( %r|HTTP/1.0: 300 Multiple Choices\r\nDate: |, output.string )
271
- assert_nil( /Status: 300/ =~ output.string )
272
- end
273
-
274
- def test_nph_sets_server_software
275
- ENV["SERVER_SOFTWARE"] = "Narf"
276
- nph_response.flush
277
- assert_match( /Server: Narf/, output.string )
278
- end
279
-
280
- def test_nph_sets_server_software_to_default
281
- nph_response.flush
282
- assert_match( /Server: /, output.string )
283
- end
284
-
285
- def test_nph_doesnt_overwrite_server_software
286
- ENV["SERVER_SOFTWARE"] = "Narf"
287
- nph_response.add_header( "Server", "MyNarf" )
288
- nph_response.flush
289
- assert_match( /Server: MyNarf/, output.string )
290
- end
291
-
292
- def test_nph_mode_with_IIS
293
- ENV["SERVER_SOFTWARE"] = "IIS"
294
- response.flush
295
- assert_match( %r|HTTP/1.0: 200 OK|, output.string )
296
- end
297
-
298
- def test_send_headers_with_mod_ruby
299
- mod_response.set_cookie( "cookie", "monster" )
300
- mod_response.set_cookie( "bert", "ernie" )
301
- mod_response.add_header( "Patrick", "cool" )
302
-
303
- mod_response.send_header
304
-
305
- headers = Apache::request.headers_out
306
- assert_equal( ["cookie=monster; path=", "bert=ernie; path="],
307
- headers["Set-Cookie"] )
308
- assert_equal( "cool", headers["Patrick"] )
309
- assert_equal( "200", Apache.request.status_line )
310
- assert_equal( "text/html", Apache.request.content_type )
311
- assert_equal( nil, Apache.request.content_encoding )
312
- assert( Apache.request.sent? )
313
- end
314
-
315
- def test_send_charset_with_mod_ruby
316
- mod_response.charset = "English"
317
- mod_response.send_header
318
- assert_equal( "text/html; charset=English", Apache.request.content_type )
319
- assert( !Apache.request.headers_out.has_key?("Content-Type") )
320
- end
321
-
322
- def test_send_content_type_with_mod_ruby
323
- mod_response.content_type = "text/something"
324
- mod_response.send_header
325
- assert_equal( "text/something", Apache.request.content_type )
326
- assert( !Apache.request.headers_out.has_key?("Content-Type") )
327
- end
328
-
329
- def test_send_status_with_mod_ruby
330
- mod_response.status = "300"
331
- mod_response.send_header
332
- assert_equal( "300", Apache::request.status_line )
333
- assert( !Apache.request.headers_out.has_key?("Status") )
334
- end
335
-
336
- def test_send_encoding_with_mod_ruby
337
- mod_response.encoding = "7bit"
338
- mod_response.send_header
339
- assert_equal( "7bit", Apache::request.content_encoding )
340
- assert( !Apache.request.headers_out.has_key?("Content-Encoding") )
341
- end
342
-
343
- def test_append_type_and_charset
344
- response.charset = "ISO"
345
- response.flush
346
- assert_equal( "Content-Type: text/html; charset=ISO\r\nStatus: 200 OK\r\n\r\n",
347
- output.string )
348
- end
349
-
350
- def test_charset
351
- response.charset = "ISO"
352
- assert_equal( "ISO", response.charset )
353
- end
354
-
355
- def test_redirect
356
- eval <<-EVAL
357
- def response.redirect
358
- @header["Location"]
359
- end
360
- EVAL
361
-
362
- response.set_redirect("/somewhere")
363
- assert_equal( "/somewhere", response.location )
364
- assert_equal( "302", response.status )
365
- end
366
-
367
- def test_set_cookie
368
- response.set_cookie("myCookie", "myValue",
369
- :path => "/path/" ,
370
- :domain => "mydomain.com",
371
- :expires => Time.gm(2002,2,3),
372
- :secure => true)
373
- assert_equal( "myCookie=myValue; path=/path/; domain=mydomain.com; expires=Sun, 03 Feb 2002 00:00:00 GMT; secure", response.header["Set-Cookie"].to_s )
374
- end
375
-
376
- def test_get_cookie
377
- # test blank result
378
- assert_equal( [], response.get_cookie( "not there" ) )
379
-
380
- response.set_cookie("myCookie", "myValue",
381
- :path => "/path/" ,
382
- :domain => "mydomain.com",
383
- :expires => Time.gm(2002,2,3),
384
- :secure => true)
385
- response.set_cookie("key", "anything" )
386
- response.set_cookie("key", "something" )
387
-
388
- # test single
389
- assert_equal( ["myValue"], response.get_cookie( "myCookie" ) )
390
-
391
- # test unaffected state (return cookie value, not reference)
392
- response.get_cookie( "myCookie" ).push( "another" )
393
- assert_equal( ["myValue"], response.get_cookie( "myCookie" ) )
394
-
395
- # test multiple
396
- assert_equal( ["anything", "something"], response.get_cookie("key") )
397
- end
398
-
399
- def test_assert_cookie
400
- # no cookie fails
401
- assert_raises(Test::Unit::AssertionFailedError){
402
- response.assert_cookie( "no cookie", "monster hungry!" )
403
- }
404
-
405
- # no cookie passes
406
- response.assert_cookie( "no cookie", [] )
407
-
408
- response.set_cookie( "cookie", "monster" )
409
-
410
- # single cookie passes
411
- response.assert_cookie( "cookie", "monster" )
412
-
413
- # single cookie array passes
414
- response.assert_cookie( "cookie", ["monster"] )
415
- end
416
-
417
- def test_insecure_cookie
418
- response.set_cookie("myCookie", "myValue",
419
- :path => "/path/" ,
420
- :domain => "mydomain.com",
421
- :expires => Time.gm(2002,2,3) )
422
-
423
- assert_equal( "myCookie=myValue; path=/path/; domain=mydomain.com; expires=Sun, 03 Feb 2002 00:00:00 GMT", response.header["Set-Cookie"].to_s )
424
-
425
- # clear for the next test
426
- response.header["Set-Cookie"] = []
427
-
428
- response.set_cookie("myCookie", "myValue",
429
- :path => "/path/",
430
- :domain => "mydomain.com",
431
- :expires => Time.gm(2002,2,3),
432
- :secure => false)
433
-
434
- assert_equal( "myCookie=myValue; path=/path/; domain=mydomain.com; expires=Sun, 03 Feb 2002 00:00:00 GMT", response.header["Set-Cookie"].to_s )
435
- end
436
-
437
- def test_leave_domain_off_cookie
438
- response.set_cookie("myCookie", "myValue",
439
- :path => "/path/" ,
440
- :expires => Time.gm(2002,2,3),
441
- :secure => true)
442
-
443
- assert_equal( "myCookie=myValue; path=/path/; expires=Sun, 03 Feb 2002 00:00:00 GMT; secure", response.header["Set-Cookie"].to_s )
444
- end
445
-
446
- def test_leave_path_off_cookie
447
- response.set_cookie("myCookie", "myValue",
448
- :domain => "mydomain.com",
449
- :expires => Time.gm(2002,2,3),
450
- :secure => true)
451
-
452
- assert_equal( "myCookie=myValue; path=; domain=mydomain.com; expires=Sun, 03 Feb 2002 00:00:00 GMT; secure", response.header["Set-Cookie"].to_s )
453
- end
454
-
455
- def test_leave_expires_off_cookie
456
- response.set_cookie("myCookie", "myValue",
457
- :path => "/path/" ,
458
- :domain => "mydomain.com",
459
- :secure => true)
460
-
461
- assert_equal( "myCookie=myValue; path=/path/; domain=mydomain.com; secure", response.header["Set-Cookie"].to_s )
462
- end
463
-
464
- def test_ie_path_support
465
- ENV["SCRIPT_NAME"] = "http://www.localhost.com/cgi-bin/script.rb"
466
- response.set_cookie("myCookie", "myValue" )
467
- assert_equal( "myCookie=myValue; path=http://www.localhost.com/cgi-bin/", response.header["Set-Cookie"].to_s )
468
- end
469
-
470
- def test_values_are_escaped
471
- response.set_cookie("angryCookie", "!@$#%^&*")
472
- assert_equal( "angryCookie=%21%40%24%23%25%5E%26%2A; path=", response.header["Set-Cookie"].to_s )
473
- end
474
-
475
- def test_array_of_values
476
- response.set_cookie( "meals", ["breakfast", "lunch", "dinner"] )
477
- assert_equal( "meals=breakfast&lunch&dinner; path=", response.header["Set-Cookie"].to_s )
478
- end
479
-
480
- def test_setting_two_cookies
481
- response.set_cookie( "first", "one" )
482
- response.set_cookie( "next", "two" )
483
- assert_equal( ["first=one; path=", "next=two; path="], response.header["Set-Cookie"] )
484
- end
485
-
486
- def test_buffered_output
487
- response.encoding = "kanji"
488
- response.write( "Your page moved!" )
489
- assert_equal( "", output.string )
490
- response.set_redirect("/somewhere")
491
- assert_equal( "", output.string )
492
-
493
- response.flush
494
-
495
- assert_equal( "Content-Encoding: kanji\r\n" +
496
- "Content-Type: text/html\r\n" +
497
- "Location: /somewhere\r\n" +
498
- "Status: 302 Found\r\n" +
499
- "\r\nYour page moved!",
500
- output.string )
501
- end
502
-
503
- def test_unbuffered_output
504
- unbuffered_response << "Hello World"
505
-
506
- assert_raises( Web::Error ) {
507
- unbuffered_response.add_header( "Patrick", "May" )
508
- }
509
-
510
- assert_equal( add_header("Hello World"), output.string )
511
-
512
- # test flush doesn't affect unbuffered output
513
- unbuffered_response.flush
514
- assert_equal( add_header("Hello World"), output.string )
515
- end
516
-
517
- #-----------------------------------------
518
- # test output methods
519
- #-----------------------------------------
520
-
521
- def add_header( string )
522
- "Content-Type: text/html\r\nStatus: 200 OK\r\n\r\n#{ string }"
523
- end
524
-
525
- def test_append
526
- unbuffered_response << "Hello World"
527
- assert_equal( add_header("Hello World"), output.string )
528
- end
529
-
530
- def test_write
531
- unbuffered_response.write( "Hello World" )
532
- assert_equal( add_header("Hello World"), output.string )
533
- end
534
-
535
- # I had trouble testing this
536
- # def test_default_print
537
- # end
538
-
539
- def test_print_multiple_args
540
- $\ = nil
541
- unbuffered_response.print( "hello ", "world ", "im ", "here" )
542
- assert_equal( add_header("hello world im here"), output.string )
543
- end
544
-
545
- def test_print_non_strings
546
- unbuffered_response.print( "hello ", 43770 )
547
- assert_equal( add_header("hello 43770"), output.string )
548
- end
549
-
550
- def test_puts
551
- $\ = "\n"
552
- unbuffered_response.puts( "hello", 43770, "anyone?" )
553
- assert_equal( add_header("hello\n43770\nanyone?\n"), output.string )
554
-
555
- end
556
- end