ramaze.ch.oddb.org 1.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/History.txt +6 -0
- data/LICENSE +339 -0
- data/Manifest.txt +285 -0
- data/README.txt +45 -0
- data/Rakefile +28 -0
- data/bin/admin +69 -0
- data/bin/exportd +63 -0
- data/bin/migrate +461 -0
- data/bin/oddbd +62 -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/lib/fixes/ruby19.rb +21 -0
- data/lib/fixes/selenium.rb +20 -0
- data/lib/fixes/singular.rb +8 -0
- data/lib/fixes/yaml.rb +13 -0
- data/lib/oddb.rb +11 -0
- data/lib/oddb/business/company.rb +18 -0
- data/lib/oddb/business/invoice.rb +75 -0
- data/lib/oddb/business/price.rb +60 -0
- data/lib/oddb/config.rb +73 -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 +87 -0
- data/lib/oddb/drugs/part.rb +56 -0
- data/lib/oddb/drugs/product.rb +25 -0
- data/lib/oddb/drugs/sequence.rb +61 -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 +89 -0
- data/lib/oddb/export/l10n_sessions.rb +30 -0
- data/lib/oddb/export/rss.rb +44 -0
- data/lib/oddb/export/server.rb +58 -0
- data/lib/oddb/export/xls.rb +119 -0
- data/lib/oddb/export/yaml.rb +123 -0
- data/lib/oddb/html/state/drugs/admin/package.rb +189 -0
- data/lib/oddb/html/state/drugs/admin/product.rb +56 -0
- data/lib/oddb/html/state/drugs/admin/sequence.rb +259 -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/fachinfo.rb +21 -0
- data/lib/oddb/html/state/drugs/feedback.rb +94 -0
- data/lib/oddb/html/state/drugs/global.rb +266 -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 +165 -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 +130 -0
- data/lib/oddb/html/state/paypal/collect.rb +46 -0
- data/lib/oddb/html/state/paypal/redirect.rb +18 -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 +76 -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 +554 -0
- data/lib/oddb/html/util/need_all_input.rb +29 -0
- data/lib/oddb/html/util/session.rb +88 -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 +54 -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 +126 -0
- data/lib/oddb/html/view/drugs/admin/package.rb +237 -0
- data/lib/oddb/html/view/drugs/admin/product.rb +104 -0
- data/lib/oddb/html/view/drugs/admin/sequence.rb +312 -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/fachinfo.rb +46 -0
- data/lib/oddb/html/view/drugs/feedback.rb +231 -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 +398 -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 +84 -0
- data/lib/oddb/html/view/paypal/redirect.rb +51 -0
- data/lib/oddb/html/view/paypal/register_form.rb +106 -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 +54 -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/excel.rb +45 -0
- data/lib/oddb/import/import.rb +39 -0
- data/lib/oddb/import/rtf.rb +410 -0
- data/lib/oddb/import/whocc.rb +173 -0
- data/lib/oddb/import/xml.rb +15 -0
- data/lib/oddb/model.rb +179 -0
- data/lib/oddb/persistence/odba.rb +33 -0
- data/lib/oddb/persistence/odba/business/company.rb +13 -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/regulatory/authority.rb +13 -0
- data/lib/oddb/persistence/odba/regulatory/registration.rb +13 -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/regulatory/authority.rb +14 -0
- data/lib/oddb/regulatory/registration.rb +15 -0
- data/lib/oddb/remote/business/company.rb +23 -0
- data/lib/oddb/remote/drugs/active_agent.rb +27 -0
- data/lib/oddb/remote/drugs/atc.rb +32 -0
- data/lib/oddb/remote/drugs/dose.rb +8 -0
- data/lib/oddb/remote/drugs/galenic_form.rb +25 -0
- data/lib/oddb/remote/drugs/package.rb +126 -0
- data/lib/oddb/remote/drugs/part.rb +30 -0
- data/lib/oddb/remote/drugs/product.rb +19 -0
- data/lib/oddb/remote/drugs/sequence.rb +46 -0
- data/lib/oddb/remote/drugs/substance.rb +20 -0
- data/lib/oddb/remote/drugs/unit.rb +19 -0
- data/lib/oddb/remote/object.rb +36 -0
- data/lib/oddb/remote/text/document.rb +20 -0
- data/lib/oddb/remote/util/m10l_document.rb +22 -0
- data/lib/oddb/text/chapter.rb +27 -0
- data/lib/oddb/text/document.rb +43 -0
- data/lib/oddb/text/format.rb +37 -0
- data/lib/oddb/text/paragraph.rb +58 -0
- data/lib/oddb/text/picture.rb +93 -0
- data/lib/oddb/text/table.rb +68 -0
- data/lib/oddb/util.rb +8 -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/exporter.rb +8 -0
- data/lib/oddb/util/feedback.rb +23 -0
- data/lib/oddb/util/ipn.rb +48 -0
- data/lib/oddb/util/m10l_document.rb +38 -0
- data/lib/oddb/util/mail.rb +73 -0
- data/lib/oddb/util/money.rb +60 -0
- data/lib/oddb/util/multilingual.rb +70 -0
- data/lib/oddb/util/quanty.rb +4 -0
- data/lib/oddb/util/quanty/fact.rb +229 -0
- data/lib/oddb/util/quanty/main.rb +160 -0
- data/lib/oddb/util/quanty/parse.rb +853 -0
- data/lib/oddb/util/quanty/units.dump +0 -0
- data/lib/oddb/util/server.rb +117 -0
- data/lib/oddb/util/updater.rb +41 -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_price.rb +46 -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 +190 -0
- data/test/drugs/test_galenic_form.rb +41 -0
- data/test/drugs/test_package.rb +173 -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 +94 -0
- data/test/export/test_server.rb +117 -0
- data/test/export/test_xls.rb +152 -0
- data/test/export/test_yaml.rb +120 -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/xml/ATC_2006.xml +47 -0
- data/test/import/data/xml/ATC_2006_ddd.xml +35 -0
- data/test/import/test_excel.rb +34 -0
- data/test/import/test_rtf.rb +40 -0
- data/test/import/test_whocc.rb +315 -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 +122 -0
- data/test/selenium/test_atc_guidelines.rb +96 -0
- data/test/selenium/test_collect.rb +138 -0
- data/test/selenium/test_compare.rb +206 -0
- data/test/selenium/test_fachinfo.rb +130 -0
- data/test/selenium/test_feedback.rb +196 -0
- data/test/selenium/test_init.rb +52 -0
- data/test/selenium/test_limit.rb +305 -0
- data/test/selenium/test_login.rb +67 -0
- data/test/selenium/test_package.rb +512 -0
- data/test/selenium/test_patinfo.rb +131 -0
- data/test/selenium/test_product.rb +80 -0
- data/test/selenium/test_products.rb +142 -0
- data/test/selenium/test_search.rb +715 -0
- data/test/selenium/test_sequence.rb +543 -0
- data/test/selenium/unit.rb +185 -0
- data/test/stub/http_server.rb +169 -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 +86 -0
- data/test/util/test_multilingual.rb +97 -0
- data/test/util/test_server.rb +48 -0
- data/test/util/test_updater.rb +353 -0
- data/test/util/test_ydim.rb +115 -0
- data/test/util/test_yus.rb +79 -0
- metadata +418 -0
|
@@ -0,0 +1,543 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# encoding: utf-8
|
|
3
|
+
# Selenium::TestSequence -- de.oddb.org -- 15.04.2008 -- hwyss@ywesee.com
|
|
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 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 "CH - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
|
|
62
|
+
assert is_element_present("atc")
|
|
63
|
+
assert is_element_present("registration")
|
|
64
|
+
=begin ## temporarily disabled: this should be recoded to work with swiss infos
|
|
65
|
+
# in 2.0
|
|
66
|
+
assert is_element_present("fachinfo_url")
|
|
67
|
+
assert is_element_present("patinfo_url")
|
|
68
|
+
=end
|
|
69
|
+
assert !is_element_present("fachinfo_url")
|
|
70
|
+
assert !is_element_present("patinfo_url")
|
|
71
|
+
assert is_element_present("update")
|
|
72
|
+
assert is_element_present("delete")
|
|
73
|
+
|
|
74
|
+
assert_equal "N04BB01", get_value("atc")
|
|
75
|
+
assert_equal "12345.0", get_value("registration")
|
|
76
|
+
|
|
77
|
+
assert is_element_present("link=-")
|
|
78
|
+
assert is_element_present("substance[0][0]")
|
|
79
|
+
assert is_element_present("dose[0][0]")
|
|
80
|
+
assert is_element_present("link=+")
|
|
81
|
+
|
|
82
|
+
assert_equal "Amantadin", get_value("substance[0][0]")
|
|
83
|
+
assert_equal "100 mg", get_value("dose[0][0]")
|
|
84
|
+
end
|
|
85
|
+
def test_sequence__update__error
|
|
86
|
+
sequence = setup_sequence
|
|
87
|
+
other = setup_sequence('54321.5')
|
|
88
|
+
other.save
|
|
89
|
+
user = login_admin
|
|
90
|
+
uid = sequence.uid
|
|
91
|
+
open "/de/drugs/sequence/uid/#{uid}"
|
|
92
|
+
assert_equal "CH - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
|
|
93
|
+
|
|
94
|
+
assert_equal "N04BB01", get_value("atc")
|
|
95
|
+
assert_equal "12345.0", get_value("registration")
|
|
96
|
+
|
|
97
|
+
type 'registration', '54321.5'
|
|
98
|
+
type 'atc', 'A01AA01'
|
|
99
|
+
|
|
100
|
+
click "//input[@name='update']"
|
|
101
|
+
wait_for_page_to_load 30
|
|
102
|
+
|
|
103
|
+
assert is_text_present('Der ATC-Code "A01AA01" ist nicht bekannt.')
|
|
104
|
+
assert is_text_present("Die EU-Registrationsnummer '54321.5' (Product) ist bereits vergeben.")
|
|
105
|
+
|
|
106
|
+
assert_equal 'N04BB01', get_value('atc')
|
|
107
|
+
assert !is_text_present('Amantadin')
|
|
108
|
+
assert is_element_present('atc_name')
|
|
109
|
+
assert_equal '12345.0', get_value('registration')
|
|
110
|
+
|
|
111
|
+
assert_equal('12345.0', sequence.code(:registration, 'EU').value)
|
|
112
|
+
|
|
113
|
+
[:atc, :fi_url, :pi_url, :registration].each { |key|
|
|
114
|
+
assert_not_equal 'test.admin@oddb.org', sequence.data_origin(key)
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
type 'atc', 'A01AA01'
|
|
118
|
+
type 'atc_name', 'new ATC-Code'
|
|
119
|
+
|
|
120
|
+
click "//input[@name='update']"
|
|
121
|
+
wait_for_page_to_load 30
|
|
122
|
+
assert !is_text_present('Der ATC-Code "A01AA01" ist nicht bekannt.')
|
|
123
|
+
assert is_text_present('new ATC-Code')
|
|
124
|
+
assert_equal 'A01AA01', get_value('atc')
|
|
125
|
+
|
|
126
|
+
atc = sequence.atc
|
|
127
|
+
assert_equal 'A01AA01', atc.code
|
|
128
|
+
assert_equal 'new ATC-Code', atc.name.de
|
|
129
|
+
assert_equal [sequence], atc.sequences
|
|
130
|
+
assert atc.saved?
|
|
131
|
+
end
|
|
132
|
+
def test_sequence__update__success
|
|
133
|
+
sequence = setup_sequence
|
|
134
|
+
user = login_admin
|
|
135
|
+
uid = sequence.uid
|
|
136
|
+
open "/de/drugs/sequence/uid/#{uid}"
|
|
137
|
+
assert_equal "CH - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
|
|
138
|
+
|
|
139
|
+
assert is_element_present("atc")
|
|
140
|
+
|
|
141
|
+
assert is_element_present("registration")
|
|
142
|
+
=begin ## temporarily disabled: this should be recoded to work with swiss infos
|
|
143
|
+
# in 2.0
|
|
144
|
+
assert is_element_present("fachinfo_url")
|
|
145
|
+
assert is_element_present("pachinfo_url")
|
|
146
|
+
=end
|
|
147
|
+
assert !is_element_present("fachinfo_url")
|
|
148
|
+
assert !is_element_present("pachinfo_url")
|
|
149
|
+
assert is_element_present("update")
|
|
150
|
+
assert is_element_present("delete")
|
|
151
|
+
|
|
152
|
+
assert_equal "N04BB01", get_value("atc")
|
|
153
|
+
assert_equal "12345.0", get_value("registration")
|
|
154
|
+
|
|
155
|
+
atc = Drugs::Atc.new('A01AA01')
|
|
156
|
+
atc.name.de = "Assigned Atc-Class"
|
|
157
|
+
atc.save
|
|
158
|
+
|
|
159
|
+
type 'registration', '54321.5'
|
|
160
|
+
type 'atc', 'A01AA01'
|
|
161
|
+
|
|
162
|
+
=begin ## temporarily disabled: this should be recoded to work with swiss infos
|
|
163
|
+
# in 2.0
|
|
164
|
+
fachinfo = "A Fachinfo-Document"
|
|
165
|
+
fi_url = "http://host.domain/fi_path.rtf"
|
|
166
|
+
type "fi_url", fi_url
|
|
167
|
+
patinfo = "A Patinfo-Document"
|
|
168
|
+
pi_url = "http://host.domain/pi_path.rtf"
|
|
169
|
+
type "pi_url", pi_url
|
|
170
|
+
|
|
171
|
+
flexmock(Import::PharmNet::Import).new_instances\
|
|
172
|
+
.should_receive(:import_rtf).and_return { |key, agent, url, term|
|
|
173
|
+
assert_instance_of WWW::Mechanize, agent
|
|
174
|
+
assert_equal 'Product', term
|
|
175
|
+
case key
|
|
176
|
+
when :fachinfo
|
|
177
|
+
assert_equal fi_url, url
|
|
178
|
+
fachinfo
|
|
179
|
+
when :patinfo
|
|
180
|
+
assert_equal pi_url, url
|
|
181
|
+
patinfo
|
|
182
|
+
else
|
|
183
|
+
flunk "import_rtf was called with invalid key: #{key.inspect}"
|
|
184
|
+
end
|
|
185
|
+
}
|
|
186
|
+
=end
|
|
187
|
+
|
|
188
|
+
click "//input[@name='update']"
|
|
189
|
+
wait_for_page_to_load 30
|
|
190
|
+
|
|
191
|
+
assert !is_text_present('Der ATC-Code "A01AA01" ist nicht bekannt.')
|
|
192
|
+
assert !is_text_present("Die EU-Registrationsnummer '54321.5' (Product) ist bereits vergeben.")
|
|
193
|
+
|
|
194
|
+
assert_equal 'A01AA01', get_value('atc')
|
|
195
|
+
assert is_text_present('Assigned Atc-Class')
|
|
196
|
+
assert_equal '54321.5', get_value('registration')
|
|
197
|
+
|
|
198
|
+
=begin ## temporarily disabled: this should be recoded to work with swiss infos
|
|
199
|
+
# in 2.0
|
|
200
|
+
assert is_text_present("FI")
|
|
201
|
+
assert is_text_present("GI")
|
|
202
|
+
=end
|
|
203
|
+
|
|
204
|
+
assert_equal(atc, sequence.atc)
|
|
205
|
+
assert_equal('54321.5', sequence.code(:registration, 'EU').value)
|
|
206
|
+
=begin ## temporarily disabled: this should be recoded to work with swiss infos
|
|
207
|
+
assert_equal(fachinfo, sequence.fachinfo.de)
|
|
208
|
+
assert_equal(patinfo, sequence.patinfo.de)
|
|
209
|
+
|
|
210
|
+
[:atc, :fachinfo_url, :patinfo_url, :registration].each { |key|
|
|
211
|
+
=end
|
|
212
|
+
[:atc, :registration].each { |key|
|
|
213
|
+
assert_equal 'test.admin@oddb.org', sequence.data_origin(key)
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
end
|
|
217
|
+
def test_sequence__delete
|
|
218
|
+
sequence = setup_sequence
|
|
219
|
+
user = login_admin
|
|
220
|
+
uid = sequence.uid
|
|
221
|
+
open "/de/drugs/sequence/uid/#{uid}"
|
|
222
|
+
assert_equal "CH - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
|
|
223
|
+
|
|
224
|
+
click "link=Produkt"
|
|
225
|
+
wait_for_page_to_load 30
|
|
226
|
+
link_loc = "link=#{uid}"
|
|
227
|
+
|
|
228
|
+
assert_equal "CH - ODDB.org | Medikamente | Produkt | #{sequence.product.uid} | Open Drug Database", get_title
|
|
229
|
+
assert is_element_present(link_loc)
|
|
230
|
+
click link_loc
|
|
231
|
+
wait_for_page_to_load 30
|
|
232
|
+
|
|
233
|
+
assert_equal "CH - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
|
|
234
|
+
|
|
235
|
+
click "delete"
|
|
236
|
+
assert_equal "Wollen Sie diese Sequenz wirklich löschen?", get_confirmation
|
|
237
|
+
|
|
238
|
+
wait_for_page_to_load 30
|
|
239
|
+
|
|
240
|
+
assert_equal "CH - ODDB.org | Medikamente | Produkt | #{sequence.product.uid} | Open Drug Database", get_title
|
|
241
|
+
assert !is_element_present(link_loc)
|
|
242
|
+
end
|
|
243
|
+
def test_sequence__active_agents
|
|
244
|
+
sequence = setup_sequence
|
|
245
|
+
|
|
246
|
+
sub1 = ODDB::Drugs::Substance.new
|
|
247
|
+
sub1.name.de = 'Enalapril'
|
|
248
|
+
sub1.save
|
|
249
|
+
|
|
250
|
+
user = login_admin
|
|
251
|
+
uid = sequence.uid
|
|
252
|
+
open "/de/drugs/sequence/uid/#{uid}"
|
|
253
|
+
|
|
254
|
+
assert_equal "CH - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
|
|
255
|
+
assert is_element_present("link=+")
|
|
256
|
+
assert is_element_present("link=-")
|
|
257
|
+
|
|
258
|
+
click "link=+"
|
|
259
|
+
assert is_text_present("(unsaved)")
|
|
260
|
+
sleep(0.5)
|
|
261
|
+
assert !is_element_present("link=+")
|
|
262
|
+
assert is_element_present("link=-")
|
|
263
|
+
assert is_element_present("substance[0][1]")
|
|
264
|
+
assert is_element_present("dose[0][1]")
|
|
265
|
+
refresh
|
|
266
|
+
wait_for_page_to_load 30
|
|
267
|
+
|
|
268
|
+
assert_equal "CH - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
|
|
269
|
+
assert is_element_present("link=+")
|
|
270
|
+
assert is_element_present("link=-")
|
|
271
|
+
assert !is_element_present("substance[0][1]")
|
|
272
|
+
assert !is_element_present("dose[0][1]")
|
|
273
|
+
|
|
274
|
+
click "link=+"
|
|
275
|
+
assert is_text_present("(unsaved)")
|
|
276
|
+
sleep(0.5)
|
|
277
|
+
type "substance[0][1]", "Enalapril"
|
|
278
|
+
type "dose[0][1]", "50 mg"
|
|
279
|
+
|
|
280
|
+
click "update"
|
|
281
|
+
wait_for_page_to_load 30
|
|
282
|
+
assert !is_text_present("(unsaved)")
|
|
283
|
+
|
|
284
|
+
assert_equal 1, sequence.compositions.size
|
|
285
|
+
composition = sequence.compositions.first
|
|
286
|
+
assert_equal 2, composition.active_agents.size
|
|
287
|
+
agent = composition.active_agents.last
|
|
288
|
+
assert_equal sub1, agent.substance
|
|
289
|
+
assert_equal ODDB::Drugs::Dose.new(50, 'mg'), agent.dose
|
|
290
|
+
|
|
291
|
+
assert is_element_present("link=+")
|
|
292
|
+
assert is_element_present("link=-")
|
|
293
|
+
assert is_element_present("substance[0][1]")
|
|
294
|
+
assert is_element_present("dose[0][1]")
|
|
295
|
+
assert_equal "Enalapril", get_value("substance[0][1]")
|
|
296
|
+
assert_equal "50 mg", get_value("dose[0][1]")
|
|
297
|
+
|
|
298
|
+
click "link=+"
|
|
299
|
+
sleep(0.5)
|
|
300
|
+
assert is_element_present("substance[0][2]")
|
|
301
|
+
click "//table[@id='active-agents-0']//tr[4]//td[1]//a"
|
|
302
|
+
sleep(0.5)
|
|
303
|
+
assert is_element_present("link=+")
|
|
304
|
+
assert !is_element_present("substance[0][2]")
|
|
305
|
+
|
|
306
|
+
click "//table[@id='active-agents-0']//tr[3]//td[1]//a"
|
|
307
|
+
sleep(0.5)
|
|
308
|
+
assert !is_element_present("substance[0][1]")
|
|
309
|
+
assert_equal 1, composition.active_agents.size
|
|
310
|
+
end
|
|
311
|
+
def test_sequence__galenic_form
|
|
312
|
+
sequence = setup_sequence
|
|
313
|
+
|
|
314
|
+
sub1 = ODDB::Drugs::Substance.new
|
|
315
|
+
sub1.name.de = 'Enalapril'
|
|
316
|
+
sub1.save
|
|
317
|
+
|
|
318
|
+
user = login_admin
|
|
319
|
+
uid = sequence.uid
|
|
320
|
+
open "/de/drugs/sequence/uid/#{uid}"
|
|
321
|
+
|
|
322
|
+
assert_equal "CH - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
|
|
323
|
+
assert is_element_present("galenic_form[0]")
|
|
324
|
+
assert_equal 'Tabletten', get_value("galenic_form[0]")
|
|
325
|
+
|
|
326
|
+
type "galenic_form[0]", ''
|
|
327
|
+
click "update"
|
|
328
|
+
wait_for_page_to_load 30
|
|
329
|
+
|
|
330
|
+
composition = sequence.compositions.first
|
|
331
|
+
assert_nil composition.galenic_form
|
|
332
|
+
assert_equal '', get_value("galenic_form[0]")
|
|
333
|
+
|
|
334
|
+
type "galenic_form[0]", 'Filmtabletten'
|
|
335
|
+
click "update"
|
|
336
|
+
wait_for_page_to_load 30
|
|
337
|
+
|
|
338
|
+
assert_nil composition.galenic_form
|
|
339
|
+
assert_equal 'Filmtabletten', get_value("galenic_form[0]")
|
|
340
|
+
assert is_text_present('Die Galenische Form "Filmtabletten" ist nicht bekannt')
|
|
341
|
+
|
|
342
|
+
refresh
|
|
343
|
+
wait_for_page_to_load 30
|
|
344
|
+
|
|
345
|
+
assert_nil composition.galenic_form
|
|
346
|
+
assert_equal '', get_value("galenic_form[0]")
|
|
347
|
+
|
|
348
|
+
galform = Drugs::GalenicForm.new
|
|
349
|
+
galform.description.de = 'Filmtabletten'
|
|
350
|
+
galform.save
|
|
351
|
+
|
|
352
|
+
type "galenic_form[0]", 'Filmtabletten'
|
|
353
|
+
click "update"
|
|
354
|
+
wait_for_page_to_load 30
|
|
355
|
+
|
|
356
|
+
assert_equal galform, composition.galenic_form
|
|
357
|
+
assert_equal 'Filmtabletten', get_value("galenic_form[0]")
|
|
358
|
+
end
|
|
359
|
+
def test_sequence__compositions
|
|
360
|
+
sequence = setup_sequence
|
|
361
|
+
|
|
362
|
+
sub1 = ODDB::Drugs::Substance.new
|
|
363
|
+
sub1.name.de = 'Enalapril'
|
|
364
|
+
sub1.save
|
|
365
|
+
|
|
366
|
+
user = login_admin
|
|
367
|
+
uid = sequence.uid
|
|
368
|
+
open "/de/drugs/sequence/uid/#{uid}"
|
|
369
|
+
|
|
370
|
+
assert_equal "CH - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
|
|
371
|
+
assert is_element_present("link=Bestandteil hinzufügen")
|
|
372
|
+
assert is_element_present("link=Bestandteil löschen")
|
|
373
|
+
|
|
374
|
+
click "link=Bestandteil hinzufügen"
|
|
375
|
+
sleep(0.5)
|
|
376
|
+
assert is_text_present("(unsaved)")
|
|
377
|
+
assert !is_element_present("link=Bestandteil hinzufügen")
|
|
378
|
+
assert is_element_present("link=Bestandteil löschen")
|
|
379
|
+
assert is_element_present("substance[1][0]")
|
|
380
|
+
assert is_element_present("dose[1][0]")
|
|
381
|
+
refresh
|
|
382
|
+
wait_for_page_to_load 30
|
|
383
|
+
|
|
384
|
+
assert_equal "CH - ODDB.org | Medikamente | Sequenz | #{uid} | Open Drug Database", get_title
|
|
385
|
+
assert is_element_present("link=Bestandteil hinzufügen")
|
|
386
|
+
assert is_element_present("link=Bestandteil löschen")
|
|
387
|
+
assert !is_element_present("substance[1][0]")
|
|
388
|
+
assert !is_element_present("dose[1][0]")
|
|
389
|
+
|
|
390
|
+
click "link=Bestandteil hinzufügen"
|
|
391
|
+
sleep(0.5)
|
|
392
|
+
assert is_text_present("(unsaved)")
|
|
393
|
+
type "substance[1][0]", "Enalapril"
|
|
394
|
+
type "dose[1][0]", "50 mg"
|
|
395
|
+
|
|
396
|
+
click "update"
|
|
397
|
+
wait_for_page_to_load 30
|
|
398
|
+
|
|
399
|
+
assert !is_text_present("(unsaved)")
|
|
400
|
+
assert_equal 2, sequence.compositions.size
|
|
401
|
+
composition = sequence.compositions.last
|
|
402
|
+
assert_equal 1, composition.active_agents.size
|
|
403
|
+
agent = composition.active_agents.last
|
|
404
|
+
assert_equal sub1, agent.substance
|
|
405
|
+
assert_equal ODDB::Drugs::Dose.new(50, 'mg'), agent.dose
|
|
406
|
+
|
|
407
|
+
assert is_element_present("link=Bestandteil hinzufügen")
|
|
408
|
+
assert is_element_present("link=Bestandteil löschen")
|
|
409
|
+
assert is_element_present("substance[1][0]")
|
|
410
|
+
assert is_element_present("dose[1][0]")
|
|
411
|
+
assert_equal "Enalapril", get_value("substance[1][0]")
|
|
412
|
+
assert_equal "50 mg", get_value("dose[1][0]")
|
|
413
|
+
|
|
414
|
+
click "//table[@id='active-agents-1']//a[text()='Bestandteil löschen']"
|
|
415
|
+
sleep(0.5)
|
|
416
|
+
assert !is_element_present("substance[1][0]")
|
|
417
|
+
composition = sequence.compositions.last
|
|
418
|
+
assert_equal 1, composition.active_agents.size
|
|
419
|
+
end
|
|
420
|
+
def test_new_sequence__success
|
|
421
|
+
sequence = setup_sequence
|
|
422
|
+
user = login_admin
|
|
423
|
+
product = sequence.product
|
|
424
|
+
uid = product.uid
|
|
425
|
+
open "/de/drugs/product/uid/#{uid}"
|
|
426
|
+
assert_equal "CH - ODDB.org | Medikamente | Produkt | #{uid} | Open Drug Database", get_title
|
|
427
|
+
|
|
428
|
+
click "new_sequence"
|
|
429
|
+
wait_for_page_to_load 30
|
|
430
|
+
assert_equal "CH - ODDB.org | Medikamente | Neue Sequenz | Open Drug Database", get_title
|
|
431
|
+
|
|
432
|
+
atc = Drugs::Atc.new('A01AA01')
|
|
433
|
+
atc.name.de = "Assigned Atc-Class"
|
|
434
|
+
atc.save
|
|
435
|
+
|
|
436
|
+
type 'registration', '54321.5'
|
|
437
|
+
type 'atc', 'A01AA01'
|
|
438
|
+
|
|
439
|
+
=begin ## temporarily disabled: this should be recoded to work with swiss infos
|
|
440
|
+
# in 2.0
|
|
441
|
+
fachinfo = "A Fachinfo-Document"
|
|
442
|
+
fi_url = "http://host.domain/fi_path.rtf"
|
|
443
|
+
type "fachinfo_url", fi_url
|
|
444
|
+
patinfo = "A Patinfo-Document"
|
|
445
|
+
pi_url = "http://host.domain/pi_path.rtf"
|
|
446
|
+
type "patinfo_url", pi_url
|
|
447
|
+
|
|
448
|
+
flexmock(Import::PharmNet::Import).new_instances\
|
|
449
|
+
.should_receive(:import_rtf).and_return { |key, agent, url, term|
|
|
450
|
+
assert_instance_of WWW::Mechanize, agent
|
|
451
|
+
assert_equal 'Product', term
|
|
452
|
+
case key
|
|
453
|
+
when :fachinfo
|
|
454
|
+
assert_equal fi_url, url
|
|
455
|
+
fachinfo
|
|
456
|
+
when :patinfo
|
|
457
|
+
assert_equal pi_url, url
|
|
458
|
+
patinfo
|
|
459
|
+
else
|
|
460
|
+
flunk "import_rtf was called with invalid key: #{key.inspect}"
|
|
461
|
+
end
|
|
462
|
+
}
|
|
463
|
+
=end
|
|
464
|
+
|
|
465
|
+
click "//input[@name='update']"
|
|
466
|
+
wait_for_page_to_load 30
|
|
467
|
+
|
|
468
|
+
assert !is_text_present('Der ATC-Code "A01AA01" ist nicht bekannt.')
|
|
469
|
+
assert !is_text_present("Die EU-Registrationsnummer '54321.5' (Product) ist bereits vergeben.")
|
|
470
|
+
|
|
471
|
+
assert_equal 'A01AA01', get_value('atc')
|
|
472
|
+
assert is_text_present('Assigned Atc-Class')
|
|
473
|
+
assert_equal '54321.5', get_value('registration')
|
|
474
|
+
=begin ## temporarily disabled: this should be recoded to work with swiss infos
|
|
475
|
+
# in 2.0
|
|
476
|
+
assert is_text_present("FI")
|
|
477
|
+
assert is_text_present("GI")
|
|
478
|
+
=end
|
|
479
|
+
|
|
480
|
+
assert_equal(2, product.sequences.size)
|
|
481
|
+
sequence = product.sequences.last
|
|
482
|
+
|
|
483
|
+
assert_equal(atc, sequence.atc)
|
|
484
|
+
assert_equal('54321.5', sequence.code(:registration, 'EU').value)
|
|
485
|
+
=begin ## temporarily disabled: this should be recoded to work with swiss infos
|
|
486
|
+
# in 2.0
|
|
487
|
+
assert_equal(fachinfo, sequence.fachinfo.de)
|
|
488
|
+
assert_equal(patinfo, sequence.patinfo.de)
|
|
489
|
+
|
|
490
|
+
[:atc, :fachinfo_url, :patinfo_url, :registration].each { |key|
|
|
491
|
+
=end
|
|
492
|
+
[:atc, :registration].each { |key|
|
|
493
|
+
assert_equal 'test.admin@oddb.org', sequence.data_origin(key)
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
end
|
|
497
|
+
def test_new_sequence__errors
|
|
498
|
+
sequence = setup_sequence
|
|
499
|
+
user = login_admin
|
|
500
|
+
product = sequence.product
|
|
501
|
+
uid = product.uid
|
|
502
|
+
open "/de/drugs/product/uid/#{uid}"
|
|
503
|
+
assert_equal "CH - ODDB.org | Medikamente | Produkt | #{uid} | Open Drug Database", get_title
|
|
504
|
+
|
|
505
|
+
click "new_sequence"
|
|
506
|
+
wait_for_page_to_load 30
|
|
507
|
+
assert_equal "CH - ODDB.org | Medikamente | Neue Sequenz | Open Drug Database", get_title
|
|
508
|
+
assert !is_element_present('new_package')
|
|
509
|
+
|
|
510
|
+
type 'registration', '12345.0'
|
|
511
|
+
type 'atc', 'A01AA01'
|
|
512
|
+
|
|
513
|
+
click "//input[@name='update']"
|
|
514
|
+
wait_for_page_to_load 30
|
|
515
|
+
|
|
516
|
+
#assert is_text_present('Der ATC-Code "A01AA01" ist nicht bekannt.')
|
|
517
|
+
assert is_text_present("Die EU-Registrationsnummer '12345.0' (Product) ist bereits vergeben.")
|
|
518
|
+
|
|
519
|
+
assert_equal 'A01AA01', get_value('atc')
|
|
520
|
+
assert_equal '12345.0', get_value('registration')
|
|
521
|
+
|
|
522
|
+
assert_equal(1, product.sequences.size)
|
|
523
|
+
end
|
|
524
|
+
def test_new_sequence__delete
|
|
525
|
+
sequence = setup_sequence
|
|
526
|
+
user = login_admin
|
|
527
|
+
uid = sequence.product.uid
|
|
528
|
+
open "/de/drugs/product/uid/#{uid}"
|
|
529
|
+
assert_equal "CH - ODDB.org | Medikamente | Produkt | #{uid} | Open Drug Database", get_title
|
|
530
|
+
|
|
531
|
+
click "new_sequence"
|
|
532
|
+
wait_for_page_to_load 30
|
|
533
|
+
assert_equal "CH - ODDB.org | Medikamente | Neue Sequenz | Open Drug Database", get_title
|
|
534
|
+
|
|
535
|
+
click "delete"
|
|
536
|
+
wait_for_page_to_load 30
|
|
537
|
+
assert_equal "CH - ODDB.org | Medikamente | Produkt | #{uid} | Open Drug Database", get_title
|
|
538
|
+
|
|
539
|
+
assert_equal 1, sequence.product.sequences.size
|
|
540
|
+
end
|
|
541
|
+
end
|
|
542
|
+
end
|
|
543
|
+
end
|