From f0848668d330d31d7a6a3bb1959b51d4babfce2a Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Wed, 15 Jun 2011 13:04:48 +0200 Subject: toxcreate test added --- all.rb | 1 + toxcreate.rb | 96 ++++++++++++++++++++++++++++++++++++++++-------------------- 2 files changed, 65 insertions(+), 32 deletions(-) diff --git a/all.rb b/all.rb index 850a309..1d3c570 100644 --- a/all.rb +++ b/all.rb @@ -11,3 +11,4 @@ require './algorithm.rb' require './fminer.rb' require './lazar.rb' require './validation.rb' +require './toxcreate.rb' diff --git a/toxcreate.rb b/toxcreate.rb index 5a995e2..8287140 100644 --- a/toxcreate.rb +++ b/toxcreate.rb @@ -2,54 +2,84 @@ require 'rubygems' require "rubygems" require 'opentox-ruby' require 'test/unit' -require 'watir-webdriver' +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 - @browser = Watir::Browser.new :firefox @user = "test_ch" @password = "test_ch" end - + + def teardown + end + =begin def test_login - @browser.goto File.join(CONFIG[:services]["opentox-toxcreate"], "login") - @browser.button(:value, "Login").click + visit File.join(CONFIG[:services]["opentox-toxcreate"], "login") + click_on "Login" puts "Login without credentials" - assert @browser.text.include? "Please enter username and password." - @browser.text_field(:id, "username").set(@user) - @browser.text_field(:id, "password").set(@password + "nonsense") - @browser.button(:value, "Login").click + 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 @browser.text.include? "Login failed. Please try again." - @browser.text_field(:id, "username").set(@user) - @browser.text_field(:id, "password").set(@password) - @browser.button(:value, "Login").click - puts "Login as user #{@user}" - assert @browser.text.include? "Welcome #{@user}!" - @browser.goto File.join(CONFIG[:services]["opentox-toxcreate"], "login") - @browser.button(:value, "Login as guest").click + 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 @browser.text.include? "Welcome guest!" - @browser.close + assert page.has_content? "Welcome guest!" end - def teardown - @browser.close + 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 - login(@browser, @user, @password) - @browser.goto CONFIG[:services]["opentox-toxcreate"] - @browser.file_field(:id, "file").set(`pwd`.chomp+"/data/hamster_carcinogenicity.csv") - @browser.button(:value, "Create model").click - # wait until validation is completed - # check results (links, reports, results) - puts @browser.url + 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 -=end + =begin def test_multi_cell_call login(@browser, @user, @password) @@ -83,9 +113,11 @@ class ToxCreateTest < Test::Unit::TestCase =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 \ No newline at end of file +end +=end -- cgit v1.2.3