t2-server 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +1 -0
  3. data/.ruby-env +1 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +7 -1
  7. data/CHANGES.rdoc +49 -0
  8. data/README.rdoc +10 -8
  9. data/bin/t2-delete-runs +0 -3
  10. data/lib/t2-server-cli.rb +16 -9
  11. data/lib/t2-server/exceptions.rb +7 -19
  12. data/lib/t2-server/net/connection.rb +14 -6
  13. data/lib/t2-server/net/credentials.rb +12 -1
  14. data/lib/t2-server/net/parameters.rb +3 -3
  15. data/lib/t2-server/port.rb +12 -29
  16. data/lib/t2-server/run.rb +54 -35
  17. data/lib/t2-server/server.rb +3 -4
  18. data/lib/t2-server/xml.rb +0 -1
  19. data/lib/t2-server/xml/methods.rb +97 -4
  20. data/t2-server.gemspec +4 -1
  21. data/test/helpers/fake-run.rb +47 -0
  22. data/test/helpers/test-cache.rb +49 -0
  23. data/test/helpers/test-xml.rb +36 -0
  24. data/test/helpers/timezone.rb +39 -0
  25. data/test/mocked-server-responses/.gitattributes +1 -0
  26. data/test/mocked-server-responses/get-admin.raw +6 -0
  27. data/test/mocked-server-responses/get-rest-policy-runlimit.raw +6 -0
  28. data/test/mocked-server-responses/get-rest-policy.raw +6 -0
  29. data/test/mocked-server-responses/get-rest-run-input-expected.raw +6 -0
  30. data/test/mocked-server-responses/get-rest-run-input.raw +6 -0
  31. data/test/mocked-server-responses/get-rest-run-interaction-feed-0.raw +11 -0
  32. data/test/mocked-server-responses/get-rest-run-interaction-feed-1.raw +92 -0
  33. data/test/mocked-server-responses/get-rest-run-interaction-feed-2.raw +80 -0
  34. data/test/mocked-server-responses/get-rest-run-name.raw +6 -0
  35. data/test/mocked-server-responses/get-rest-run-output-list-errors.raw +6 -0
  36. data/test/mocked-server-responses/get-rest-run-output.raw +6 -0
  37. data/test/mocked-server-responses/get-rest-run-security-permissions.raw +6 -0
  38. data/test/mocked-server-responses/get-rest-run-security.raw +6 -0
  39. data/test/mocked-server-responses/get-rest-run.raw +6 -0
  40. data/test/mocked-server-responses/get-rest-runs.raw +6 -0
  41. data/test/mocked-server-responses/get-rest.raw +6 -0
  42. data/test/mocked-server-responses/log.txt +1 -0
  43. data/test/mocked-server-responses/mocks.rb +107 -0
  44. data/test/mocked-server-responses/options-admin-allownew.raw +7 -0
  45. data/test/tc_admin.rb +52 -24
  46. data/test/tc_admin_live.rb +66 -0
  47. data/test/tc_connection.rb +87 -0
  48. data/test/tc_connection_exceptions.rb +86 -0
  49. data/test/tc_credentials.rb +73 -0
  50. data/test/tc_interaction.rb +182 -0
  51. data/test/{tc_misc.rb → tc_misc_live.rb} +3 -1
  52. data/test/tc_params.rb +82 -4
  53. data/test/tc_perms.rb +54 -101
  54. data/test/tc_perms_live.rb +150 -0
  55. data/test/tc_ports.rb +192 -0
  56. data/test/tc_run.rb +333 -350
  57. data/test/tc_run_live.rb +453 -0
  58. data/test/{tc_secure.rb → tc_secure_live.rb} +30 -29
  59. data/test/tc_server.rb +115 -42
  60. data/test/tc_server_live.rb +92 -0
  61. data/test/tc_server_version.rb +19 -0
  62. data/test/tc_xml_messages.rb +201 -0
  63. data/test/ts_t2server.rb +37 -43
  64. data/test/workflows/secure/heater-pk.pem +24 -18
  65. data/test/workflows/secure/user-cert.p12 +0 -0
  66. data/version.yml +1 -1
  67. metadata +136 -29
  68. data/lib/t2-server/xml/fragments.rb +0 -78
@@ -0,0 +1,201 @@
1
+ # Copyright (c) 2014 The University of Manchester, UK.
2
+ #
3
+ # All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # * Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # * Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # * Neither the names of The University of Manchester nor the names of its
16
+ # contributors may be used to endorse or promote products derived from this
17
+ # software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
+ # POSSIBILITY OF SUCH DAMAGE.
30
+ #
31
+ # Author: Robert Haines
32
+
33
+ require 't2-server'
34
+
35
+ require 'helpers/test-xml'
36
+
37
+ class TestXMLMessages < Test::Unit::TestCase
38
+
39
+ def setup
40
+ @test = TestXML.new
41
+ end
42
+
43
+ def test_mkdir_fragment
44
+ dir_name = "new_dir"
45
+ fragment = @test.xml_mkdir_fragment(dir_name)
46
+
47
+ root = get_and_check_root(fragment, "mkdir")
48
+
49
+ assert_equal [], root.children
50
+ assert_equal "", root.content
51
+
52
+ assert root.attributes?
53
+ assert_equal dir_name, root["name"]
54
+ end
55
+
56
+ def test_upload_fragment
57
+ file_name = "/file/name.txt"
58
+ file_data = "test & data"
59
+ fragment = @test.xml_upload_fragment(file_name, file_data)
60
+
61
+ root = get_and_check_root(fragment, "upload")
62
+
63
+ assert_equal file_data, root.content
64
+
65
+ assert root.attributes?
66
+ assert_equal file_name, root["name"]
67
+ end
68
+
69
+ def test_input_value_fragment
70
+ input_value = "test & input"
71
+ fragment = @test.xml_input_fragment(input_value)
72
+
73
+ root = get_and_check_root(fragment, "runInput")
74
+
75
+ refute root.attributes?
76
+
77
+ check_child_nodes(root, "value" => input_value)
78
+ end
79
+
80
+ def test_input_file_fragment
81
+ file_name = "/file/name.txt"
82
+ fragment = @test.xml_input_fragment(file_name, :file)
83
+
84
+ root = get_and_check_root(fragment, "runInput")
85
+
86
+ refute root.attributes?
87
+
88
+ check_child_nodes(root, "file" => file_name)
89
+ end
90
+
91
+ def test_trust_fragment
92
+ cert_data = "test contents"
93
+ cert_type = "X509"
94
+ fragment = @test.xml_trust_fragment(cert_data, cert_type)
95
+
96
+ root = get_and_check_root(fragment, "trustedIdentity")
97
+
98
+ refute root.attributes?
99
+
100
+ check_child_nodes(root, "certificateBytes" => cert_data,
101
+ "fileType" => cert_type)
102
+ end
103
+
104
+ def test_permissions_fragment
105
+ username = "taverna"
106
+ permission = "destroy"
107
+ fragment = @test.xml_permissions_fragment(username, permission)
108
+
109
+ root = get_and_check_root(fragment, "permissionUpdate")
110
+
111
+ refute root.attributes?
112
+
113
+ check_child_nodes(root, "userName" => username,
114
+ "permission" => permission)
115
+ end
116
+
117
+ def test_password_cred_fragment
118
+ service = "http://example.com/service"
119
+ username = "taverna"
120
+ password = "T@v3rNa!"
121
+ fragment = @test.xml_password_cred_fragment(service, username, password)
122
+
123
+ root = get_and_check_root(fragment, "credential")
124
+
125
+ refute root.attributes?
126
+
127
+ check_child_nodes(root, "userpass" => {
128
+ "serviceURI" => service,
129
+ "username" => username,
130
+ "password" => password
131
+ }
132
+ )
133
+ end
134
+
135
+ def test_keypair_cred_fragment
136
+ service = "http://example.com/service"
137
+ cred_name = "test_name"
138
+ cred_bytes = "example cred"
139
+ cred_type = "PKCS12"
140
+ password = "T@v3rNa!"
141
+ fragment = @test.xml_keypair_cred_fragment(service, cred_name, cred_bytes,
142
+ cred_type, password)
143
+
144
+ root = get_and_check_root(fragment, "credential")
145
+
146
+ refute root.attributes?
147
+
148
+ check_child_nodes(root, "keypair" => {
149
+ "serviceURI" => service,
150
+ "credentialName" => cred_name,
151
+ "credentialBytes" => cred_bytes,
152
+ "fileType" => cred_type,
153
+ "unlockPassword" => password
154
+ }
155
+ )
156
+ end
157
+
158
+ private
159
+
160
+ def check_child_nodes(node, children)
161
+ names = children.keys
162
+ num_children = 0
163
+
164
+ node.each_element do |child|
165
+ num_children += 1
166
+ assert names.include?(child.name)
167
+ if children[child.name].instance_of?(Hash)
168
+ check_child_nodes(child, children[child.name])
169
+ else
170
+ assert_equal children[child.name], child.content
171
+ end
172
+ end
173
+
174
+ assert_equal names.length, num_children
175
+ end
176
+
177
+ def get_and_check_root(fragment, root_name)
178
+ assert fragment.instance_of?(String)
179
+
180
+ doc = LibXML::XML::Document.string(fragment)
181
+ root = doc.root
182
+ assert_equal root_name, root.name
183
+ check_namespaces(root)
184
+
185
+ root
186
+ end
187
+
188
+ def check_namespaces(node)
189
+ namespaces = node.namespaces
190
+ assert_nil namespaces.default
191
+
192
+ ns_list = namespaces.definitions
193
+ assert_equal 4, ns_list.count
194
+
195
+ ns_list.each do |ns|
196
+ assert T2Server::XML::Namespaces::MAP.has_key?(ns.prefix)
197
+ assert T2Server::XML::Namespaces::MAP.has_value?(ns.href)
198
+ end
199
+ end
200
+
201
+ end
@@ -30,6 +30,9 @@
30
30
  #
31
31
  # Author: Robert Haines
32
32
 
33
+ require 'coveralls'
34
+ Coveralls.wear!
35
+
33
36
  require 'test/unit'
34
37
  require 't2-server'
35
38
 
@@ -37,32 +40,11 @@ require 't2-server'
37
40
  # command line.
38
41
  if ARGV.size != 0
39
42
  address = ARGV[0]
40
-
41
- unless ARGV[1].nil?
42
- user1, pass1 = ARGV[1].split(":")
43
- user1 = nil if pass1.nil?
44
- end
45
-
46
- unless ARGV[2].nil?
47
- user2, pass2 = ARGV[2].split(":")
48
- user2 = nil if pass2.nil?
49
- end
50
-
51
- puts "Using server at: #{address}"
52
- puts " With user(s): #{user1} #{user2}" if user1
43
+ user1 = ARGV[1]
44
+ user2 = ARGV[2]
53
45
 
54
46
  # Clear the commandline arguments so that we don't confuse runit.
55
47
  ARGV.clear
56
- elsif !ENV["TRAVIS"]
57
- # get a server address to test if not in travis - 30 second timeout
58
- print "\nPlease supply a valid Taverna 2 Server address.\n\nNOTE that " +
59
- "these tests will fully load the server and then delete all the runs " +
60
- "that it has permission to do so - if you are not using security ALL " +
61
- "runs will be deleted!\n(leave blank to skip tests): "
62
- $stdout.flush
63
- if select([$stdin], [], [], 30)
64
- address = $stdin.gets.chomp
65
- end
66
48
  end
67
49
 
68
50
  # If address is still unset then set it to something.
@@ -70,26 +52,38 @@ address ||= ""
70
52
 
71
53
  # the testcases to run
72
54
  require 'tc_util'
55
+ require 'tc_xml_messages'
73
56
  require 'tc_params'
57
+ require 'tc_connection'
74
58
  require 'tc_server_version'
75
- unless address == ""
59
+ require 'tc_credentials'
60
+
61
+ # Only run tests against a live server if we have an address for one.
62
+ if address == ""
63
+ $uri = URI.parse("https://localhost/taverna")
64
+ $userinfo = "test:test"
65
+ $userinfo1 = "test1:test1"
66
+ $creds = T2Server::HttpBasic.parse($userinfo)
67
+ $creds1 = T2Server::HttpBasic.parse($userinfo1)
68
+ $conn_params = T2Server::DefaultConnectionParameters.new
69
+
70
+ require 'tc_connection_exceptions'
71
+ require 'tc_server'
72
+ require 'tc_ports'
73
+ require 'tc_perms'
74
+ require 'tc_run'
75
+ require 'tc_interaction'
76
+ require 'tc_admin'
77
+ else
76
78
  $uri, $creds = T2Server::Util.strip_uri_credentials(address)
77
79
 
78
80
  # override creds if passed in on the command line
79
- $creds = T2Server::HttpBasic.new(user1, pass1) if user1
80
- $creds1 = T2Server::HttpBasic.new(user2, pass2) if user2
81
+ $creds = T2Server::HttpBasic.parse(user1) if user1
82
+ $creds1 = T2Server::HttpBasic.parse(user2) if user2
81
83
 
82
- $wkf_pass = "test/workflows/pass_through.t2flow"
83
- $wkf_lists = "test/workflows/empty_list.t2flow"
84
- $wkf_l_v = "test/workflows/list_and_value.t2flow"
85
- $wkf_xml = "test/workflows/xml_xpath.t2flow"
86
- $wkf_fail = "test/workflows/always_fail.t2flow"
87
- $wkf_errors = "test/workflows/list_with_errors.t2flow"
88
- $wkf_no_io = "test/workflows/no-ports.t2flow"
89
- $wkf_miss_o = "test/workflows/missing_outputs.t2flow"
90
- $list_input = "test/workflows/empty_list_input.baclava"
91
- $file_input = "test/workflows/in.txt"
92
- $file_strs = "test/workflows/strings.txt"
84
+ puts "Running tests against a live server at: #{$uri}"
85
+ print " With user(s): #{$creds.username}" if $creds
86
+ puts $creds1.nil? ? "" : " #{$creds1.username}"
93
87
 
94
88
  if $uri.scheme == "http"
95
89
  $conn_params = T2Server::DefaultConnectionParameters.new
@@ -102,15 +96,15 @@ unless address == ""
102
96
  # This will drop out before further tests are run
103
97
  T2Server::Server.new($uri, $conn_params)
104
98
 
105
- require 'tc_server'
106
- require 'tc_run'
107
- require 'tc_admin'
108
- require 'tc_secure'
109
- require 'tc_misc'
99
+ require 'tc_server_live'
100
+ require 'tc_run_live'
101
+ require 'tc_admin_live'
102
+ require 'tc_secure_live'
103
+ require 'tc_misc_live'
110
104
 
111
105
  # if we have two sets of credentials we can run permissions tests
112
106
  if $creds1
113
- require 'tc_perms'
107
+ require 'tc_perms_live'
114
108
  end
115
109
  rescue RuntimeError => e
116
110
  puts "!!!\nNo tests on the remote server could be run.\n#{e.message}\n!!!"
@@ -1,20 +1,26 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- MIIDyDCCArCgAwIBAgIETlYTBzANBgkqhkiG9w0BAQUFADCBpTELMAkGA1UEBhMCVUsxGzAZBgNV
3
- BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjETMBEGA1UEBxMKTWFuY2hlc3RlcjEhMB8GA1UEChMYVW5p
4
- dmVyc2l0eSBvZiBNYW5jaGVzdGVyMSMwIQYDVQQLExpTY2hvb2wgb2YgQ29tcHV0ZXIgU2NpZW5j
5
- ZTEcMBoGA1UEAxMTaGVhdGVyLmNzLm1hbi5hYy51azAeFw0xMTA4MjUwOTE2NTVaFw0yMTA4MjIw
6
- OTE2NTVaMIGlMQswCQYDVQQGEwJVSzEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRMwEQYD
7
- VQQHEwpNYW5jaGVzdGVyMSEwHwYDVQQKExhVbml2ZXJzaXR5IG9mIE1hbmNoZXN0ZXIxIzAhBgNV
8
- BAsTGlNjaG9vbCBvZiBDb21wdXRlciBTY2llbmNlMRwwGgYDVQQDExNoZWF0ZXIuY3MubWFuLmFj
9
- LnVrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1/TuezSNYFpD2NTtw5UGECCPwClV
10
- Om08Nca1aanOVxv5rcn4eUVbu6Btm/dqgiCeV8nCyu7nEPvWP+Kvktseikx3LZ08qKdDRLpNa68/
11
- WrjcbS6ICs2hphhqftHSpl0OPnWkQicbI7Z4uUdqmF6DsLDOLpRfiYhh9lZ0FM7PD3yt42GR5E2B
12
- j465IJQweZxLCsRKwuZlvOsWJxnx1MHVj7ZFBYl7HSBfEpvThyqKL5R7FOZW0zpG3+Y+S9HmfQYk
13
- BipXrrNS1+lsIwPU8jD31PBzVPBNxIeKYHxXCKLf+EBah/tAKSxIzUihxhh1pdNEPvUyy2zY9vyv
14
- 1PfXd8Uk0wIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQAtiPDBRlmjhFd9DP1NvbyfMApdjLufMLvr
15
- mzze3W6A4XUZj+kXR/Z3KYj84pWOnhe+Benvw5bIf2JM+sqIiSUA+TB8losx+SeY5hZ3lqEFY1wZ
16
- 1qy47hH3rY98RdSAXlAhvGCEL/CktvIEHgaSlCmrOvK76ySwRCTYA9DJTWeB81R7bP7le2ewSg5c
17
- MY/Hy3VBkMGbVnZQoHhkUd7TIsPqD1SvYQDCug49JFsKsyrfep3nANAQO7uR8FYrCYtXj66z9ziO
18
- m0gZm+h/Rq8StgMrNwmi+3mGAgRJ6JKj4vAWJfyUSaOjLLf9u3BvrxVtQKCMSDGx25dBFlZXHIhE
19
- rONf
2
+ MIIEczCCA1ugAwIBAgIQPNDfg7NaMsjkGjowei7/JjANBgkqhkiG9w0BAQUFADA2
3
+ MQswCQYDVQQGEwJOTDEPMA0GA1UEChMGVEVSRU5BMRYwFAYDVQQDEw1URVJFTkEg
4
+ U1NMIENBMB4XDTEzMDUyMjAwMDAwMFoXDTE2MDUyMTIzNTk1OVowQTEhMB8GA1UE
5
+ CxMYRG9tYWluIENvbnRyb2wgVmFsaWRhdGVkMRwwGgYDVQQDExNoZWF0ZXIuY3Mu
6
+ bWFuLmFjLnVrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2egVdh/d
7
+ PbrglnEp/BATt2UWk48tplWdt0aFcpvatItJZ4+CY0Rfd0TCIRKDp+PppbE1/PcE
8
+ pe77Zngiu1YYnOpAIoS3Mfgc/yxssEHJj/tAjY1d4/NFa8jwY/MIoSPZrNGtTEpf
9
+ IMn7OUNsEh1YyWYdDmvNaxQFdLVjO/QhFqtQedUJEg7YaD1/OacmQoWAZvOPkXeQ
10
+ lUHpieiFjGeJYI/RCqWE1tjU6E/4WtczOsXXA50kFJ/XykQVwto3e8ckKju6HI0g
11
+ FL1R/7wrhfSJ5rkiwmlPWZd5Keik/va/8JJKlWG3OzYaLb5qPTqgaKTTKbWvU/nX
12
+ cPeKaIZ0Sa7AYwIDAQABo4IBcDCCAWwwHwYDVR0jBBgwFoAUDL2TaAzz3qujSWsr
13
+ N1dH6pDjue0wHQYDVR0OBBYEFEKp10paTphB4PCL5kK5C/aVod4+MA4GA1UdDwEB
14
+ /wQEAwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF
15
+ BQcDAjAiBgNVHSAEGzAZMA0GCysGAQQBsjEBAgIdMAgGBmeBDAECATA6BgNVHR8E
16
+ MzAxMC+gLaArhilodHRwOi8vY3JsLnRjcy50ZXJlbmEub3JnL1RFUkVOQVNTTENB
17
+ LmNybDBtBggrBgEFBQcBAQRhMF8wNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQudGNz
18
+ LnRlcmVuYS5vcmcvVEVSRU5BU1NMQ0EuY3J0MCYGCCsGAQUFBzABhhpodHRwOi8v
19
+ b2NzcC50Y3MudGVyZW5hLm9yZzAeBgNVHREEFzAVghNoZWF0ZXIuY3MubWFuLmFj
20
+ LnVrMA0GCSqGSIb3DQEBBQUAA4IBAQCIO7fl98dU24AfcCGyZDPA2zHi0coqAZbA
21
+ SZ31z5IPezLXpPkpN/msiYuUkIx5DjWjzv9w/sAQ952YUGz0z7AFDamMcyETlMb+
22
+ trWedNHk0FghwoQTNW+WXxBa9My8K3IeO1FOt58lKVay9aqVZjiumt+P3LKocXfP
23
+ 0cNAPNHR57j9MO+D0fWOCMfbfYk3jEuz1k6vMZomZi35tb61QQ/mYbva7EodBxRt
24
+ HrzOsWPG1jgt32zRibnCc1C6cBry5BkWQ1/9dpJ2LHM6JVVknoRGYng+L91OLfj8
25
+ 8PB6BTrehrqH5fe5kcgW02XlezIkaKpzEYc4Jpdf817A1rOSVuBv
20
26
  -----END CERTIFICATE-----
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 1
3
- :minor: 1
3
+ :minor: 2
4
4
  :patch: 0
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: t2-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
5
- prerelease:
4
+ version: 1.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Robert Haines
@@ -10,12 +9,11 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2014-04-23 00:00:00.000000000 Z
12
+ date: 2014-09-24 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: rake
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ~>
21
19
  - !ruby/object:Gem::Version
@@ -23,7 +21,6 @@ dependencies:
23
21
  type: :development
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - ~>
29
26
  - !ruby/object:Gem::Version
@@ -31,7 +28,6 @@ dependencies:
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: bundler
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
32
  - - ~>
37
33
  - !ruby/object:Gem::Version
@@ -39,7 +35,6 @@ dependencies:
39
35
  type: :development
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
39
  - - ~>
45
40
  - !ruby/object:Gem::Version
@@ -47,7 +42,6 @@ dependencies:
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: rdoc
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
46
  - - ~>
53
47
  - !ruby/object:Gem::Version
@@ -55,7 +49,6 @@ dependencies:
55
49
  type: :development
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
53
  - - ~>
61
54
  - !ruby/object:Gem::Version
@@ -63,7 +56,6 @@ dependencies:
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: launchy
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
60
  - - ~>
69
61
  - !ruby/object:Gem::Version
@@ -71,7 +63,6 @@ dependencies:
71
63
  type: :development
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
67
  - - ~>
77
68
  - !ruby/object:Gem::Version
@@ -79,7 +70,6 @@ dependencies:
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: hirb
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
74
  - - ~>
85
75
  - !ruby/object:Gem::Version
@@ -87,15 +77,41 @@ dependencies:
87
77
  type: :development
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
81
  - - ~>
93
82
  - !ruby/object:Gem::Version
94
83
  version: '0.7'
84
+ - !ruby/object:Gem::Dependency
85
+ name: webmock
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ~>
89
+ - !ruby/object:Gem::Version
90
+ version: '1.17'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ~>
96
+ - !ruby/object:Gem::Version
97
+ version: '1.17'
98
+ - !ruby/object:Gem::Dependency
99
+ name: coveralls
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ! '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
95
112
  - !ruby/object:Gem::Dependency
96
113
  name: net-http-persistent
97
114
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
115
  requirements:
100
116
  - - ~>
101
117
  - !ruby/object:Gem::Version
@@ -103,7 +119,6 @@ dependencies:
103
119
  type: :runtime
104
120
  prerelease: false
105
121
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
122
  requirements:
108
123
  - - ~>
109
124
  - !ruby/object:Gem::Version
@@ -111,7 +126,6 @@ dependencies:
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: taverna-baclava
113
128
  requirement: !ruby/object:Gem::Requirement
114
- none: false
115
129
  requirements:
116
130
  - - ~>
117
131
  - !ruby/object:Gem::Version
@@ -119,7 +133,6 @@ dependencies:
119
133
  type: :runtime
120
134
  prerelease: false
121
135
  version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
136
  requirements:
124
137
  - - ~>
125
138
  - !ruby/object:Gem::Version
@@ -127,7 +140,6 @@ dependencies:
127
140
  - !ruby/object:Gem::Dependency
128
141
  name: ratom
129
142
  requirement: !ruby/object:Gem::Requirement
130
- none: false
131
143
  requirements:
132
144
  - - ~>
133
145
  - !ruby/object:Gem::Version
@@ -135,7 +147,6 @@ dependencies:
135
147
  type: :runtime
136
148
  prerelease: false
137
149
  version_requirements: !ruby/object:Gem::Requirement
138
- none: false
139
150
  requirements:
140
151
  - - ~>
141
152
  - !ruby/object:Gem::Version
@@ -143,7 +154,6 @@ dependencies:
143
154
  - !ruby/object:Gem::Dependency
144
155
  name: libxml-ruby
145
156
  requirement: !ruby/object:Gem::Requirement
146
- none: false
147
157
  requirements:
148
158
  - - ~>
149
159
  - !ruby/object:Gem::Version
@@ -151,7 +161,6 @@ dependencies:
151
161
  type: :runtime
152
162
  prerelease: false
153
163
  version_requirements: !ruby/object:Gem::Requirement
154
- none: false
155
164
  requirements:
156
165
  - - ~>
157
166
  - !ruby/object:Gem::Version
@@ -173,6 +182,9 @@ extra_rdoc_files:
173
182
  - CHANGES.rdoc
174
183
  files:
175
184
  - .gitignore
185
+ - .ruby-env
186
+ - .ruby-gemset
187
+ - .ruby-version
176
188
  - .travis.yml
177
189
  - CHANGES.rdoc
178
190
  - Gemfile
@@ -200,20 +212,53 @@ files:
200
212
  - lib/t2-server/util.rb
201
213
  - lib/t2-server/version.rb
202
214
  - lib/t2-server/xml.rb
203
- - lib/t2-server/xml/fragments.rb
204
215
  - lib/t2-server/xml/methods.rb
205
216
  - lib/t2-server/xml/namespaces.rb
206
217
  - lib/t2-server/xml/xpath_cache.rb
207
218
  - t2-server.gemspec
219
+ - test/helpers/fake-run.rb
220
+ - test/helpers/test-cache.rb
221
+ - test/helpers/test-xml.rb
222
+ - test/helpers/timezone.rb
223
+ - test/mocked-server-responses/.gitattributes
224
+ - test/mocked-server-responses/get-admin.raw
225
+ - test/mocked-server-responses/get-rest-policy-runlimit.raw
226
+ - test/mocked-server-responses/get-rest-policy.raw
227
+ - test/mocked-server-responses/get-rest-run-input-expected.raw
228
+ - test/mocked-server-responses/get-rest-run-input.raw
229
+ - test/mocked-server-responses/get-rest-run-interaction-feed-0.raw
230
+ - test/mocked-server-responses/get-rest-run-interaction-feed-1.raw
231
+ - test/mocked-server-responses/get-rest-run-interaction-feed-2.raw
232
+ - test/mocked-server-responses/get-rest-run-name.raw
233
+ - test/mocked-server-responses/get-rest-run-output-list-errors.raw
234
+ - test/mocked-server-responses/get-rest-run-output.raw
235
+ - test/mocked-server-responses/get-rest-run-security-permissions.raw
236
+ - test/mocked-server-responses/get-rest-run-security.raw
237
+ - test/mocked-server-responses/get-rest-run.raw
238
+ - test/mocked-server-responses/get-rest-runs.raw
239
+ - test/mocked-server-responses/get-rest.raw
240
+ - test/mocked-server-responses/log.txt
241
+ - test/mocked-server-responses/mocks.rb
242
+ - test/mocked-server-responses/options-admin-allownew.raw
208
243
  - test/tc_admin.rb
209
- - test/tc_misc.rb
244
+ - test/tc_admin_live.rb
245
+ - test/tc_connection.rb
246
+ - test/tc_connection_exceptions.rb
247
+ - test/tc_credentials.rb
248
+ - test/tc_interaction.rb
249
+ - test/tc_misc_live.rb
210
250
  - test/tc_params.rb
211
251
  - test/tc_perms.rb
252
+ - test/tc_perms_live.rb
253
+ - test/tc_ports.rb
212
254
  - test/tc_run.rb
213
- - test/tc_secure.rb
255
+ - test/tc_run_live.rb
256
+ - test/tc_secure_live.rb
214
257
  - test/tc_server.rb
258
+ - test/tc_server_live.rb
215
259
  - test/tc_server_version.rb
216
260
  - test/tc_util.rb
261
+ - test/tc_xml_messages.rb
217
262
  - test/ts_t2server.rb
218
263
  - test/workflows/always_fail.t2flow
219
264
  - test/workflows/empty_list.t2flow
@@ -239,6 +284,7 @@ files:
239
284
  homepage: http://www.taverna.org.uk/
240
285
  licenses:
241
286
  - BSD
287
+ metadata: {}
242
288
  post_install_message:
243
289
  rdoc_options:
244
290
  - -N
@@ -247,22 +293,83 @@ rdoc_options:
247
293
  require_paths:
248
294
  - lib
249
295
  required_ruby_version: !ruby/object:Gem::Requirement
250
- none: false
251
296
  requirements:
252
297
  - - ! '>='
253
298
  - !ruby/object:Gem::Version
254
- version: '0'
299
+ version: 1.9.3
255
300
  required_rubygems_version: !ruby/object:Gem::Requirement
256
- none: false
257
301
  requirements:
258
302
  - - ! '>='
259
303
  - !ruby/object:Gem::Version
260
304
  version: '0'
261
305
  requirements: []
262
306
  rubyforge_project:
263
- rubygems_version: 1.8.21
307
+ rubygems_version: 2.2.2
264
308
  signing_key:
265
- specification_version: 3
309
+ specification_version: 4
266
310
  summary: Support for interacting with Taverna 2 Server.
267
311
  test_files:
312
+ - test/helpers/fake-run.rb
313
+ - test/helpers/test-cache.rb
314
+ - test/helpers/test-xml.rb
315
+ - test/helpers/timezone.rb
316
+ - test/mocked-server-responses/.gitattributes
317
+ - test/mocked-server-responses/get-admin.raw
318
+ - test/mocked-server-responses/get-rest-policy-runlimit.raw
319
+ - test/mocked-server-responses/get-rest-policy.raw
320
+ - test/mocked-server-responses/get-rest-run-input-expected.raw
321
+ - test/mocked-server-responses/get-rest-run-input.raw
322
+ - test/mocked-server-responses/get-rest-run-interaction-feed-0.raw
323
+ - test/mocked-server-responses/get-rest-run-interaction-feed-1.raw
324
+ - test/mocked-server-responses/get-rest-run-interaction-feed-2.raw
325
+ - test/mocked-server-responses/get-rest-run-name.raw
326
+ - test/mocked-server-responses/get-rest-run-output-list-errors.raw
327
+ - test/mocked-server-responses/get-rest-run-output.raw
328
+ - test/mocked-server-responses/get-rest-run-security-permissions.raw
329
+ - test/mocked-server-responses/get-rest-run-security.raw
330
+ - test/mocked-server-responses/get-rest-run.raw
331
+ - test/mocked-server-responses/get-rest-runs.raw
332
+ - test/mocked-server-responses/get-rest.raw
333
+ - test/mocked-server-responses/log.txt
334
+ - test/mocked-server-responses/mocks.rb
335
+ - test/mocked-server-responses/options-admin-allownew.raw
336
+ - test/tc_admin.rb
337
+ - test/tc_admin_live.rb
338
+ - test/tc_connection.rb
339
+ - test/tc_connection_exceptions.rb
340
+ - test/tc_credentials.rb
341
+ - test/tc_interaction.rb
342
+ - test/tc_misc_live.rb
343
+ - test/tc_params.rb
344
+ - test/tc_perms.rb
345
+ - test/tc_perms_live.rb
346
+ - test/tc_ports.rb
347
+ - test/tc_run.rb
348
+ - test/tc_run_live.rb
349
+ - test/tc_secure_live.rb
350
+ - test/tc_server.rb
351
+ - test/tc_server_live.rb
352
+ - test/tc_server_version.rb
353
+ - test/tc_util.rb
354
+ - test/tc_xml_messages.rb
268
355
  - test/ts_t2server.rb
356
+ - test/workflows/always_fail.t2flow
357
+ - test/workflows/empty_list.t2flow
358
+ - test/workflows/empty_list_input.baclava
359
+ - test/workflows/in.txt
360
+ - test/workflows/list_and_value.t2flow
361
+ - test/workflows/list_with_errors.t2flow
362
+ - test/workflows/missing_outputs.t2flow
363
+ - test/workflows/no-ports.t2flow
364
+ - test/workflows/pass_through.t2flow
365
+ - test/workflows/secure/basic-http.t2flow
366
+ - test/workflows/secure/basic-https.t2flow
367
+ - test/workflows/secure/client-https.t2flow
368
+ - test/workflows/secure/digest-http.t2flow
369
+ - test/workflows/secure/digest-https.t2flow
370
+ - test/workflows/secure/heater-pk.pem
371
+ - test/workflows/secure/user-cert.p12
372
+ - test/workflows/secure/ws-http.t2flow
373
+ - test/workflows/secure/ws-https.t2flow
374
+ - test/workflows/strings.txt
375
+ - test/workflows/xml_xpath.t2flow