qwik2md 0.1.0

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 (335) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +4 -0
  4. data/Gemfile +4 -0
  5. data/README.md +36 -0
  6. data/Rakefile +10 -0
  7. data/bin/console +14 -0
  8. data/bin/setup +8 -0
  9. data/exe/qwik2md +17 -0
  10. data/lib/qwik2md/version.rb +3 -0
  11. data/lib/qwik2md.rb +39 -0
  12. data/qwik2md.gemspec +30 -0
  13. data/vendor/qwik/AUTHORS +10 -0
  14. data/vendor/qwik/COPYING +340 -0
  15. data/vendor/qwik/COPYRIGHT +346 -0
  16. data/vendor/qwik/lib/qwik/Makefile +63 -0
  17. data/vendor/qwik/lib/qwik/Rakefile +17 -0
  18. data/vendor/qwik/lib/qwik/act-aa.rb +83 -0
  19. data/vendor/qwik/lib/qwik/act-archive.rb +386 -0
  20. data/vendor/qwik/lib/qwik/act-attach.rb +304 -0
  21. data/vendor/qwik/lib/qwik/act-backup.rb +236 -0
  22. data/vendor/qwik/lib/qwik/act-basic.rb +325 -0
  23. data/vendor/qwik/lib/qwik/act-book.rb +161 -0
  24. data/vendor/qwik/lib/qwik/act-calc.rb +371 -0
  25. data/vendor/qwik/lib/qwik/act-charset.rb +251 -0
  26. data/vendor/qwik/lib/qwik/act-christel.rb +112 -0
  27. data/vendor/qwik/lib/qwik/act-chronology.rb +149 -0
  28. data/vendor/qwik/lib/qwik/act-code.rb +155 -0
  29. data/vendor/qwik/lib/qwik/act-comment.rb +554 -0
  30. data/vendor/qwik/lib/qwik/act-config.rb +49 -0
  31. data/vendor/qwik/lib/qwik/act-counter.rb +125 -0
  32. data/vendor/qwik/lib/qwik/act-day.rb +96 -0
  33. data/vendor/qwik/lib/qwik/act-describe.rb +135 -0
  34. data/vendor/qwik/lib/qwik/act-diary.rb +109 -0
  35. data/vendor/qwik/lib/qwik/act-edit.rb +317 -0
  36. data/vendor/qwik/lib/qwik/act-embed-html.rb +296 -0
  37. data/vendor/qwik/lib/qwik/act-emode.rb +150 -0
  38. data/vendor/qwik/lib/qwik/act-event.rb +187 -0
  39. data/vendor/qwik/lib/qwik/act-file.rb +303 -0
  40. data/vendor/qwik/lib/qwik/act-files.rb +771 -0
  41. data/vendor/qwik/lib/qwik/act-getpass.rb +295 -0
  42. data/vendor/qwik/lib/qwik/act-history.rb +136 -0
  43. data/vendor/qwik/lib/qwik/act-html.rb +204 -0
  44. data/vendor/qwik/lib/qwik/act-httpauth.rb +147 -0
  45. data/vendor/qwik/lib/qwik/act-include.rb +142 -0
  46. data/vendor/qwik/lib/qwik/act-interwiki.rb +189 -0
  47. data/vendor/qwik/lib/qwik/act-isearch.rb +109 -0
  48. data/vendor/qwik/lib/qwik/act-keywords.rb +137 -0
  49. data/vendor/qwik/lib/qwik/act-lang.rb +81 -0
  50. data/vendor/qwik/lib/qwik/act-license.rb +63 -0
  51. data/vendor/qwik/lib/qwik/act-list.rb +287 -0
  52. data/vendor/qwik/lib/qwik/act-login.rb +410 -0
  53. data/vendor/qwik/lib/qwik/act-logout.rb +60 -0
  54. data/vendor/qwik/lib/qwik/act-mail.rb +159 -0
  55. data/vendor/qwik/lib/qwik/act-map.rb +292 -0
  56. data/vendor/qwik/lib/qwik/act-md5.rb +42 -0
  57. data/vendor/qwik/lib/qwik/act-mdlb.rb +741 -0
  58. data/vendor/qwik/lib/qwik/act-media.rb +416 -0
  59. data/vendor/qwik/lib/qwik/act-member.rb +157 -0
  60. data/vendor/qwik/lib/qwik/act-menu.rb +142 -0
  61. data/vendor/qwik/lib/qwik/act-metadata.rb +323 -0
  62. data/vendor/qwik/lib/qwik/act-mlsubmitform.rb +49 -0
  63. data/vendor/qwik/lib/qwik/act-monitor.rb +167 -0
  64. data/vendor/qwik/lib/qwik/act-new.rb +418 -0
  65. data/vendor/qwik/lib/qwik/act-pagelist.rb +248 -0
  66. data/vendor/qwik/lib/qwik/act-password.rb +145 -0
  67. data/vendor/qwik/lib/qwik/act-plan.rb +210 -0
  68. data/vendor/qwik/lib/qwik/act-povray.rb +230 -0
  69. data/vendor/qwik/lib/qwik/act-presen.rb +380 -0
  70. data/vendor/qwik/lib/qwik/act-redirect.rb +133 -0
  71. data/vendor/qwik/lib/qwik/act-ring.rb +1071 -0
  72. data/vendor/qwik/lib/qwik/act-rrefs.rb +255 -0
  73. data/vendor/qwik/lib/qwik/act-ruby.rb +116 -0
  74. data/vendor/qwik/lib/qwik/act-sample.rb +170 -0
  75. data/vendor/qwik/lib/qwik/act-save.rb +295 -0
  76. data/vendor/qwik/lib/qwik/act-schedule.rb +374 -0
  77. data/vendor/qwik/lib/qwik/act-search.rb +180 -0
  78. data/vendor/qwik/lib/qwik/act-searchwords.rb +51 -0
  79. data/vendor/qwik/lib/qwik/act-sendpass.rb +83 -0
  80. data/vendor/qwik/lib/qwik/act-site.rb +89 -0
  81. data/vendor/qwik/lib/qwik/act-sitebackup.rb +419 -0
  82. data/vendor/qwik/lib/qwik/act-sitelog.rb +118 -0
  83. data/vendor/qwik/lib/qwik/act-smil.rb +299 -0
  84. data/vendor/qwik/lib/qwik/act-status.rb +220 -0
  85. data/vendor/qwik/lib/qwik/act-style.rb +608 -0
  86. data/vendor/qwik/lib/qwik/act-table.rb +263 -0
  87. data/vendor/qwik/lib/qwik/act-tableform.rb +241 -0
  88. data/vendor/qwik/lib/qwik/act-tag.rb +103 -0
  89. data/vendor/qwik/lib/qwik/act-text.rb +70 -0
  90. data/vendor/qwik/lib/qwik/act-textarea.rb +164 -0
  91. data/vendor/qwik/lib/qwik/act-theme.rb +346 -0
  92. data/vendor/qwik/lib/qwik/act-toc.rb +112 -0
  93. data/vendor/qwik/lib/qwik/act-typekey.rb +198 -0
  94. data/vendor/qwik/lib/qwik/act-under-const.rb +94 -0
  95. data/vendor/qwik/lib/qwik/act-webservice.rb +321 -0
  96. data/vendor/qwik/lib/qwik/act-wema.rb +558 -0
  97. data/vendor/qwik/lib/qwik/act-wysiwyg.rb +238 -0
  98. data/vendor/qwik/lib/qwik/action.rb +325 -0
  99. data/vendor/qwik/lib/qwik/autoreload.rb +98 -0
  100. data/vendor/qwik/lib/qwik/bench-bench.rb +28 -0
  101. data/vendor/qwik/lib/qwik/bench-emode.rb +47 -0
  102. data/vendor/qwik/lib/qwik/bench-format-xml.rb +70 -0
  103. data/vendor/qwik/lib/qwik/bench-large-table.rb +62 -0
  104. data/vendor/qwik/lib/qwik/bench-md5.rb +14 -0
  105. data/vendor/qwik/lib/qwik/bench-module-session.rb +19 -0
  106. data/vendor/qwik/lib/qwik/bench-page.rb +50 -0
  107. data/vendor/qwik/lib/qwik/bench-s-md5.rb +28 -0
  108. data/vendor/qwik/lib/qwik/bench-session.rb +25 -0
  109. data/vendor/qwik/lib/qwik/bench-textformat.rb +31 -0
  110. data/vendor/qwik/lib/qwik/catalog-factory.rb +91 -0
  111. data/vendor/qwik/lib/qwik/catalog-ja.rb +479 -0
  112. data/vendor/qwik/lib/qwik/catalog-ml-ja.rb +145 -0
  113. data/vendor/qwik/lib/qwik/check-act-monitor.rb +112 -0
  114. data/vendor/qwik/lib/qwik/check-act-monitor2.rb +46 -0
  115. data/vendor/qwik/lib/qwik/check-act-theme.rb +27 -0
  116. data/vendor/qwik/lib/qwik/check-event.rb +112 -0
  117. data/vendor/qwik/lib/qwik/check-event2.rb +55 -0
  118. data/vendor/qwik/lib/qwik/check-htree-rexml.rb +77 -0
  119. data/vendor/qwik/lib/qwik/check-htree.rb +51 -0
  120. data/vendor/qwik/lib/qwik/check-libxml.rb +135 -0
  121. data/vendor/qwik/lib/qwik/check-many-pages.rb +47 -0
  122. data/vendor/qwik/lib/qwik/check-monitor.rb +33 -0
  123. data/vendor/qwik/lib/qwik/check-observer.rb +67 -0
  124. data/vendor/qwik/lib/qwik/check-server.rb +61 -0
  125. data/vendor/qwik/lib/qwik/check-uuencode.rb +33 -0
  126. data/vendor/qwik/lib/qwik/check-webdav.rb +65 -0
  127. data/vendor/qwik/lib/qwik/check-xml-xpath.rb +27 -0
  128. data/vendor/qwik/lib/qwik/common-backtrace.rb +94 -0
  129. data/vendor/qwik/lib/qwik/common-basic.rb +111 -0
  130. data/vendor/qwik/lib/qwik/common-condition.rb +142 -0
  131. data/vendor/qwik/lib/qwik/common-error.rb +48 -0
  132. data/vendor/qwik/lib/qwik/common-gettext.rb +50 -0
  133. data/vendor/qwik/lib/qwik/common-javascript.rb +45 -0
  134. data/vendor/qwik/lib/qwik/common-notice.rb +132 -0
  135. data/vendor/qwik/lib/qwik/common-plain.rb +105 -0
  136. data/vendor/qwik/lib/qwik/common-plugin.rb +111 -0
  137. data/vendor/qwik/lib/qwik/common-res.rb +76 -0
  138. data/vendor/qwik/lib/qwik/common-resolve.rb +92 -0
  139. data/vendor/qwik/lib/qwik/common-send.rb +171 -0
  140. data/vendor/qwik/lib/qwik/common-session.rb +139 -0
  141. data/vendor/qwik/lib/qwik/common-surface.rb +261 -0
  142. data/vendor/qwik/lib/qwik/common-url.rb +90 -0
  143. data/vendor/qwik/lib/qwik/compat/Makefile +12 -0
  144. data/vendor/qwik/lib/qwik/compat/add_load_path.rb +1 -0
  145. data/vendor/qwik/lib/qwik/config.rb +299 -0
  146. data/vendor/qwik/lib/qwik/db-b-backup.rb +142 -0
  147. data/vendor/qwik/lib/qwik/db-backup.rb +184 -0
  148. data/vendor/qwik/lib/qwik/db-berkeley.rb +306 -0
  149. data/vendor/qwik/lib/qwik/db-filesystem.rb +305 -0
  150. data/vendor/qwik/lib/qwik/db-indexer.rb +154 -0
  151. data/vendor/qwik/lib/qwik/db-searchwords.rb +238 -0
  152. data/vendor/qwik/lib/qwik/description-ja.rb +267 -0
  153. data/vendor/qwik/lib/qwik/description.rb +256 -0
  154. data/vendor/qwik/lib/qwik/dev-add-copyright.rb +23 -0
  155. data/vendor/qwik/lib/qwik/dev-backup.rb +24 -0
  156. data/vendor/qwik/lib/qwik/dev-bench.rb +175 -0
  157. data/vendor/qwik/lib/qwik/dev-calctime.rb +52 -0
  158. data/vendor/qwik/lib/qwik/dev-css-compressor.rb +60 -0
  159. data/vendor/qwik/lib/qwik/dev-extract-catalog.rb +102 -0
  160. data/vendor/qwik/lib/qwik/dev-js-compressor.rb +73 -0
  161. data/vendor/qwik/lib/qwik/dev-release.rb +235 -0
  162. data/vendor/qwik/lib/qwik/dev-replace.rb +353 -0
  163. data/vendor/qwik/lib/qwik/dev-sendmail.rb +25 -0
  164. data/vendor/qwik/lib/qwik/farm.rb +283 -0
  165. data/vendor/qwik/lib/qwik/gettext.rb +56 -0
  166. data/vendor/qwik/lib/qwik/group-cond.rb +157 -0
  167. data/vendor/qwik/lib/qwik/group-config.rb +247 -0
  168. data/vendor/qwik/lib/qwik/group-confirm.rb +147 -0
  169. data/vendor/qwik/lib/qwik/group-db.rb +326 -0
  170. data/vendor/qwik/lib/qwik/group-mail.rb +195 -0
  171. data/vendor/qwik/lib/qwik/group-member.rb +307 -0
  172. data/vendor/qwik/lib/qwik/group-sendmail.rb +231 -0
  173. data/vendor/qwik/lib/qwik/group-site.rb +374 -0
  174. data/vendor/qwik/lib/qwik/group-sweep.rb +63 -0
  175. data/vendor/qwik/lib/qwik/group.rb +157 -0
  176. data/vendor/qwik/lib/qwik/helper.rb +6 -0
  177. data/vendor/qwik/lib/qwik/html-generator.rb +104 -0
  178. data/vendor/qwik/lib/qwik/html-to-wabisabi.rb +148 -0
  179. data/vendor/qwik/lib/qwik/htree-diff.rb +87 -0
  180. data/vendor/qwik/lib/qwik/htree-format-xml.rb +57 -0
  181. data/vendor/qwik/lib/qwik/htree-generator.rb +144 -0
  182. data/vendor/qwik/lib/qwik/htree-get.rb +251 -0
  183. data/vendor/qwik/lib/qwik/htree-html-generator.rb +179 -0
  184. data/vendor/qwik/lib/qwik/htree-template.rb +263 -0
  185. data/vendor/qwik/lib/qwik/htree-to-wabisabi.rb +171 -0
  186. data/vendor/qwik/lib/qwik/loadlib.rb +79 -0
  187. data/vendor/qwik/lib/qwik/logger.rb +115 -0
  188. data/vendor/qwik/lib/qwik/mail-body.rb +171 -0
  189. data/vendor/qwik/lib/qwik/mail-header.rb +474 -0
  190. data/vendor/qwik/lib/qwik/mail-multipart.rb +193 -0
  191. data/vendor/qwik/lib/qwik/mail-parse.rb +147 -0
  192. data/vendor/qwik/lib/qwik/mail.rb +341 -0
  193. data/vendor/qwik/lib/qwik/mailaddress.rb +83 -0
  194. data/vendor/qwik/lib/qwik/mdlb-model.rb +81 -0
  195. data/vendor/qwik/lib/qwik/mdlb-sample.rb +324 -0
  196. data/vendor/qwik/lib/qwik/ml-catalog-factory.rb +27 -0
  197. data/vendor/qwik/lib/qwik/ml-exception.rb +15 -0
  198. data/vendor/qwik/lib/qwik/ml-generator.rb +28 -0
  199. data/vendor/qwik/lib/qwik/ml-gettext.rb +137 -0
  200. data/vendor/qwik/lib/qwik/ml-logger.rb +82 -0
  201. data/vendor/qwik/lib/qwik/ml-memory.rb +65 -0
  202. data/vendor/qwik/lib/qwik/ml-msg-validator.rb +86 -0
  203. data/vendor/qwik/lib/qwik/ml-processor.rb +609 -0
  204. data/vendor/qwik/lib/qwik/ml-quickml-server.rb +122 -0
  205. data/vendor/qwik/lib/qwik/ml-sendmail.rb +0 -0
  206. data/vendor/qwik/lib/qwik/ml-server.rb +107 -0
  207. data/vendor/qwik/lib/qwik/ml-session.rb +348 -0
  208. data/vendor/qwik/lib/qwik/ml-sweeper.rb +101 -0
  209. data/vendor/qwik/lib/qwik/mock-logger.rb +65 -0
  210. data/vendor/qwik/lib/qwik/mock-sendmail.rb +78 -0
  211. data/vendor/qwik/lib/qwik/mock-socket.rb +82 -0
  212. data/vendor/qwik/lib/qwik/modulobe.rb +406 -0
  213. data/vendor/qwik/lib/qwik/mongrel-server.rb +72 -0
  214. data/vendor/qwik/lib/qwik/page-files.rb +249 -0
  215. data/vendor/qwik/lib/qwik/page-generate.rb +82 -0
  216. data/vendor/qwik/lib/qwik/page-get.rb +262 -0
  217. data/vendor/qwik/lib/qwik/page-images.rb +168 -0
  218. data/vendor/qwik/lib/qwik/page-put.rb +128 -0
  219. data/vendor/qwik/lib/qwik/page-rrefs.rb +154 -0
  220. data/vendor/qwik/lib/qwik/page-title.rb +0 -0
  221. data/vendor/qwik/lib/qwik/page-wikidb.rb +234 -0
  222. data/vendor/qwik/lib/qwik/page.rb +67 -0
  223. data/vendor/qwik/lib/qwik/pages.rb +444 -0
  224. data/vendor/qwik/lib/qwik/parse-plugin.rb +249 -0
  225. data/vendor/qwik/lib/qwik/parser-emode.rb +116 -0
  226. data/vendor/qwik/lib/qwik/parser-inline.rb +272 -0
  227. data/vendor/qwik/lib/qwik/parser.rb +349 -0
  228. data/vendor/qwik/lib/qwik/password.rb +183 -0
  229. data/vendor/qwik/lib/qwik/periodic.rb +79 -0
  230. data/vendor/qwik/lib/qwik/qp.rb +56 -0
  231. data/vendor/qwik/lib/qwik/qwik-service.rb +341 -0
  232. data/vendor/qwik/lib/qwik/qwik.rb +5 -0
  233. data/vendor/qwik/lib/qwik/qwikweb-adduser.rb +34 -0
  234. data/vendor/qwik/lib/qwik/qwikweb-catalog-validator.rb +110 -0
  235. data/vendor/qwik/lib/qwik/qwikweb-incgen.rb +28 -0
  236. data/vendor/qwik/lib/qwik/qwikweb-makesite.rb +41 -0
  237. data/vendor/qwik/lib/qwik/qwikweb-server.rb +44 -0
  238. data/vendor/qwik/lib/qwik/qwikweb-showpassword.rb +26 -0
  239. data/vendor/qwik/lib/qwik/qwikweb-watchlog.rb +67 -0
  240. data/vendor/qwik/lib/qwik/request-path.rb +304 -0
  241. data/vendor/qwik/lib/qwik/request-ua.rb +76 -0
  242. data/vendor/qwik/lib/qwik/request-webrick.rb +81 -0
  243. data/vendor/qwik/lib/qwik/request.rb +91 -0
  244. data/vendor/qwik/lib/qwik/resolve-tdiary.rb +292 -0
  245. data/vendor/qwik/lib/qwik/resolve.rb +121 -0
  246. data/vendor/qwik/lib/qwik/response.rb +228 -0
  247. data/vendor/qwik/lib/qwik/server-memory.rb +57 -0
  248. data/vendor/qwik/lib/qwik/server-webrick.rb +102 -0
  249. data/vendor/qwik/lib/qwik/server.rb +252 -0
  250. data/vendor/qwik/lib/qwik/site-config.rb +149 -0
  251. data/vendor/qwik/lib/qwik/site-db.rb +136 -0
  252. data/vendor/qwik/lib/qwik/site-event.rb +162 -0
  253. data/vendor/qwik/lib/qwik/site-files.rb +86 -0
  254. data/vendor/qwik/lib/qwik/site-group.rb +103 -0
  255. data/vendor/qwik/lib/qwik/site-index.rb +47 -0
  256. data/vendor/qwik/lib/qwik/site-log.rb +64 -0
  257. data/vendor/qwik/lib/qwik/site-member.rb +230 -0
  258. data/vendor/qwik/lib/qwik/site-monitor.rb +97 -0
  259. data/vendor/qwik/lib/qwik/site-pages.rb +62 -0
  260. data/vendor/qwik/lib/qwik/site-plan.rb +139 -0
  261. data/vendor/qwik/lib/qwik/site-report.rb +282 -0
  262. data/vendor/qwik/lib/qwik/site-resolve.rb +230 -0
  263. data/vendor/qwik/lib/qwik/site-rrefs.rb +18 -0
  264. data/vendor/qwik/lib/qwik/site-search.rb +180 -0
  265. data/vendor/qwik/lib/qwik/site-timeline.rb +153 -0
  266. data/vendor/qwik/lib/qwik/site-url.rb +189 -0
  267. data/vendor/qwik/lib/qwik/site.rb +76 -0
  268. data/vendor/qwik/lib/qwik/smil-time.rb +105 -0
  269. data/vendor/qwik/lib/qwik/smtp-session.rb +331 -0
  270. data/vendor/qwik/lib/qwik/template-generator.rb +149 -0
  271. data/vendor/qwik/lib/qwik/template.rb +85 -0
  272. data/vendor/qwik/lib/qwik/test-common.rb +10 -0
  273. data/vendor/qwik/lib/qwik/test-ml-info.rb +225 -0
  274. data/vendor/qwik/lib/qwik/test-module-ml.rb +142 -0
  275. data/vendor/qwik/lib/qwik/test-module-path.rb +110 -0
  276. data/vendor/qwik/lib/qwik/test-module-public.rb +70 -0
  277. data/vendor/qwik/lib/qwik/test-module-server.rb +98 -0
  278. data/vendor/qwik/lib/qwik/test-module-session.rb +264 -0
  279. data/vendor/qwik/lib/qwik/test-module-suite.rb +91 -0
  280. data/vendor/qwik/lib/qwik/test-ms-applemail.rb +59 -0
  281. data/vendor/qwik/lib/qwik/test-ms-attach.rb +174 -0
  282. data/vendor/qwik/lib/qwik/test-ms-basic.rb +40 -0
  283. data/vendor/qwik/lib/qwik/test-ms-close.rb +35 -0
  284. data/vendor/qwik/lib/qwik/test-ms-confirm.rb +75 -0
  285. data/vendor/qwik/lib/qwik/test-ms-ignore-spam.rb +57 -0
  286. data/vendor/qwik/lib/qwik/test-ms-japanese.rb +97 -0
  287. data/vendor/qwik/lib/qwik/test-ms-jfilename.rb +82 -0
  288. data/vendor/qwik/lib/qwik/test-ms-large.rb +58 -0
  289. data/vendor/qwik/lib/qwik/test-ms-member.rb +103 -0
  290. data/vendor/qwik/lib/qwik/test-ms-multipart.rb +84 -0
  291. data/vendor/qwik/lib/qwik/test-ms-org.rb +129 -0
  292. data/vendor/qwik/lib/qwik/test-ms-plan.rb +130 -0
  293. data/vendor/qwik/lib/qwik/test-ms-post.rb +53 -0
  294. data/vendor/qwik/lib/qwik/test-ms-quopri.rb +76 -0
  295. data/vendor/qwik/lib/qwik/test-sub-quopri.rb +45 -0
  296. data/vendor/qwik/lib/qwik/test-submit-base64.rb +59 -0
  297. data/vendor/qwik/lib/qwik/test-submit-forward.rb +61 -0
  298. data/vendor/qwik/lib/qwik/test-submit-html-mail.rb +52 -0
  299. data/vendor/qwik/lib/qwik/test-submit-japanese.rb +135 -0
  300. data/vendor/qwik/lib/qwik/test-submit-jfilename.rb +144 -0
  301. data/vendor/qwik/lib/qwik/test-submit-uuencode.rb +71 -0
  302. data/vendor/qwik/lib/qwik/test-suite-all.rb +8 -0
  303. data/vendor/qwik/lib/qwik/test-suite-basic.rb +9 -0
  304. data/vendor/qwik/lib/qwik/test-suite-ml.rb +9 -0
  305. data/vendor/qwik/lib/qwik/test-typekey.rb +64 -0
  306. data/vendor/qwik/lib/qwik/testunit.rb +45 -0
  307. data/vendor/qwik/lib/qwik/tokenizer-inline.rb +288 -0
  308. data/vendor/qwik/lib/qwik/tokenizer.rb +331 -0
  309. data/vendor/qwik/lib/qwik/typekey.rb +160 -0
  310. data/vendor/qwik/lib/qwik/util-basic.rb +135 -0
  311. data/vendor/qwik/lib/qwik/util-charset.rb +331 -0
  312. data/vendor/qwik/lib/qwik/util-css.rb +56 -0
  313. data/vendor/qwik/lib/qwik/util-csv-tokenizer.rb +113 -0
  314. data/vendor/qwik/lib/qwik/util-filename.rb +112 -0
  315. data/vendor/qwik/lib/qwik/util-pathname.rb +202 -0
  316. data/vendor/qwik/lib/qwik/util-pid.rb +58 -0
  317. data/vendor/qwik/lib/qwik/util-safe.rb +67 -0
  318. data/vendor/qwik/lib/qwik/util-sendmail.rb +273 -0
  319. data/vendor/qwik/lib/qwik/util-string.rb +202 -0
  320. data/vendor/qwik/lib/qwik/util-time.rb +125 -0
  321. data/vendor/qwik/lib/qwik/util-webrick.rb +176 -0
  322. data/vendor/qwik/lib/qwik/version.rb +11 -0
  323. data/vendor/qwik/lib/qwik/wabisabi-basic.rb +163 -0
  324. data/vendor/qwik/lib/qwik/wabisabi-diff.rb +130 -0
  325. data/vendor/qwik/lib/qwik/wabisabi-format-xml.rb +310 -0
  326. data/vendor/qwik/lib/qwik/wabisabi-generator.rb +262 -0
  327. data/vendor/qwik/lib/qwik/wabisabi-index.rb +174 -0
  328. data/vendor/qwik/lib/qwik/wabisabi-table.rb +212 -0
  329. data/vendor/qwik/lib/qwik/wabisabi-template.rb +295 -0
  330. data/vendor/qwik/lib/qwik/wabisabi-to-htree.rb +111 -0
  331. data/vendor/qwik/lib/qwik/wabisabi-to-wiki.rb +690 -0
  332. data/vendor/qwik/lib/qwik/wabisabi-traverse.rb +207 -0
  333. data/vendor/qwik/lib/qwik/wabisabi-validator.rb +116 -0
  334. data/vendor/qwik/lib/qwik/wabisabi.rb +5 -0
  335. metadata +492 -0
@@ -0,0 +1,61 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+ require 'qwik/test-module-ml'
7
+
8
+ class TestSubmitForward < Test::Unit::TestCase
9
+ include TestModuleML
10
+
11
+ def test_forward_mail
12
+ qml = QuickML::Group.new(@ml_config, 'test@example.com')
13
+ qml.setup_test_config
14
+ mail = post_mail(qml) {
15
+ "Date: Thu, 28 Apr 2005 07:17:20 +0900
16
+ From: bob@example.net
17
+ To: test@example.com
18
+ Subject: [Fwd: test mail]
19
+ Content-Type: multipart/mixed; boundary=\"------------080009010806060401020001\"
20
+
21
+ This is a multi-part message in MIME format.
22
+ --------------080009010806060401020001
23
+ Content-Type: text/plain; charset=ISO-2022-JP
24
+ Content-Transfer-Encoding: 7bit
25
+
26
+ I forward the test mail.
27
+ --------------080009010806060401020001
28
+ Content-Type: message/rfc822; name=\"test mail\"
29
+ Content-Transfer-Encoding: 7bit
30
+ Content-Disposition: inline; filename=\"test mail\"
31
+
32
+ From user@example.net Fri Apr 22 11:31:51 2005
33
+ From: user@example.net
34
+ Subject: test mail
35
+ To: test@expample.com
36
+
37
+ This is a test.
38
+
39
+ --------------080009010806060401020001--
40
+ " }
41
+ ok_eq("[Fwd: test mail]", mail['Subject'])
42
+ ok_eq("[Fwd: test mail]", @site['1'].get_title)
43
+ ok_eq("* [Fwd: test mail]
44
+ {{mail(bob@example.net,0)
45
+ I forward the test mail.
46
+
47
+ {{file(test mail)}}
48
+ }}
49
+ ", @site["1"].load)
50
+ ok_eq(true, @site.files('1').exist?('test mail'))
51
+ str = @site.files('1').path('test mail').read
52
+ ok_eq("From user@example.net Fri Apr 22 11:31:51 2005
53
+ From: user@example.net
54
+ Subject: test mail
55
+ To: test@expample.com
56
+
57
+ This is a test.
58
+
59
+ ", str)
60
+ end
61
+ end
@@ -0,0 +1,52 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+ require 'qwik/test-module-ml'
7
+
8
+ class TestSubmitHtmlMail < Test::Unit::TestCase
9
+ include TestModuleML
10
+
11
+ def test_all
12
+ qml = QuickML::Group.new(@ml_config, 'test@example.com')
13
+ qml.setup_test_config
14
+ mail = post_mail(qml) {
15
+ "Date: Mon, 1 Aug 2005 11:06:12 +0900
16
+ To: test@example.com
17
+ From: bob@example.net
18
+ Subject: HtmlMail
19
+ Content-Type: multipart/alternative;
20
+ boundary=\"============_-1089260510==_ma============\"
21
+
22
+ --============_-1089260510==_ma============
23
+ Content-Type: text/plain; charset='iso-2022-jp'
24
+ Content-Transfer-Encoding: 7bit
25
+
26
+ です。
27
+ --============_-1089260510==_ma============
28
+ Content-Type: text/html; charset='iso-2022-jp'
29
+ Content-Transfer-Encoding: 7bit
30
+
31
+ <!doctype html public \"-//W3C//DTD W3 HTML//EN\">
32
+ <html><head><style type=\"text/css\"><!--
33
+ blockquote, dl, ul, ol, li { padding-top: 0 ; padding-bottom: 0 }
34
+ --></style><title>George Legady</title></head><body>
35
+ <div>です。<br>
36
+ </div>
37
+ </body>
38
+ </html>
39
+ --============_-1089260510==_ma============--
40
+ " }
41
+
42
+ ok_eq("============_-1089260510==_ma============", mail.boundary)
43
+
44
+ mail1 = QuickML::Mail.new
45
+ mail1.read(mail.parts[1])
46
+ ok_eq('text/html', mail1.content_type)
47
+
48
+ page = @site['HtmlMail']
49
+ ok_eq('HtmlMail', page.get_title)
50
+ ok_eq("* HtmlMail\n{{mail(bob@example.net,0)\nです。\n}}\n", page.load)
51
+ end
52
+ end
@@ -0,0 +1,135 @@
1
+ # -*- coding: shift_jis -*-
2
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
3
+ # This is free software with ABSOLUTELY NO WARRANTY.
4
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
5
+
6
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
7
+ require 'qwik/test-module-ml'
8
+ if $0 == __FILE__
9
+ require 'qwik/server-memory'
10
+ require 'qwik/farm'
11
+ require 'qwik/group-site'
12
+ require 'qwik/group'
13
+ require 'qwik/password'
14
+ $test = true
15
+ end
16
+
17
+ class TestSubmitJapanese < Test::Unit::TestCase
18
+ include TestModuleML
19
+
20
+ def test_submit_1
21
+ qml = QuickML::Group.new(@ml_config, 'test@example.com')
22
+ qml.setup_test_config
23
+ mail = post_mail(qml) { # 1st mail
24
+ 'Date: Mon, 3 Feb 2001 12:34:56 +0900
25
+ From: "Test User" <bob@example.net>
26
+ To: "Test Mailing List" <test@example.com>
27
+ Subject: Re: [test:1] テスト
28
+
29
+ テ。
30
+ ' }
31
+ ok_eq("テスト", @site['1'].get_title)
32
+ ok_eq("* テスト\n{{mail(bob@example.net,0)\nテ。\n}}\n", @site['1'].load)
33
+
34
+ mail = post_mail(qml) { # 2nd mail
35
+ 'Date: Mon, 4 Feb 2001 12:34:56 +0900
36
+ From: "Guest User" <guest@example.com>
37
+ To: "Test Mailing List" <test@example.com>
38
+ Subject: Re: [test:2] テスト
39
+
40
+ これもテ。
41
+ ' }
42
+ ok_eq("テスト", @site['1'].get_title)
43
+ ok_eq("* テスト\n{{mail(bob@example.net,0)\nテ。\n}}\n{{mail(guest@example.com,0)\nこれもテ。\n}}\n", @site['1'].load) # the new mail is added.
44
+ end
45
+
46
+ def test_submit_with_attach_image
47
+ qml = QuickML::Group.new(@ml_config, 'test@example.com')
48
+ qml.setup_test_config
49
+ mail = post_mail(qml) {
50
+ "Date: Sun, 01 Aug 2004 12:34:56 +0900
51
+ From: bob@example.net
52
+ To: test@example.com
53
+ Subject: =?iso-2022-jp?B?GyRCRTpJVSVGJTklSBsoQg==?=
54
+ Cc: guest@example.com
55
+ Message-Id: <nosuchmessageid@example.com>
56
+ MIME-Version: 1.0
57
+ Content-Type: multipart/mixed; boundary=\"------_410DDC04C7AD046D3600_MULTIPART_MIXED_\"
58
+ Content-Transfer-Encoding: 7bit
59
+
60
+ --------_410DDC04C7AD046D3600_MULTIPART_MIXED_
61
+ Content-Type: text/plain; charset='ISO-2022-JP'
62
+ Content-Transfer-Encoding: 7bit
63
+
64
+ テ。
65
+ --------_410DDC04C7AD046D3600_MULTIPART_MIXED_
66
+ Content-Type: image/png; name=\"1x1.png\"
67
+ Content-Disposition: attachment;
68
+ filename=\"1x1.png\"
69
+ Content-Transfer-Encoding: base64
70
+
71
+ iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR42mP4//8/AAX+Av4zEpUU
72
+ AAAAAElFTkSuQmCC
73
+
74
+ --------_410DDC04C7AD046D3600_MULTIPART_MIXED_--
75
+ " }
76
+ page = @site['1']
77
+ ok_eq("添付テスト", page.get_title)
78
+ ok_eq("* 添付テスト
79
+ {{mail(bob@example.net,0)
80
+ テ。
81
+
82
+ {{file(1x1.png)}}
83
+ }}
84
+ ", page.load)
85
+ ok_eq(true, @site.files('1').exist?('1x1.png'))
86
+ end
87
+
88
+ def test_cp932
89
+ qml = QuickML::Group.new(@ml_config, 'test@example.com')
90
+ qml.setup_test_config
91
+
92
+ mail = QuickML::Mail.new
93
+ mail.read(
94
+ 'From: bob@example.net
95
+ To: test@example.com
96
+ Content-Type: text/plain;
97
+ charset=CP932;
98
+ format=flowed
99
+ Content-Transfer-Encoding: base64
100
+ Mime-Version: 1.0 (Apple Message framework v926)
101
+ Subject: [test:27] =?CP932?Q?Re: __=83e=83X=83g?=
102
+ Date: Fri, 31 Oct 2008 17:08:25 +0900
103
+
104
+ h0A=
105
+ ')
106
+ mail.store_addresses
107
+ qml.site_post(mail, true)
108
+ ok_eq("\203e\203X\203g", @site['1'].get_title)
109
+ ok_eq("* \203e\203X\203g\n{{mail(bob@example.net,0)\n\207@\n}}\n", @site['1'].load)
110
+ end
111
+
112
+
113
+ def test_cp932_quoted_printable
114
+ qml = QuickML::Group.new(@ml_config, 'test@example.com')
115
+ qml.setup_test_config
116
+
117
+ mail = QuickML::Mail.new
118
+ mail.read(
119
+ 'From: bob@example.net
120
+ To: smd@qwik.jp
121
+ Content-Type: text/plain; charset=CP932; format=flowed
122
+ Content-Transfer-Encoding: quoted-printable
123
+ Mime-Version: 1.0 (Apple Message framework v926)
124
+ Date: Tue, 4 Nov 2008 18:19:37 +0900
125
+ Subject: test
126
+
127
+ =95=D4=90M
128
+ ')
129
+ mail.store_addresses
130
+ qml.site_post(mail, true)
131
+ ok_eq("test", @site['test'].get_title)
132
+ ok_eq("* test\n{{mail(bob@example.net,0)\n返信\n}}\n", @site['test'].load)
133
+ end
134
+ end
135
+
@@ -0,0 +1,144 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+ require 'qwik/test-module-session'
7
+ require 'qwik/test-module-ml'
8
+ #require 'qwik/quickml'
9
+
10
+ class TestSubmitForwardJapanese < Test::Unit::TestCase
11
+ include TestModuleML
12
+
13
+ def test_dummy
14
+ end
15
+
16
+ def nutest_japanese_file_name
17
+ qml = QuickML::Group.new(@ml_config, 'test@example.com')
18
+ qml.setup_test_config
19
+
20
+ mail = post_mail(qml) {
21
+ "Date: Fri, 20 May 2005 15:21:55 +0900
22
+ From: bob@example.net
23
+ To: test@example.com
24
+ Subject: Attach a file with japanese file name
25
+ MIME-Version: 1.0
26
+ Content-Type: multipart/mixed; boundary=\"------_428D7194605E049A05F8_MULTIPART_MIXED_\"
27
+ Content-Transfer-Encoding: 7bit
28
+
29
+ --------_428D7194605E049A05F8_MULTIPART_MIXED_
30
+ Content-Type: text/plain; charset='ISO-2022-JP'
31
+ Content-Transfer-Encoding: 7bit
32
+
33
+ test.
34
+
35
+ --------_428D7194605E049A05F8_MULTIPART_MIXED_
36
+ Content-Type: application/octet-stream;
37
+ name=\"=?ISO-2022-JP?B?MTdmeRskQk09OzslMyE8JUkkTjtYRGokSxsoQg==?=
38
+ =?ISO-2022-JP?B?GyRCJEQkJCRGGyhCLmRvYw==?=\"
39
+ Content-Disposition: attachment;
40
+ filename=\"=?ISO-2022-JP?B?MTdmeRskQk09OzslMyE8JUkkTjtYRGokSxsoQg==?=
41
+ =?ISO-2022-JP?B?GyRCJEQkJCRGGyhCLmRvYw==?=\"
42
+ Content-Transfer-Encoding: base64
43
+
44
+ 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAMAAAAAAAAAAA
45
+ AAAAAA==
46
+
47
+
48
+
49
+ --------_428D7194605E049A05F8_MULTIPART_MIXED_
50
+ Content-Type: application/octet-stream;
51
+ name=\"=?ISO-2022-JP?B?GyRCPnBKc04uJUclNiUkJXMlMCVrITwlVxsoQg==?=
52
+ =?ISO-2022-JP?B?Lnhscw==?=\"
53
+ Content-Disposition: attachment;
54
+ filename=\"=?ISO-2022-JP?B?GyRCPnBKc04uJUclNiUkJXMlMCVrITwlVxsoQg==?=
55
+ =?ISO-2022-JP?B?Lnhscw==?=\"
56
+ Content-Transfer-Encoding: base64
57
+
58
+ 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAHAAAAAAAAAAA
59
+ AAAAAAAAAAAAAAAAAAAAEwAAAAAQAAAAAAAA
60
+
61
+
62
+
63
+ --------_428D7194605E049A05F8_MULTIPART_MIXED_--
64
+
65
+
66
+
67
+ "}
68
+ ok_eq('Attach Test', @site['1'].get_title)
69
+ ok_eq("* Attach Test
70
+ {{mail(bob@example.net,0)
71
+ This is a test.
72
+
73
+ {{file(1x1.png)}}
74
+
75
+ }}
76
+ ", @site["1"].load)
77
+ ok_eq(true, @site.files('1').exist?('1x1.png'))
78
+ end
79
+
80
+ def nutest_forward_long
81
+ qml = QuickML::Group.new(@ml_config, 'test@example.com')
82
+ qml.setup_test_config
83
+ mail = post_mail(qml) {
84
+ "Date: Thu, 28 Apr 2005 07:17:20 +0900
85
+ From: bob@example.net
86
+ To: 2005@eto.com
87
+ Subject: [Fwd: [itri-unei:00521] =?ISO-2022-JP?B?GyRCIVozTkRqTyJNbSFbGyhC?=
88
+ =?ISO-2022-JP?B?GyRCSXRMZ0ZiJVIlIiVqJXMlMEZ8RHgkSyREJCQkRhsoQl0=?=
89
+ Content-Type: multipart/mixed;
90
+ boundary='------------080009010806060401020001'
91
+
92
+ This is a multi-part message in MIME format.
93
+ --------------080009010806060401020001
94
+ Content-Type: text/plain; charset=ISO-2022-JP
95
+ Content-Transfer-Encoding: 7bit
96
+
97
+ 同じ方法で転送します。
98
+
99
+ --------------080009010806060401020001
100
+ Content-Type: message/rfc822;
101
+ name=\"[itri-unei:00521] =?ISO-2022-JP?B?GyRCIVozTkRqTyJNbSFbSXRMZ0ZiJVIlIiVqGyhC?==?ISO-2022-JP?B?GyRCJXMlMEZ8RHgkSyREJCQkRhsoQg==?=\"
102
+ Content-Transfer-Encoding: 7bit
103
+ Content-Disposition: inline;
104
+ filename=\"[itri-unei:00521] =?ISO-2022-JP?B?GyRCIVozTkRqTyJNbSFbSXRMZ0ZiJVIlIiVqGyhC?==?ISO-2022-JP?B?GyRCJXMlMEZ8RHgkSyREJCQkRhsoQg==?=\"
105
+
106
+
107
+ Date: Fri, 22 Apr 2005 11:31:34 +0900
108
+ From: s@e.com
109
+ Subject: [itri-unei:00521] =?ISO-2022-JP?B?GyRCIVozTkRqTyJNbSFbGyhC?=
110
+ =?ISO-2022-JP?B?GyRCSXRMZ0ZiJVIlIiVqJXMlMEZ8RHgkSyREGyhC?=
111
+ =?ISO-2022-JP?B?GyRCJCQkRhsoQg==?=
112
+ To: i-u@a.jp
113
+ Content-Type: text/plain; charset='ISO-2022-JP'
114
+ Content-Transfer-Encoding: 7bit
115
+
116
+ おはようございます。
117
+
118
+ --------------080009010806060401020001--
119
+ " }
120
+
121
+ qml.site_post(mail, true)
122
+ ok_eq("[Fwd: test mail]", mail['Subject'])
123
+ ok_eq("[Fwd: test mail]", @site['1'].get_title)
124
+ ok_eq("* [Fwd: test mail]
125
+ {{mail(bob@example.net,0)
126
+ I forward the test mail.
127
+
128
+ {{file(test mail)}}
129
+
130
+ }}
131
+ ",
132
+ @site['1'].load)
133
+ ok_eq(true, @site.files('1').exist?('test mail'))
134
+ str = @site.files('1').path('test mail').get
135
+ ok_eq("From user@example.net Fri Apr 22 11:31:51 2005
136
+ From: user@example.net
137
+ Subject: test mail
138
+ To: test@expample.com
139
+
140
+ This is a test.
141
+
142
+ ", str)
143
+ end
144
+ end
@@ -0,0 +1,71 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+ require 'qwik/test-module-ml'
7
+
8
+ if $0 == __FILE__
9
+ require 'qwik/server-memory'
10
+ require 'qwik/farm'
11
+ require 'qwik/group-site'
12
+ require 'qwik/group'
13
+ require 'qwik/password'
14
+ $test = true
15
+ end
16
+
17
+ class TestSubmitUuencode < Test::Unit::TestCase
18
+ include TestModuleML
19
+
20
+ def test_all
21
+ qml = QuickML::Group.new(@ml_config, 'test@example.com')
22
+ qml.setup_test_config
23
+
24
+ base64 =
25
+ 'begin 666 1x1a.png
26
+ MB5!.1PT*&@H````-24A$4@````$````!"`(```"0=U/>````#$E$051XVF/X
27
+ 8__\_``7^`OXS$I44`````$E%3D2N0F""
28
+ `
29
+ end
30
+ '
31
+
32
+ mail = post_mail(qml) {
33
+ "Date: Mon, 3 Feb 2001 12:34:56 +0900
34
+ From: bob@example.net
35
+ To: test@example.com
36
+ Subject: UuencodeImage
37
+ Content-Type: multipart/mixed; boundary=\"------------Boundary_iGrnGAlmY.rxNIm\"
38
+
39
+ --------------Boundary_iGrnGAlmY.rxNIm
40
+ Content-Type: text/plain; charset=ISO-2022-JP
41
+ Content-Transfer-Encoding: 7bit
42
+
43
+ This is a test.
44
+ --------------Boundary_iGrnGAlmY.rxNIm
45
+ Content-Type: application/octet-stream; name=\"1x1a.png\"
46
+ Content-Transfer-Encoding: x-uuencode
47
+ Content-Disposition: attachment; filename=\"1x1a.png\"
48
+
49
+ #{base64}
50
+ " }
51
+
52
+ mail1 = QuickML::Mail.new
53
+ mail1.read(mail.parts[1])
54
+ ok_eq('application/octet-stream', mail1.content_type)
55
+ ok_eq("attachment; filename=\"1x1a.png\"",
56
+ mail1['Content-Disposition'])
57
+ ok_eq('1x1a.png', mail1.filename)
58
+ ok_eq('x-uuencode', mail1['Content-Transfer-Encoding'])
59
+ ok_eq("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000\001\000\000\000\001\010\002\000\000\000\220wS\336\000\000\000\fIDATx\332c\370\377\377?\000\005\376\002\3763\022\225\024\000\000\000\000IEND\256B`\202", mail1.decoded_body)
60
+
61
+ page = @site['UuencodeImage']
62
+ ok_eq('UuencodeImage', page.get_title)
63
+ ok_eq('* UuencodeImage
64
+ {{mail(bob@example.net,0)
65
+ This is a test.
66
+
67
+ {{file(1x1a.png)}}
68
+ }}
69
+ ', page.load)
70
+ end
71
+ end
@@ -0,0 +1,8 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+ require 'qwik/test-module-suite'
7
+
8
+ TestSuite.new.test_suite_all
@@ -0,0 +1,9 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+ require 'qwik/test-module-suite'
7
+
8
+ testsuite = TestSuite.new
9
+ testsuite.test_suite_basic
@@ -0,0 +1,9 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+ require 'qwik/test-module-suite'
7
+
8
+ testsuite = TestSuite.new
9
+ testsuite.test_suite_ml
@@ -0,0 +1,64 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ $LOAD_PATH.unshift '..' unless $LOAD_PATH.include? '..'
6
+ require 'qwik/typekey'
7
+ require 'qwik/testunit'
8
+ require 'qwik/config'
9
+ require 'qwik/util-pathname'
10
+ $test = true
11
+
12
+ class TestTypekey < Test::Unit::TestCase
13
+ def typekey_get_sitetoken(config)
14
+ file = config.etc_dir.path+'typekey-sitetoken.txt'
15
+ return nil if ! file.exist?
16
+ return file.open {|f| f.gets }.chomp
17
+ end
18
+
19
+ def test_typekey
20
+ return if $0 != __FILE__ # just only for unit test.
21
+ config = Qwik::Config.new
22
+
23
+ sitetoken = 't'
24
+ tk = TypeKey.new(sitetoken, '1.1')
25
+ tk.key_cache_timeout = 60 * 60 * 24 * 365 * 100 # 100years
26
+ tk.key_cache_path = (config.cache_dir.path+'typekey-publickey.txt').to_s
27
+
28
+ return_url = 'http://e.com/.typekey'
29
+ ok_eq('https://www.typekey.com/t/typekey/login?t=t&_return=http://e.com/.typekey&v=1.1', tk.get_login_url(return_url))
30
+ ok_eq('https://www.typekey.com/t/typekey/login?t=t&need_email=1&_return=http://e.com/.typekey&v=1.1', tk.get_login_url(return_url, true))
31
+ ok_eq('https://www.typekey.com/t/typekey/logout?_return=http://e.com/.typekey', tk.get_logout_url(return_url))
32
+
33
+ begin
34
+ key = tk.get_key
35
+ ok_eq(['p', 'q', 'pub_key', 'g'], key.keys)
36
+ rescue
37
+ p 'failed'
38
+ end
39
+ end
40
+
41
+ def test_verify
42
+ return if $0 != __FILE__ # just only for unit test.
43
+ config = Qwik::Config.new
44
+
45
+ sitetoken = typekey_get_sitetoken(config)
46
+ tk = TypeKey.new(sitetoken, '1.1')
47
+ tk.key_cache_timeout = 60 * 60 * 24 * 365 * 100 # 100years
48
+ tk.key_cache_path = (config.cache_dir.path+'typekey-publickey.txt').to_s
49
+
50
+ ts = '1111111111'
51
+ email = 'guest@example.com'
52
+ name = 'guestexample'
53
+ nick = 'guest'
54
+ sig = 'ttttttttttttttttttttttttttt=:LLLLLLLLLLLLLLLLLLLLLLLLLLL='
55
+
56
+ begin
57
+ assert_raise(VerifyFailed){
58
+ result = tk.verify(email, name, nick, ts, sig)
59
+ }
60
+ rescue => e
61
+ p 'failed', e
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,45 @@
1
+ # Copyright (C) 2003-2006 Kouichirou Eto, All rights reserved.
2
+ # This is free software with ABSOLUTELY NO WARRANTY.
3
+ # You can redistribute it and/or modify it under the terms of the GNU GPL 2.
4
+
5
+ #
6
+ # A patch to test/unit/ui/console/testrunner.rb
7
+ # You can see the elapsed time of each test case.
8
+ #
9
+
10
+ require 'test/unit'
11
+ require 'test/unit/ui/console/testrunner'
12
+ # Load testrunner.rb at the first to patch it.
13
+
14
+ module Test
15
+ module Unit
16
+ module UI
17
+ module Console
18
+ class TestRunner
19
+ alias :org_test_started :test_started
20
+ def test_started(name)
21
+ output_single("#{name}: ", VERBOSE)
22
+ $test_unit_start_time = Time.now
23
+ end
24
+
25
+ alias :org_test_finished :test_finished
26
+ def test_finished(name)
27
+ output_single('.', PROGRESS_ONLY) unless @displayed
28
+ elapsed_time = Time.now - $test_unit_start_time
29
+ str = sprintf(' (%0.02f)', elapsed_time)
30
+ output_single(str, VERBOSE) unless @displayed
31
+ nl(VERBOSE)
32
+ @displayed = false
33
+ end
34
+ end
35
+ end
36
+ end
37
+
38
+ module Assertions
39
+ alias ok assert
40
+ alias ok_eq assert_equal
41
+ alias eq assert_equal
42
+ alias is assert_equal
43
+ end
44
+ end
45
+ end