summaryrefslogtreecommitdiff
path: root/toxcreate.rb
blob: 8287140a17c808e9ca3341c2705c8f644b04aa57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
require 'rubygems'
require "rubygems"
require 'opentox-ruby'
require 'test/unit'
require 'akephalos'
require 'capybara/dsl'
Capybara.default_driver = :akephalos
#Capybara.default_driver = :selenium # use this for visual inspection
Capybara.run_server = false
Capybara.default_wait_time = 600



class ToxCreateTest < Test::Unit::TestCase
  include Capybara

  def setup
    @user = "test_ch"
    @password = "test_ch"
  end

  def teardown
  end

=begin
  def test_login
    visit File.join(CONFIG[:services]["opentox-toxcreate"], "login")
    click_on "Login"
    puts "Login without credentials"    
    assert page.has_content? "Please enter username and password."
    fill_in('Username', :with => @user)
    fill_in('Password', :with => @password + "nonsense")
    click_on "Login"
    puts "Login with wrong password"
    assert page.has_content? "Login failed. Please try again." 
    fill_in('Username', :with => @user)
    fill_in('Password', :with => @password)
    click_on "Login"
    assert page.has_content? "Welcome #{@user}!"
    visit File.join(CONFIG[:services]["opentox-toxcreate"], "login")
    click_on "Login as guest"
    puts "Login as user guest"    
    assert page.has_content? "Welcome guest!"
  end


  def test_predict # works only with selenium
    visit CONFIG[:services]["opentox-toxcreate"]
    click_on "Predict"
    fill_in "or enter a Name, InChI, Smiles, CAS, ...", :with => "NNc1ccccc1"
    check "hamster_carcinogenicity"
    click_button "Predict"
    assert page.has_content? "false"
    assert page.has_content? "0.294"
    click_on "Details"
    assert page.has_content? "0.875"
  end
=end

  def test_toxcreate # works only with akephalos
    #login(@browser, @user, @password)
    visit CONFIG[:services]["opentox-toxcreate"]
    assert page.has_content?('Upload training data')
    attach_file('file', "./data/hamster_carcinogenicity.csv")
    click_on "Create model"
    assert first("h2").has_content? 'hamster_carcinogenicity'
    time = 0
    while first(".model_status").has_no_content?("Completed") and time < 120 do
      sleep 5
      time +=5
    end
    assert first(".model_status").has_content?("Completed")
    click_on "Predict"
    fill_in "or enter a Name, InChI, Smiles, CAS, ...", :with => "NNc1ccccc1"
    check "hamster_carcinogenicity"
    #click_button "Predict"
    #assert page.has_content? "false"
    #assert page.has_content? "0.294"
    #click_on "Details"
    #assert page.has_content? "0.875"
  end

=begin
  def test_multi_cell_call
    login(@browser, @user, @password)
    @browser.goto CONFIG[:services]["opentox-toxcreate"]
    @browser.file_field(:id, "file").set(`pwd`.chomp+"/data/multi_cell_call.csv")
    @browser.button(:value, "Create model").click
    # wait until validation is completed
    # check results (links, reports, results)
    puts @browser.url
  end

  def test_kazius
    login(@browser, @user, @password)
    @browser.goto CONFIG[:services]["opentox-toxcreate"]
    @browser.file_field(:id, "file").set(`pwd`.chomp+"/data/kazius.csv")
    @browser.button(:value, "Create model").click
    # wait until validation is completed
    # check results (links, reports, results)
    puts @browser.url
  end

  def test_parallel_models
    login(@browser, @user, @password)
    10.times do
      @browser.goto CONFIG[:services]["opentox-toxcreate"]
      @browser.file_field(:id, "file").set(`pwd`.chomp+"/data/hamster_carcinogenicity.csv")
      @browser.button(:value, "Create model").click
    end
    #@browser.close
  end
=end
end

=begin
def login(browser, user, password)
  browser.goto File.join(CONFIG[:services]["opentox-toxcreate"], "login")
  browser.text_field(:id, "username").set(user)
  browser.text_field(:id, "password").set(password)
  browser.button(:value, "Login").click
end
=end