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.
- data/Guide.txt +3 -0
- data/History.txt +5 -0
- data/LICENCE.txt +339 -0
- data/Manifest.txt +430 -0
- data/README +423 -0
- data/README.txt +25 -0
- data/Rakefile +28 -0
- data/bin/admin +71 -0
- data/bin/exportd +44 -0
- data/bin/oddbd +33 -0
- data/data/fulltext/data/dicts/french/fulltext.aff +1057 -0
- data/data/fulltext/data/dicts/french/fulltext.dict +91189 -0
- data/data/fulltext/data/dicts/french/fulltext.stop +135 -0
- data/data/fulltext/data/dicts/german/fulltext.aff +1233 -0
- data/data/fulltext/data/dicts/german/fulltext.dict +287574 -0
- data/data/fulltext/data/dicts/german/fulltext.stop +133 -0
- data/data/fulltext/data/german_compound/README +15 -0
- data/data/fulltext/data/german_compound/compound.pl +63 -0
- data/data/fulltext/data/german_compound/german.stop +20 -0
- data/data/fulltext/data/ispell-german-compound.tar.gz +0 -0
- data/data/fulltext/redist/dict_french/Makefile +12 -0
- data/data/fulltext/redist/dict_french/README.french +1 -0
- data/data/fulltext/redist/dict_french/dict_french.sql.in +7 -0
- data/data/fulltext/redist/dict_french/dict_snowball.c +56 -0
- data/data/fulltext/redist/dict_french/french_stem.c +1222 -0
- data/data/fulltext/redist/dict_french/french_stem.h +16 -0
- data/data/fulltext/redist/dict_french/subinclude.h +2 -0
- data/data/fulltext/redist/dict_german/Makefile +12 -0
- data/data/fulltext/redist/dict_german/README.german +1 -0
- data/data/fulltext/redist/dict_german/dict_german.sql.in +7 -0
- data/data/fulltext/redist/dict_german/dict_snowball.c +56 -0
- data/data/fulltext/redist/dict_german/german_stem.c +527 -0
- data/data/fulltext/redist/dict_german/german_stem.h +16 -0
- data/data/fulltext/redist/dict_german/subinclude.h +1 -0
- data/data/fulltext/redist/french_stem.c +1222 -0
- data/data/fulltext/redist/french_stem.h +16 -0
- data/data/fulltext/redist/german_stem.c +527 -0
- data/data/fulltext/redist/german_stem.h +16 -0
- data/jobs/export_chde_xls +20 -0
- data/jobs/export_csv +20 -0
- data/jobs/export_fachinfo_yaml +20 -0
- data/jobs/export_patinfo_yaml +20 -0
- data/jobs/export_yaml +20 -0
- data/jobs/import_dimdi +15 -0
- data/jobs/import_gkv +19 -0
- data/jobs/import_pharma24 +15 -0
- data/jobs/import_pharmnet +30 -0
- data/jobs/import_whocc +18 -0
- data/lib/fixes/singular.rb +9 -0
- data/lib/fixes/yaml.rb +13 -0
- data/lib/oddb.rb +13 -0
- data/lib/oddb/business/company.rb +18 -0
- data/lib/oddb/business/grant_download.rb +27 -0
- data/lib/oddb/business/invoice.rb +75 -0
- data/lib/oddb/config.rb +112 -0
- data/lib/oddb/currency.rb +6 -0
- data/lib/oddb/drugs.rb +16 -0
- data/lib/oddb/drugs/active_agent.rb +37 -0
- data/lib/oddb/drugs/atc.rb +53 -0
- data/lib/oddb/drugs/composition.rb +41 -0
- data/lib/oddb/drugs/ddd.rb +24 -0
- data/lib/oddb/drugs/dose.rb +107 -0
- data/lib/oddb/drugs/galenic_form.rb +21 -0
- data/lib/oddb/drugs/galenic_group.rb +17 -0
- data/lib/oddb/drugs/package.rb +111 -0
- data/lib/oddb/drugs/part.rb +55 -0
- data/lib/oddb/drugs/product.rb +25 -0
- data/lib/oddb/drugs/sequence.rb +68 -0
- data/lib/oddb/drugs/substance.rb +31 -0
- data/lib/oddb/drugs/substance_group.rb +13 -0
- data/lib/oddb/drugs/unit.rb +12 -0
- data/lib/oddb/export.rb +4 -0
- data/lib/oddb/export/csv.rb +94 -0
- data/lib/oddb/export/l10n_sessions.rb +30 -0
- data/lib/oddb/export/rss.rb +44 -0
- data/lib/oddb/export/server.rb +137 -0
- data/lib/oddb/export/xls.rb +127 -0
- data/lib/oddb/export/yaml.rb +212 -0
- data/lib/oddb/html/state/download.rb +13 -0
- data/lib/oddb/html/state/drugs/admin/package.rb +190 -0
- data/lib/oddb/html/state/drugs/admin/product.rb +56 -0
- data/lib/oddb/html/state/drugs/admin/sequence.rb +253 -0
- data/lib/oddb/html/state/drugs/ajax/explain_ddd_price.rb +19 -0
- data/lib/oddb/html/state/drugs/ajax/explain_price.rb +19 -0
- data/lib/oddb/html/state/drugs/ajax/global.rb +18 -0
- data/lib/oddb/html/state/drugs/ajax/package_infos.rb +19 -0
- data/lib/oddb/html/state/drugs/ajax/remote_infos.rb +19 -0
- data/lib/oddb/html/state/drugs/atc_browser.rb +39 -0
- data/lib/oddb/html/state/drugs/atc_guidelines.rb +21 -0
- data/lib/oddb/html/state/drugs/compare.rb +52 -0
- data/lib/oddb/html/state/drugs/download_export.rb +18 -0
- data/lib/oddb/html/state/drugs/downloads.rb +42 -0
- data/lib/oddb/html/state/drugs/fachinfo.rb +21 -0
- data/lib/oddb/html/state/drugs/feedback.rb +91 -0
- data/lib/oddb/html/state/drugs/global.rb +270 -0
- data/lib/oddb/html/state/drugs/init.rb +18 -0
- data/lib/oddb/html/state/drugs/login.rb +17 -0
- data/lib/oddb/html/state/drugs/package.rb +32 -0
- data/lib/oddb/html/state/drugs/patinfo.rb +21 -0
- data/lib/oddb/html/state/drugs/products.rb +51 -0
- data/lib/oddb/html/state/drugs/result.rb +125 -0
- data/lib/oddb/html/state/global.rb +206 -0
- data/lib/oddb/html/state/global_predefine.rb +17 -0
- data/lib/oddb/html/state/limit.rb +17 -0
- data/lib/oddb/html/state/login.rb +56 -0
- data/lib/oddb/html/state/paypal/checkout.rb +97 -0
- data/lib/oddb/html/state/paypal/collect.rb +19 -0
- data/lib/oddb/html/state/paypal/download.rb +61 -0
- data/lib/oddb/html/state/paypal/redirect.rb +18 -0
- data/lib/oddb/html/state/register_download.rb +24 -0
- data/lib/oddb/html/state/register_export.rb +38 -0
- data/lib/oddb/html/state/register_poweruser.rb +17 -0
- data/lib/oddb/html/state/viral/admin.rb +79 -0
- data/lib/oddb/html/state/viral/poweruser.rb +16 -0
- data/lib/oddb/html/util/annotated_list.rb +39 -0
- data/lib/oddb/html/util/know_it_all.rb +28 -0
- data/lib/oddb/html/util/known_user.rb +55 -0
- data/lib/oddb/html/util/lookandfeel.rb +698 -0
- data/lib/oddb/html/util/need_all_input.rb +29 -0
- data/lib/oddb/html/util/session.rb +84 -0
- data/lib/oddb/html/util/sort.rb +72 -0
- data/lib/oddb/html/util/unsaved_helper.rb +20 -0
- data/lib/oddb/html/util/validator.rb +59 -0
- data/lib/oddb/html/view/ajax/json.rb +22 -0
- data/lib/oddb/html/view/alpha_header.rb +28 -0
- data/lib/oddb/html/view/document.rb +117 -0
- data/lib/oddb/html/view/download.rb +33 -0
- data/lib/oddb/html/view/drugs/admin/package.rb +245 -0
- data/lib/oddb/html/view/drugs/admin/product.rb +104 -0
- data/lib/oddb/html/view/drugs/admin/sequence.rb +305 -0
- data/lib/oddb/html/view/drugs/ajax/explain_ddd_price.rb +87 -0
- data/lib/oddb/html/view/drugs/ajax/explain_price.rb +61 -0
- data/lib/oddb/html/view/drugs/ajax/package_infos.rb +105 -0
- data/lib/oddb/html/view/drugs/ajax/remote_infos.rb +44 -0
- data/lib/oddb/html/view/drugs/atc_browser.rb +68 -0
- data/lib/oddb/html/view/drugs/atc_guidelines.rb +94 -0
- data/lib/oddb/html/view/drugs/compare.rb +95 -0
- data/lib/oddb/html/view/drugs/download_export.rb +28 -0
- data/lib/oddb/html/view/drugs/downloads.rb +128 -0
- data/lib/oddb/html/view/drugs/fachinfo.rb +46 -0
- data/lib/oddb/html/view/drugs/feedback.rb +235 -0
- data/lib/oddb/html/view/drugs/init.rb +51 -0
- data/lib/oddb/html/view/drugs/legend.rb +24 -0
- data/lib/oddb/html/view/drugs/package.rb +403 -0
- data/lib/oddb/html/view/drugs/patinfo.rb +46 -0
- data/lib/oddb/html/view/drugs/products.rb +97 -0
- data/lib/oddb/html/view/drugs/result.rb +296 -0
- data/lib/oddb/html/view/drugs/search.rb +33 -0
- data/lib/oddb/html/view/drugs/template.rb +15 -0
- data/lib/oddb/html/view/foot.rb +52 -0
- data/lib/oddb/html/view/google.rb +23 -0
- data/lib/oddb/html/view/google_ads.rb +40 -0
- data/lib/oddb/html/view/head.rb +78 -0
- data/lib/oddb/html/view/limit.rb +109 -0
- data/lib/oddb/html/view/list.rb +59 -0
- data/lib/oddb/html/view/login.rb +38 -0
- data/lib/oddb/html/view/navigation.rb +67 -0
- data/lib/oddb/html/view/offset_header.rb +35 -0
- data/lib/oddb/html/view/paypal/collect.rb +95 -0
- data/lib/oddb/html/view/paypal/redirect.rb +51 -0
- data/lib/oddb/html/view/paypal/register_form.rb +149 -0
- data/lib/oddb/html/view/register_download.rb +29 -0
- data/lib/oddb/html/view/register_export.rb +29 -0
- data/lib/oddb/html/view/register_poweruser.rb +29 -0
- data/lib/oddb/html/view/rss/feedback.rb +64 -0
- data/lib/oddb/html/view/rss_preview.rb +61 -0
- data/lib/oddb/html/view/search.rb +104 -0
- data/lib/oddb/html/view/snapback.rb +24 -0
- data/lib/oddb/html/view/template.rb +56 -0
- data/lib/oddb/import/dimdi.rb +583 -0
- data/lib/oddb/import/excel.rb +45 -0
- data/lib/oddb/import/gkv.rb +463 -0
- data/lib/oddb/import/importer.rb +36 -0
- data/lib/oddb/import/pharma24.rb +211 -0
- data/lib/oddb/import/pharmnet.rb +1186 -0
- data/lib/oddb/import/rtf.rb +409 -0
- data/lib/oddb/import/whocc.rb +148 -0
- data/lib/oddb/import/xml.rb +15 -0
- data/lib/oddb/model.rb +179 -0
- data/lib/oddb/persistence.rb +22 -0
- data/lib/oddb/persistence/odba.rb +32 -0
- data/lib/oddb/persistence/odba/business/company.rb +13 -0
- data/lib/oddb/persistence/odba/business/grant_download.rb +14 -0
- data/lib/oddb/persistence/odba/business/invoice.rb +15 -0
- data/lib/oddb/persistence/odba/drugs/atc.rb +15 -0
- data/lib/oddb/persistence/odba/drugs/galenic_form.rb +18 -0
- data/lib/oddb/persistence/odba/drugs/galenic_group.rb +13 -0
- data/lib/oddb/persistence/odba/drugs/package.rb +25 -0
- data/lib/oddb/persistence/odba/drugs/product.rb +13 -0
- data/lib/oddb/persistence/odba/drugs/sequence.rb +21 -0
- data/lib/oddb/persistence/odba/drugs/substance.rb +21 -0
- data/lib/oddb/persistence/odba/drugs/substance_group.rb +13 -0
- data/lib/oddb/persistence/odba/drugs/unit.rb +13 -0
- data/lib/oddb/persistence/odba/export.rb +26 -0
- data/lib/oddb/persistence/odba/model.rb +68 -0
- data/lib/oddb/persistence/odba/text/document.rb +11 -0
- data/lib/oddb/persistence/odba/util/code.rb +11 -0
- data/lib/oddb/persistence/odba/util/m10l_document.rb +13 -0
- data/lib/oddb/persistence/og.rb +16 -0
- data/lib/oddb/persistence/og/drugs/composition.rb +14 -0
- data/lib/oddb/persistence/og/drugs/product.rb +14 -0
- data/lib/oddb/persistence/og/drugs/sequence.rb +15 -0
- data/lib/oddb/persistence/og/model.rb +25 -0
- data/lib/oddb/persistence/og/util/multilingual.rb +13 -0
- data/lib/oddb/redist/rtf_tools/reader.rb +139 -0
- data/lib/oddb/remote/business/company.rb +17 -0
- data/lib/oddb/remote/drugs/active_agent.rb +27 -0
- data/lib/oddb/remote/drugs/atc.rb +31 -0
- data/lib/oddb/remote/drugs/dose.rb +8 -0
- data/lib/oddb/remote/drugs/galenic_form.rb +24 -0
- data/lib/oddb/remote/drugs/package.rb +128 -0
- data/lib/oddb/remote/drugs/part.rb +30 -0
- data/lib/oddb/remote/drugs/substance.rb +20 -0
- data/lib/oddb/remote/drugs/unit.rb +20 -0
- data/lib/oddb/remote/object.rb +36 -0
- data/lib/oddb/text/chapter.rb +23 -0
- data/lib/oddb/text/document.rb +42 -0
- data/lib/oddb/text/format.rb +37 -0
- data/lib/oddb/text/paragraph.rb +53 -0
- data/lib/oddb/text/picture.rb +89 -0
- data/lib/oddb/text/table.rb +68 -0
- data/lib/oddb/util.rb +9 -0
- data/lib/oddb/util/annotated_list.rb +37 -0
- data/lib/oddb/util/code.rb +69 -0
- data/lib/oddb/util/comparison.rb +36 -0
- data/lib/oddb/util/download.rb +17 -0
- data/lib/oddb/util/exporter.rb +8 -0
- data/lib/oddb/util/feedback.rb +23 -0
- data/lib/oddb/util/ipn.rb +53 -0
- data/lib/oddb/util/job.rb +23 -0
- data/lib/oddb/util/logger.rb +20 -0
- data/lib/oddb/util/m10l_document.rb +41 -0
- data/lib/oddb/util/mail.rb +87 -0
- data/lib/oddb/util/money.rb +64 -0
- data/lib/oddb/util/multilingual.rb +70 -0
- data/lib/oddb/util/quanty.rb +3 -0
- data/lib/oddb/util/quanty/fact.rb +242 -0
- data/lib/oddb/util/quanty/main.rb +164 -0
- data/lib/oddb/util/quanty/parse.rb +872 -0
- data/lib/oddb/util/quanty/units.dump +0 -0
- data/lib/oddb/util/server.rb +150 -0
- data/lib/oddb/util/smtp_tls.rb +58 -0
- data/lib/oddb/util/updater.rb +161 -0
- data/lib/oddb/util/ydim.rb +110 -0
- data/lib/oddb/util/yus.rb +46 -0
- data/test/business/test_company.rb +29 -0
- data/test/business/test_grant_download.rb +29 -0
- data/test/drugs/test_active_agent.rb +53 -0
- data/test/drugs/test_atc.rb +54 -0
- data/test/drugs/test_composition.rb +88 -0
- data/test/drugs/test_ddd.rb +22 -0
- data/test/drugs/test_dose.rb +189 -0
- data/test/drugs/test_galenic_form.rb +41 -0
- data/test/drugs/test_package.rb +172 -0
- data/test/drugs/test_part.rb +32 -0
- data/test/drugs/test_product.rb +31 -0
- data/test/drugs/test_sequence.rb +140 -0
- data/test/drugs/test_substance.rb +51 -0
- data/test/drugs/test_substance_group.rb +27 -0
- data/test/export/test_rss.rb +86 -0
- data/test/export/test_server.rb +163 -0
- data/test/export/test_xls.rb +146 -0
- data/test/export/test_yaml.rb +120 -0
- data/test/import/data/csv/products.csv +11 -0
- data/test/import/data/html/dimdi_index.html +400 -0
- data/test/import/data/html/gkv/Befreiungsliste_Arzneimittel_Versicherte.gkvnet +508 -0
- data/test/import/data/html/pharma24/1337397.html +754 -0
- data/test/import/data/html/pharma24/842756.html +570 -0
- data/test/import/data/html/pharma24/ac-page-10.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-11.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-12.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-13.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-14.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-15.html +3011 -0
- data/test/import/data/html/pharma24/ac-page-16.html +3050 -0
- data/test/import/data/html/pharma24/ac-page-17.html +3285 -0
- data/test/import/data/html/pharma24/ac-page-18.html +3109 -0
- data/test/import/data/html/pharma24/ac-page-19.html +3126 -0
- data/test/import/data/html/pharma24/ac-page-2.html +3005 -0
- data/test/import/data/html/pharma24/ac-page-20.html +3007 -0
- data/test/import/data/html/pharma24/ac-page-21.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-22.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-23.html +3055 -0
- data/test/import/data/html/pharma24/ac-page-24.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-25.html +3004 -0
- data/test/import/data/html/pharma24/ac-page-26.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-27.html +3167 -0
- data/test/import/data/html/pharma24/ac-page-28.html +3236 -0
- data/test/import/data/html/pharma24/ac-page-29.html +3110 -0
- data/test/import/data/html/pharma24/ac-page-3.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-30.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-31.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-32.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-33.html +3001 -0
- data/test/import/data/html/pharma24/ac-page-34.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-35.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-36.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-37.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-38.html +3003 -0
- data/test/import/data/html/pharma24/ac-page-39.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-4.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-40.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-41.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-42.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-43.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-44.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-45.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-46.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-47.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-48.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-49.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-5.html +3168 -0
- data/test/import/data/html/pharma24/ac-page-50.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-51.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-52.html +3003 -0
- data/test/import/data/html/pharma24/ac-page-53.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-54.html +3095 -0
- data/test/import/data/html/pharma24/ac-page-55.html +3041 -0
- data/test/import/data/html/pharma24/ac-page-56.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-57.html +3001 -0
- data/test/import/data/html/pharma24/ac-page-58.html +3001 -0
- data/test/import/data/html/pharma24/ac-page-59.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-6.html +3072 -0
- data/test/import/data/html/pharma24/ac-page-60.html +3001 -0
- data/test/import/data/html/pharma24/ac-page-61.html +3005 -0
- data/test/import/data/html/pharma24/ac-page-62.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-63.html +3007 -0
- data/test/import/data/html/pharma24/ac-page-64.html +3007 -0
- data/test/import/data/html/pharma24/ac-page-65.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-66.html +3011 -0
- data/test/import/data/html/pharma24/ac-page-67.html +3026 -0
- data/test/import/data/html/pharma24/ac-page-68.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-69.html +3010 -0
- data/test/import/data/html/pharma24/ac-page-7.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-70.html +3192 -0
- data/test/import/data/html/pharma24/ac-page-71.html +3133 -0
- data/test/import/data/html/pharma24/ac-page-72.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-73.html +3227 -0
- data/test/import/data/html/pharma24/ac-page-74.html +3241 -0
- data/test/import/data/html/pharma24/ac-page-75.html +3227 -0
- data/test/import/data/html/pharma24/ac-page-76.html +3244 -0
- data/test/import/data/html/pharma24/ac-page-77.html +1164 -0
- data/test/import/data/html/pharma24/ac-page-8.html +2999 -0
- data/test/import/data/html/pharma24/ac-page-9.html +2999 -0
- data/test/import/data/html/pharma24/ac.html +2999 -0
- data/test/import/data/html/pharmnet/display.html +662 -0
- data/test/import/data/html/pharmnet/display1.html +625 -0
- data/test/import/data/html/pharmnet/display2.html +625 -0
- data/test/import/data/html/pharmnet/display3.html +625 -0
- data/test/import/data/html/pharmnet/display_tramal.html +634 -0
- data/test/import/data/html/pharmnet/empty_result.html +395 -0
- data/test/import/data/html/pharmnet/gate.html +246 -0
- data/test/import/data/html/pharmnet/index.html +258 -0
- data/test/import/data/html/pharmnet/paged_result_1.html +401 -0
- data/test/import/data/html/pharmnet/paged_result_2.html +401 -0
- data/test/import/data/html/pharmnet/result.html +401 -0
- data/test/import/data/html/pharmnet/search.html +865 -0
- data/test/import/data/html/pharmnet/search_filtered.html +182 -0
- data/test/import/data/html/whocc/A.html +56 -0
- data/test/import/data/html/whocc/A03.html +48 -0
- data/test/import/data/html/whocc/A03AB.html +48 -0
- data/test/import/data/html/whocc/A06AA.html +47 -0
- data/test/import/data/html/whocc/C03.html +47 -0
- data/test/import/data/html/whocc/login.html +77 -0
- data/test/import/data/mail/csv.mail +81 -0
- data/test/import/data/rtf/pharmnet/aarane.pi.rtf +648 -0
- data/test/import/data/rtf/pharmnet/ace_hemmer_ratio.pi.rtf +324 -0
- data/test/import/data/rtf/pharmnet/ace_hemmer_ratio.rtf +4816 -0
- data/test/import/data/rtf/pharmnet/acemetacin.pi.rtf +388 -0
- data/test/import/data/rtf/pharmnet/acemit.pi.rtf +240 -0
- data/test/import/data/rtf/pharmnet/acerbon.pi.rtf +1257 -0
- data/test/import/data/rtf/pharmnet/acetylcystein.pi.rtf +323 -0
- data/test/import/data/rtf/pharmnet/aciclo.pi.rtf +287 -0
- data/test/import/data/rtf/pharmnet/aciclovir.pi.rtf +236 -0
- data/test/import/data/rtf/pharmnet/actrapid.pi.rtf +322 -0
- data/test/import/data/rtf/pharmnet/amlodipin.pi.rtf +452 -0
- data/test/import/data/rtf/pharmnet/amlodipin.rtf +473 -0
- data/test/import/data/rtf/pharmnet/aspirin.pi.rtf +313 -0
- data/test/import/data/rtf/pharmnet/aspirin.rtf +781 -0
- data/test/import/data/rtf/pharmnet/baymycard.pi.rtf +447 -0
- data/test/import/data/rtf/pharmnet/omeprazol.pi.rtf +510 -0
- data/test/import/data/rtf/pharmnet/omeprazol.rtf +9216 -0
- data/test/import/data/rtf/pharmnet/paroxetin.pi.rtf +678 -0
- data/test/import/data/rtf/pharmnet/selegilin.pi.rtf +312 -0
- data/test/import/data/rtf/pharmnet/selegilin.rtf +683 -0
- data/test/import/data/rtf/pharmnet/valium.pi.rtf +387 -0
- data/test/import/data/txt/gkv/gkv_p1.txt +17 -0
- data/test/import/data/xls/darform_010706.xls +0 -0
- data/test/import/data/xls/fb010706.xls +0 -0
- data/test/import/data/xls/liste_zuzahlungsbefreite_arzneimittel_suchfunktion.xls +0 -0
- data/test/import/data/xls/wirkkurz_010406.xls +0 -0
- data/test/import/data/xml/ATC_2006.xml +47 -0
- data/test/import/data/xml/ATC_2006_ddd.xml +35 -0
- data/test/import/test_dimdi.rb +323 -0
- data/test/import/test_excel.rb +31 -0
- data/test/import/test_gkv.rb +260 -0
- data/test/import/test_pharma24.rb +112 -0
- data/test/import/test_pharmnet.rb +980 -0
- data/test/import/test_rtf.rb +37 -0
- data/test/import/test_whocc.rb +314 -0
- data/test/remote/drugs/test_active_agent.rb +36 -0
- data/test/selenium/selenium-server.jar +0 -0
- data/test/selenium/test_atc_browser.rb +121 -0
- data/test/selenium/test_atc_guidelines.rb +95 -0
- data/test/selenium/test_collect.rb +137 -0
- data/test/selenium/test_compare.rb +294 -0
- data/test/selenium/test_fachinfo.rb +128 -0
- data/test/selenium/test_feedback.rb +192 -0
- data/test/selenium/test_init.rb +64 -0
- data/test/selenium/test_limit.rb +304 -0
- data/test/selenium/test_login.rb +67 -0
- data/test/selenium/test_package.rb +516 -0
- data/test/selenium/test_patinfo.rb +128 -0
- data/test/selenium/test_product.rb +80 -0
- data/test/selenium/test_products.rb +141 -0
- data/test/selenium/test_search.rb +933 -0
- data/test/selenium/test_sequence.rb +513 -0
- data/test/selenium/unit.rb +190 -0
- data/test/stub/http_server.rb +144 -0
- data/test/stub/model.rb +173 -0
- data/test/suite.rb +15 -0
- data/test/test_model.rb +83 -0
- data/test/util/test_code.rb +74 -0
- data/test/util/test_ipn.rb +117 -0
- data/test/util/test_mail.rb +85 -0
- data/test/util/test_multilingual.rb +97 -0
- data/test/util/test_server.rb +94 -0
- data/test/util/test_updater.rb +130 -0
- data/test/util/test_ydim.rb +115 -0
- data/test/util/test_yus.rb +79 -0
- metadata +568 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# Selenium::TestFachinfo -- de.oddb.org -- 01.11.2007 -- hwyss@ywesee.com
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
$: << File.expand_path('..', File.dirname(__FILE__))
|
|
6
|
+
|
|
7
|
+
require 'selenium/unit'
|
|
8
|
+
require 'stub/model'
|
|
9
|
+
require 'oddb/drugs'
|
|
10
|
+
require 'oddb/util'
|
|
11
|
+
|
|
12
|
+
module ODDB
|
|
13
|
+
module Selenium
|
|
14
|
+
class TestFachinfo < Test::Unit::TestCase
|
|
15
|
+
include Selenium::TestCase
|
|
16
|
+
def setup
|
|
17
|
+
Drugs::Package.instances.clear
|
|
18
|
+
super
|
|
19
|
+
end
|
|
20
|
+
def setup_package(pzn='12345')
|
|
21
|
+
product = Drugs::Product.new
|
|
22
|
+
company = Business::Company.new
|
|
23
|
+
company.name.de = 'Producer AG'
|
|
24
|
+
product.company = company
|
|
25
|
+
product.name.de = "Amantadin by Producer"
|
|
26
|
+
company.save
|
|
27
|
+
sequence = Drugs::Sequence.new
|
|
28
|
+
sequence.atc = Drugs::Atc.new('N04BB01')
|
|
29
|
+
sequence.atc.name.de = 'Amantadin'
|
|
30
|
+
ddd = Drugs::Ddd.new('O')
|
|
31
|
+
ddd.dose = Drugs::Dose.new(5, 'mg')
|
|
32
|
+
sequence.atc.add_ddd(ddd)
|
|
33
|
+
sequence.product = product
|
|
34
|
+
composition = Drugs::Composition.new
|
|
35
|
+
composition.equivalence_factor = '44.6'
|
|
36
|
+
sequence.add_composition(composition)
|
|
37
|
+
substance = Drugs::Substance.new
|
|
38
|
+
substance.name.de = "Amantadin"
|
|
39
|
+
dose = Drugs::Dose.new(100, 'mg')
|
|
40
|
+
active_agent = Drugs::ActiveAgent.new(substance, dose)
|
|
41
|
+
composition.add_active_agent(active_agent)
|
|
42
|
+
package = Drugs::Package.new
|
|
43
|
+
code = Util::Code.new(:festbetragsstufe, 3, 'DE')
|
|
44
|
+
package.add_code(code)
|
|
45
|
+
code = Util::Code.new(:zuzahlungsbefreit, true, 'DE')
|
|
46
|
+
package.add_code(code)
|
|
47
|
+
code = Util::Code.new(:prescription, true, 'DE')
|
|
48
|
+
package.add_code(code)
|
|
49
|
+
code = Util::Code.new(:cid, pzn, 'DE')
|
|
50
|
+
package.add_code(code)
|
|
51
|
+
part = Drugs::Part.new
|
|
52
|
+
part.composition = composition
|
|
53
|
+
part.package = package
|
|
54
|
+
part.size = 5
|
|
55
|
+
unit = Drugs::Unit.new
|
|
56
|
+
unit.name.de = 'Ampullen'
|
|
57
|
+
part.unit = unit
|
|
58
|
+
part.quantity = Drugs::Dose.new(20, 'ml')
|
|
59
|
+
package.name.de = 'Amantadin by Producer'
|
|
60
|
+
package.sequence = sequence
|
|
61
|
+
package.add_price(Util::Money.new(6, :public, 'DE'))
|
|
62
|
+
package.add_price(Util::Money.new(10, :festbetrag, 'DE'))
|
|
63
|
+
package.save
|
|
64
|
+
package
|
|
65
|
+
end
|
|
66
|
+
def setup_fachinfo
|
|
67
|
+
document = Text::Document.new
|
|
68
|
+
chapter = Text::Chapter.new('name')
|
|
69
|
+
paragraph = Text::Paragraph.new
|
|
70
|
+
paragraph.set_format("b")
|
|
71
|
+
paragraph << "1. Bezeichnung"
|
|
72
|
+
chapter.add_paragraph paragraph
|
|
73
|
+
paragraph = Text::Paragraph.new
|
|
74
|
+
paragraph << "Amantadin Product"
|
|
75
|
+
chapter.add_paragraph paragraph
|
|
76
|
+
document.add_chapter(chapter)
|
|
77
|
+
chapter = Text::Chapter.new('composition')
|
|
78
|
+
paragraph = Text::Paragraph.new
|
|
79
|
+
paragraph.set_format("b")
|
|
80
|
+
paragraph << "2. Zusammensetzung"
|
|
81
|
+
chapter.add_paragraph paragraph
|
|
82
|
+
table = Text::Table.new
|
|
83
|
+
table << "Für Kinder"
|
|
84
|
+
table.next_cell!
|
|
85
|
+
table << "Für Erwachsene"
|
|
86
|
+
table.next_row!
|
|
87
|
+
table << "10 mg Amantadin pro Tablette"
|
|
88
|
+
table.next_cell!
|
|
89
|
+
table << "100 mg Amantadin pro Tablette"
|
|
90
|
+
chapter.add_paragraph table
|
|
91
|
+
document.add_chapter(chapter)
|
|
92
|
+
chapter = Text::Chapter.new('packaging')
|
|
93
|
+
paragraph = Text::Paragraph.new
|
|
94
|
+
paragraph.set_format("b")
|
|
95
|
+
paragraph << "6.1"
|
|
96
|
+
paragraph.set_format()
|
|
97
|
+
paragraph << " Behältnis"
|
|
98
|
+
chapter.add_paragraph paragraph
|
|
99
|
+
picture = Text::Picture.new
|
|
100
|
+
flexmock(picture).should_receive(:path).and_return('/resources/oddb/logo.png')
|
|
101
|
+
flexmock(picture).should_receive(:filename).and_return('logo.png')
|
|
102
|
+
chapter.add_paragraph picture
|
|
103
|
+
document.add_chapter(chapter)
|
|
104
|
+
document
|
|
105
|
+
end
|
|
106
|
+
def test_fachinfo
|
|
107
|
+
package = setup_package
|
|
108
|
+
package.fachinfo.de = setup_fachinfo
|
|
109
|
+
open "/de/drugs/fachinfo/uid/#{package.sequence.uid}"
|
|
110
|
+
assert_equal "DE - ODDB.org | Medikamente | Fachinformation | Amantadin by Producer | Open Drug Database", get_title
|
|
111
|
+
assert is_text_present("1. Bezeichnung\nAmantadin Product")
|
|
112
|
+
end
|
|
113
|
+
def test_fachinfo__limited
|
|
114
|
+
ODDB.config.query_limit = 1
|
|
115
|
+
package = setup_package
|
|
116
|
+
package.fachinfo.de = setup_fachinfo
|
|
117
|
+
open "/de/drugs/fachinfo/uid/#{package.sequence.uid}"
|
|
118
|
+
assert_equal "DE - ODDB.org | Medikamente | Fachinformation | Amantadin by Producer | Open Drug Database", get_title
|
|
119
|
+
open "/de/drugs/fachinfo/uid/#{package.sequence.uid}"
|
|
120
|
+
assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
|
|
121
|
+
get_title
|
|
122
|
+
assert is_text_present("Abfragebeschränkung")
|
|
123
|
+
ensure
|
|
124
|
+
ODDB.config.query_limit = 20
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# Selenium::TestFeedback -- de.oddb.org -- 11.12.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
|
+
|
|
11
|
+
module ODDB
|
|
12
|
+
module Selenium
|
|
13
|
+
class TestFeedback < Test::Unit::TestCase
|
|
14
|
+
include Selenium::TestCase
|
|
15
|
+
def setup
|
|
16
|
+
ODDB.config.data_dir = File.expand_path('../../data', File.dirname(__FILE__))
|
|
17
|
+
ODDB.config.var = File.expand_path('var', File.dirname(__FILE__))
|
|
18
|
+
@path = File.join(ODDB.config.var, 'rss', 'de', 'feedback.rss')
|
|
19
|
+
File.delete(@path) if(File.exist? @path)
|
|
20
|
+
super
|
|
21
|
+
end
|
|
22
|
+
def teardown
|
|
23
|
+
Drugs::Package.instances.clear
|
|
24
|
+
super
|
|
25
|
+
end
|
|
26
|
+
def setup_package(pzn='12345')
|
|
27
|
+
product = Drugs::Product.new
|
|
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
|
+
ddd = Drugs::Ddd.new('O')
|
|
36
|
+
ddd.dose = Drugs::Dose.new(5, 'mg')
|
|
37
|
+
sequence.atc.add_ddd(ddd)
|
|
38
|
+
sequence.product = product
|
|
39
|
+
composition = Drugs::Composition.new
|
|
40
|
+
composition.equivalence_factor = '44.6'
|
|
41
|
+
sequence.add_composition(composition)
|
|
42
|
+
substance = Drugs::Substance.new
|
|
43
|
+
substance.name.de = "Amantadin"
|
|
44
|
+
dose = Drugs::Dose.new(100, 'mg')
|
|
45
|
+
active_agent = Drugs::ActiveAgent.new(substance, dose)
|
|
46
|
+
composition.add_active_agent(active_agent)
|
|
47
|
+
package = Drugs::Package.new
|
|
48
|
+
code = Util::Code.new(:festbetragsstufe, 3, 'DE')
|
|
49
|
+
package.add_code(code)
|
|
50
|
+
code = Util::Code.new(:zuzahlungsbefreit, true, 'DE')
|
|
51
|
+
package.add_code(code)
|
|
52
|
+
code = Util::Code.new(:prescription, true, 'DE')
|
|
53
|
+
package.add_code(code)
|
|
54
|
+
code = Util::Code.new(:cid, pzn, 'DE')
|
|
55
|
+
package.add_code(code)
|
|
56
|
+
part = Drugs::Part.new
|
|
57
|
+
part.composition = composition
|
|
58
|
+
part.package = package
|
|
59
|
+
part.size = 5
|
|
60
|
+
unit = Drugs::Unit.new
|
|
61
|
+
unit.name.de = 'Ampullen'
|
|
62
|
+
part.unit = unit
|
|
63
|
+
part.quantity = Drugs::Dose.new(20, 'ml')
|
|
64
|
+
package.name.de = 'Amantadin by Producer'
|
|
65
|
+
package.sequence = sequence
|
|
66
|
+
package.add_price(Util::Money.new(6, :public, 'DE'))
|
|
67
|
+
package.add_price(Util::Money.new(10, :festbetrag, 'DE'))
|
|
68
|
+
package.save
|
|
69
|
+
package
|
|
70
|
+
end
|
|
71
|
+
def test_feedback
|
|
72
|
+
package = setup_package
|
|
73
|
+
open "/de/drugs/feedback/pzn/12345"
|
|
74
|
+
assert_equal "DE - ODDB.org | Medikamente | Feedback | Amantadin by Producer | Open Drug Database", get_title
|
|
75
|
+
assert is_text_present('Feedback zu Amantadin by Producer in der Handelsform: 5 Ampullen à 20 ml')
|
|
76
|
+
assert is_element_present('name')
|
|
77
|
+
assert is_element_present('email')
|
|
78
|
+
assert is_element_present('email_public')
|
|
79
|
+
assert is_element_present('message')
|
|
80
|
+
assert is_element_present('item_good_experience')
|
|
81
|
+
assert is_element_present('item_recommended')
|
|
82
|
+
assert is_element_present('item_good_impression')
|
|
83
|
+
assert is_element_present('item_helps')
|
|
84
|
+
assert is_text_present("Was steht im Bild unten?")
|
|
85
|
+
end
|
|
86
|
+
def test_feedback__errors
|
|
87
|
+
package = setup_package
|
|
88
|
+
open "/de/drugs/feedback/pzn/12345"
|
|
89
|
+
assert_equal "DE - ODDB.org | Medikamente | Feedback | Amantadin by Producer | Open Drug Database", get_title
|
|
90
|
+
assert is_text_present('Feedback zu Amantadin by Producer in der Handelsform: 5 Ampullen à 20 ml')
|
|
91
|
+
assert is_element_present('name')
|
|
92
|
+
assert is_element_present('email')
|
|
93
|
+
assert is_element_present('email_public')
|
|
94
|
+
assert is_element_present('message')
|
|
95
|
+
assert is_element_present('item_good_experience')
|
|
96
|
+
assert is_element_present('item_recommended')
|
|
97
|
+
assert is_element_present('item_good_impression')
|
|
98
|
+
assert is_element_present('item_helps')
|
|
99
|
+
assert is_text_present("Was steht im Bild unten?")
|
|
100
|
+
assert is_element_present("//input[starts-with(@name, 'captcha')]")
|
|
101
|
+
click "//input[@type='submit']"
|
|
102
|
+
wait_for_page_to_load "30000"
|
|
103
|
+
assert is_text_present('Ihre Eingabe stimmt nicht mit dem Bild überein. Bitte versuchen Sie es noch einmal.')
|
|
104
|
+
assert is_text_present('Bitte füllen Sie alle Felder aus.')
|
|
105
|
+
assert is_element_present('name')
|
|
106
|
+
assert is_element_present('email')
|
|
107
|
+
assert is_element_present('email_public')
|
|
108
|
+
assert is_element_present('message')
|
|
109
|
+
assert is_element_present('item_good_experience')
|
|
110
|
+
assert is_element_present('item_recommended')
|
|
111
|
+
assert is_element_present('item_good_impression')
|
|
112
|
+
assert is_element_present('item_helps')
|
|
113
|
+
assert is_text_present("Was steht im Bild unten?")
|
|
114
|
+
assert is_element_present("//input[starts-with(@name, 'captcha')]")
|
|
115
|
+
end
|
|
116
|
+
def test_feedback__success
|
|
117
|
+
flexmock(Turing::Challenge).new_instances\
|
|
118
|
+
.should_receive(:valid_answer?).and_return(true)
|
|
119
|
+
package = setup_package
|
|
120
|
+
open "/de/drugs/feedback/pzn/12345"
|
|
121
|
+
assert_equal "DE - ODDB.org | Medikamente | Feedback | Amantadin by Producer | Open Drug Database", get_title
|
|
122
|
+
assert is_text_present('Feedback zu Amantadin by Producer in der Handelsform: 5 Ampullen à 20 ml')
|
|
123
|
+
assert is_element_present('name')
|
|
124
|
+
assert is_element_present('email')
|
|
125
|
+
assert is_element_present('email_public')
|
|
126
|
+
assert is_element_present('message')
|
|
127
|
+
assert is_element_present('item_good_experience')
|
|
128
|
+
assert is_element_present('item_recommended')
|
|
129
|
+
assert is_element_present('item_good_impression')
|
|
130
|
+
assert is_element_present('item_helps')
|
|
131
|
+
assert is_text_present("Was steht im Bild unten?")
|
|
132
|
+
assert is_element_present("//input[starts-with(@name, 'captcha')]")
|
|
133
|
+
type "name", "My Name"
|
|
134
|
+
type "email", "my.email@home.com"
|
|
135
|
+
check "//input[@name='email_public'][@value='1']"
|
|
136
|
+
type "message", "My personal experience"
|
|
137
|
+
check "//input[@name='item_good_experience'][@value='0']"
|
|
138
|
+
check "//input[@name='item_recommended'][@value='1']"
|
|
139
|
+
check "//input[@name='item_good_impression'][@value='0']"
|
|
140
|
+
check "//input[@name='item_helps'][@value='1']"
|
|
141
|
+
type "//input[starts-with(@name, 'captcha')]", "Valid thanks to Flexmock"
|
|
142
|
+
click "//input[@type='submit']"
|
|
143
|
+
wait_for_page_to_load "30000"
|
|
144
|
+
assert is_text_present("Vielen Dank! Ihr Feedback wurde gespeichert. Sie können jetzt noch Änderungen vornehmen.")
|
|
145
|
+
assert !is_text_present('Ihre Eingabe stimmt nicht mit dem Bild überein. Bitte versuchen Sie es noch einmal.')
|
|
146
|
+
assert !is_text_present('Bitte geben Sie einen Namen an.')
|
|
147
|
+
assert !is_text_present('Bitte geben Sie eine gültige E-Mail-Adresse an.')
|
|
148
|
+
assert is_element_present('name')
|
|
149
|
+
assert is_element_present('email')
|
|
150
|
+
assert is_element_present('email_public')
|
|
151
|
+
assert is_element_present('message')
|
|
152
|
+
assert is_element_present('item_good_experience')
|
|
153
|
+
assert is_element_present('item_recommended')
|
|
154
|
+
assert is_element_present('item_good_impression')
|
|
155
|
+
assert is_element_present('item_helps')
|
|
156
|
+
assert !is_element_present("//input[starts-with(@name, 'captcha')]")
|
|
157
|
+
assert !is_text_present("Was steht im Bild unten?")
|
|
158
|
+
assert is_text_present("Feedback von My Name\nerstellt am:")
|
|
159
|
+
assert is_text_present("My personal experience")
|
|
160
|
+
assert !is_text_present("My personal experience with this Product was ok.")
|
|
161
|
+
type "message", "My personal experience with this Product was ok."
|
|
162
|
+
click "//input[@type='submit']"
|
|
163
|
+
wait_for_page_to_load "30000"
|
|
164
|
+
assert is_text_present("Vielen Dank! Ihr Feedback wurde geändert. Sie können noch weitere Änderungen vornehmen.")
|
|
165
|
+
assert is_text_present("My personal experience with this Product was ok.")
|
|
166
|
+
assert File.exist?(@path)
|
|
167
|
+
end
|
|
168
|
+
def test_feedback__search
|
|
169
|
+
setup_package
|
|
170
|
+
open "/de/drugs/feedback/pzn/12345"
|
|
171
|
+
assert_equal "DE - ODDB.org | Medikamente | Feedback | Amantadin by Producer | Open Drug Database", get_title
|
|
172
|
+
type "query", "Amantadin"
|
|
173
|
+
select "dstype", "Preisvergleich"
|
|
174
|
+
wait_for_page_to_load "30000"
|
|
175
|
+
assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
|
|
176
|
+
get_title
|
|
177
|
+
end
|
|
178
|
+
def test_feedback__limited
|
|
179
|
+
ODDB.config.query_limit = 1
|
|
180
|
+
package = setup_package
|
|
181
|
+
open "/de/drugs/feedback/pzn/12345"
|
|
182
|
+
assert_equal "DE - ODDB.org | Medikamente | Feedback | Amantadin by Producer | Open Drug Database", get_title
|
|
183
|
+
open "/de/drugs/feedback/pzn/12345"
|
|
184
|
+
assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
|
|
185
|
+
get_title
|
|
186
|
+
assert is_text_present("Abfragebeschränkung")
|
|
187
|
+
ensure
|
|
188
|
+
ODDB.config.query_limit = 20
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
end
|
|
192
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# Selenium::TestInit -- de.oddb.org -- 20.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/util'
|
|
9
|
+
|
|
10
|
+
module ODDB
|
|
11
|
+
module Selenium
|
|
12
|
+
class TestInit < Test::Unit::TestCase
|
|
13
|
+
include Selenium::TestCase
|
|
14
|
+
def setup
|
|
15
|
+
f1 = Util::Feedback.new
|
|
16
|
+
i1 = flexmock('package')
|
|
17
|
+
p1 = flexmock('part')
|
|
18
|
+
p1.should_receive(:size).and_return(10)
|
|
19
|
+
u1 = Drugs::Unit.new
|
|
20
|
+
u1.name.de = 'Tabletten'
|
|
21
|
+
p1.should_receive(:unit).and_return(u1)
|
|
22
|
+
p1.should_ignore_missing
|
|
23
|
+
i1.should_receive(:name).and_return('Product')
|
|
24
|
+
i1.should_receive(:parts).and_return [p1]
|
|
25
|
+
i1.should_ignore_missing
|
|
26
|
+
f1.item = i1
|
|
27
|
+
f1.save
|
|
28
|
+
super
|
|
29
|
+
end
|
|
30
|
+
def teardown
|
|
31
|
+
Util::Feedback.instances.clear
|
|
32
|
+
super
|
|
33
|
+
end
|
|
34
|
+
def test_init
|
|
35
|
+
open "/"
|
|
36
|
+
assert_equal "DE - ODDB.org | Medikamente | Home | Open Drug Database", get_title
|
|
37
|
+
assert is_element_present("query")
|
|
38
|
+
assert is_element_present("reset")
|
|
39
|
+
assert is_element_present("//input[@name='search']")
|
|
40
|
+
assert_match Regexp.new(ODDB.config.http_server),
|
|
41
|
+
get_attribute("//form[@name='search']@action")
|
|
42
|
+
assert is_element_present("link=Home")
|
|
43
|
+
assert is_element_present("link=Kontakt")
|
|
44
|
+
assert is_element_present("link=Arzneimittel A-Z")
|
|
45
|
+
assert is_element_present("//a[@name='feedback_feed_title']")
|
|
46
|
+
assert is_text_present("Product in der Handelsform: 10 Tabletten")
|
|
47
|
+
end
|
|
48
|
+
def test_init__mm
|
|
49
|
+
open "/de/drugs/home/flavor/mm"
|
|
50
|
+
assert_equal "CH | DE - ODDB.org | Medikamente | Home | Open Drug Database", get_title
|
|
51
|
+
assert is_element_present("query")
|
|
52
|
+
assert is_element_present("reset")
|
|
53
|
+
assert is_element_present("//input[@name='search']")
|
|
54
|
+
assert_match Regexp.new(ODDB.config.http_server),
|
|
55
|
+
get_attribute("//form[@name='search']@action")
|
|
56
|
+
assert is_element_present("link=Home")
|
|
57
|
+
assert is_element_present("link=Kontakt")
|
|
58
|
+
assert is_element_present("link=Arzneimittel A-Z")
|
|
59
|
+
assert !is_element_present("//a[@name='feedback_feed_title']")
|
|
60
|
+
assert !is_text_present("in der Handelsform")
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# Selenium::TestLimit -- de.oddb.org -- 01.02.2008 -- hwyss@ywesee.com
|
|
3
|
+
|
|
4
|
+
$: << File.expand_path('..', File.dirname(__FILE__))
|
|
5
|
+
|
|
6
|
+
require 'selenium/unit'
|
|
7
|
+
require 'odba'
|
|
8
|
+
require 'oddb/drugs'
|
|
9
|
+
require 'oddb/util'
|
|
10
|
+
require 'stub/model'
|
|
11
|
+
|
|
12
|
+
module ODDB
|
|
13
|
+
module Selenium
|
|
14
|
+
class TestLimit < Test::Unit::TestCase
|
|
15
|
+
include Selenium::TestCase
|
|
16
|
+
def setup
|
|
17
|
+
Drugs::Package.instances.clear
|
|
18
|
+
Drugs::Product.instances.clear
|
|
19
|
+
Business::Company.instances.clear
|
|
20
|
+
@cache = flexstub(ODBA.cache)
|
|
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_autosession(yus)
|
|
30
|
+
session = flexmock('session')
|
|
31
|
+
yus.should_receive(:autosession).and_return { |domain, block|
|
|
32
|
+
assert_equal 'org.oddb.de', domain
|
|
33
|
+
block.call session
|
|
34
|
+
}
|
|
35
|
+
session
|
|
36
|
+
end
|
|
37
|
+
def setup_package(name="Amantadin by Producer", atccode='N04BB01')
|
|
38
|
+
product = Drugs::Product.new
|
|
39
|
+
company = Business::Company.new
|
|
40
|
+
company.name.de = 'Producer AG'
|
|
41
|
+
product.company = company
|
|
42
|
+
company.save
|
|
43
|
+
sequence = Drugs::Sequence.new
|
|
44
|
+
sequence.product = product
|
|
45
|
+
atc = Drugs::Atc.new(atccode)
|
|
46
|
+
atc.name.de = 'Amantadin'
|
|
47
|
+
ddd = Drugs::Ddd.new('O')
|
|
48
|
+
ddd.dose = Drugs::Dose.new(10, 'mg')
|
|
49
|
+
atc.add_ddd(ddd)
|
|
50
|
+
sequence.atc = atc
|
|
51
|
+
composition = Drugs::Composition.new
|
|
52
|
+
galform = Drugs::GalenicForm.new
|
|
53
|
+
galform.description.de = 'Tabletten'
|
|
54
|
+
composition.galenic_form = galform
|
|
55
|
+
grp = Drugs::GalenicGroup.new('Tabletten')
|
|
56
|
+
grp.administration = 'O'
|
|
57
|
+
galform.group = grp
|
|
58
|
+
sequence.add_composition(composition)
|
|
59
|
+
substance = Drugs::Substance.new
|
|
60
|
+
substance.name.de = 'Amantadin'
|
|
61
|
+
dose = Drugs::Dose.new(100, 'mg')
|
|
62
|
+
active_agent = Drugs::ActiveAgent.new(substance, dose)
|
|
63
|
+
composition.add_active_agent(active_agent)
|
|
64
|
+
package = Drugs::Package.new
|
|
65
|
+
code = Util::Code.new(:cid, '12345', 'DE')
|
|
66
|
+
package.add_code(code)
|
|
67
|
+
code = Util::Code.new(:festbetragsstufe, 3, 'DE')
|
|
68
|
+
package.add_code(code)
|
|
69
|
+
code = Util::Code.new(:festbetragsgruppe, 4, 'DE')
|
|
70
|
+
package.add_code(code)
|
|
71
|
+
code = Util::Code.new(:zuzahlungsbefreit, true, 'DE')
|
|
72
|
+
package.add_code(code)
|
|
73
|
+
part = Drugs::Part.new
|
|
74
|
+
part.package = package
|
|
75
|
+
part.size = 5
|
|
76
|
+
part.composition = composition
|
|
77
|
+
unit = Drugs::Unit.new
|
|
78
|
+
unit.name.de = 'Ampullen'
|
|
79
|
+
part.unit = unit
|
|
80
|
+
part.quantity = Drugs::Dose.new(20, 'ml')
|
|
81
|
+
package.name.de = name
|
|
82
|
+
package.sequence = sequence
|
|
83
|
+
package.add_price(Util::Money.new(6, :public, 'DE'))
|
|
84
|
+
package.add_price(Util::Money.new(10, :festbetrag, 'DE'))
|
|
85
|
+
package.save
|
|
86
|
+
package
|
|
87
|
+
end
|
|
88
|
+
def test_limit
|
|
89
|
+
ODDB.config.query_limit = 1
|
|
90
|
+
package = setup_package
|
|
91
|
+
open "/de/drugs/search/query/Amantadin"
|
|
92
|
+
assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
|
|
93
|
+
get_title
|
|
94
|
+
2.times {
|
|
95
|
+
open "/de/drugs/search/query/Amantadin"
|
|
96
|
+
assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
|
|
97
|
+
get_title
|
|
98
|
+
assert is_text_present("Abfragebeschränkung")
|
|
99
|
+
}
|
|
100
|
+
ensure
|
|
101
|
+
ODDB.config.query_limit = 20
|
|
102
|
+
end
|
|
103
|
+
def test_limit__login__fail_unknown_user
|
|
104
|
+
ODDB.config.query_limit = 1
|
|
105
|
+
package = setup_package
|
|
106
|
+
open "/de/drugs/search/query/Amantadin"
|
|
107
|
+
assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
|
|
108
|
+
get_title
|
|
109
|
+
open "/de/drugs/search/query/Amantadin"
|
|
110
|
+
assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
|
|
111
|
+
get_title
|
|
112
|
+
assert is_text_present("Abfragebeschränkung")
|
|
113
|
+
@auth.should_receive(:login).and_return { raise Yus::UnknownEntityError }
|
|
114
|
+
type "email", "unknown@bbmb.ch"
|
|
115
|
+
type "pass", "secret"
|
|
116
|
+
click "//input[@name='login_']"
|
|
117
|
+
wait_for_page_to_load "30000"
|
|
118
|
+
assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
|
|
119
|
+
get_title
|
|
120
|
+
assert_equal "error", get_attribute("//label[@for='email']@class")
|
|
121
|
+
ensure
|
|
122
|
+
ODDB.config.query_limit = 20
|
|
123
|
+
end
|
|
124
|
+
def test_limit__login__fail_wrong_password
|
|
125
|
+
ODDB.config.query_limit = 1
|
|
126
|
+
package = setup_package
|
|
127
|
+
open "/de/drugs/search/query/Amantadin"
|
|
128
|
+
assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
|
|
129
|
+
get_title
|
|
130
|
+
open "/de/drugs/search/query/Amantadin"
|
|
131
|
+
assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
|
|
132
|
+
get_title
|
|
133
|
+
assert is_text_present("Abfragebeschränkung")
|
|
134
|
+
@auth.should_receive(:login).and_return { raise Yus::AuthenticationError }
|
|
135
|
+
type "email", "unknown@bbmb.ch"
|
|
136
|
+
type "pass", "secret"
|
|
137
|
+
click "//input[@name='login_']"
|
|
138
|
+
wait_for_page_to_load "30000"
|
|
139
|
+
assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
|
|
140
|
+
get_title
|
|
141
|
+
assert_equal "error", get_attribute("//label[@for='pass']@class")
|
|
142
|
+
ensure
|
|
143
|
+
ODDB.config.query_limit = 20
|
|
144
|
+
end
|
|
145
|
+
def test_limit__login
|
|
146
|
+
ODDB.config.query_limit = 1
|
|
147
|
+
package = setup_package
|
|
148
|
+
open "/de/drugs/search/query/Amantadin"
|
|
149
|
+
assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
|
|
150
|
+
get_title
|
|
151
|
+
open "/de/drugs/search/query/Amantadin"
|
|
152
|
+
assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
|
|
153
|
+
get_title
|
|
154
|
+
assert is_text_present("Abfragebeschränkung")
|
|
155
|
+
|
|
156
|
+
email = "poweruser@oddb.org"
|
|
157
|
+
permissions = [
|
|
158
|
+
['login', 'org.oddb.de.PowerUser'], ['view', 'org.oddb.de']
|
|
159
|
+
]
|
|
160
|
+
user = mock_user email, *permissions
|
|
161
|
+
@auth.should_receive(:login).and_return(user)
|
|
162
|
+
type "email", email
|
|
163
|
+
type "pass", "sikrit"
|
|
164
|
+
click "//input[@name='login_']"
|
|
165
|
+
wait_for_page_to_load "30000"
|
|
166
|
+
assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
|
|
167
|
+
get_title
|
|
168
|
+
ensure
|
|
169
|
+
ODDB.config.query_limit = 20
|
|
170
|
+
end
|
|
171
|
+
def test_limit__new_user__error
|
|
172
|
+
ODDB.config.query_limit = 1
|
|
173
|
+
package = setup_package
|
|
174
|
+
open "/de/drugs/search/query/Amantadin"
|
|
175
|
+
assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
|
|
176
|
+
get_title
|
|
177
|
+
open "/de/drugs/search/query/Amantadin"
|
|
178
|
+
assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
|
|
179
|
+
get_title
|
|
180
|
+
assert is_text_present("Abfragebeschränkung")
|
|
181
|
+
|
|
182
|
+
click "//input[@type='submit']"
|
|
183
|
+
wait_for_page_to_load "30000"
|
|
184
|
+
|
|
185
|
+
assert is_text_present("Bitte wählen Sie eine Zeitdauer")
|
|
186
|
+
ensure
|
|
187
|
+
ODDB.config.query_limit = 20
|
|
188
|
+
end
|
|
189
|
+
def test_limit__new_user
|
|
190
|
+
ODDB.config.query_limit = 1
|
|
191
|
+
package = setup_package
|
|
192
|
+
open "/de/drugs/search/query/Amantadin"
|
|
193
|
+
assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
|
|
194
|
+
get_title
|
|
195
|
+
open "/de/drugs/search/query/Amantadin"
|
|
196
|
+
assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
|
|
197
|
+
get_title
|
|
198
|
+
assert is_text_present("Abfragebeschränkung")
|
|
199
|
+
|
|
200
|
+
click "//input[@name='days']"
|
|
201
|
+
click "//input[@type='submit']"
|
|
202
|
+
wait_for_page_to_load "30000"
|
|
203
|
+
|
|
204
|
+
assert is_text_present("Power-User Datenerfassung")
|
|
205
|
+
assert is_text_present('Bitte geben Sie Ihre persönlichen Angaben ein und wählen Sie einen Benutzernamen und ein Passwort.')
|
|
206
|
+
|
|
207
|
+
assert_equal "E-Mail", get_text("//label[@for='email']")
|
|
208
|
+
assert is_element_present("email")
|
|
209
|
+
assert_equal "Passwort", get_text("//label[@for='pass']")
|
|
210
|
+
assert is_element_present("pass")
|
|
211
|
+
assert_equal "Bestätigung", get_text("//label[@for='confirm_pass']")
|
|
212
|
+
assert is_element_present("confirm_pass")
|
|
213
|
+
assert_equal "Anrede", get_text("//label[@for='salutation']")
|
|
214
|
+
assert is_element_present("salutation")
|
|
215
|
+
assert_equal "Nachname", get_text("//label[@for='name_last']")
|
|
216
|
+
assert is_element_present("name_last")
|
|
217
|
+
assert_equal "Vorname", get_text("//label[@for='name_first']")
|
|
218
|
+
assert is_element_present("name_first")
|
|
219
|
+
|
|
220
|
+
assert is_text_present("365 x")
|
|
221
|
+
assert is_text_present("unlimited access")
|
|
222
|
+
ensure
|
|
223
|
+
ODDB.config.query_limit = 20
|
|
224
|
+
end
|
|
225
|
+
def test_limit__new_user__step2_error
|
|
226
|
+
ODDB.config.query_limit = 1
|
|
227
|
+
package = setup_package
|
|
228
|
+
open "/de/drugs/search/query/Amantadin"
|
|
229
|
+
assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
|
|
230
|
+
get_title
|
|
231
|
+
open "/de/drugs/search/query/Amantadin"
|
|
232
|
+
assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
|
|
233
|
+
get_title
|
|
234
|
+
assert is_text_present("Abfragebeschränkung")
|
|
235
|
+
|
|
236
|
+
click "//input[@name='days']"
|
|
237
|
+
click "//input[@type='submit']"
|
|
238
|
+
wait_for_page_to_load "30000"
|
|
239
|
+
|
|
240
|
+
assert is_text_present("Power-User Datenerfassung")
|
|
241
|
+
assert is_text_present('Bitte geben Sie Ihre persönlichen Angaben ein und wählen Sie einen Benutzernamen und ein Passwort.')
|
|
242
|
+
|
|
243
|
+
@auth.should_receive(:login).and_return { raise Yus::UnknownEntityError }
|
|
244
|
+
click "//input[@type='submit']"
|
|
245
|
+
wait_for_page_to_load "30000"
|
|
246
|
+
assert is_text_present("Bitte füllen Sie alle Felder aus.")
|
|
247
|
+
%w{email pass confirm_pass salutation name_last name_first}.each { |key|
|
|
248
|
+
assert_equal "error", get_attribute("//label[@for='#{key}']@class")
|
|
249
|
+
}
|
|
250
|
+
ensure
|
|
251
|
+
ODDB.config.query_limit = 20
|
|
252
|
+
end
|
|
253
|
+
def test_limit__new_user__step2
|
|
254
|
+
yus = flexmock("yus-server")
|
|
255
|
+
remote = DRb.start_service('druby://localhost:0', yus)
|
|
256
|
+
yus_session = setup_autosession(yus)
|
|
257
|
+
yus_session.should_receive(:get_entity_preferences).and_return({})
|
|
258
|
+
email = "poweruser@oddb.org"
|
|
259
|
+
ODDB.config.auth_server = remote.uri
|
|
260
|
+
ODDB.config.query_limit = 1
|
|
261
|
+
package = setup_package
|
|
262
|
+
open "/de/drugs/search/query/Amantadin"
|
|
263
|
+
assert_equal "DE - ODDB.org | Medikamente | Suchen | Amantadin | Preisvergleich | Open Drug Database",
|
|
264
|
+
get_title
|
|
265
|
+
open "/de/drugs/search/query/Amantadin"
|
|
266
|
+
assert_equal 'DE - ODDB.org | Medikamente | Open Drug Database',
|
|
267
|
+
get_title
|
|
268
|
+
assert is_text_present("Abfragebeschränkung")
|
|
269
|
+
|
|
270
|
+
click "//input[@name='days']"
|
|
271
|
+
click "//input[@type='submit']"
|
|
272
|
+
wait_for_page_to_load "30000"
|
|
273
|
+
|
|
274
|
+
assert is_text_present("Power-User Datenerfassung")
|
|
275
|
+
assert is_text_present('Bitte geben Sie Ihre persönlichen Angaben ein und wählen Sie einen Benutzernamen und ein Passwort.')
|
|
276
|
+
|
|
277
|
+
@auth.should_receive(:login).and_return { raise Yus::UnknownEntityError }
|
|
278
|
+
type "email", email
|
|
279
|
+
type "pass", "secret"
|
|
280
|
+
type "confirm_pass", "secret"
|
|
281
|
+
select "//select[@name='salutation']", "Herr"
|
|
282
|
+
type "name_last", "Test"
|
|
283
|
+
type "name_first", "Fritz"
|
|
284
|
+
|
|
285
|
+
yus_session.should_receive(:create_entity).with(email, "5ebe2294ecd0e0f08eab7690d2a6ee69")
|
|
286
|
+
permissions = [
|
|
287
|
+
['login', 'org.oddb.de.PowerUser'], ['view', 'org.oddb.de']
|
|
288
|
+
]
|
|
289
|
+
user = mock_user email, *permissions
|
|
290
|
+
ODDB.server = server = flexmock("server")
|
|
291
|
+
server.should_receive(:login).and_return(user)
|
|
292
|
+
@auth.should_receive(:login).and_return(user)
|
|
293
|
+
|
|
294
|
+
click "//input[@type='submit']"
|
|
295
|
+
wait_for_page_to_load "30000"
|
|
296
|
+
|
|
297
|
+
output = @http_server.redirected_output
|
|
298
|
+
assert_match /www.sandbox.paypal.com/, output
|
|
299
|
+
ensure
|
|
300
|
+
ODDB.config.query_limit = 20
|
|
301
|
+
end
|
|
302
|
+
end
|
|
303
|
+
end
|
|
304
|
+
end
|