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,513 @@
1
+ #!/usr/bin/env ruby
2
+ # Selenium::TestSequence -- de.oddb.org -- 15.04.2008 -- 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 'oddb/import/pharmnet'
11
+
12
+ module ODDB
13
+ module Selenium
14
+ class TestAdminSequence < Test::Unit::TestCase
15
+ include Selenium::TestCase
16
+ def setup
17
+ Drugs::ActiveAgent.instances.clear
18
+ Drugs::Composition.instances.clear
19
+ Drugs::Sequence.instances.clear
20
+ Drugs::Product.instances.clear
21
+ Drugs::GalenicForm.instances.clear
22
+ Business::Company.instances.clear
23
+ super
24
+ end
25
+ def setup_sequence(registration = '12345.0')
26
+ product = Drugs::Product.new
27
+ product.name.de = "Product"
28
+ company = Business::Company.new
29
+ company.name.de = 'Producer AG'
30
+ product.company = company
31
+ company.save
32
+ sequence = Drugs::Sequence.new
33
+ sequence.atc = Drugs::Atc.new('N04BB01')
34
+ sequence.atc.name.de = 'Amantadin'
35
+ sequence.add_code Util::Code.new(:registration, registration, 'EU')
36
+ ddd = Drugs::Ddd.new('O')
37
+ ddd.dose = Drugs::Dose.new(5, 'mg')
38
+ sequence.atc.add_ddd(ddd)
39
+ sequence.product = product
40
+ composition = Drugs::Composition.new
41
+ composition.equivalence_factor = '44.6'
42
+ sequence.add_composition(composition)
43
+ substance = Drugs::Substance.new
44
+ substance.name.de = "Amantadin"
45
+ substance.save
46
+ dose = Drugs::Dose.new(100, 'mg')
47
+ active_agent = Drugs::ActiveAgent.new(substance, dose)
48
+ active_agent.composition = composition
49
+ galform = Drugs::GalenicForm.new
50
+ galform.description.de = 'Tabletten'
51
+ galform.save
52
+ composition.galenic_form = galform
53
+ sequence.save
54
+ sequence
55
+ end
56
+ def test_sequence
57
+ sequence = setup_sequence
58
+ user = login_admin
59
+ uid = sequence.uid
60
+ open "/de/drugs/sequence/uid/#{uid}"
61
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
62
+ assert is_element_present("atc")
63
+ assert is_element_present("registration")
64
+ assert is_element_present("fi_url")
65
+ assert is_element_present("pi_url")
66
+ assert is_element_present("update")
67
+ assert is_element_present("delete")
68
+
69
+ assert_equal "N04BB01", get_value("atc")
70
+ assert_equal "12345.0", get_value("registration")
71
+
72
+ assert is_element_present("link=-")
73
+ assert is_element_present("substance[0][0]")
74
+ assert is_element_present("dose[0][0]")
75
+ assert is_element_present("link=+")
76
+
77
+ assert_equal "Amantadin", get_value("substance[0][0]")
78
+ assert_equal "100 mg", get_value("dose[0][0]")
79
+ end
80
+ def test_sequence__update__error
81
+ sequence = setup_sequence
82
+ other = setup_sequence('54321.5')
83
+ other.save
84
+ user = login_admin
85
+ uid = sequence.uid
86
+ open "/de/drugs/sequence/uid/#{uid}"
87
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
88
+
89
+ assert_equal "N04BB01", get_value("atc")
90
+ assert_equal "12345.0", get_value("registration")
91
+
92
+ type 'registration', '54321.5'
93
+ type 'atc', 'A01AA01'
94
+
95
+ click "//input[@name='update']"
96
+ wait_for_page_to_load "30000"
97
+
98
+ assert is_text_present('Der ATC-Code "A01AA01" ist nicht bekannt.')
99
+ assert is_text_present("Die EU-Registrationsnummer '54321.5' (Product) ist bereits vergeben.")
100
+
101
+ assert_equal 'N04BB01', get_value('atc')
102
+ assert !is_text_present('Amantadin')
103
+ assert is_element_present('atc_name')
104
+ assert_equal '12345.0', get_value('registration')
105
+
106
+ assert_equal('12345.0', sequence.code(:registration, 'EU').value)
107
+
108
+ [:atc, :fi_url, :pi_url, :registration].each { |key|
109
+ assert_not_equal 'test.admin@oddb.org', sequence.data_origin(key)
110
+ }
111
+
112
+ type 'atc', 'A01AA01'
113
+ type 'atc_name', 'new ATC-Code'
114
+
115
+ click "//input[@name='update']"
116
+ wait_for_page_to_load "30000"
117
+ assert !is_text_present('Der ATC-Code "A01AA01" ist nicht bekannt.')
118
+ assert is_text_present('new ATC-Code')
119
+ assert_equal 'A01AA01', get_value('atc')
120
+
121
+ atc = sequence.atc
122
+ assert_equal 'A01AA01', atc.code
123
+ assert_equal 'new ATC-Code', atc.name.de
124
+ assert_equal [sequence], atc.sequences
125
+ assert atc.saved?
126
+ end
127
+ def test_sequence__update__success
128
+ sequence = setup_sequence
129
+ user = login_admin
130
+ uid = sequence.uid
131
+ open "/de/drugs/sequence/uid/#{uid}"
132
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
133
+
134
+ assert is_element_present("atc")
135
+
136
+ assert is_element_present("registration")
137
+ assert is_element_present("fi_url")
138
+ assert is_element_present("pi_url")
139
+ assert is_element_present("update")
140
+ assert is_element_present("delete")
141
+
142
+ assert_equal "N04BB01", get_value("atc")
143
+ assert_equal "12345.0", get_value("registration")
144
+
145
+ atc = Drugs::Atc.new('A01AA01')
146
+ atc.name.de = "Assigned Atc-Class"
147
+ atc.save
148
+
149
+ type 'registration', '54321.5'
150
+ type 'atc', 'A01AA01'
151
+
152
+ fachinfo = "A Fachinfo-Document"
153
+ fi_url = "http://host.domain/fi_path.rtf"
154
+ type "fi_url", fi_url
155
+ patinfo = "A Patinfo-Document"
156
+ pi_url = "http://host.domain/pi_path.rtf"
157
+ type "pi_url", pi_url
158
+
159
+ flexmock(Import::PharmNet::Import).new_instances\
160
+ .should_receive(:import_rtf).and_return { |key, agent, url, term|
161
+ assert_instance_of WWW::Mechanize, agent
162
+ assert_equal 'Product', term
163
+ case key
164
+ when :fachinfo
165
+ assert_equal fi_url, url
166
+ fachinfo
167
+ when :patinfo
168
+ assert_equal pi_url, url
169
+ patinfo
170
+ else
171
+ flunk "import_rtf was called with invalid key: #{key.inspect}"
172
+ end
173
+ }
174
+
175
+ click "//input[@name='update']"
176
+ wait_for_page_to_load "30000"
177
+
178
+ assert !is_text_present('Der ATC-Code "A01AA01" ist nicht bekannt.')
179
+ assert !is_text_present("Die EU-Registrationsnummer '54321.5' (Product) ist bereits vergeben.")
180
+
181
+ assert_equal 'A01AA01', get_value('atc')
182
+ assert is_text_present('Assigned Atc-Class')
183
+ assert_equal '54321.5', get_value('registration')
184
+ assert is_text_present("FI")
185
+ assert is_text_present("GI")
186
+
187
+ assert_equal(atc, sequence.atc)
188
+ assert_equal('54321.5', sequence.code(:registration, 'EU').value)
189
+ assert_equal(fachinfo, sequence.fachinfo.de)
190
+ assert_equal(patinfo, sequence.patinfo.de)
191
+
192
+ [:atc, :fi_url, :pi_url, :registration].each { |key|
193
+ assert_equal 'test.admin@oddb.org', sequence.data_origin(key)
194
+ }
195
+
196
+ end
197
+ def test_sequence__delete
198
+ sequence = setup_sequence
199
+ user = login_admin
200
+ uid = sequence.uid
201
+ open "/de/drugs/sequence/uid/#{uid}"
202
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
203
+
204
+ click "link=Produkt"
205
+ wait_for_page_to_load "30000"
206
+ link_loc = "link=#{uid}"
207
+
208
+ assert_equal "DE - ODDB.org | Medikamente | Produkt | #{sequence.product.uid} | Open Drug Database", get_title
209
+ assert is_element_present(link_loc)
210
+ click link_loc
211
+ wait_for_page_to_load "30000"
212
+
213
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
214
+
215
+ click "delete"
216
+ assert_equal "Wollen Sie diese Sequenz wirklich löschen?", get_confirmation
217
+
218
+ wait_for_page_to_load "30000"
219
+
220
+ assert_equal "DE - ODDB.org | Medikamente | Produkt | #{sequence.product.uid} | Open Drug Database", get_title
221
+ assert !is_element_present(link_loc)
222
+ end
223
+ def test_sequence__active_agents
224
+ sequence = setup_sequence
225
+
226
+ sub1 = ODDB::Drugs::Substance.new
227
+ sub1.name.de = 'Enalapril'
228
+ sub1.save
229
+
230
+ user = login_admin
231
+ uid = sequence.uid
232
+ open "/de/drugs/sequence/uid/#{uid}"
233
+
234
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
235
+ assert is_element_present("link=+")
236
+ assert is_element_present("link=-")
237
+
238
+ click "link=+"
239
+ assert is_text_present("(unsaved)")
240
+ sleep(0.5)
241
+ assert !is_element_present("link=+")
242
+ assert is_element_present("link=-")
243
+ assert is_element_present("substance[0][1]")
244
+ assert is_element_present("dose[0][1]")
245
+ refresh
246
+ wait_for_page_to_load "30000"
247
+
248
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
249
+ assert is_element_present("link=+")
250
+ assert is_element_present("link=-")
251
+ assert !is_element_present("substance[0][1]")
252
+ assert !is_element_present("dose[0][1]")
253
+
254
+ click "link=+"
255
+ assert is_text_present("(unsaved)")
256
+ sleep(0.5)
257
+ type "substance[0][1]", "Enalapril"
258
+ type "dose[0][1]", "50 mg"
259
+
260
+ click "update"
261
+ wait_for_page_to_load "30000"
262
+ assert !is_text_present("(unsaved)")
263
+
264
+ assert_equal 1, sequence.compositions.size
265
+ composition = sequence.compositions.first
266
+ assert_equal 2, composition.active_agents.size
267
+ agent = composition.active_agents.last
268
+ assert_equal sub1, agent.substance
269
+ assert_equal ODDB::Drugs::Dose.new(50, 'mg'), agent.dose
270
+
271
+ assert is_element_present("link=+")
272
+ assert is_element_present("link=-")
273
+ assert is_element_present("substance[0][1]")
274
+ assert is_element_present("dose[0][1]")
275
+ assert_equal "Enalapril", get_value("substance[0][1]")
276
+ assert_equal "50 mg", get_value("dose[0][1]")
277
+
278
+ click "link=+"
279
+ sleep(0.5)
280
+ assert is_element_present("substance[0][2]")
281
+ click "//table[@id='active-agents-0']//tr[4]//td[1]//a"
282
+ sleep(0.5)
283
+ assert is_element_present("link=+")
284
+ assert !is_element_present("substance[0][2]")
285
+
286
+ click "//table[@id='active-agents-0']//tr[3]//td[1]//a"
287
+ sleep(0.5)
288
+ assert !is_element_present("substance[0][1]")
289
+ assert_equal 1, composition.active_agents.size
290
+ end
291
+ def test_sequence__galenic_form
292
+ sequence = setup_sequence
293
+
294
+ sub1 = ODDB::Drugs::Substance.new
295
+ sub1.name.de = 'Enalapril'
296
+ sub1.save
297
+
298
+ user = login_admin
299
+ uid = sequence.uid
300
+ open "/de/drugs/sequence/uid/#{uid}"
301
+
302
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
303
+ assert is_element_present("galenic_form[0]")
304
+ assert_equal 'Tabletten', get_value("galenic_form[0]")
305
+
306
+ type "galenic_form[0]", ''
307
+ click "update"
308
+ wait_for_page_to_load "30000"
309
+
310
+ composition = sequence.compositions.first
311
+ assert_nil composition.galenic_form
312
+ assert_equal '', get_value("galenic_form[0]")
313
+
314
+ type "galenic_form[0]", 'Filmtabletten'
315
+ click "update"
316
+ wait_for_page_to_load "30000"
317
+
318
+ assert_nil composition.galenic_form
319
+ assert_equal 'Filmtabletten', get_value("galenic_form[0]")
320
+ assert is_text_present('Die Galenische Form "Filmtabletten" ist nicht bekannt')
321
+
322
+ refresh
323
+ wait_for_page_to_load "30000"
324
+
325
+ assert_nil composition.galenic_form
326
+ assert_equal '', get_value("galenic_form[0]")
327
+
328
+ galform = Drugs::GalenicForm.new
329
+ galform.description.de = 'Filmtabletten'
330
+ galform.save
331
+
332
+ type "galenic_form[0]", 'Filmtabletten'
333
+ click "update"
334
+ wait_for_page_to_load "30000"
335
+
336
+ assert_equal galform, composition.galenic_form
337
+ assert_equal 'Filmtabletten', get_value("galenic_form[0]")
338
+ end
339
+ def test_sequence__compositions
340
+ sequence = setup_sequence
341
+
342
+ sub1 = ODDB::Drugs::Substance.new
343
+ sub1.name.de = 'Enalapril'
344
+ sub1.save
345
+
346
+ user = login_admin
347
+ uid = sequence.uid
348
+ open "/de/drugs/sequence/uid/#{uid}"
349
+
350
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
351
+ assert is_element_present("link=Bestandteil hinzufügen")
352
+ assert is_element_present("link=Bestandteil löschen")
353
+
354
+ click "link=Bestandteil hinzufügen"
355
+ sleep(0.5)
356
+ assert is_text_present("(unsaved)")
357
+ assert !is_element_present("link=Bestandteil hinzufügen")
358
+ assert is_element_present("link=Bestandteil löschen")
359
+ assert is_element_present("substance[1][0]")
360
+ assert is_element_present("dose[1][0]")
361
+ refresh
362
+ wait_for_page_to_load "30000"
363
+
364
+ assert_equal "DE - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
365
+ assert is_element_present("link=Bestandteil hinzufügen")
366
+ assert is_element_present("link=Bestandteil löschen")
367
+ assert !is_element_present("substance[1][0]")
368
+ assert !is_element_present("dose[1][0]")
369
+
370
+ click "link=Bestandteil hinzufügen"
371
+ sleep(0.5)
372
+ assert is_text_present("(unsaved)")
373
+ type "substance[1][0]", "Enalapril"
374
+ type "dose[1][0]", "50 mg"
375
+
376
+ click "update"
377
+ wait_for_page_to_load "30000"
378
+
379
+ assert !is_text_present("(unsaved)")
380
+ assert_equal 2, sequence.compositions.size
381
+ composition = sequence.compositions.last
382
+ assert_equal 1, composition.active_agents.size
383
+ agent = composition.active_agents.last
384
+ assert_equal sub1, agent.substance
385
+ assert_equal ODDB::Drugs::Dose.new(50, 'mg'), agent.dose
386
+
387
+ assert is_element_present("link=Bestandteil hinzufügen")
388
+ assert is_element_present("link=Bestandteil löschen")
389
+ assert is_element_present("substance[1][0]")
390
+ assert is_element_present("dose[1][0]")
391
+ assert_equal "Enalapril", get_value("substance[1][0]")
392
+ assert_equal "50 mg", get_value("dose[1][0]")
393
+
394
+ click "//table[@id='active-agents-1']//a[text()='Bestandteil löschen']"
395
+ sleep(0.5)
396
+ assert !is_element_present("substance[1][0]")
397
+ composition = sequence.compositions.last
398
+ assert_equal 1, composition.active_agents.size
399
+ end
400
+ def test_new_sequence__success
401
+ sequence = setup_sequence
402
+ user = login_admin
403
+ product = sequence.product
404
+ uid = product.uid
405
+ open "/de/drugs/product/uid/#{uid}"
406
+ assert_equal "DE - ODDB.org | Medikamente | Produkt | #{uid} | Open Drug Database", get_title
407
+
408
+ click "new_sequence"
409
+ wait_for_page_to_load "30000"
410
+ assert_equal "DE - ODDB.org | Medikamente | Neue Sequenz | Open Drug Database", get_title
411
+
412
+ atc = Drugs::Atc.new('A01AA01')
413
+ atc.name.de = "Assigned Atc-Class"
414
+ atc.save
415
+
416
+ type 'registration', '54321.5'
417
+ type 'atc', 'A01AA01'
418
+
419
+ fachinfo = "A Fachinfo-Document"
420
+ fi_url = "http://host.domain/fi_path.rtf"
421
+ type "fi_url", fi_url
422
+ patinfo = "A Patinfo-Document"
423
+ pi_url = "http://host.domain/pi_path.rtf"
424
+ type "pi_url", pi_url
425
+
426
+ flexmock(Import::PharmNet::Import).new_instances\
427
+ .should_receive(:import_rtf).and_return { |key, agent, url, term|
428
+ assert_instance_of WWW::Mechanize, agent
429
+ assert_equal 'Product', term
430
+ case key
431
+ when :fachinfo
432
+ assert_equal fi_url, url
433
+ fachinfo
434
+ when :patinfo
435
+ assert_equal pi_url, url
436
+ patinfo
437
+ else
438
+ flunk "import_rtf was called with invalid key: #{key.inspect}"
439
+ end
440
+ }
441
+
442
+ click "//input[@name='update']"
443
+ wait_for_page_to_load "30000"
444
+
445
+ assert !is_text_present('Der ATC-Code "A01AA01" ist nicht bekannt.')
446
+ assert !is_text_present("Die EU-Registrationsnummer '54321.5' (Product) ist bereits vergeben.")
447
+
448
+ assert_equal 'A01AA01', get_value('atc')
449
+ assert is_text_present('Assigned Atc-Class')
450
+ assert_equal '54321.5', get_value('registration')
451
+ assert is_text_present("FI")
452
+ assert is_text_present("GI")
453
+
454
+ assert_equal(2, product.sequences.size)
455
+ sequence = product.sequences.last
456
+
457
+ assert_equal(atc, sequence.atc)
458
+ assert_equal('54321.5', sequence.code(:registration, 'EU').value)
459
+ assert_equal(fachinfo, sequence.fachinfo.de)
460
+ assert_equal(patinfo, sequence.patinfo.de)
461
+
462
+ [:atc, :fi_url, :pi_url, :registration].each { |key|
463
+ assert_equal 'test.admin@oddb.org', sequence.data_origin(key)
464
+ }
465
+
466
+ end
467
+ def test_new_sequence__errors
468
+ sequence = setup_sequence
469
+ user = login_admin
470
+ product = sequence.product
471
+ uid = product.uid
472
+ open "/de/drugs/product/uid/#{uid}"
473
+ assert_equal "DE - ODDB.org | Medikamente | Produkt | #{uid} | Open Drug Database", get_title
474
+
475
+ click "new_sequence"
476
+ wait_for_page_to_load "30000"
477
+ assert_equal "DE - ODDB.org | Medikamente | Neue Sequenz | Open Drug Database", get_title
478
+ assert !is_element_present('new_package')
479
+
480
+ type 'registration', '12345.0'
481
+ type 'atc', 'A01AA01'
482
+
483
+ click "//input[@name='update']"
484
+ wait_for_page_to_load "30000"
485
+
486
+ #assert is_text_present('Der ATC-Code "A01AA01" ist nicht bekannt.')
487
+ assert is_text_present("Die EU-Registrationsnummer '12345.0' (Product) ist bereits vergeben.")
488
+
489
+ assert_equal 'A01AA01', get_value('atc')
490
+ assert_equal '12345.0', get_value('registration')
491
+
492
+ assert_equal(1, product.sequences.size)
493
+ end
494
+ def test_new_sequence__delete
495
+ sequence = setup_sequence
496
+ user = login_admin
497
+ uid = sequence.product.uid
498
+ open "/de/drugs/product/uid/#{uid}"
499
+ assert_equal "DE - ODDB.org | Medikamente | Produkt | #{uid} | Open Drug Database", get_title
500
+
501
+ click "new_sequence"
502
+ wait_for_page_to_load "30000"
503
+ assert_equal "DE - ODDB.org | Medikamente | Neue Sequenz | Open Drug Database", get_title
504
+
505
+ click "delete"
506
+ wait_for_page_to_load "30000"
507
+ assert_equal "DE - ODDB.org | Medikamente | Produkt | #{uid} | Open Drug Database", get_title
508
+
509
+ assert_equal 1, sequence.product.sequences.size
510
+ end
511
+ end
512
+ end
513
+ end