smart_app_launch_test_kit 0.1.7 → 0.1.8

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: 6a14d093cf196c859d9bd49859172a6e51c9ba7c7237ea6694209a94a31c3da2
4
+ data.tar.gz: 367b7114290c9e74f1248998be1738c61b5023359a43961810529a0ad0cbe003
5
5
  SHA512:
6
- metadata.gz: 5ebf1fd189d6e5633d34e3878e99a5872574b222e2053b4105a990bfe95dfab6ba0ffc2aa0a3dc9cfd1d423a15c6baf963e761a5524d6075212c62c25d3641e1
7
- data.tar.gz: eadea922bd69196f8eff8f37bbc9b55b4cc83af401bb0e7e840123ac4176ef4a00091affaab910fbf230afd5ee3b6ceda40aaf70e041704525394667a0fb4f3e
6
+ metadata.gz: 11037431b4204f6243b063c6b70d7e8a6cd279f63651a73200a6dd34b3f383437ae310c5557a0db68ed39e54470d7edfa514ac49399436e47aa863f9c41de9c9
7
+ data.tar.gz: f924de9a01098def4a73a06693e9b03b5821f8b3035bc315cd128f26249c17fbcd3af943a62094ecbc18c0aa6f0f12e771f304938aa64d24f77d85c80232b828
@@ -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'],
@@ -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.1.8'.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,14 +1,14 @@
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.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen MacVicar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-12 00:00:00.000000000 Z
11
+ date: 2022-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inferno_core
@@ -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