t2-server 1.1.0 → 1.2.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.
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