smart_app_launch_test_kit 0.1.7 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 827be1f1ad34813193d605f98aed282c07f75be1533acbe3edee00c09c0a0c0c
4
- data.tar.gz: 453203c98f99cf8cb8134979ec1b5f1c6cbd70a6c0354e9d63be01e3856755ba
3
+ metadata.gz: 1a70e06c1e564ec98ba8f87a7bd340f438990d7290d3122b2354da5e23a8f854
4
+ data.tar.gz: 47aef42abff65657cee0ffa8f7dec419ed0efafb30da792edf74b78eecc6ad49
5
5
  SHA512:
6
- metadata.gz: 5ebf1fd189d6e5633d34e3878e99a5872574b222e2053b4105a990bfe95dfab6ba0ffc2aa0a3dc9cfd1d423a15c6baf963e761a5524d6075212c62c25d3641e1
7
- data.tar.gz: eadea922bd69196f8eff8f37bbc9b55b4cc83af401bb0e7e840123ac4176ef4a00091affaab910fbf230afd5ee3b6ceda40aaf70e041704525394667a0fb4f3e
6
+ metadata.gz: 9f155681260a5f83baf994bdf04fa22f00db3ed117845fd9e44c99304f13faeaa98a7b8330a534514788c33c880d30f2c4d870356aaf00a8de8d97e8c712d52a
7
+ data.tar.gz: c86798c75500fc0c12c53e85b85b6e4b126f3fc8691403ad2df6074ff1a11aa90b1cc5401746e0f8797980a1a49fa74cd39e13be6f24cf1c1e5057bd2bc05ca2
@@ -1,5 +1,6 @@
1
1
  require_relative 'well_known_capabilities_stu1_test'
2
2
  require_relative 'well_known_endpoint_test'
3
+ require_relative 'url_helpers'
3
4
 
4
5
  module SMARTAppLaunch
5
6
  class DiscoverySTU1Group < Inferno::TestGroup
@@ -45,6 +46,8 @@ module SMARTAppLaunch
45
46
  id: 'Test02'
46
47
 
47
48
  test do
49
+ include URLHelpers
50
+
48
51
  title 'Conformance/CapabilityStatement provides OAuth 2.0 endpoints'
49
52
  description %(
50
53
  If a server requires SMART on FHIR authorization for access, its
@@ -88,8 +91,10 @@ module SMARTAppLaunch
88
91
 
89
92
  oauth_extension_urls = ['authorize', 'introspect', 'manage', 'register', 'revoke', 'token']
90
93
 
94
+ base_url = "#{url.chomp('/')}/"
91
95
  oauth_urls = oauth_extension_urls.each_with_object({}) do |url, urls|
92
96
  urls[url] = smart_extension.extension.find { |extension| extension.url == url }&.valueUri
97
+ urls[url] = make_url_absolute(base_url, urls[url])
93
98
  end
94
99
 
95
100
  output capability_authorization_url: oauth_urls['authorize'],
@@ -13,11 +13,11 @@ module SMARTAppLaunch
13
13
  title 'SMART App Launch STU1'
14
14
  version VERSION
15
15
 
16
- resume_test_route :get, '/launch' do
16
+ resume_test_route :get, '/launch' do |request|
17
17
  request.query_parameters['iss']
18
18
  end
19
19
 
20
- resume_test_route :get, '/redirect' do
20
+ resume_test_route :get, '/redirect' do |request|
21
21
  request.query_parameters['state']
22
22
  end
23
23
 
@@ -13,11 +13,11 @@ module SMARTAppLaunch
13
13
  title 'SMART App Launch STU2'
14
14
  version VERSION
15
15
 
16
- resume_test_route :get, '/launch' do
16
+ resume_test_route :get, '/launch' do |request|
17
17
  request.query_parameters['iss']
18
18
  end
19
19
 
20
- resume_test_route :get, '/redirect' do
20
+ resume_test_route :get, '/redirect' do |request|
21
21
  request.query_parameters['state']
22
22
  end
23
23
 
@@ -0,0 +1,7 @@
1
+ module SMARTAppLaunch
2
+ module URLHelpers
3
+ def make_url_absolute(base_url, endpoint)
4
+ endpoint ? URI.join(base_url, endpoint).to_s : endpoint
5
+ end
6
+ end
7
+ end
@@ -1,3 +1,3 @@
1
1
  module SMARTAppLaunch
2
- VERSION = '0.1.7'
2
+ VERSION = '0.2.0'.freeze
3
3
  end
@@ -1,5 +1,9 @@
1
+ require_relative 'url_helpers'
2
+
1
3
  module SMARTAppLaunch
2
4
  class WellKnownEndpointTest < Inferno::Test
5
+ include URLHelpers
6
+
3
7
  title 'FHIR server makes SMART configuration available from well-known endpoint'
4
8
  id :well_known_endpoint
5
9
  description %(
@@ -27,14 +31,16 @@ module SMARTAppLaunch
27
31
 
28
32
  assert_valid_json(request.response_body)
29
33
 
34
+ base_url = "#{url.chomp('/')}/"
30
35
  config = JSON.parse(request.response_body)
36
+
31
37
  output well_known_configuration: request.response_body,
32
- well_known_authorization_url: config['authorization_endpoint'],
33
- well_known_introspection_url: config['introspection_endpoint'],
34
- well_known_management_url: config['management_endpoint'],
35
- well_known_registration_url: config['registration_endpoint'],
36
- well_known_revocation_url: config['revocation_endpoint'],
37
- well_known_token_url: config['token_endpoint']
38
+ well_known_authorization_url: make_url_absolute(base_url, config['authorization_endpoint']),
39
+ well_known_introspection_url: make_url_absolute(base_url, config['introspection_endpoint']),
40
+ well_known_management_url: make_url_absolute(base_url, config['management_endpoint']),
41
+ well_known_registration_url: make_url_absolute(base_url, config['registration_endpoint']),
42
+ well_known_revocation_url: make_url_absolute(base_url, config['revocation_endpoint']),
43
+ well_known_token_url: make_url_absolute(base_url, config['token_endpoint'])
38
44
 
39
45
  content_type = request.response_header('Content-Type')&.value
40
46
 
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smart_app_launch_test_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen MacVicar
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-12 00:00:00.000000000 Z
11
+ date: 2022-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inferno_core
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.3
19
+ version: 0.4.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.3
26
+ version: 0.4.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: jwt
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.1.0
47
+ version: 0.2.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.1.0
54
+ version: 0.2.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: database_cleaner-sequel
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -160,6 +160,7 @@ files:
160
160
  - lib/smart_app_launch/token_refresh_test.rb
161
161
  - lib/smart_app_launch/token_response_body_test.rb
162
162
  - lib/smart_app_launch/token_response_headers_test.rb
163
+ - lib/smart_app_launch/url_helpers.rb
163
164
  - lib/smart_app_launch/version.rb
164
165
  - lib/smart_app_launch/well_known_capabilities_stu1_test.rb
165
166
  - lib/smart_app_launch/well_known_capabilities_stu2_test.rb
@@ -171,7 +172,7 @@ licenses:
171
172
  metadata:
172
173
  homepage_uri: https://github.com/inferno_framework/smart-app-launch-test-kit
173
174
  source_code_uri: https://github.com/inferno_framework/smart-app-launch-test-kit
174
- post_install_message:
175
+ post_install_message:
175
176
  rdoc_options: []
176
177
  require_paths:
177
178
  - lib
@@ -179,15 +180,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
179
180
  requirements:
180
181
  - - ">="
181
182
  - !ruby/object:Gem::Version
182
- version: 2.7.0
183
+ version: 3.1.2
183
184
  required_rubygems_version: !ruby/object:Gem::Requirement
184
185
  requirements:
185
186
  - - ">="
186
187
  - !ruby/object:Gem::Version
187
188
  version: '0'
188
189
  requirements: []
189
- rubygems_version: 3.1.6
190
- signing_key:
190
+ rubygems_version: 3.3.7
191
+ signing_key:
191
192
  specification_version: 4
192
193
  summary: Inferno Tests for the SMART Application Launch Framework Implementation Guide
193
194
  test_files: []