taverna-player 0.1.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/.gitignore +18 -0
- data/Gemfile +18 -0
- data/LICENCE.rdoc +29 -0
- data/README.rdoc +663 -0
- data/Rakefile +65 -0
- data/app/assets/javascripts/taverna_player/application.js +14 -0
- data/app/assets/javascripts/taverna_player/runs.js +42 -0
- data/app/assets/stylesheets/scaffold.css +56 -0
- data/app/assets/stylesheets/taverna_player/application.css +13 -0
- data/app/assets/stylesheets/taverna_player/coderay.css +120 -0
- data/app/controllers/taverna_player/application_controller.rb +16 -0
- data/app/controllers/taverna_player/runs_controller.rb +18 -0
- data/app/controllers/taverna_player/service_credentials_controller.rb +18 -0
- data/app/helpers/taverna_player/application_helper.rb +55 -0
- data/app/helpers/taverna_player/runs_helper.rb +84 -0
- data/app/models/taverna_player/interaction.rb +25 -0
- data/app/models/taverna_player/run.rb +117 -0
- data/app/models/taverna_player/run_port.rb +148 -0
- data/app/models/taverna_player/service_credential.rb +56 -0
- data/app/views/layouts/taverna_player/embedded.html.erb +27 -0
- data/app/views/taverna_player/runs/_button.html.erb +19 -0
- data/app/views/taverna_player/runs/_info.html.erb +56 -0
- data/app/views/taverna_player/runs/_info.json.jbuilder +2 -0
- data/app/views/taverna_player/runs/_inputs.html.erb +34 -0
- data/app/views/taverna_player/runs/_inputs.json.jbuilder +8 -0
- data/app/views/taverna_player/runs/_interaction.html.erb +68 -0
- data/app/views/taverna_player/runs/_outputs.html.erb +41 -0
- data/app/views/taverna_player/runs/_poll.html.erb +27 -0
- data/app/views/taverna_player/runs/create.json.jbuilder +3 -0
- data/app/views/taverna_player/runs/embedded/_button.html.erb +19 -0
- data/app/views/taverna_player/runs/embedded/_info.html.erb +25 -0
- data/app/views/taverna_player/runs/embedded/_inputs.html.erb +32 -0
- data/app/views/taverna_player/runs/embedded/_outputs.html.erb +32 -0
- data/app/views/taverna_player/runs/embedded/new.html.erb +58 -0
- data/app/views/taverna_player/runs/embedded/show.html.erb +39 -0
- data/app/views/taverna_player/runs/embedded/show.js.erb +35 -0
- data/app/views/taverna_player/runs/index.html.erb +40 -0
- data/app/views/taverna_player/runs/index.json.jbuilder +1 -0
- data/app/views/taverna_player/runs/new.html.erb +56 -0
- data/app/views/taverna_player/runs/new.json.jbuilder +1 -0
- data/app/views/taverna_player/runs/show.html.erb +29 -0
- data/app/views/taverna_player/runs/show.js.erb +25 -0
- data/app/views/taverna_player/runs/show.json.jbuilder +25 -0
- data/app/views/taverna_player/service_credentials/_form.html.erb +53 -0
- data/app/views/taverna_player/service_credentials/edit.html.erb +18 -0
- data/app/views/taverna_player/service_credentials/index.html.erb +41 -0
- data/app/views/taverna_player/service_credentials/new.html.erb +17 -0
- data/app/views/taverna_player/service_credentials/show.html.erb +36 -0
- data/config/routes.rb +34 -0
- data/db/migrate/20130313105546_create_taverna_player_runs.rb +16 -0
- data/db/migrate/20130315163019_create_taverna_player_run_ports.rb +15 -0
- data/db/migrate/20130318170744_add_attachment_file_to_taverna_player_run_ports.rb +6 -0
- data/db/migrate/20130319183634_create_delayed_jobs.rb +22 -0
- data/db/migrate/20130320102600_add_status_message_to_taverna_player_runs.rb +5 -0
- data/db/migrate/20130321100110_add_depth_and_metadata_to_taverna_player_run_ports.rb +6 -0
- data/db/migrate/20130704095504_add_attachment_results_to_taverna_player_runs.rb +5 -0
- data/db/migrate/20130705142704_add_embedded_to_taverna_player_runs.rb +5 -0
- data/db/migrate/20130714140911_create_taverna_player_interactions.rb +13 -0
- data/db/migrate/20130717083653_add_proxy_to_taverna_player_runs.rb +6 -0
- data/db/migrate/20130717155415_add_stop_to_taverna_player_runs.rb +5 -0
- data/db/migrate/20130811152840_add_attachment_log_to_taverna_player_runs.rb +5 -0
- data/db/migrate/20130811211725_change_taverna_player_runs_state_column.rb +5 -0
- data/db/migrate/20130812155839_add_name_to_taverna_player_runs.rb +5 -0
- data/db/migrate/20130918135348_create_taverna_player_service_credentials.rb +15 -0
- data/db/migrate/20130919154200_add_displayed_to_taverna_player_interactions.rb +5 -0
- data/db/migrate/20131007153209_add_job_ref_to_taverna_player_runs.rb +13 -0
- data/db/migrate/20131010094537_add_reply_caching_to_taverna_player_interactions.rb +19 -0
- data/db/migrate/20131017141514_add_failure_message_to_taverna_player_run.rb +5 -0
- data/db/migrate/20131018152940_add_serial_number_to_taverna_player_interactions.rb +5 -0
- data/db/migrate/20131018160715_add_parent_run_id_to_taverna_player_runs.rb +5 -0
- data/db/migrate/20131102113933_add_page_uri_to_taverna_player_interaction.rb +5 -0
- data/db/migrate/20131105115218_remove_proxy_from_taverna_player_runs.rb +11 -0
- data/db/migrate/20131105141934_change_taverna_player_interactions_output_value_column_name.rb +5 -0
- data/db/migrate/20131112165520_add_user_to_taverna_player_run.rb +5 -0
- data/lib/generators/taverna_player/callbacks_generator.rb +25 -0
- data/lib/generators/taverna_player/controllers_generator.rb +30 -0
- data/lib/generators/taverna_player/install_generator.rb +30 -0
- data/lib/generators/taverna_player/job_generator.rb +26 -0
- data/lib/generators/taverna_player/models_generator.rb +27 -0
- data/lib/generators/taverna_player/renderers_generator.rb +26 -0
- data/lib/generators/taverna_player/views_generator.rb +27 -0
- data/lib/generators/templates/ReadMe.txt +118 -0
- data/lib/generators/templates/callbacks/render_callbacks.rb +56 -0
- data/lib/generators/templates/callbacks/worker_callbacks.rb +31 -0
- data/lib/generators/templates/controllers/runs_controller.rb +20 -0
- data/lib/generators/templates/controllers/service_credentials_controller.rb +20 -0
- data/lib/generators/templates/initializer.rb +154 -0
- data/lib/generators/templates/models/run.rb +20 -0
- data/lib/tasks/delete-cancelled-runs.rake +26 -0
- data/lib/tasks/delete-old-embedded-runs.rake +26 -0
- data/lib/taverna-player.rb +139 -0
- data/lib/taverna_player/concerns/controllers/runs_controller.rb +281 -0
- data/lib/taverna_player/concerns/controllers/service_credentials_controller.rb +89 -0
- data/lib/taverna_player/concerns/models/run.rb +205 -0
- data/lib/taverna_player/engine.rb +23 -0
- data/lib/taverna_player/model_proxy.rb +51 -0
- data/lib/taverna_player/output_renderer.rb +96 -0
- data/lib/taverna_player/render_callbacks.rb +41 -0
- data/lib/taverna_player/version.rb +15 -0
- data/lib/taverna_player/worker.rb +325 -0
- data/script/delayed_job +5 -0
- data/script/rails +8 -0
- data/taverna_player.gemspec +46 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +16 -0
- data/test/dummy/app/assets/stylesheets/application.css +14 -0
- data/test/dummy/app/controllers/application_controller.rb +15 -0
- data/test/dummy/app/controllers/home_controller.rb +16 -0
- data/test/dummy/app/controllers/taverna_player/runs_controller.rb +25 -0
- data/test/dummy/app/controllers/taverna_player/service_credentials_controller.rb +25 -0
- data/test/dummy/app/controllers/workflows_controller.rb +17 -0
- data/test/dummy/app/models/user.rb +15 -0
- data/test/dummy/app/models/workflow.rb +32 -0
- data/test/dummy/app/views/home/index.html.erb +18 -0
- data/test/dummy/app/views/layouts/application.html.erb +43 -0
- data/test/dummy/app/views/workflows/index.html.erb +35 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +58 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/taverna_player.example.rb +40 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +22 -0
- data/test/dummy/db/migrate/20130314103555_create_workflows.rb +12 -0
- data/test/dummy/db/migrate/20130318141557_create_taverna_player_runs.taverna_player.rb +17 -0
- data/test/dummy/db/migrate/20130318141558_create_taverna_player_run_ports.taverna_player.rb +16 -0
- data/test/dummy/db/migrate/20130318173013_add_attachment_file_to_taverna_player_run_ports.taverna_player.rb +7 -0
- data/test/dummy/db/migrate/20130319183816_create_delayed_jobs.taverna_player.rb +23 -0
- data/test/dummy/db/migrate/20130320102635_add_status_message_to_taverna_player_runs.taverna_player.rb +6 -0
- data/test/dummy/db/migrate/20130321161859_add_depth_and_metadata_to_taverna_player_run_ports.taverna_player.rb +7 -0
- data/test/dummy/db/migrate/20130704100146_add_attachment_results_to_taverna_player_runs.taverna_player.rb +6 -0
- data/test/dummy/db/migrate/20130705142816_add_embedded_to_taverna_player_runs.taverna_player.rb +6 -0
- data/test/dummy/db/migrate/20130714142144_create_taverna_player_interactions.taverna_player.rb +14 -0
- data/test/dummy/db/migrate/20130717084809_add_proxy_to_taverna_player_runs.taverna_player.rb +7 -0
- data/test/dummy/db/migrate/20130718102707_add_stop_to_taverna_player_runs.taverna_player.rb +6 -0
- data/test/dummy/db/migrate/20130811204449_add_attachment_log_to_taverna_player_runs.taverna_player.rb +6 -0
- data/test/dummy/db/migrate/20130811212709_change_taverna_player_runs_state_column.taverna_player.rb +6 -0
- data/test/dummy/db/migrate/20130812161152_add_name_to_taverna_player_runs.taverna_player.rb +6 -0
- data/test/dummy/db/migrate/20130918155525_create_taverna_player_service_credentials.taverna_player.rb +16 -0
- data/test/dummy/db/migrate/20130919155202_add_displayed_to_taverna_player_interactions.taverna_player.rb +6 -0
- data/test/dummy/db/migrate/20131007153659_add_job_ref_to_taverna_player_runs.taverna_player.rb +14 -0
- data/test/dummy/db/migrate/20131016123941_add_reply_caching_to_taverna_player_interactions.taverna_player.rb +20 -0
- data/test/dummy/db/migrate/20131017141614_add_failure_message_to_taverna_player_run.taverna_player.rb +6 -0
- data/test/dummy/db/migrate/20131018153316_add_serial_number_to_taverna_player_interactions.taverna_player.rb +6 -0
- data/test/dummy/db/migrate/20131018164614_add_parent_run_id_to_taverna_player_runs.taverna_player.rb +6 -0
- data/test/dummy/db/migrate/20131102114343_add_page_uri_to_taverna_player_interaction.taverna_player.rb +6 -0
- data/test/dummy/db/migrate/20131105115724_remove_proxy_from_taverna_player_runs.taverna_player.rb +12 -0
- data/test/dummy/db/migrate/20131105142417_change_taverna_player_interactions_output_value_column_name.taverna_player.rb +6 -0
- data/test/dummy/db/migrate/20131112165815_add_user_to_taverna_player_run.taverna_player.rb +6 -0
- data/test/dummy/db/migrate/20131114130937_create_users.rb +10 -0
- data/test/dummy/db/schema.rb +123 -0
- data/test/dummy/lib/callbacks.rb +35 -0
- data/test/dummy/log/.gitkeep +0 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/delayed_job +5 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/test/functional/home_controller_test.rb +28 -0
- data/test/dummy/test/functional/workflows_controller_test.rb +21 -0
- data/test/fixtures/files/crassostrea_gigas.csv +737 -0
- data/test/fixtures/taverna_player/interactions.yml +32 -0
- data/test/fixtures/taverna_player/run_ports.yml +54 -0
- data/test/fixtures/taverna_player/runs.yml +69 -0
- data/test/fixtures/taverna_player/service_credentials.yml +25 -0
- data/test/fixtures/users.yml +16 -0
- data/test/fixtures/workflows.yml +32 -0
- data/test/functional/taverna_player/runs_controller_test.rb +316 -0
- data/test/functional/taverna_player/service_credentials_controller_test.rb +99 -0
- data/test/taverna_player_test.rb +25 -0
- data/test/test_helper.rb +33 -0
- data/test/unit/helpers/taverna_player/application_helper_test.rb +70 -0
- data/test/unit/helpers/taverna_player/runs_helper_test.rb +45 -0
- data/test/unit/taverna_player/interaction_test.rb +47 -0
- data/test/unit/taverna_player/run_port_test.rb +309 -0
- data/test/unit/taverna_player/run_test.rb +196 -0
- data/test/unit/taverna_player/service_credential_test.rb +64 -0
- data/test/workflows/hello.t2flow +164 -0
- data/test/workflows/list_with_errors.t2flow +107 -0
- data/test/workflows/pass_through.t2flow +12 -0
- metadata +539 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) 2013 The University of Manchester, UK.
|
|
3
|
+
#
|
|
4
|
+
# BSD Licenced. See LICENCE.rdoc for details.
|
|
5
|
+
#
|
|
6
|
+
# Taverna Player was developed in the BioVeL project, funded by the European
|
|
7
|
+
# Commission 7th Framework Programme (FP7), through grant agreement
|
|
8
|
+
# number 283359.
|
|
9
|
+
#
|
|
10
|
+
# Author: Robert Haines
|
|
11
|
+
#------------------------------------------------------------------------------
|
|
12
|
+
|
|
13
|
+
require 'test_helper'
|
|
14
|
+
|
|
15
|
+
module TavernaPlayer
|
|
16
|
+
class ServiceCredentialsControllerTest < ActionController::TestCase
|
|
17
|
+
setup do
|
|
18
|
+
@sc1 = taverna_player_service_credentials(:one)
|
|
19
|
+
@sc2 = taverna_player_service_credentials(:two)
|
|
20
|
+
@routes = TavernaPlayer::Engine.routes
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
test "should route to service credentials" do
|
|
24
|
+
assert_routing "/service_credentials",
|
|
25
|
+
{ :controller => "taverna_player/service_credentials",
|
|
26
|
+
:action => "index" }, {}, {}, "Did not route correctly"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
test "should route to a service credential" do
|
|
30
|
+
assert_routing "/service_credentials/1",
|
|
31
|
+
{ :controller => "taverna_player/service_credentials",
|
|
32
|
+
:action => "show", :id => "1" }, {}, {}, "Did not route correctly"
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
test "should get index and be overridden" do
|
|
36
|
+
get :index
|
|
37
|
+
assert_response :success
|
|
38
|
+
assert_not_nil assigns(:service_credentials)
|
|
39
|
+
assert_not_nil assigns(:override)
|
|
40
|
+
assert_template "application", "Did not render with the correct layout"
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
test "should get new" do
|
|
44
|
+
get :new
|
|
45
|
+
assert_response :success
|
|
46
|
+
assert_not_nil assigns(:service_credential)
|
|
47
|
+
assert_template "application", "Did not render with the correct layout"
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
test "should create service_credential" do
|
|
51
|
+
assert_difference('ServiceCredential.count') do
|
|
52
|
+
post :create, :service_credential => {
|
|
53
|
+
:description => @sc1.description,
|
|
54
|
+
:login => @sc1.login,
|
|
55
|
+
:name => @sc1.name,
|
|
56
|
+
:password => @sc1.password,
|
|
57
|
+
:password_confirmation => @sc1.password,
|
|
58
|
+
:uri => @sc1.uri
|
|
59
|
+
}
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
assert_redirected_to service_credential_path(assigns(:service_credential))
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
test "should show service_credential and not be overridden" do
|
|
66
|
+
get :show, :id => @sc1
|
|
67
|
+
assert_response :success
|
|
68
|
+
refute assigns(:override)
|
|
69
|
+
assert_template "application", "Did not render with the correct layout"
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
test "should get edit" do
|
|
73
|
+
get :edit, :id => @sc1
|
|
74
|
+
assert_response :success
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
test "should update service_credential" do
|
|
78
|
+
put :update, :id => @sc1, :service_credential => {
|
|
79
|
+
:description => @sc1.description,
|
|
80
|
+
:login => @sc1.login,
|
|
81
|
+
:name => @sc1.name,
|
|
82
|
+
:password => @sc1.password,
|
|
83
|
+
:password_confirmation => @sc1.password,
|
|
84
|
+
:uri => @sc1.uri
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
assert_redirected_to service_credential_path(assigns(:service_credential))
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
test "should destroy service_credential" do
|
|
91
|
+
assert_difference('ServiceCredential.count', -1) do
|
|
92
|
+
delete :destroy, :id => @sc1
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
assert_response :redirect, "Response was not a redirect"
|
|
96
|
+
assert_redirected_to service_credentials_path
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) 2013 The University of Manchester, UK.
|
|
3
|
+
#
|
|
4
|
+
# BSD Licenced. See LICENCE.rdoc for details.
|
|
5
|
+
#
|
|
6
|
+
# Taverna Player was developed in the BioVeL project, funded by the European
|
|
7
|
+
# Commission 7th Framework Programme (FP7), through grant agreement
|
|
8
|
+
# number 283359.
|
|
9
|
+
#
|
|
10
|
+
# Author: Robert Haines
|
|
11
|
+
#------------------------------------------------------------------------------
|
|
12
|
+
|
|
13
|
+
require 'test_helper'
|
|
14
|
+
|
|
15
|
+
class TavernaPlayerTest < ActiveSupport::TestCase
|
|
16
|
+
test "truth" do
|
|
17
|
+
assert_kind_of Module, TavernaPlayer
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
test "extra mime types present" do
|
|
21
|
+
["application/x-error", "application/x-empty", "inode/x-empty"].each do |type|
|
|
22
|
+
assert_not_empty MIME::Types[type], "MIME type '#{type}' missing"
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
data/test/test_helper.rb
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) 2013 The University of Manchester, UK.
|
|
3
|
+
#
|
|
4
|
+
# BSD Licenced. See LICENCE.rdoc for details.
|
|
5
|
+
#
|
|
6
|
+
# Taverna Player was developed in the BioVeL project, funded by the European
|
|
7
|
+
# Commission 7th Framework Programme (FP7), through grant agreement
|
|
8
|
+
# number 283359.
|
|
9
|
+
#
|
|
10
|
+
# Author: Robert Haines
|
|
11
|
+
#------------------------------------------------------------------------------
|
|
12
|
+
|
|
13
|
+
# Configure Rails Environment
|
|
14
|
+
ENV["RAILS_ENV"] = "test"
|
|
15
|
+
|
|
16
|
+
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
|
17
|
+
require "rails/test_help"
|
|
18
|
+
|
|
19
|
+
Rails.backtrace_cleaner.remove_silencers!
|
|
20
|
+
|
|
21
|
+
# Load support files
|
|
22
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
|
23
|
+
|
|
24
|
+
# Load fixtures from the engine
|
|
25
|
+
if ActiveSupport::TestCase.method_defined?(:fixture_path=)
|
|
26
|
+
ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
class ActiveSupport::TestCase
|
|
30
|
+
include TavernaPlayer::Engine.routes.url_helpers
|
|
31
|
+
include ActionDispatch::TestProcess
|
|
32
|
+
fixtures :all
|
|
33
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) 2013 The University of Manchester, UK.
|
|
3
|
+
#
|
|
4
|
+
# BSD Licenced. See LICENCE.rdoc for details.
|
|
5
|
+
#
|
|
6
|
+
# Taverna Player was developed in the BioVeL project, funded by the European
|
|
7
|
+
# Commission 7th Framework Programme (FP7), through grant agreement
|
|
8
|
+
# number 283359.
|
|
9
|
+
#
|
|
10
|
+
# Author: Robert Haines
|
|
11
|
+
#------------------------------------------------------------------------------
|
|
12
|
+
|
|
13
|
+
require 'test_helper'
|
|
14
|
+
|
|
15
|
+
module TavernaPlayer
|
|
16
|
+
class ApplicationHelperTest < ActionView::TestCase
|
|
17
|
+
setup do
|
|
18
|
+
@run = taverna_player_runs(:one)
|
|
19
|
+
@workflow = workflows(:one)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
test "should output embedded run path from id" do
|
|
23
|
+
id = 2
|
|
24
|
+
path = new_embedded_run_path(id)
|
|
25
|
+
assert path.include?("embedded=true"), "Path missing 'embedded=true'"
|
|
26
|
+
assert path.include?("workflow_id=#{id}"), "Path missing workflow_id"
|
|
27
|
+
refute path.include?("http://"), "Path should not have a URI scheme"
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
test "should output embedded run path from run" do
|
|
31
|
+
id = @run.workflow_id
|
|
32
|
+
path = new_embedded_run_path(@run)
|
|
33
|
+
assert path.include?("embedded=true"), "Path missing 'embedded=true'"
|
|
34
|
+
assert path.include?("workflow_id=#{id}"), "Path missing workflow_id"
|
|
35
|
+
refute path.include?("http://"), "Path should not have a URI scheme"
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
test "should output embedded run path from workflow" do
|
|
39
|
+
id = @workflow.id
|
|
40
|
+
path = new_embedded_run_path(@workflow)
|
|
41
|
+
assert path.include?("embedded=true"), "Path missing 'embedded=true'"
|
|
42
|
+
assert path.include?("workflow_id=#{id}"), "Path missing workflow_id"
|
|
43
|
+
refute path.include?("http://"), "Path should not have a URI scheme"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
test "should output embedded run url from id" do
|
|
47
|
+
id = 2
|
|
48
|
+
path = new_embedded_run_url(id)
|
|
49
|
+
assert path.include?("embedded=true"), "Path missing 'embedded=true'"
|
|
50
|
+
assert path.include?("workflow_id=#{id}"), "Path missing workflow_id"
|
|
51
|
+
assert path.include?("http://"), "Path missing a URI scheme"
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
test "should output embedded run url from run" do
|
|
55
|
+
id = @run.workflow_id
|
|
56
|
+
path = new_embedded_run_url(@run)
|
|
57
|
+
assert path.include?("embedded=true"), "Path missing 'embedded=true'"
|
|
58
|
+
assert path.include?("workflow_id=#{id}"), "Path missing workflow_id"
|
|
59
|
+
assert path.include?("http://"), "Path missing a URI scheme"
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
test "should output embedded run url from workflow" do
|
|
63
|
+
id = @workflow.id
|
|
64
|
+
path = new_embedded_run_url(@workflow)
|
|
65
|
+
assert path.include?("embedded=true"), "Path missing 'embedded=true'"
|
|
66
|
+
assert path.include?("workflow_id=#{id}"), "Path missing workflow_id"
|
|
67
|
+
assert path.include?("http://"), "Path missing a URI scheme"
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) 2013 The University of Manchester, UK.
|
|
3
|
+
#
|
|
4
|
+
# BSD Licenced. See LICENCE.rdoc for details.
|
|
5
|
+
#
|
|
6
|
+
# Taverna Player was developed in the BioVeL project, funded by the European
|
|
7
|
+
# Commission 7th Framework Programme (FP7), through grant agreement
|
|
8
|
+
# number 283359.
|
|
9
|
+
#
|
|
10
|
+
# Author: Robert Haines
|
|
11
|
+
#------------------------------------------------------------------------------
|
|
12
|
+
|
|
13
|
+
require 'test_helper'
|
|
14
|
+
|
|
15
|
+
module TavernaPlayer
|
|
16
|
+
class RunsHelperTest < ActionView::TestCase
|
|
17
|
+
setup do
|
|
18
|
+
@run1 = taverna_player_runs(:one)
|
|
19
|
+
@port1 = taverna_player_run_ports(:one)
|
|
20
|
+
|
|
21
|
+
@run2 = taverna_player_runs(:three)
|
|
22
|
+
@port2 = taverna_player_run_ports(:four)
|
|
23
|
+
|
|
24
|
+
@run3 = taverna_player_runs(:four)
|
|
25
|
+
@port3 = taverna_player_run_ports(:five)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
test "should show text outputs" do
|
|
29
|
+
assert_equal "Hello, World!", @port1.value, "Unexpected workflow output"
|
|
30
|
+
assert show_output(@run1, @port1).include?("<pre>Hello, World!</pre>"),
|
|
31
|
+
"Workflow output not formatted correctly"
|
|
32
|
+
|
|
33
|
+
assert_equal "Rob", @port2.value, "Unexpected workflow output"
|
|
34
|
+
assert show_output(@run2, @port2).include?("<pre>Rob</pre>"),
|
|
35
|
+
"Workflow output not formatted correctly"
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
test "should autolink text output" do
|
|
39
|
+
assert_equal "(http://example.com/path?query=1)", @port3.value,
|
|
40
|
+
"Unexpected workflow output"
|
|
41
|
+
assert show_output(@run3, @port3).include?("(<a href=\"http://example.com/path?query=1\" target=\"_blank\">http://example.com/path?query=1</a>)"),
|
|
42
|
+
"Workflow output not formatted correctly"
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) 2013 The University of Manchester, UK.
|
|
3
|
+
#
|
|
4
|
+
# BSD Licenced. See LICENCE.rdoc for details.
|
|
5
|
+
#
|
|
6
|
+
# Taverna Player was developed in the BioVeL project, funded by the European
|
|
7
|
+
# Commission 7th Framework Programme (FP7), through grant agreement
|
|
8
|
+
# number 283359.
|
|
9
|
+
#
|
|
10
|
+
# Author: Robert Haines
|
|
11
|
+
#------------------------------------------------------------------------------
|
|
12
|
+
|
|
13
|
+
require 'test_helper'
|
|
14
|
+
|
|
15
|
+
module TavernaPlayer
|
|
16
|
+
class InteractionTest < ActiveSupport::TestCase
|
|
17
|
+
test "should not save interaction without a unique_id" do
|
|
18
|
+
int = Interaction.new
|
|
19
|
+
int.serial = "ask0"
|
|
20
|
+
refute int.save, "Saved the interaction without a unique_id"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
test "should not save interaction without a serial number" do
|
|
24
|
+
int = Interaction.new
|
|
25
|
+
int.unique_id = "af19046f-4614-44a7-ad83-f940cea63c4a"
|
|
26
|
+
refute int.save, "Saved the interaction without a serial number"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
test "should not allow two identical serial numbers for the same run" do
|
|
30
|
+
int = Interaction.new
|
|
31
|
+
int.unique_id = "fdb30aed-96ac-4499-b8b6-0a11cf82ccee"
|
|
32
|
+
int.serial = "ask0"
|
|
33
|
+
int.run_id = 4
|
|
34
|
+
refute int.save, "Saved the interaction with a non-unique serial number"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
test "replied defaults to false" do
|
|
38
|
+
int = Interaction.new
|
|
39
|
+
refute int.replied, "Interaction#replied did not default to false"
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
test "displayed defaults to false" do
|
|
43
|
+
int = Interaction.new
|
|
44
|
+
refute int.displayed, "Interaction#displayed did not default to false"
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) 2013 The University of Manchester, UK.
|
|
3
|
+
#
|
|
4
|
+
# BSD Licenced. See LICENCE.rdoc for details.
|
|
5
|
+
#
|
|
6
|
+
# Taverna Player was developed in the BioVeL project, funded by the European
|
|
7
|
+
# Commission 7th Framework Programme (FP7), through grant agreement
|
|
8
|
+
# number 283359.
|
|
9
|
+
#
|
|
10
|
+
# Author: Robert Haines
|
|
11
|
+
#------------------------------------------------------------------------------
|
|
12
|
+
|
|
13
|
+
require 'test_helper'
|
|
14
|
+
|
|
15
|
+
module TavernaPlayer
|
|
16
|
+
class RunIoTest < ActiveSupport::TestCase
|
|
17
|
+
setup do
|
|
18
|
+
@port1 = taverna_player_run_ports(:one)
|
|
19
|
+
@port2 = taverna_player_run_ports(:two)
|
|
20
|
+
@port3 = taverna_player_run_ports(:three)
|
|
21
|
+
@port5 = taverna_player_run_ports(:five)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
test "run port inheritance types" do
|
|
25
|
+
in_port = RunPort::Input.new
|
|
26
|
+
assert_equal "TavernaPlayer::RunPort::Input", in_port.port_type,
|
|
27
|
+
"Input does not inherit as TavernaPlayer::RunPort::Input"
|
|
28
|
+
|
|
29
|
+
out_port = RunPort::Output.new
|
|
30
|
+
assert_equal "TavernaPlayer::RunPort::Output", out_port.port_type,
|
|
31
|
+
"Output does not inherit as TavernaPlayer::RunPort::Output"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
test "should not save run ports without name" do
|
|
35
|
+
in_port = RunPort::Input.new
|
|
36
|
+
assert !in_port.save, "Saved the run input port without a name"
|
|
37
|
+
|
|
38
|
+
out_port = RunPort::Output.new
|
|
39
|
+
assert !out_port.save, "Saved the run output port without a name"
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
test "should not save small input values in a file" do
|
|
43
|
+
test_value =
|
|
44
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
45
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
46
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
47
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
48
|
+
"01234567890123456789012345678901234567890123456789"
|
|
49
|
+
|
|
50
|
+
port = RunPort::Input.create(:name => "test_port")
|
|
51
|
+
port.value = test_value
|
|
52
|
+
assert port.save, "Port did not save"
|
|
53
|
+
assert_equal port.value_preview, port.value, "Value and preview differ"
|
|
54
|
+
assert_nil port.file.path, "File present"
|
|
55
|
+
assert_equal test_value, port.value, "Saved value does not match test"
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
test "should not save small output values in a file" do
|
|
59
|
+
test_value =
|
|
60
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
61
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
62
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
63
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
64
|
+
"01234567890123456789012345678901234567890123456789"
|
|
65
|
+
|
|
66
|
+
port = RunPort::Output.create(:name => "test_port")
|
|
67
|
+
port.value = test_value
|
|
68
|
+
assert port.save, "Port did not save"
|
|
69
|
+
assert_equal port.value_preview, port.value, "Value and preview differ"
|
|
70
|
+
assert_nil port.file.path, "File present"
|
|
71
|
+
assert_equal test_value, port.value, "Saved value does not match test"
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
test "should save large input values in a file" do
|
|
75
|
+
test_value =
|
|
76
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
77
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
78
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
79
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
80
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
81
|
+
"01234567890123456789012345678901234567890123456789"
|
|
82
|
+
|
|
83
|
+
port = RunPort::Input.create(:name => "test_port")
|
|
84
|
+
port.value = test_value
|
|
85
|
+
assert port.save, "Port did not save"
|
|
86
|
+
assert_not_nil port.file.path, "File not present"
|
|
87
|
+
assert port.read_attribute(:value).size == 255, "Port value size != 255"
|
|
88
|
+
assert_equal test_value, port.value, "Saved value does not match test"
|
|
89
|
+
assert_not_equal port.value_preview, port.value, "Value and preview same"
|
|
90
|
+
|
|
91
|
+
port.value = "small"
|
|
92
|
+
assert port.save, "Port did not save"
|
|
93
|
+
assert_nil port.file.path, "File present"
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
test "should save large output values in a file" do
|
|
97
|
+
test_value =
|
|
98
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
99
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
100
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
101
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
102
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
103
|
+
"01234567890123456789012345678901234567890123456789"
|
|
104
|
+
|
|
105
|
+
port = RunPort::Output.create(:name => "test_port")
|
|
106
|
+
port.value = test_value
|
|
107
|
+
assert port.save, "Port did not save"
|
|
108
|
+
assert_not_nil port.file.path, "File not present"
|
|
109
|
+
assert port.read_attribute(:value).size == 255, "Port value size != 255"
|
|
110
|
+
assert_equal test_value, port.value, "Saved value does not match test"
|
|
111
|
+
assert_not_equal port.value_preview, port.value, "Value and preview same"
|
|
112
|
+
|
|
113
|
+
port.value = "small"
|
|
114
|
+
assert port.save, "Port did not save"
|
|
115
|
+
assert_nil port.file.path, "File present"
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
test "should handle non ascii/utf-8 characters in large input values" do
|
|
119
|
+
test_value =
|
|
120
|
+
"\xC2"\
|
|
121
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
122
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
123
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
124
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
125
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
126
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
127
|
+
"\xC2"
|
|
128
|
+
|
|
129
|
+
port = RunPort::Input.create(:name => "test_port")
|
|
130
|
+
port.value = test_value
|
|
131
|
+
assert port.save, "Port did not save"
|
|
132
|
+
assert_not_nil port.file.path, "File not present"
|
|
133
|
+
assert_equal test_value, port.value, "Saved value does not match test"
|
|
134
|
+
assert_not_equal port.value_preview, port.value, "Value and preview same"
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
test "should handle non ascii/utf-8 characters in large output values" do
|
|
138
|
+
test_value =
|
|
139
|
+
"\xC2"\
|
|
140
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
141
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
142
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
143
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
144
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
145
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
146
|
+
"\xC2"
|
|
147
|
+
|
|
148
|
+
port = RunPort::Output.create(:name => "test_port")
|
|
149
|
+
port.value = test_value
|
|
150
|
+
assert port.save, "Port did not save"
|
|
151
|
+
assert_not_nil port.file.path, "File not present"
|
|
152
|
+
assert_equal test_value, port.value, "Saved value does not match test"
|
|
153
|
+
assert_not_equal port.value_preview, port.value, "Value and preview same"
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
test "should display port names correctly" do
|
|
157
|
+
assert_equal @port1.name, @port1.display_name,
|
|
158
|
+
"Name with no spaces should not be changed"
|
|
159
|
+
assert_equal @port2.name, @port2.display_name,
|
|
160
|
+
"Name with no spaces should not be changed"
|
|
161
|
+
assert_not_equal @port3.name, @port3.display_name,
|
|
162
|
+
"Name with spaces should not be unchanged"
|
|
163
|
+
refute @port3.display_name.include?('_'),
|
|
164
|
+
"Display name should not have any underscores"
|
|
165
|
+
refute @port5.display_name.include?('_'),
|
|
166
|
+
"Display name should not have any underscores"
|
|
167
|
+
assert_equal @port3.name.gsub('_', ' '), @port3.display_name,
|
|
168
|
+
"Only underscores should be changed"
|
|
169
|
+
assert_equal @port5.name.gsub('_', ' '), @port5.display_name,
|
|
170
|
+
"Only underscores should be changed"
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
test "should not allow both file and value on create input" do
|
|
174
|
+
file = fixture_file_upload "/files/crassostrea_gigas.csv"
|
|
175
|
+
port = RunPort::Input.create(:name => "test_port", :value => "test",
|
|
176
|
+
:file => file)
|
|
177
|
+
|
|
178
|
+
assert port.value.blank?, "Value should be blank"
|
|
179
|
+
refute port.file.blank?, "File should be present"
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
test "should not allow both file and value on create output" do
|
|
183
|
+
file = fixture_file_upload "/files/crassostrea_gigas.csv"
|
|
184
|
+
port = RunPort::Output.create(:name => "test_port", :value => "test",
|
|
185
|
+
:file => file)
|
|
186
|
+
|
|
187
|
+
assert port.value.blank?, "Value should be blank"
|
|
188
|
+
refute port.file.blank?, "File should be present"
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
test "should not allow both file and value on update input" do
|
|
192
|
+
file = fixture_file_upload "/files/crassostrea_gigas.csv"
|
|
193
|
+
port = RunPort::Input.create(:name => "test_port")
|
|
194
|
+
|
|
195
|
+
port.file = file
|
|
196
|
+
port.value = "test"
|
|
197
|
+
port.save
|
|
198
|
+
|
|
199
|
+
assert port.value.blank?, "Value should be blank"
|
|
200
|
+
refute port.file.blank?, "File should be present"
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
test "should not allow both file and value on update output" do
|
|
204
|
+
file = fixture_file_upload "/files/crassostrea_gigas.csv"
|
|
205
|
+
port = RunPort::Output.create(:name => "test_port")
|
|
206
|
+
|
|
207
|
+
port.file = file
|
|
208
|
+
port.value = "test"
|
|
209
|
+
port.save
|
|
210
|
+
|
|
211
|
+
assert port.value.blank?, "Value should be blank"
|
|
212
|
+
refute port.file.blank?, "File should be present"
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
test "should change large input value correctly" do
|
|
216
|
+
orig_value =
|
|
217
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
218
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
219
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
220
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
221
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
222
|
+
"01234567890123456789012345678901234567890123456789"
|
|
223
|
+
|
|
224
|
+
new_value =
|
|
225
|
+
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"\
|
|
226
|
+
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"\
|
|
227
|
+
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"\
|
|
228
|
+
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"\
|
|
229
|
+
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"\
|
|
230
|
+
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
231
|
+
|
|
232
|
+
port = RunPort::Input.create(:name => "test_port", :value => orig_value)
|
|
233
|
+
refute port.value.blank?, "Value is empty"
|
|
234
|
+
refute port.file.blank?, "File not present"
|
|
235
|
+
|
|
236
|
+
port.value = new_value
|
|
237
|
+
port.save
|
|
238
|
+
refute port.value.blank?, "Value is empty"
|
|
239
|
+
refute port.file.blank?, "File not present"
|
|
240
|
+
assert_not_equal orig_value, port.value, "Port still has old value"
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
test "should change large output value correctly" do
|
|
244
|
+
orig_value =
|
|
245
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
246
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
247
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
248
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
249
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
250
|
+
"01234567890123456789012345678901234567890123456789"
|
|
251
|
+
|
|
252
|
+
new_value =
|
|
253
|
+
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"\
|
|
254
|
+
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"\
|
|
255
|
+
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"\
|
|
256
|
+
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"\
|
|
257
|
+
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"\
|
|
258
|
+
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
259
|
+
|
|
260
|
+
port = RunPort::Output.create(:name => "test_port", :value => orig_value)
|
|
261
|
+
refute port.value.blank?, "Value is empty"
|
|
262
|
+
refute port.file.blank?, "File not present"
|
|
263
|
+
|
|
264
|
+
port.value = new_value
|
|
265
|
+
port.save
|
|
266
|
+
refute port.value.blank?, "Value is empty"
|
|
267
|
+
refute port.file.blank?, "File not present"
|
|
268
|
+
assert_not_equal orig_value, port.value, "Port still has old value"
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
test "should blank out large value if file changed" do
|
|
272
|
+
orig_value =
|
|
273
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
274
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
275
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
276
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
277
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
278
|
+
"01234567890123456789012345678901234567890123456789"
|
|
279
|
+
|
|
280
|
+
port = RunPort::Input.create(:name => "test_port", :value => orig_value)
|
|
281
|
+
refute port.value.blank?, "Value is empty"
|
|
282
|
+
refute port.file.blank?, "File not present"
|
|
283
|
+
|
|
284
|
+
port.file = fixture_file_upload "/files/crassostrea_gigas.csv"
|
|
285
|
+
port.save
|
|
286
|
+
assert_nil port.value, "Port value not nil"
|
|
287
|
+
refute port.file.blank?, "File not present"
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
test "should blank out large value if file removed" do
|
|
291
|
+
orig_value =
|
|
292
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
293
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
294
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
295
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
296
|
+
"01234567890123456789012345678901234567890123456789"\
|
|
297
|
+
"01234567890123456789012345678901234567890123456789"
|
|
298
|
+
|
|
299
|
+
port = RunPort::Input.create(:name => "test_port", :value => orig_value)
|
|
300
|
+
refute port.value.blank?, "Value is empty"
|
|
301
|
+
refute port.file.blank?, "File not present"
|
|
302
|
+
|
|
303
|
+
port.file = nil
|
|
304
|
+
port.save
|
|
305
|
+
assert_nil port.value, "Port value not nil"
|
|
306
|
+
assert port.file.blank?, "File not present"
|
|
307
|
+
end
|
|
308
|
+
end
|
|
309
|
+
end
|