de.oddb 2.0.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 (431) hide show
  1. data/Guide.txt +3 -0
  2. data/History.txt +5 -0
  3. data/LICENCE.txt +339 -0
  4. data/Manifest.txt +430 -0
  5. data/README +423 -0
  6. data/README.txt +25 -0
  7. data/Rakefile +28 -0
  8. data/bin/admin +71 -0
  9. data/bin/exportd +44 -0
  10. data/bin/oddbd +33 -0
  11. data/data/fulltext/data/dicts/french/fulltext.aff +1057 -0
  12. data/data/fulltext/data/dicts/french/fulltext.dict +91189 -0
  13. data/data/fulltext/data/dicts/french/fulltext.stop +135 -0
  14. data/data/fulltext/data/dicts/german/fulltext.aff +1233 -0
  15. data/data/fulltext/data/dicts/german/fulltext.dict +287574 -0
  16. data/data/fulltext/data/dicts/german/fulltext.stop +133 -0
  17. data/data/fulltext/data/german_compound/README +15 -0
  18. data/data/fulltext/data/german_compound/compound.pl +63 -0
  19. data/data/fulltext/data/german_compound/german.stop +20 -0
  20. data/data/fulltext/data/ispell-german-compound.tar.gz +0 -0
  21. data/data/fulltext/redist/dict_french/Makefile +12 -0
  22. data/data/fulltext/redist/dict_french/README.french +1 -0
  23. data/data/fulltext/redist/dict_french/dict_french.sql.in +7 -0
  24. data/data/fulltext/redist/dict_french/dict_snowball.c +56 -0
  25. data/data/fulltext/redist/dict_french/french_stem.c +1222 -0
  26. data/data/fulltext/redist/dict_french/french_stem.h +16 -0
  27. data/data/fulltext/redist/dict_french/subinclude.h +2 -0
  28. data/data/fulltext/redist/dict_german/Makefile +12 -0
  29. data/data/fulltext/redist/dict_german/README.german +1 -0
  30. data/data/fulltext/redist/dict_german/dict_german.sql.in +7 -0
  31. data/data/fulltext/redist/dict_german/dict_snowball.c +56 -0
  32. data/data/fulltext/redist/dict_german/german_stem.c +527 -0
  33. data/data/fulltext/redist/dict_german/german_stem.h +16 -0
  34. data/data/fulltext/redist/dict_german/subinclude.h +1 -0
  35. data/data/fulltext/redist/french_stem.c +1222 -0
  36. data/data/fulltext/redist/french_stem.h +16 -0
  37. data/data/fulltext/redist/german_stem.c +527 -0
  38. data/data/fulltext/redist/german_stem.h +16 -0
  39. data/jobs/export_chde_xls +20 -0
  40. data/jobs/export_csv +20 -0
  41. data/jobs/export_fachinfo_yaml +20 -0
  42. data/jobs/export_patinfo_yaml +20 -0
  43. data/jobs/export_yaml +20 -0
  44. data/jobs/import_dimdi +15 -0
  45. data/jobs/import_gkv +19 -0
  46. data/jobs/import_pharma24 +15 -0
  47. data/jobs/import_pharmnet +30 -0
  48. data/jobs/import_whocc +18 -0
  49. data/lib/fixes/singular.rb +9 -0
  50. data/lib/fixes/yaml.rb +13 -0
  51. data/lib/oddb.rb +13 -0
  52. data/lib/oddb/business/company.rb +18 -0
  53. data/lib/oddb/business/grant_download.rb +27 -0
  54. data/lib/oddb/business/invoice.rb +75 -0
  55. data/lib/oddb/config.rb +112 -0
  56. data/lib/oddb/currency.rb +6 -0
  57. data/lib/oddb/drugs.rb +16 -0
  58. data/lib/oddb/drugs/active_agent.rb +37 -0
  59. data/lib/oddb/drugs/atc.rb +53 -0
  60. data/lib/oddb/drugs/composition.rb +41 -0
  61. data/lib/oddb/drugs/ddd.rb +24 -0
  62. data/lib/oddb/drugs/dose.rb +107 -0
  63. data/lib/oddb/drugs/galenic_form.rb +21 -0
  64. data/lib/oddb/drugs/galenic_group.rb +17 -0
  65. data/lib/oddb/drugs/package.rb +111 -0
  66. data/lib/oddb/drugs/part.rb +55 -0
  67. data/lib/oddb/drugs/product.rb +25 -0
  68. data/lib/oddb/drugs/sequence.rb +68 -0
  69. data/lib/oddb/drugs/substance.rb +31 -0
  70. data/lib/oddb/drugs/substance_group.rb +13 -0
  71. data/lib/oddb/drugs/unit.rb +12 -0
  72. data/lib/oddb/export.rb +4 -0
  73. data/lib/oddb/export/csv.rb +94 -0
  74. data/lib/oddb/export/l10n_sessions.rb +30 -0
  75. data/lib/oddb/export/rss.rb +44 -0
  76. data/lib/oddb/export/server.rb +137 -0
  77. data/lib/oddb/export/xls.rb +127 -0
  78. data/lib/oddb/export/yaml.rb +212 -0
  79. data/lib/oddb/html/state/download.rb +13 -0
  80. data/lib/oddb/html/state/drugs/admin/package.rb +190 -0
  81. data/lib/oddb/html/state/drugs/admin/product.rb +56 -0
  82. data/lib/oddb/html/state/drugs/admin/sequence.rb +253 -0
  83. data/lib/oddb/html/state/drugs/ajax/explain_ddd_price.rb +19 -0
  84. data/lib/oddb/html/state/drugs/ajax/explain_price.rb +19 -0
  85. data/lib/oddb/html/state/drugs/ajax/global.rb +18 -0
  86. data/lib/oddb/html/state/drugs/ajax/package_infos.rb +19 -0
  87. data/lib/oddb/html/state/drugs/ajax/remote_infos.rb +19 -0
  88. data/lib/oddb/html/state/drugs/atc_browser.rb +39 -0
  89. data/lib/oddb/html/state/drugs/atc_guidelines.rb +21 -0
  90. data/lib/oddb/html/state/drugs/compare.rb +52 -0
  91. data/lib/oddb/html/state/drugs/download_export.rb +18 -0
  92. data/lib/oddb/html/state/drugs/downloads.rb +42 -0
  93. data/lib/oddb/html/state/drugs/fachinfo.rb +21 -0
  94. data/lib/oddb/html/state/drugs/feedback.rb +91 -0
  95. data/lib/oddb/html/state/drugs/global.rb +270 -0
  96. data/lib/oddb/html/state/drugs/init.rb +18 -0
  97. data/lib/oddb/html/state/drugs/login.rb +17 -0
  98. data/lib/oddb/html/state/drugs/package.rb +32 -0
  99. data/lib/oddb/html/state/drugs/patinfo.rb +21 -0
  100. data/lib/oddb/html/state/drugs/products.rb +51 -0
  101. data/lib/oddb/html/state/drugs/result.rb +125 -0
  102. data/lib/oddb/html/state/global.rb +206 -0
  103. data/lib/oddb/html/state/global_predefine.rb +17 -0
  104. data/lib/oddb/html/state/limit.rb +17 -0
  105. data/lib/oddb/html/state/login.rb +56 -0
  106. data/lib/oddb/html/state/paypal/checkout.rb +97 -0
  107. data/lib/oddb/html/state/paypal/collect.rb +19 -0
  108. data/lib/oddb/html/state/paypal/download.rb +61 -0
  109. data/lib/oddb/html/state/paypal/redirect.rb +18 -0
  110. data/lib/oddb/html/state/register_download.rb +24 -0
  111. data/lib/oddb/html/state/register_export.rb +38 -0
  112. data/lib/oddb/html/state/register_poweruser.rb +17 -0
  113. data/lib/oddb/html/state/viral/admin.rb +79 -0
  114. data/lib/oddb/html/state/viral/poweruser.rb +16 -0
  115. data/lib/oddb/html/util/annotated_list.rb +39 -0
  116. data/lib/oddb/html/util/know_it_all.rb +28 -0
  117. data/lib/oddb/html/util/known_user.rb +55 -0
  118. data/lib/oddb/html/util/lookandfeel.rb +698 -0
  119. data/lib/oddb/html/util/need_all_input.rb +29 -0
  120. data/lib/oddb/html/util/session.rb +84 -0
  121. data/lib/oddb/html/util/sort.rb +72 -0
  122. data/lib/oddb/html/util/unsaved_helper.rb +20 -0
  123. data/lib/oddb/html/util/validator.rb +59 -0
  124. data/lib/oddb/html/view/ajax/json.rb +22 -0
  125. data/lib/oddb/html/view/alpha_header.rb +28 -0
  126. data/lib/oddb/html/view/document.rb +117 -0
  127. data/lib/oddb/html/view/download.rb +33 -0
  128. data/lib/oddb/html/view/drugs/admin/package.rb +245 -0
  129. data/lib/oddb/html/view/drugs/admin/product.rb +104 -0
  130. data/lib/oddb/html/view/drugs/admin/sequence.rb +305 -0
  131. data/lib/oddb/html/view/drugs/ajax/explain_ddd_price.rb +87 -0
  132. data/lib/oddb/html/view/drugs/ajax/explain_price.rb +61 -0
  133. data/lib/oddb/html/view/drugs/ajax/package_infos.rb +105 -0
  134. data/lib/oddb/html/view/drugs/ajax/remote_infos.rb +44 -0
  135. data/lib/oddb/html/view/drugs/atc_browser.rb +68 -0
  136. data/lib/oddb/html/view/drugs/atc_guidelines.rb +94 -0
  137. data/lib/oddb/html/view/drugs/compare.rb +95 -0
  138. data/lib/oddb/html/view/drugs/download_export.rb +28 -0
  139. data/lib/oddb/html/view/drugs/downloads.rb +128 -0
  140. data/lib/oddb/html/view/drugs/fachinfo.rb +46 -0
  141. data/lib/oddb/html/view/drugs/feedback.rb +235 -0
  142. data/lib/oddb/html/view/drugs/init.rb +51 -0
  143. data/lib/oddb/html/view/drugs/legend.rb +24 -0
  144. data/lib/oddb/html/view/drugs/package.rb +403 -0
  145. data/lib/oddb/html/view/drugs/patinfo.rb +46 -0
  146. data/lib/oddb/html/view/drugs/products.rb +97 -0
  147. data/lib/oddb/html/view/drugs/result.rb +296 -0
  148. data/lib/oddb/html/view/drugs/search.rb +33 -0
  149. data/lib/oddb/html/view/drugs/template.rb +15 -0
  150. data/lib/oddb/html/view/foot.rb +52 -0
  151. data/lib/oddb/html/view/google.rb +23 -0
  152. data/lib/oddb/html/view/google_ads.rb +40 -0
  153. data/lib/oddb/html/view/head.rb +78 -0
  154. data/lib/oddb/html/view/limit.rb +109 -0
  155. data/lib/oddb/html/view/list.rb +59 -0
  156. data/lib/oddb/html/view/login.rb +38 -0
  157. data/lib/oddb/html/view/navigation.rb +67 -0
  158. data/lib/oddb/html/view/offset_header.rb +35 -0
  159. data/lib/oddb/html/view/paypal/collect.rb +95 -0
  160. data/lib/oddb/html/view/paypal/redirect.rb +51 -0
  161. data/lib/oddb/html/view/paypal/register_form.rb +149 -0
  162. data/lib/oddb/html/view/register_download.rb +29 -0
  163. data/lib/oddb/html/view/register_export.rb +29 -0
  164. data/lib/oddb/html/view/register_poweruser.rb +29 -0
  165. data/lib/oddb/html/view/rss/feedback.rb +64 -0
  166. data/lib/oddb/html/view/rss_preview.rb +61 -0
  167. data/lib/oddb/html/view/search.rb +104 -0
  168. data/lib/oddb/html/view/snapback.rb +24 -0
  169. data/lib/oddb/html/view/template.rb +56 -0
  170. data/lib/oddb/import/dimdi.rb +583 -0
  171. data/lib/oddb/import/excel.rb +45 -0
  172. data/lib/oddb/import/gkv.rb +463 -0
  173. data/lib/oddb/import/importer.rb +36 -0
  174. data/lib/oddb/import/pharma24.rb +211 -0
  175. data/lib/oddb/import/pharmnet.rb +1186 -0
  176. data/lib/oddb/import/rtf.rb +409 -0
  177. data/lib/oddb/import/whocc.rb +148 -0
  178. data/lib/oddb/import/xml.rb +15 -0
  179. data/lib/oddb/model.rb +179 -0
  180. data/lib/oddb/persistence.rb +22 -0
  181. data/lib/oddb/persistence/odba.rb +32 -0
  182. data/lib/oddb/persistence/odba/business/company.rb +13 -0
  183. data/lib/oddb/persistence/odba/business/grant_download.rb +14 -0
  184. data/lib/oddb/persistence/odba/business/invoice.rb +15 -0
  185. data/lib/oddb/persistence/odba/drugs/atc.rb +15 -0
  186. data/lib/oddb/persistence/odba/drugs/galenic_form.rb +18 -0
  187. data/lib/oddb/persistence/odba/drugs/galenic_group.rb +13 -0
  188. data/lib/oddb/persistence/odba/drugs/package.rb +25 -0
  189. data/lib/oddb/persistence/odba/drugs/product.rb +13 -0
  190. data/lib/oddb/persistence/odba/drugs/sequence.rb +21 -0
  191. data/lib/oddb/persistence/odba/drugs/substance.rb +21 -0
  192. data/lib/oddb/persistence/odba/drugs/substance_group.rb +13 -0
  193. data/lib/oddb/persistence/odba/drugs/unit.rb +13 -0
  194. data/lib/oddb/persistence/odba/export.rb +26 -0
  195. data/lib/oddb/persistence/odba/model.rb +68 -0
  196. data/lib/oddb/persistence/odba/text/document.rb +11 -0
  197. data/lib/oddb/persistence/odba/util/code.rb +11 -0
  198. data/lib/oddb/persistence/odba/util/m10l_document.rb +13 -0
  199. data/lib/oddb/persistence/og.rb +16 -0
  200. data/lib/oddb/persistence/og/drugs/composition.rb +14 -0
  201. data/lib/oddb/persistence/og/drugs/product.rb +14 -0
  202. data/lib/oddb/persistence/og/drugs/sequence.rb +15 -0
  203. data/lib/oddb/persistence/og/model.rb +25 -0
  204. data/lib/oddb/persistence/og/util/multilingual.rb +13 -0
  205. data/lib/oddb/redist/rtf_tools/reader.rb +139 -0
  206. data/lib/oddb/remote/business/company.rb +17 -0
  207. data/lib/oddb/remote/drugs/active_agent.rb +27 -0
  208. data/lib/oddb/remote/drugs/atc.rb +31 -0
  209. data/lib/oddb/remote/drugs/dose.rb +8 -0
  210. data/lib/oddb/remote/drugs/galenic_form.rb +24 -0
  211. data/lib/oddb/remote/drugs/package.rb +128 -0
  212. data/lib/oddb/remote/drugs/part.rb +30 -0
  213. data/lib/oddb/remote/drugs/substance.rb +20 -0
  214. data/lib/oddb/remote/drugs/unit.rb +20 -0
  215. data/lib/oddb/remote/object.rb +36 -0
  216. data/lib/oddb/text/chapter.rb +23 -0
  217. data/lib/oddb/text/document.rb +42 -0
  218. data/lib/oddb/text/format.rb +37 -0
  219. data/lib/oddb/text/paragraph.rb +53 -0
  220. data/lib/oddb/text/picture.rb +89 -0
  221. data/lib/oddb/text/table.rb +68 -0
  222. data/lib/oddb/util.rb +9 -0
  223. data/lib/oddb/util/annotated_list.rb +37 -0
  224. data/lib/oddb/util/code.rb +69 -0
  225. data/lib/oddb/util/comparison.rb +36 -0
  226. data/lib/oddb/util/download.rb +17 -0
  227. data/lib/oddb/util/exporter.rb +8 -0
  228. data/lib/oddb/util/feedback.rb +23 -0
  229. data/lib/oddb/util/ipn.rb +53 -0
  230. data/lib/oddb/util/job.rb +23 -0
  231. data/lib/oddb/util/logger.rb +20 -0
  232. data/lib/oddb/util/m10l_document.rb +41 -0
  233. data/lib/oddb/util/mail.rb +87 -0
  234. data/lib/oddb/util/money.rb +64 -0
  235. data/lib/oddb/util/multilingual.rb +70 -0
  236. data/lib/oddb/util/quanty.rb +3 -0
  237. data/lib/oddb/util/quanty/fact.rb +242 -0
  238. data/lib/oddb/util/quanty/main.rb +164 -0
  239. data/lib/oddb/util/quanty/parse.rb +872 -0
  240. data/lib/oddb/util/quanty/units.dump +0 -0
  241. data/lib/oddb/util/server.rb +150 -0
  242. data/lib/oddb/util/smtp_tls.rb +58 -0
  243. data/lib/oddb/util/updater.rb +161 -0
  244. data/lib/oddb/util/ydim.rb +110 -0
  245. data/lib/oddb/util/yus.rb +46 -0
  246. data/test/business/test_company.rb +29 -0
  247. data/test/business/test_grant_download.rb +29 -0
  248. data/test/drugs/test_active_agent.rb +53 -0
  249. data/test/drugs/test_atc.rb +54 -0
  250. data/test/drugs/test_composition.rb +88 -0
  251. data/test/drugs/test_ddd.rb +22 -0
  252. data/test/drugs/test_dose.rb +189 -0
  253. data/test/drugs/test_galenic_form.rb +41 -0
  254. data/test/drugs/test_package.rb +172 -0
  255. data/test/drugs/test_part.rb +32 -0
  256. data/test/drugs/test_product.rb +31 -0
  257. data/test/drugs/test_sequence.rb +140 -0
  258. data/test/drugs/test_substance.rb +51 -0
  259. data/test/drugs/test_substance_group.rb +27 -0
  260. data/test/export/test_rss.rb +86 -0
  261. data/test/export/test_server.rb +163 -0
  262. data/test/export/test_xls.rb +146 -0
  263. data/test/export/test_yaml.rb +120 -0
  264. data/test/import/data/csv/products.csv +11 -0
  265. data/test/import/data/html/dimdi_index.html +400 -0
  266. data/test/import/data/html/gkv/Befreiungsliste_Arzneimittel_Versicherte.gkvnet +508 -0
  267. data/test/import/data/html/pharma24/1337397.html +754 -0
  268. data/test/import/data/html/pharma24/842756.html +570 -0
  269. data/test/import/data/html/pharma24/ac-page-10.html +2999 -0
  270. data/test/import/data/html/pharma24/ac-page-11.html +2999 -0
  271. data/test/import/data/html/pharma24/ac-page-12.html +2999 -0
  272. data/test/import/data/html/pharma24/ac-page-13.html +2999 -0
  273. data/test/import/data/html/pharma24/ac-page-14.html +2999 -0
  274. data/test/import/data/html/pharma24/ac-page-15.html +3011 -0
  275. data/test/import/data/html/pharma24/ac-page-16.html +3050 -0
  276. data/test/import/data/html/pharma24/ac-page-17.html +3285 -0
  277. data/test/import/data/html/pharma24/ac-page-18.html +3109 -0
  278. data/test/import/data/html/pharma24/ac-page-19.html +3126 -0
  279. data/test/import/data/html/pharma24/ac-page-2.html +3005 -0
  280. data/test/import/data/html/pharma24/ac-page-20.html +3007 -0
  281. data/test/import/data/html/pharma24/ac-page-21.html +2999 -0
  282. data/test/import/data/html/pharma24/ac-page-22.html +2999 -0
  283. data/test/import/data/html/pharma24/ac-page-23.html +3055 -0
  284. data/test/import/data/html/pharma24/ac-page-24.html +2999 -0
  285. data/test/import/data/html/pharma24/ac-page-25.html +3004 -0
  286. data/test/import/data/html/pharma24/ac-page-26.html +2999 -0
  287. data/test/import/data/html/pharma24/ac-page-27.html +3167 -0
  288. data/test/import/data/html/pharma24/ac-page-28.html +3236 -0
  289. data/test/import/data/html/pharma24/ac-page-29.html +3110 -0
  290. data/test/import/data/html/pharma24/ac-page-3.html +2999 -0
  291. data/test/import/data/html/pharma24/ac-page-30.html +2999 -0
  292. data/test/import/data/html/pharma24/ac-page-31.html +2999 -0
  293. data/test/import/data/html/pharma24/ac-page-32.html +2999 -0
  294. data/test/import/data/html/pharma24/ac-page-33.html +3001 -0
  295. data/test/import/data/html/pharma24/ac-page-34.html +2999 -0
  296. data/test/import/data/html/pharma24/ac-page-35.html +2999 -0
  297. data/test/import/data/html/pharma24/ac-page-36.html +2999 -0
  298. data/test/import/data/html/pharma24/ac-page-37.html +2999 -0
  299. data/test/import/data/html/pharma24/ac-page-38.html +3003 -0
  300. data/test/import/data/html/pharma24/ac-page-39.html +2999 -0
  301. data/test/import/data/html/pharma24/ac-page-4.html +2999 -0
  302. data/test/import/data/html/pharma24/ac-page-40.html +2999 -0
  303. data/test/import/data/html/pharma24/ac-page-41.html +2999 -0
  304. data/test/import/data/html/pharma24/ac-page-42.html +2999 -0
  305. data/test/import/data/html/pharma24/ac-page-43.html +2999 -0
  306. data/test/import/data/html/pharma24/ac-page-44.html +2999 -0
  307. data/test/import/data/html/pharma24/ac-page-45.html +2999 -0
  308. data/test/import/data/html/pharma24/ac-page-46.html +2999 -0
  309. data/test/import/data/html/pharma24/ac-page-47.html +2999 -0
  310. data/test/import/data/html/pharma24/ac-page-48.html +2999 -0
  311. data/test/import/data/html/pharma24/ac-page-49.html +2999 -0
  312. data/test/import/data/html/pharma24/ac-page-5.html +3168 -0
  313. data/test/import/data/html/pharma24/ac-page-50.html +2999 -0
  314. data/test/import/data/html/pharma24/ac-page-51.html +2999 -0
  315. data/test/import/data/html/pharma24/ac-page-52.html +3003 -0
  316. data/test/import/data/html/pharma24/ac-page-53.html +2999 -0
  317. data/test/import/data/html/pharma24/ac-page-54.html +3095 -0
  318. data/test/import/data/html/pharma24/ac-page-55.html +3041 -0
  319. data/test/import/data/html/pharma24/ac-page-56.html +2999 -0
  320. data/test/import/data/html/pharma24/ac-page-57.html +3001 -0
  321. data/test/import/data/html/pharma24/ac-page-58.html +3001 -0
  322. data/test/import/data/html/pharma24/ac-page-59.html +2999 -0
  323. data/test/import/data/html/pharma24/ac-page-6.html +3072 -0
  324. data/test/import/data/html/pharma24/ac-page-60.html +3001 -0
  325. data/test/import/data/html/pharma24/ac-page-61.html +3005 -0
  326. data/test/import/data/html/pharma24/ac-page-62.html +2999 -0
  327. data/test/import/data/html/pharma24/ac-page-63.html +3007 -0
  328. data/test/import/data/html/pharma24/ac-page-64.html +3007 -0
  329. data/test/import/data/html/pharma24/ac-page-65.html +2999 -0
  330. data/test/import/data/html/pharma24/ac-page-66.html +3011 -0
  331. data/test/import/data/html/pharma24/ac-page-67.html +3026 -0
  332. data/test/import/data/html/pharma24/ac-page-68.html +2999 -0
  333. data/test/import/data/html/pharma24/ac-page-69.html +3010 -0
  334. data/test/import/data/html/pharma24/ac-page-7.html +2999 -0
  335. data/test/import/data/html/pharma24/ac-page-70.html +3192 -0
  336. data/test/import/data/html/pharma24/ac-page-71.html +3133 -0
  337. data/test/import/data/html/pharma24/ac-page-72.html +2999 -0
  338. data/test/import/data/html/pharma24/ac-page-73.html +3227 -0
  339. data/test/import/data/html/pharma24/ac-page-74.html +3241 -0
  340. data/test/import/data/html/pharma24/ac-page-75.html +3227 -0
  341. data/test/import/data/html/pharma24/ac-page-76.html +3244 -0
  342. data/test/import/data/html/pharma24/ac-page-77.html +1164 -0
  343. data/test/import/data/html/pharma24/ac-page-8.html +2999 -0
  344. data/test/import/data/html/pharma24/ac-page-9.html +2999 -0
  345. data/test/import/data/html/pharma24/ac.html +2999 -0
  346. data/test/import/data/html/pharmnet/display.html +662 -0
  347. data/test/import/data/html/pharmnet/display1.html +625 -0
  348. data/test/import/data/html/pharmnet/display2.html +625 -0
  349. data/test/import/data/html/pharmnet/display3.html +625 -0
  350. data/test/import/data/html/pharmnet/display_tramal.html +634 -0
  351. data/test/import/data/html/pharmnet/empty_result.html +395 -0
  352. data/test/import/data/html/pharmnet/gate.html +246 -0
  353. data/test/import/data/html/pharmnet/index.html +258 -0
  354. data/test/import/data/html/pharmnet/paged_result_1.html +401 -0
  355. data/test/import/data/html/pharmnet/paged_result_2.html +401 -0
  356. data/test/import/data/html/pharmnet/result.html +401 -0
  357. data/test/import/data/html/pharmnet/search.html +865 -0
  358. data/test/import/data/html/pharmnet/search_filtered.html +182 -0
  359. data/test/import/data/html/whocc/A.html +56 -0
  360. data/test/import/data/html/whocc/A03.html +48 -0
  361. data/test/import/data/html/whocc/A03AB.html +48 -0
  362. data/test/import/data/html/whocc/A06AA.html +47 -0
  363. data/test/import/data/html/whocc/C03.html +47 -0
  364. data/test/import/data/html/whocc/login.html +77 -0
  365. data/test/import/data/mail/csv.mail +81 -0
  366. data/test/import/data/rtf/pharmnet/aarane.pi.rtf +648 -0
  367. data/test/import/data/rtf/pharmnet/ace_hemmer_ratio.pi.rtf +324 -0
  368. data/test/import/data/rtf/pharmnet/ace_hemmer_ratio.rtf +4816 -0
  369. data/test/import/data/rtf/pharmnet/acemetacin.pi.rtf +388 -0
  370. data/test/import/data/rtf/pharmnet/acemit.pi.rtf +240 -0
  371. data/test/import/data/rtf/pharmnet/acerbon.pi.rtf +1257 -0
  372. data/test/import/data/rtf/pharmnet/acetylcystein.pi.rtf +323 -0
  373. data/test/import/data/rtf/pharmnet/aciclo.pi.rtf +287 -0
  374. data/test/import/data/rtf/pharmnet/aciclovir.pi.rtf +236 -0
  375. data/test/import/data/rtf/pharmnet/actrapid.pi.rtf +322 -0
  376. data/test/import/data/rtf/pharmnet/amlodipin.pi.rtf +452 -0
  377. data/test/import/data/rtf/pharmnet/amlodipin.rtf +473 -0
  378. data/test/import/data/rtf/pharmnet/aspirin.pi.rtf +313 -0
  379. data/test/import/data/rtf/pharmnet/aspirin.rtf +781 -0
  380. data/test/import/data/rtf/pharmnet/baymycard.pi.rtf +447 -0
  381. data/test/import/data/rtf/pharmnet/omeprazol.pi.rtf +510 -0
  382. data/test/import/data/rtf/pharmnet/omeprazol.rtf +9216 -0
  383. data/test/import/data/rtf/pharmnet/paroxetin.pi.rtf +678 -0
  384. data/test/import/data/rtf/pharmnet/selegilin.pi.rtf +312 -0
  385. data/test/import/data/rtf/pharmnet/selegilin.rtf +683 -0
  386. data/test/import/data/rtf/pharmnet/valium.pi.rtf +387 -0
  387. data/test/import/data/txt/gkv/gkv_p1.txt +17 -0
  388. data/test/import/data/xls/darform_010706.xls +0 -0
  389. data/test/import/data/xls/fb010706.xls +0 -0
  390. data/test/import/data/xls/liste_zuzahlungsbefreite_arzneimittel_suchfunktion.xls +0 -0
  391. data/test/import/data/xls/wirkkurz_010406.xls +0 -0
  392. data/test/import/data/xml/ATC_2006.xml +47 -0
  393. data/test/import/data/xml/ATC_2006_ddd.xml +35 -0
  394. data/test/import/test_dimdi.rb +323 -0
  395. data/test/import/test_excel.rb +31 -0
  396. data/test/import/test_gkv.rb +260 -0
  397. data/test/import/test_pharma24.rb +112 -0
  398. data/test/import/test_pharmnet.rb +980 -0
  399. data/test/import/test_rtf.rb +37 -0
  400. data/test/import/test_whocc.rb +314 -0
  401. data/test/remote/drugs/test_active_agent.rb +36 -0
  402. data/test/selenium/selenium-server.jar +0 -0
  403. data/test/selenium/test_atc_browser.rb +121 -0
  404. data/test/selenium/test_atc_guidelines.rb +95 -0
  405. data/test/selenium/test_collect.rb +137 -0
  406. data/test/selenium/test_compare.rb +294 -0
  407. data/test/selenium/test_fachinfo.rb +128 -0
  408. data/test/selenium/test_feedback.rb +192 -0
  409. data/test/selenium/test_init.rb +64 -0
  410. data/test/selenium/test_limit.rb +304 -0
  411. data/test/selenium/test_login.rb +67 -0
  412. data/test/selenium/test_package.rb +516 -0
  413. data/test/selenium/test_patinfo.rb +128 -0
  414. data/test/selenium/test_product.rb +80 -0
  415. data/test/selenium/test_products.rb +141 -0
  416. data/test/selenium/test_search.rb +933 -0
  417. data/test/selenium/test_sequence.rb +513 -0
  418. data/test/selenium/unit.rb +190 -0
  419. data/test/stub/http_server.rb +144 -0
  420. data/test/stub/model.rb +173 -0
  421. data/test/suite.rb +15 -0
  422. data/test/test_model.rb +83 -0
  423. data/test/util/test_code.rb +74 -0
  424. data/test/util/test_ipn.rb +117 -0
  425. data/test/util/test_mail.rb +85 -0
  426. data/test/util/test_multilingual.rb +97 -0
  427. data/test/util/test_server.rb +94 -0
  428. data/test/util/test_updater.rb +130 -0
  429. data/test/util/test_ydim.rb +115 -0
  430. data/test/util/test_yus.rb +79 -0
  431. metadata +568 -0
@@ -0,0 +1,95 @@
1
+ #!/usr/bin/env ruby
2
+ # Selenium::TestAtcGuidelines -- de.oddb.org -- 16.03.2007 -- hwyss@ywesee.com
3
+
4
+ $: << File.expand_path('..', File.dirname(__FILE__))
5
+
6
+ require 'selenium/unit'
7
+ require 'stub/model'
8
+
9
+ module ODDB
10
+ module Selenium
11
+ class TestAtcGuidelines < Test::Unit::TestCase
12
+ include Selenium::TestCase
13
+ def setup
14
+ super
15
+ @atc1 = Drugs::Atc.new('N04BA02')
16
+ @atc1.name.de = 'Levodopa und Decarboxylasehemmer'
17
+ ddd = Drugs::Ddd.new('O')
18
+ ddd.dose = Drugs::Dose.new(0.6, 'g')
19
+ @atc1.add_ddd(ddd)
20
+ @atc1.save
21
+ @atc2 = Drugs::Atc.new('N04BA')
22
+ @atc2.name.de = 'Dopa und Dopa-Derivate'
23
+ @atc2.guidelines.en = <<-EOS
24
+ Combinations with decarboxylase inhibitors and other dopaminergic agents are classified here.
25
+ EOS
26
+ @atc2.ddd_guidelines.en = <<-EOS
27
+ The DDD for the combination of levodopa and decarboxylase inhibitor is based on the content of levodopa, see ATC index.
28
+ EOS
29
+ @atc2.save
30
+ @atc3 = Drugs::Atc.new('N04B')
31
+ @atc3.name.de = 'Dopaminerge Mittel'
32
+ @atc3.save
33
+ @atc4 = Drugs::Atc.new('N04')
34
+ @atc4.name.de = 'Antiparkinsonmittel'
35
+ @atc4.guidelines.en = <<-EOS
36
+ This group comprises preparations used in the treatment of Parkinson's disease and related conditions, including drug-induced parkinsonism.
37
+ EOS
38
+ @atc4.ddd_guidelines.en = <<-EOS
39
+ The DDDs are based on recommended doses for the long-term treatment of symptoms of Parkinson's disease.
40
+ No separate DDDs are established for oral depot formulations.
41
+ EOS
42
+ @atc4.save
43
+ @atc5 = Drugs::Atc.new('N')
44
+ @atc5.name.de = 'Nervensystem'
45
+ @atc5.save
46
+ @atc6 = Drugs::Atc.new('N04BA03')
47
+ @atc6.name.de = 'Levodopa, Decarboxylasehemmer und COMT-Hemmer'
48
+ @atc6.save
49
+ end
50
+ def test_guidelines
51
+ open "/de/drugs/ddd/code/N04BA02"
52
+
53
+ assert_equal 'DE - ODDB.org | Medikamente | Tagesdosis | N04BA02 | Open Drug Database',
54
+ get_title
55
+ assert is_text_present('N - Nervensystem')
56
+ assert is_text_present('N04 - Antiparkinsonmittel')
57
+ assert is_text_present(@atc4.guidelines.en)
58
+ assert is_text_present(@atc4.ddd_guidelines.en)
59
+ assert is_text_present('N04B - Dopaminerge Mittel')
60
+ assert is_text_present('N04BA - Dopa und Dopa-Derivate')
61
+ assert is_text_present(@atc2.guidelines.en)
62
+ assert is_text_present(@atc2.ddd_guidelines.en)
63
+ assert is_text_present('N04BA02 - Levodopa und Decarboxylasehemmer')
64
+ assert is_text_present('Oral')
65
+
66
+ click 'link=N04BA'
67
+ wait_for_page_to_load "30000"
68
+ assert_equal 'DE - ODDB.org | Medikamente | Tagesdosis | N04BA | Open Drug Database',
69
+ get_title
70
+ assert is_text_present('N - Nervensystem')
71
+ assert is_text_present('N04 - Antiparkinsonmittel')
72
+ assert is_text_present(@atc4.guidelines.en)
73
+ assert is_text_present(@atc4.ddd_guidelines.en)
74
+ assert is_text_present('N04B - Dopaminerge Mittel')
75
+ assert is_text_present('N04BA - Dopa und Dopa-Derivate')
76
+ assert is_text_present(@atc2.guidelines.en)
77
+ assert is_text_present(@atc2.ddd_guidelines.en)
78
+ assert !is_text_present('N04BA02 - Levodopa und Decarboxylasehemmer')
79
+ assert !is_text_present('Oral')
80
+ end
81
+ def test_guidelines__limited
82
+ ODDB.config.query_limit = 1
83
+ open "/de/drugs/ddd/code/N04BA02"
84
+ assert_equal 'DE - ODDB.org | Medikamente | Tagesdosis | N04BA02 | Open Drug Database',
85
+ get_title
86
+ open "/de/drugs/ddd/code/N04BA02"
87
+ assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
88
+ get_title
89
+ assert is_text_present("Abfragebeschränkung")
90
+ ensure
91
+ ODDB.config.query_limit = 20
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,137 @@
1
+ #!/usr/bin/env ruby
2
+ # Selenium::Collect -- de.oddb.org -- 04.02.2008 -- hwyss@ywesee.com
3
+
4
+ $: << File.expand_path('..', File.dirname(__FILE__))
5
+
6
+ require 'selenium/unit'
7
+ require 'stub/model'
8
+
9
+ module ODDB
10
+ module Selenium
11
+ class TestCollect < Test::Unit::TestCase
12
+ include Selenium::TestCase
13
+ def test_collect__unknown_invoice
14
+ open "/de/drugs/collect/invoice/875967c31e83eec9decea52130e7ee72"
15
+ assert is_text_present('Fehler')
16
+ assert is_text_present('Ihre Transaktion ist bei uns nicht registriert. Setzen Sie sich bitte per E-Mail mit uns in Verbindung.')
17
+ end
18
+ def test_collect__unpaid_invoice
19
+ email = 'test@invoice.ch'
20
+ invoice = Business::Invoice.new
21
+ invoice.yus_name = email
22
+ item = invoice.add :poweruser, "unlimited access", 365, "Tage", 2
23
+ invoice.save
24
+ id = invoice.id
25
+
26
+ open "/de/drugs/collect/invoice/#{id}"
27
+ assert is_text_present('Ihre Bezahlung ist von PayPal noch nicht bestätigt worden. Sobald dies geschieht werden wir Sie per E-Mail benachrichtigen.')
28
+ ## automatic reload
29
+ wait_for_page_to_load "30000"
30
+ assert is_text_present('Ihre Bezahlung ist von PayPal noch nicht bestätigt worden. Sobald dies geschieht werden wir Sie per E-Mail benachrichtigen.')
31
+ end
32
+ def test_collect
33
+ email = 'test@invoice.ch'
34
+ invoice = Business::Invoice.new
35
+ invoice.yus_name = email
36
+ item = invoice.add :poweruser, "unlimited access", 365, "Tage", 2
37
+ invoice.status = 'completed'
38
+ invoice.save
39
+ id = invoice.id
40
+
41
+ open "/de/drugs/collect/invoice/#{id}"
42
+ assert is_text_present('Vielen Dank! Als angemeldeter Benutzer können Sie jetzt ohne Beschränkung Abfragen vornehmen.')
43
+ assert is_text_present('Ihr PowerUser-Account ist bereit. Bitte melden Sie sich hier erneut mit E-Mail und Passwort an.')
44
+
45
+ click 'link=hier'
46
+ wait_for_page_to_load "30000"
47
+ assert is_element_present("email")
48
+ assert is_element_present("pass")
49
+ end
50
+ def test_collect__logged_in
51
+ ODDB.config.auth_domain = 'org.oddb.de'
52
+
53
+ email = 'test@invoice.ch'
54
+ invoice = Business::Invoice.new
55
+ invoice.yus_name = email
56
+ item = invoice.add :poweruser, "unlimited access", 365, "Tage", 2
57
+ invoice.status = 'completed'
58
+ invoice.save
59
+ id = invoice.id
60
+
61
+ permissions = [
62
+ ['login', 'org.oddb.de.PowerUser'], ['view', 'org.oddb.de']
63
+ ]
64
+ login email, *permissions
65
+
66
+ open "/de/drugs/collect/invoice/#{id}"
67
+ assert is_text_present('Vielen Dank! Als angemeldeter Benutzer können Sie jetzt ohne Beschränkung Abfragen vornehmen.')
68
+ assert is_text_present('Sie sind bereits angemeldet und können sofort weitersuchen.')
69
+ end
70
+ def test_collect__redirect
71
+ ODDB.config.auth_domain = 'org.oddb.de'
72
+ ODDB.config.query_limit = 1
73
+ package = setup_package
74
+ open "/de/drugs/search/query/Amantadin"
75
+ assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
76
+ get_title
77
+ open "/de/drugs/search/query/Amantadin"
78
+ assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
79
+ get_title
80
+ assert is_text_present("Abfragebeschränkung")
81
+
82
+ email = 'test@invoice.ch'
83
+ invoice = Business::Invoice.new
84
+ invoice.yus_name = email
85
+ item = invoice.add :poweruser, "unlimited access", 365, "Tage", 2
86
+ invoice.status = 'completed'
87
+ invoice.save
88
+ id = invoice.id
89
+
90
+ permissions = [
91
+ ['login', 'org.oddb.de.PowerUser'], ['view', 'org.oddb.de']
92
+ ]
93
+ login email, *permissions
94
+
95
+ open "/de/drugs/collect/invoice/#{id}"
96
+ assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
97
+ get_title
98
+ ensure
99
+ ODDB.config.query_limit = 20
100
+ end
101
+ def test_collect__redirect__later
102
+ ODDB.config.auth_domain = 'org.oddb.de'
103
+ ODDB.config.query_limit = 1
104
+ package = setup_package
105
+ open "/de/drugs/search/query/Amantadin"
106
+ assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
107
+ get_title
108
+ open "/de/drugs/search/query/Amantadin"
109
+ assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
110
+ get_title
111
+ assert is_text_present("Abfragebeschränkung")
112
+
113
+ email = 'test@invoice.ch'
114
+ invoice = Business::Invoice.new
115
+ invoice.yus_name = email
116
+ item = invoice.add :poweruser, "unlimited access", 365, "Tage", 2
117
+ invoice.save
118
+ id = invoice.id
119
+
120
+ user = login email, ['login', 'org.oddb.de.PowerUser']
121
+
122
+ open "/de/drugs/collect/invoice/#{id}"
123
+ assert is_text_present('Ihre Bezahlung ist von PayPal noch nicht bestätigt worden. Sobald dies geschieht werden wir Sie per E-Mail benachrichtigen.')
124
+
125
+ invoice.status = 'completed'
126
+ user.permissions.push ['view', 'org.oddb.de']
127
+
128
+ ## automatic reload
129
+ wait_for_page_to_load "30000"
130
+ assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
131
+ get_title
132
+ ensure
133
+ ODDB.config.query_limit = 20
134
+ end
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,294 @@
1
+ #!/usr/bin/env ruby
2
+ # Selenium::TestCompare -- de.oddb.org -- 15.02.2007 -- hwyss@ywesee.com
3
+
4
+ $: << File.expand_path('..', File.dirname(__FILE__))
5
+
6
+ require 'selenium/unit'
7
+ require 'stub/model'
8
+ require 'oddb/drugs'
9
+ require 'oddb/util'
10
+ require 'odba/drbwrapper'
11
+ require 'odba'
12
+
13
+ module ODDB
14
+ module Selenium
15
+ class TestCompare < Test::Unit::TestCase
16
+ include Selenium::TestCase
17
+ def setup
18
+ @cache = flexstub(ODBA.cache)
19
+ flexstub(Currency).should_receive(:rate)\
20
+ .with('EUR', 'CHF').and_return(1.5)
21
+ flexstub(Currency).should_receive(:rate)\
22
+ .with('EUR', 'CHF').and_return(1.5)
23
+ currency = flexmock('Currency')
24
+ @currency = DRb.start_service('druby://localhost:0', currency)
25
+ ODDB.config.currency_rates = @currency.uri
26
+ currency.should_receive(:rate).with('EUR', 'CHF').and_return(1.6)
27
+ super
28
+ end
29
+ def setup_package(name, pzn='12345', price=6)
30
+ product = Drugs::Product.new
31
+ company = Business::Company.new
32
+ company.name.de = 'Producer AG'
33
+ product.company = company
34
+ company.save
35
+ sequence = Drugs::Sequence.new
36
+ atc = Drugs::Atc.new('N04BB01')
37
+ atc.name.de = 'Amantadin'
38
+ sequence.atc = atc
39
+ atc.save
40
+ sequence.product = product
41
+ composition = Drugs::Composition.new
42
+ sequence.add_composition(composition)
43
+ substance = Drugs::Substance.new
44
+ substance.name.de = 'Amantadin'
45
+ dose = Drugs::Dose.new(100, 'mg')
46
+ active_agent = Drugs::ActiveAgent.new(substance, dose)
47
+ composition.add_active_agent(active_agent)
48
+ galform = Drugs::GalenicForm.new
49
+ galform.description.de = 'Tropfen'
50
+ galform.group = Drugs::GalenicGroup.new('Tropfen')
51
+ composition.galenic_form = galform
52
+ package = Drugs::Package.new
53
+ code = Util::Code.new(:festbetragsstufe, 3, 'DE')
54
+ package.add_code(code)
55
+ code = Util::Code.new(:zuzahlungsbefreit, true, 'DE')
56
+ package.add_code(code)
57
+ part = Drugs::Part.new
58
+ part.package = package
59
+ part.size = 5
60
+ part.composition = composition
61
+ unit = Drugs::Unit.new
62
+ unit.name.de = 'Ampullen'
63
+ part.unit = unit
64
+ package.name.de = name
65
+ package.sequence = sequence
66
+ package.add_price(Util::Money.new(price, :public, 'DE'))
67
+ package.add_price(Util::Money.new(10, :festbetrag, 'DE'))
68
+ package.add_code(Util::Code.new(:cid, pzn, 'DE'))
69
+ package.save
70
+ package
71
+ end
72
+ def setup_remote_package(name, uid='55555', price=12)
73
+ rpackage = flexmock('Remote Package')
74
+ rpackage.should_receive(:name_base).and_return(name)
75
+ rpackage.should_receive(:price_public).and_return {
76
+ price
77
+ }
78
+ rpackage.should_receive(:comparable_size)\
79
+ .and_return(Drugs::Dose.new(4))
80
+ rpackage.should_receive(:__drbref).and_return(uid)
81
+ rcompany = flexmock('Remote Company')
82
+ rpackage.should_receive(:company).and_return(rcompany)
83
+ rcompany.should_receive(:name).and_return('Producer (Schweiz) AG')
84
+ ratc = flexmock('Remote Atc Class')
85
+ ratc.should_receive(:ddds).and_return []
86
+ rpackage.should_receive(:atc_class).and_return(ratc)
87
+ ratc.should_receive(:code).and_return('N04BB01')
88
+ ratc.should_receive(:de).and_return('Amantadine')
89
+ ragent = flexmock('Remote ActiveAgent')
90
+ rpackage.should_receive(:active_agents).and_return([ragent])
91
+ rsubstance = flexmock('Remote Substance')
92
+ ragent.should_receive(:dose).and_return(Drugs::Dose.new(100, 'mg'))
93
+ ragent.should_receive(:substance).and_return(rsubstance)
94
+ rsubstance.should_receive(:de).and_return('Amantadinum')
95
+ rgalform = flexmock('Remote Galenic Form')
96
+ rpackage.should_receive(:galenic_forms).and_return([rgalform])
97
+ rgalform.should_receive(:de).and_return('Tropfen-Ampullen')
98
+ rgroup = flexmock('Remote Galenic Group')
99
+ rgroup.should_receive(:de).and_return('Tropfen')
100
+ rgalform.should_receive(:galenic_group).and_return(rgroup)
101
+ rpart = flexmock('Remote Part')
102
+ rpart.should_receive(:comparable_size)\
103
+ .and_return(Drugs::Dose.new(4))
104
+ rpart.should_ignore_missing
105
+ rpackage.should_receive(:parts).and_return [rpart]
106
+ @cache.should_receive(:fetch).with(uid.to_i).and_return(rpackage)
107
+ rpackage.should_ignore_missing
108
+ rpackage
109
+ end
110
+ def teardown
111
+ super
112
+ ODDB.config.remote_databases = []
113
+ @currency.stop_service
114
+ end
115
+ def test_init
116
+ package = setup_package("Amantadin by Producer")
117
+ open "/"
118
+ assert_equal "DE - ODDB.org | Medikamente | Home | Open Drug Database", get_title
119
+ type "query", "Amantadin"
120
+ click "//input[@type='submit']"
121
+ wait_for_page_to_load "30000"
122
+ assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Markenname | Open Drug Database",
123
+ get_title
124
+ click 'link=Amantadin by Producer'
125
+ wait_for_page_to_load "30000"
126
+
127
+ assert_equal "DE - ODDB.org | Medikamente | Preisvergleich | Amantadin by Producer | Open Drug Database", get_title
128
+ assert is_text_present('Amantadin by Producer')
129
+ assert is_text_present('Amantadin 100 mg')
130
+ assert is_text_present('5 Ampullen')
131
+ assert is_text_present('6.00')
132
+ assert is_text_present("In unserer Datenbank wurden leider keine Produkte gefunden, die mit diesem Produkt verglichen werden können.")
133
+ end
134
+ def test_compare
135
+ package1 = setup_package("Amantadin by Producer", '12345', 6)
136
+ package2 = setup_package("By another name", '54321', 3)
137
+ package2.code(:zuzahlungsbefreit).value = false
138
+ flexstub(package1).should_receive(:comparables)\
139
+ .and_return([package2])
140
+ flexstub(package2).should_receive(:comparables)\
141
+ .and_return([package1])
142
+ open "/de/drugs/compare/pzn/12345"
143
+ assert_equal "DE - ODDB.org | Medikamente | Preisvergleich | Amantadin by Producer | Open Drug Database", get_title
144
+ assert is_text_present('-50.0%')
145
+ assert_equal 'origin zuzahlungsbefreit',
146
+ get_attribute('//tr[2]@class')
147
+ assert_raises(SeleniumCommandError) { get_attribute('//tr[3]@class') }
148
+
149
+
150
+ click 'link=By another name'
151
+ wait_for_page_to_load "30000"
152
+ assert_equal "DE - ODDB.org | Medikamente | Preisvergleich | By another name | Open Drug Database", get_title
153
+ assert is_text_present('+100.0%')
154
+ assert_equal 'origin',
155
+ get_attribute('//tr[2]@class')
156
+ assert_equal 'zuzahlungsbefreit', get_attribute('//tr[3]@class')
157
+ assert is_text_present('Gelb = Zuzahlungsbefreit')
158
+ assert !is_text_present('Rot = CH - Produkte')
159
+ end
160
+ def test_compare__limited
161
+ ODDB.config.query_limit = 1
162
+ package1 = setup_package("Amantadin by Producer", '12345', 6)
163
+ package2 = setup_package("By another name", '54321', 3)
164
+ package2.code(:zuzahlungsbefreit).value = false
165
+ flexstub(package1).should_receive(:comparables)\
166
+ .and_return([package2])
167
+ flexstub(package2).should_receive(:comparables)\
168
+ .and_return([package1])
169
+ open "/de/drugs/compare/pzn/12345"
170
+ assert_equal "DE - ODDB.org | Medikamente | Preisvergleich | Amantadin by Producer | Open Drug Database", get_title
171
+ assert is_text_present('-50.0%')
172
+ assert_equal 'origin zuzahlungsbefreit',
173
+ get_attribute('//tr[2]@class')
174
+ assert_raises(SeleniumCommandError) { get_attribute('//tr[3]@class') }
175
+
176
+
177
+ click 'link=By another name'
178
+ wait_for_page_to_load "30000"
179
+ assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
180
+ get_title
181
+ assert is_text_present("Abfragebeschränkung")
182
+ ensure
183
+ ODDB.config.query_limit = 20
184
+ end
185
+ def test_sort
186
+ package1 = setup_package("Amantadin by Producer", '12345', 6)
187
+ package2 = setup_package("By another name", '54321', 6)
188
+ package3 = setup_package("Yet another", '11111', 3)
189
+ flexstub(package1).should_receive(:comparables)\
190
+ .and_return([package2, package3])
191
+ open "/de/drugs/compare/pzn/12345"
192
+ assert_equal "DE - ODDB.org | Medikamente | Preisvergleich | Amantadin by Producer | Open Drug Database", get_title
193
+ assert_match(/^Yet another/, @selenium.get_text("cid_N04BB01_0"))
194
+ assert_match(/^By another name/, @selenium.get_text("cid_N04BB01_1"))
195
+
196
+ click "//a[@name='th_product']"
197
+ wait_for_page_to_load "30000"
198
+ assert_equal "DE - ODDB.org | Medikamente | Preisvergleich | Amantadin by Producer | Open Drug Database", get_title
199
+ assert_match(/^By another name/, @selenium.get_text("cid_N04BB01_0"))
200
+ assert_match(/^Yet another/, @selenium.get_text("cid_N04BB01_1"))
201
+ end
202
+ def test_remote
203
+ remote = flexmock('Remote')
204
+ DRb.install_id_conv(ODBA::DRbIdConv.new)
205
+ drb = DRb.start_service('druby://localhost:0', remote)
206
+ ODDB.config.remote_databases = [drb.uri]
207
+
208
+ remote.should_receive(:get_currency_rate).with('EUR').and_return 0.6
209
+ rpackage = setup_remote_package('Remotadin', '55555', 12)
210
+ remote.should_receive(:remote_packages).and_return([rpackage])
211
+
212
+ rother = setup_remote_package('Remoteric', '55556', nil)
213
+ rpackage.should_receive(:comparables).and_return([rother])
214
+
215
+ package = setup_package('Amantadin')
216
+
217
+ ## switch to mm-flavor
218
+ open "/de/drugs/home/flavor/mm"
219
+ assert_equal "CH | DE - ODDB.org | Medikamente | Home | Open Drug Database", get_title
220
+ type "query", "Amantadin"
221
+ click "//input[@type='submit']"
222
+ wait_for_page_to_load "30000"
223
+ assert_equal "CH | DE - ODDB.org | Medikamente | Suchen | Amantadin | Markenname | Open Drug Database", get_title
224
+
225
+ rother.should_receive(:comparables).and_return([rpackage])
226
+ click "link=Remotadin"
227
+ wait_for_page_to_load "30000"
228
+ assert_equal "CH | DE - ODDB.org | Medikamente | Preisvergleich | Remotadin | Open Drug Database",
229
+ get_title
230
+ assert_match(/^Remotadin/, get_text("cid_N04BB01_"))
231
+ assert is_element_present("//a[@id='cid_N04BB01_0']")
232
+ assert_match(/^Amantadin/, get_text("cid_N04BB01_0"))
233
+ assert is_element_present("//a[@id='cid_N04BB01_1']")
234
+ assert_match(/^Remoteric/, get_text("cid_N04BB01_1"))
235
+ assert is_text_present('-39.7%')
236
+ #assert is_text_present('-16.6%')
237
+
238
+ click "link=Remoteric"
239
+ wait_for_page_to_load "30000"
240
+ assert_equal "CH | DE - ODDB.org | Medikamente | Preisvergleich | Remoteric | Open Drug Database",
241
+ get_title
242
+ assert_match(/^Remoteric/, get_text("cid_N04BB01_"))
243
+ assert is_element_present("//a[@id='cid_N04BB01_0']")
244
+ assert_match(/^Amantadin/, get_text("cid_N04BB01_0"))
245
+ assert is_element_present("//a[@id='cid_N04BB01_1']")
246
+ assert_match(/^Remotadin/, get_text("cid_N04BB01_1"))
247
+
248
+ assert is_text_present('Gelb = Zuzahlungsbefreit')
249
+ assert is_text_present('Rot = CH - Produkte')
250
+ ensure
251
+ drb.stop_service
252
+ end
253
+ def test_remote__reversed
254
+ remote = flexmock('Remote')
255
+ DRb.install_id_conv(ODBA::DRbIdConv.new)
256
+ drb = DRb.start_service('druby://localhost:0', remote)
257
+ ODDB.config.remote_databases = [drb.uri]
258
+
259
+ remote.should_receive(:get_currency_rate).with('EUR').and_return 0.6
260
+ rpackage = setup_remote_package('Remotadin', '55555', 12)
261
+ remote.should_receive(:remote_packages).and_return([rpackage])
262
+
263
+ rother = setup_remote_package('Remoteric', '55556', nil)
264
+ remote.should_receive(:remote_comparables).with(ODBA::DRbWrapper)\
265
+ .and_return([rpackage, rother])
266
+
267
+ package = setup_package('Amantadin')
268
+ ## switch to mm-flavor
269
+ open "/de/drugs/home/flavor/mm"
270
+ assert_equal "CH | DE - ODDB.org | Medikamente | Home | Open Drug Database", get_title
271
+ type "query", "Amantadin"
272
+ click "//input[@type='submit']"
273
+ wait_for_page_to_load "30000"
274
+ assert_equal "CH | DE - ODDB.org | Medikamente | Suchen | Amantadin | Markenname | Open Drug Database", get_title
275
+
276
+ atc = Drugs::Atc.new('N04BB01')
277
+
278
+ rother.should_receive(:comparables).and_return([rpackage])
279
+ click "link=Amantadin"
280
+ wait_for_page_to_load "30000"
281
+ assert_equal "CH | DE - ODDB.org | Medikamente | Preisvergleich | Amantadin | Open Drug Database",
282
+ get_title
283
+ assert_match(/^Amantadin/, get_text("cid_N04BB01_"))
284
+ assert is_element_present("//a[@id='cid_N04BB01_0']")
285
+ assert_match(/^Remotadin/, get_text("cid_N04BB01_0"))
286
+ assert is_element_present("//a[@id='cid_N04BB01_1']")
287
+ assert_match(/^Remoteric/, get_text("cid_N04BB01_1"))
288
+ assert is_text_present('+65.9%')
289
+ ensure
290
+ drb.stop_service
291
+ end
292
+ end
293
+ end
294
+ end