googleauth 0.6.6 → 0.6.7

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
- SHA1:
3
- metadata.gz: 325c457e30389be37d7d08f8e7da585780539fea
4
- data.tar.gz: bd29ed6004d5bb99453d79b27680023330a4b3cc
2
+ SHA256:
3
+ metadata.gz: 05003f9b094636f9937a9f94fd9abcc6eddb55610218b3e96a81d8cf0e2063e1
4
+ data.tar.gz: 852e87ca3688a90a6e623fd896b340a7c2540d237d8884056b98a1000f4c3d44
5
5
  SHA512:
6
- metadata.gz: 54cbbef4fb2100cb155292f154643d7775eb9e073cdef3b0fc344c2c0da8b2d206310295ab8ce0b76fcdebe58e7923e85dfab0eec107f5edf0dd1c8813d55798
7
- data.tar.gz: eda38cc1f6995453f176440a58c2a19fde48d651f8a9c9f9b896b9be5ba923679d1e33dd4488fb3a91eb5f2a8afe6727257b07f525ee6724d25ebe657397fd56
6
+ metadata.gz: fbcc424cf05e996efcd94a3f8012c61cacd37228da6723860fd6d6110e93316c246c534fc3be3af5f511afc6944ef52ced8e4c40f0b8299de75de38772257b5b
7
+ data.tar.gz: 86356649a35b0f3e3ac1137f4af792a0c6e37fd4a9f3a5cfbed3030eea67dcbca8132b07565c493b23f4872fddf8426c2f704c84fd679242db92ef6d47b17b0b
data/.kokoro/build.bat ADDED
@@ -0,0 +1,8 @@
1
+ REM This file runs tests for merges, PRs, and nightlies.
2
+ REM There are a few rules for what tests are run:
3
+ REM * PRs run all non-acceptance tests for every library.
4
+ REM * Merges run all non-acceptance tests for every library, and acceptance tests for all altered libraries.
5
+ REM * Nightlies run all acceptance tests for every library.
6
+ REM Currently only runs tests on 2.5.1
7
+
8
+ "C:\Program Files\Git\bin\bash.exe" github/google-auth-library-ruby/.kokoro/windows.sh
data/.kokoro/build.sh ADDED
@@ -0,0 +1,36 @@
1
+ #!/bin/bash
2
+
3
+ # This file runs tests for merges, PRs, and nightlies.
4
+ # There are a few rules for what tests are run:
5
+ # * PRs run all non-acceptance tests for every library.
6
+ # * Merges run all non-acceptance tests for every library, and acceptance tests for all altered libraries.
7
+ # * Nightlies run all acceptance tests for every library.
8
+
9
+ set -eo pipefail
10
+
11
+ # Debug: show build environment
12
+ env | grep KOKORO
13
+
14
+ cd github/google-auth-library-ruby/
15
+
16
+ # Print out Ruby version
17
+ ruby --version
18
+
19
+ # Temporary workaround for a known bundler+docker issue:
20
+ # https://github.com/bundler/bundler/issues/6154
21
+ export BUNDLE_GEMFILE=
22
+
23
+ RUBY_VERSIONS=("2.3.7" "2.4.4" "2.5.1")
24
+
25
+ # Capture failures
26
+ EXIT_STATUS=0 # everything passed
27
+ function set_failed_status {
28
+ EXIT_STATUS=1
29
+ }
30
+
31
+ for version in "${RUBY_VERSIONS[@]}"; do
32
+ rbenv global "$version"
33
+ (bundle update && bundle exec rake) || set_failed_status
34
+ done
35
+
36
+ exit $EXIT_STATUS
@@ -0,0 +1,22 @@
1
+ # Format: //devtools/kokoro/config/proto/build.proto
2
+
3
+ # Download trampoline resources. These will be in ${KOKORO_GFILE_DIR}
4
+ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
5
+
6
+ # All builds use the trampoline script to run in docker.
7
+ build_file: "google-auth-library-ruby/.kokoro/trampoline.sh"
8
+
9
+ # Download secrets from Cloud Storage.
10
+ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-auth-library-ruby"
11
+
12
+ # Tell the trampoline which build file to use.
13
+ env_vars: {
14
+ key: "TRAMPOLINE_BUILD_FILE"
15
+ value: "github/google-auth-library-ruby/.kokoro/build.sh"
16
+ }
17
+
18
+ action {
19
+ define_artifacts {
20
+ regex: "**/*sponge_log.xml"
21
+ }
22
+ }
@@ -0,0 +1,19 @@
1
+ # Format: //devtools/kokoro/config/proto/build.proto
2
+
3
+ # Build logs will be here
4
+ action {
5
+ define_artifacts {
6
+ regex: "**/*sponge_log.xml"
7
+ }
8
+ }
9
+
10
+ # Download trampoline resources.
11
+ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
12
+
13
+ # Download resources for system tests (service account key, etc.)
14
+ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-ruby"
15
+
16
+ env_vars: {
17
+ key: "JOB_TYPE"
18
+ value: "continuous"
19
+ }
@@ -0,0 +1,15 @@
1
+ # Format: //devtools/kokoro/config/proto/build.proto
2
+
3
+ build_file: "google-auth-library-ruby/.kokoro/trampoline.sh"
4
+
5
+ # Configure the docker image for kokoro-trampoline.
6
+ # Dockerfile is maintained at https://github.com/googleapis/google-cloud-ruby/tree/master/.kokoro/docker/ruby-multi
7
+ env_vars: {
8
+ key: "TRAMPOLINE_IMAGE"
9
+ value: "gcr.io/cloud-devrel-kokoro-resources/google-cloud-ruby/ruby-multi-ubuntu"
10
+ }
11
+
12
+ env_vars: {
13
+ key: "TRAMPOLINE_BUILD_FILE"
14
+ value: "github/google-auth-library-ruby/.kokoro/build.sh"
15
+ }
@@ -0,0 +1,3 @@
1
+ # Format: //devtools/kokoro/config/proto/build.proto
2
+
3
+ build_file: "google-auth-library-ruby/.kokoro/osx.sh"
@@ -0,0 +1,3 @@
1
+ # Format: //devtools/kokoro/config/proto/build.proto
2
+
3
+ build_file: "google-auth-library-ruby/.kokoro/build.bat"
data/.kokoro/osx.sh ADDED
@@ -0,0 +1,35 @@
1
+ #!/bin/bash
2
+
3
+ # This file runs tests for merges, PRs, and nightlies.
4
+ # There are a few rules for what tests are run:
5
+ # * PRs run all non-acceptance tests for every library.
6
+ # * Merges run all non-acceptance tests for every library, and acceptance tests for all altered libraries.
7
+ # * Nightlies run all acceptance tests for every library.
8
+ # * Currently only runs tests on 2.5.0
9
+
10
+ set -eo pipefail
11
+
12
+ # Debug: show build environment
13
+ env | grep KOKORO
14
+
15
+ cd github/google-auth-library-ruby/
16
+
17
+ # Print out Ruby version
18
+ ruby --version
19
+
20
+ # Temporary workaround for a known bundler+docker issue:
21
+ # https://github.com/bundler/bundler/issues/6154
22
+ export BUNDLE_GEMFILE=
23
+
24
+ # Capture failures
25
+ EXIT_STATUS=0 # everything passed
26
+ function set_failed_status {
27
+ EXIT_STATUS=1
28
+ }
29
+
30
+ gem install bundle
31
+
32
+
33
+ (bundle update && bundle exec rake) || set_failed_status
34
+
35
+ exit $EXIT_STATUS
@@ -0,0 +1,19 @@
1
+ # Format: //devtools/kokoro/config/proto/build.proto
2
+
3
+ # Build logs will be here
4
+ action {
5
+ define_artifacts {
6
+ regex: "**/*sponge_log.xml"
7
+ }
8
+ }
9
+
10
+ # Download trampoline resources.
11
+ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
12
+
13
+ # Download resources for system tests (service account key, etc.)
14
+ gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-cloud-ruby"
15
+
16
+ env_vars: {
17
+ key: "JOB_TYPE"
18
+ value: "presubmit"
19
+ }
@@ -0,0 +1,14 @@
1
+ # Format: //devtools/kokoro/config/proto/build.proto
2
+
3
+ build_file: "google-auth-library-ruby/.kokoro/trampoline.sh"
4
+
5
+ # Configure the docker image for kokoro-trampoline.
6
+ env_vars: {
7
+ key: "TRAMPOLINE_IMAGE"
8
+ value: "gcr.io/cloud-devrel-kokoro-resources/google-cloud-ruby/ruby-multi-ubuntu"
9
+ }
10
+
11
+ env_vars: {
12
+ key: "TRAMPOLINE_BUILD_FILE"
13
+ value: "github/google-auth-library-ruby/.kokoro/build.sh"
14
+ }
@@ -0,0 +1,3 @@
1
+ # Format: //devtools/kokoro/config/proto/build.proto
2
+
3
+ build_file: "google-auth-library-ruby/.kokoro/osx.sh"
@@ -0,0 +1,3 @@
1
+ # Format: //devtools/kokoro/config/proto/build.proto
2
+
3
+ build_file: "google-auth-library-ruby/.kokoro/build.bat"
@@ -0,0 +1,24 @@
1
+ #!/bin/bash
2
+ # Copyright 2017 Google Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ set -eo pipefail
16
+ # Always run the cleanup script, regardless of the success of bouncing into
17
+ # the container.
18
+ function cleanup() {
19
+ chmod +x ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh
20
+ ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh
21
+ echo "cleanup";
22
+ }
23
+ trap cleanup EXIT
24
+ python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py"
@@ -0,0 +1,32 @@
1
+ #!/bin/bash
2
+
3
+ # This file runs tests for merges, PRs, and nightlies.
4
+ # There are a few rules for what tests are run:
5
+ # * PRs run all non-acceptance tests for every library.
6
+ # * Merges run all non-acceptance tests for every library, and acceptance tests for all altered libraries.
7
+ # * Nightlies run all acceptance tests for every library.
8
+ # * Currently only runs tests on 2.5.1
9
+
10
+ set -eo pipefail
11
+
12
+ # Debug: show build environment
13
+ env | grep KOKORO
14
+
15
+ cd github/google-auth-library-ruby/
16
+
17
+ # Print out Ruby version
18
+ ruby --version
19
+
20
+ # Temporary workaround for a known bundler+docker issue:
21
+ # https://github.com/bundler/bundler/issues/6154
22
+ export BUNDLE_GEMFILE=
23
+
24
+ # Capture failures
25
+ EXIT_STATUS=0 # everything passed
26
+ function set_failed_status {
27
+ EXIT_STATUS=1
28
+ }
29
+
30
+ (bundle update && bundle exec rake) || set_failed_status
31
+
32
+ exit $EXIT_STATUS
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.6.7 (2018/10/16)
2
+
3
+ * Update memoist dependency to ~> 0.16.
4
+
1
5
  ## 0.6.6 (2018/08/22)
2
6
 
3
7
  * Remove ruby version warnings.
data/googleauth.gemspec CHANGED
@@ -12,11 +12,11 @@ Gem::Specification.new do |s|
12
12
  s.homepage = 'https://github.com/google/google-auth-library-ruby'
13
13
  s.summary = 'Google Auth Library for Ruby'
14
14
  s.license = 'Apache-2.0'
15
- s.description = <<-eos
15
+ s.description = <<-DESCRIPTION
16
16
  Allows simple authorization for accessing Google APIs.
17
17
  Provide support for Application Default Credentials, as described at
18
18
  https://developers.google.com/accounts/docs/application-default-credentials
19
- eos
19
+ DESCRIPTION
20
20
 
21
21
  s.files = `git ls-files`.split("\n")
22
22
  s.test_files = `git ls-files -- spec/*`.split("\n")
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
 
29
29
  s.add_dependency 'faraday', '~> 0.12'
30
30
  s.add_dependency 'jwt', '>= 1.4', '< 3.0'
31
- s.add_dependency 'memoist', '~> 0.12'
31
+ s.add_dependency 'memoist', '~> 0.16'
32
32
  s.add_dependency 'multi_json', '~> 1.11'
33
33
  s.add_dependency 'os', '>= 0.9', '< 2.0'
34
34
  s.add_dependency 'signet', '~> 0.7'
@@ -35,16 +35,16 @@ module Google
35
35
  # Module Auth provides classes that provide Google-specific authorization
36
36
  # used to access Google APIs.
37
37
  module Auth
38
- NO_METADATA_SERVER_ERROR = <<END.freeze
38
+ NO_METADATA_SERVER_ERROR = <<ERROR.freeze
39
39
  Error code 404 trying to get security access token
40
40
  from Compute Engine metadata for the default service account. This
41
41
  may be because the virtual machine instance does not have permission
42
42
  scopes specified.
43
- END
44
- UNEXPECTED_ERROR_SUFFIX = <<END.freeze
43
+ ERROR
44
+ UNEXPECTED_ERROR_SUFFIX = <<ERROR.freeze
45
45
  trying to get security access token from Compute Engine metadata for
46
46
  the default service account
47
- END
47
+ ERROR
48
48
 
49
49
  # Extends Signet::OAuth2::Client so that the auth token is obtained from
50
50
  # the GCE metadata server.
@@ -31,6 +31,6 @@ module Google
31
31
  # Module Auth provides classes that provide Google-specific authorization
32
32
  # used to access Google APIs.
33
33
  module Auth
34
- VERSION = '0.6.6'.freeze
34
+ VERSION = '0.6.7'.freeze
35
35
  end
36
36
  end
@@ -50,12 +50,16 @@ describe '#get_application_default' do
50
50
  @original_env_vals = {}
51
51
  @credential_vars.each { |var| @original_env_vals[var] = ENV[var] }
52
52
  @home = ENV['HOME']
53
+ @app_data = ENV['APPDATA']
54
+ @program_data = ENV['ProgramData']
53
55
  @scope = 'https://www.googleapis.com/auth/userinfo.profile'
54
56
  end
55
57
 
56
58
  after(:example) do
57
59
  @credential_vars.each { |var| ENV[var] = @original_env_vals[var] }
58
60
  ENV['HOME'] = @home unless @home == ENV['HOME']
61
+ ENV['APPDATA'] = @app_data unless @app_data == ENV['APPDATA']
62
+ ENV['ProgramData'] = @program_data unless @program_data == ENV['ProgramData']
59
63
  end
60
64
 
61
65
  shared_examples 'it cannot load misconfigured credentials' do
@@ -90,7 +94,7 @@ describe '#get_application_default' do
90
94
  FileUtils.mkdir_p(File.dirname(key_path))
91
95
  File.write(key_path, cred_json_text)
92
96
  ENV[@var_name] = key_path
93
- expect(Google::Auth.get_application_default @scope, options)
97
+ expect(Google::Auth.get_application_default(@scope, options))
94
98
  .to_not be_nil
95
99
  end
96
100
  end
@@ -99,10 +103,12 @@ describe '#get_application_default' do
99
103
  ENV.delete(@var_name) unless ENV[@var_name].nil?
100
104
  Dir.mktmpdir do |dir|
101
105
  key_path = File.join(dir, '.config', WELL_KNOWN_PATH)
106
+ key_path = File.join(dir, WELL_KNOWN_PATH) if OS.windows?
102
107
  FileUtils.mkdir_p(File.dirname(key_path))
103
108
  File.write(key_path, cred_json_text)
104
109
  ENV['HOME'] = dir
105
- expect(Google::Auth.get_application_default @scope, options)
110
+ ENV['APPDATA'] = dir
111
+ expect(Google::Auth.get_application_default(@scope, options))
106
112
  .to_not be_nil
107
113
  end
108
114
  end
@@ -111,10 +117,12 @@ describe '#get_application_default' do
111
117
  ENV.delete(@var_name) unless ENV[@var_name].nil?
112
118
  Dir.mktmpdir do |dir|
113
119
  key_path = File.join(dir, '.config', WELL_KNOWN_PATH)
120
+ key_path = File.join(dir, WELL_KNOWN_PATH) if OS.windows?
114
121
  FileUtils.mkdir_p(File.dirname(key_path))
115
122
  File.write(key_path, cred_json_text)
116
123
  ENV['HOME'] = dir
117
- expect(Google::Auth.get_application_default nil, options).to_not be_nil
124
+ ENV['APPDATA'] = dir
125
+ expect(Google::Auth.get_application_default(nil, options)).to_not be_nil
118
126
  end
119
127
  end
120
128
 
@@ -134,10 +142,12 @@ describe '#get_application_default' do
134
142
  it 'succeeds with system default file' do
135
143
  ENV.delete(@var_name) unless ENV[@var_name].nil?
136
144
  FakeFS do
137
- key_path = File.join('/etc/google/auth/', CREDENTIALS_FILE_NAME)
145
+ ENV['ProgramData'] = '/etc'
146
+ prefix = OS.windows? ? '/etc/Google/Auth/' : '/etc/google/auth/'
147
+ key_path = File.join(prefix, CREDENTIALS_FILE_NAME)
138
148
  FileUtils.mkdir_p(File.dirname(key_path))
139
149
  File.write(key_path, cred_json_text)
140
- expect(Google::Auth.get_application_default @scope, options)
150
+ expect(Google::Auth.get_application_default(@scope, options))
141
151
  .to_not be_nil
142
152
  File.delete(key_path)
143
153
  end
@@ -151,7 +161,7 @@ describe '#get_application_default' do
151
161
  ENV[CLIENT_SECRET_VAR] = cred_json[:client_secret]
152
162
  ENV[REFRESH_TOKEN_VAR] = cred_json[:refresh_token]
153
163
  ENV[ACCOUNT_TYPE_VAR] = cred_json[:type]
154
- expect(Google::Auth.get_application_default @scope, options)
164
+ expect(Google::Auth.get_application_default(@scope, options))
155
165
  .to_not be_nil
156
166
  end
157
167
 
@@ -164,7 +174,7 @@ describe '#get_application_default' do
164
174
  ENV[REFRESH_TOKEN_VAR] = cred_json[:refresh_token]
165
175
  ENV[ACCOUNT_TYPE_VAR] = cred_json[:type]
166
176
  expect { Google::Auth.get_application_default @scope, options }.to output(
167
- Google::Auth::CredentialsLoader::CLOUD_SDK_CREDENTIALS_WARNING + "\n"
177
+ Google::Auth::CredentialsLoader::CLOUD_SDK_CREDENTIALS_WARNING + "\n"
168
178
  ).to_stderr
169
179
  end
170
180
  end
@@ -238,9 +248,11 @@ describe '#get_application_default' do
238
248
  ENV.delete(@var_name) unless ENV[@var_name].nil?
239
249
  Dir.mktmpdir do |dir|
240
250
  key_path = File.join(dir, '.config', WELL_KNOWN_PATH)
251
+ key_path = File.join(dir, WELL_KNOWN_PATH) if OS.windows?
241
252
  FileUtils.mkdir_p(File.dirname(key_path))
242
253
  File.write(key_path, cred_json_text)
243
254
  ENV['HOME'] = dir
255
+ ENV['APPDATA'] = dir
244
256
  expect do
245
257
  Google::Auth.get_application_default @scope, options
246
258
  end.to raise_error RuntimeError
@@ -40,6 +40,7 @@ require 'multi_json'
40
40
  require 'openssl'
41
41
  require 'spec_helper'
42
42
  require 'tmpdir'
43
+ require 'os'
43
44
 
44
45
  include Google::Auth::CredentialsLoader
45
46
 
@@ -223,6 +224,7 @@ describe Google::Auth::ServiceAccountCredentials do
223
224
  describe '#from_well_known_path' do
224
225
  before(:example) do
225
226
  @home = ENV['HOME']
227
+ @app_data = ENV['APPDATA']
226
228
  @scope = 'https://www.googleapis.com/auth/userinfo.profile'
227
229
  @known_path = WELL_KNOWN_PATH
228
230
  @clz = ServiceAccountCredentials
@@ -230,6 +232,7 @@ describe Google::Auth::ServiceAccountCredentials do
230
232
 
231
233
  after(:example) do
232
234
  ENV['HOME'] = @home unless @home == ENV['HOME']
235
+ ENV['APPDATA'] = @app_data unless @app_data == ENV['APPDATA']
233
236
  end
234
237
 
235
238
  it 'is nil if no file exists' do
@@ -240,9 +243,11 @@ describe Google::Auth::ServiceAccountCredentials do
240
243
  it 'successfully loads the file when it is present' do
241
244
  Dir.mktmpdir do |dir|
242
245
  key_path = File.join(dir, '.config', @known_path)
246
+ key_path = File.join(dir, WELL_KNOWN_PATH) if OS.windows?
243
247
  FileUtils.mkdir_p(File.dirname(key_path))
244
248
  File.write(key_path, cred_json_text)
245
249
  ENV['HOME'] = dir
250
+ ENV['APPDATA'] = dir
246
251
  expect(@clz.from_well_known_path(@scope)).to_not be_nil
247
252
  end
248
253
  end
@@ -251,10 +256,16 @@ describe Google::Auth::ServiceAccountCredentials do
251
256
  describe '#from_system_default_path' do
252
257
  before(:example) do
253
258
  @scope = 'https://www.googleapis.com/auth/userinfo.profile'
254
- @path = File.join('/etc/google/auth/', CREDENTIALS_FILE_NAME)
259
+ @program_data = ENV['ProgramData']
260
+ @prefix = OS.windows? ? '/etc/Google/Auth/' : '/etc/google/auth/'
261
+ @path = File.join(@prefix, CREDENTIALS_FILE_NAME)
255
262
  @clz = ServiceAccountCredentials
256
263
  end
257
264
 
265
+ after(:example) do
266
+ ENV['ProgramData'] = @program_data
267
+ end
268
+
258
269
  it 'is nil if no file exists' do
259
270
  FakeFS do
260
271
  expect(ServiceAccountCredentials.from_system_default_path(@scope))
@@ -264,6 +275,7 @@ describe Google::Auth::ServiceAccountCredentials do
264
275
 
265
276
  it 'successfully loads the file when it is present' do
266
277
  FakeFS do
278
+ ENV['ProgramData'] = '/etc'
267
279
  FileUtils.mkdir_p(File.dirname(@path))
268
280
  File.write(@path, cred_json_text)
269
281
  expect(@clz.from_system_default_path(@scope)).to_not be_nil
@@ -351,10 +363,12 @@ describe Google::Auth::ServiceAccountJwtHeaderCredentials do
351
363
  describe '#from_well_known_path' do
352
364
  before(:example) do
353
365
  @home = ENV['HOME']
366
+ @app_data = ENV['APPDATA']
354
367
  end
355
368
 
356
369
  after(:example) do
357
370
  ENV['HOME'] = @home unless @home == ENV['HOME']
371
+ ENV['APPDATA'] = @app_data unless @app_data == ENV['APPDATA']
358
372
  end
359
373
 
360
374
  it 'is nil if no file exists' do
@@ -365,9 +379,11 @@ describe Google::Auth::ServiceAccountJwtHeaderCredentials do
365
379
  it 'successfully loads the file when it is present' do
366
380
  Dir.mktmpdir do |dir|
367
381
  key_path = File.join(dir, '.config', WELL_KNOWN_PATH)
382
+ key_path = File.join(dir, WELL_KNOWN_PATH) if OS.windows?
368
383
  FileUtils.mkdir_p(File.dirname(key_path))
369
384
  File.write(key_path, cred_json_text)
370
385
  ENV['HOME'] = dir
386
+ ENV['APPDATA'] = dir
371
387
  expect(clz.from_well_known_path).to_not be_nil
372
388
  end
373
389
  end
@@ -40,6 +40,7 @@ require 'multi_json'
40
40
  require 'openssl'
41
41
  require 'spec_helper'
42
42
  require 'tmpdir'
43
+ require 'os'
43
44
 
44
45
  include Google::Auth::CredentialsLoader
45
46
 
@@ -154,6 +155,7 @@ describe Google::Auth::UserRefreshCredentials do
154
155
  describe '#from_well_known_path' do
155
156
  before(:example) do
156
157
  @home = ENV['HOME']
158
+ @app_data = ENV['APPDATA']
157
159
  @scope = 'https://www.googleapis.com/auth/userinfo.profile'
158
160
  @known_path = WELL_KNOWN_PATH
159
161
  @clz = UserRefreshCredentials
@@ -161,6 +163,7 @@ describe Google::Auth::UserRefreshCredentials do
161
163
 
162
164
  after(:example) do
163
165
  ENV['HOME'] = @home unless @home == ENV['HOME']
166
+ ENV['APPDATA'] = @app_data unless @app_data == ENV['APPDATA']
164
167
  end
165
168
 
166
169
  it 'is nil if no file exists' do
@@ -173,9 +176,11 @@ describe Google::Auth::UserRefreshCredentials do
173
176
  needed.each do |missing|
174
177
  Dir.mktmpdir do |dir|
175
178
  key_path = File.join(dir, '.config', @known_path)
179
+ key_path = File.join(dir, @known_path) if OS.windows?
176
180
  FileUtils.mkdir_p(File.dirname(key_path))
177
181
  File.write(key_path, cred_json_text(missing))
178
182
  ENV['HOME'] = dir
183
+ ENV['APPDATA'] = dir
179
184
  expect { @clz.from_well_known_path(@scope) }
180
185
  .to raise_error RuntimeError
181
186
  end
@@ -185,9 +190,11 @@ describe Google::Auth::UserRefreshCredentials do
185
190
  it 'successfully loads the file when it is present' do
186
191
  Dir.mktmpdir do |dir|
187
192
  key_path = File.join(dir, '.config', @known_path)
193
+ key_path = File.join(dir, @known_path) if OS.windows?
188
194
  FileUtils.mkdir_p(File.dirname(key_path))
189
195
  File.write(key_path, cred_json_text)
190
196
  ENV['HOME'] = dir
197
+ ENV['APPDATA'] = dir
191
198
  expect(@clz.from_well_known_path(@scope)).to_not be_nil
192
199
  end
193
200
  end
@@ -196,10 +203,16 @@ describe Google::Auth::UserRefreshCredentials do
196
203
  describe '#from_system_default_path' do
197
204
  before(:example) do
198
205
  @scope = 'https://www.googleapis.com/auth/userinfo.profile'
199
- @path = File.join('/etc/google/auth/', CREDENTIALS_FILE_NAME)
206
+ @prefix = OS.windows? ? '/etc/Google/Auth/' : '/etc/google/auth/'
207
+ @path = File.join(@prefix, CREDENTIALS_FILE_NAME)
208
+ @program_data = ENV['ProgramData']
200
209
  @clz = UserRefreshCredentials
201
210
  end
202
211
 
212
+ after(:example) do
213
+ ENV['ProgramData'] = @program_data
214
+ end
215
+
203
216
  it 'is nil if no file exists' do
204
217
  FakeFS do
205
218
  expect(UserRefreshCredentials.from_system_default_path(@scope))
@@ -211,6 +224,7 @@ describe Google::Auth::UserRefreshCredentials do
211
224
  needed = %w(client_id client_secret refresh_token)
212
225
  needed.each do |missing|
213
226
  FakeFS do
227
+ ENV['ProgramData'] = '/etc'
214
228
  FileUtils.mkdir_p(File.dirname(@path))
215
229
  File.write(@path, cred_json_text(missing))
216
230
  expect { @clz.from_system_default_path(@scope) }
@@ -222,6 +236,7 @@ describe Google::Auth::UserRefreshCredentials do
222
236
 
223
237
  it 'successfully loads the file when it is present' do
224
238
  FakeFS do
239
+ ENV['ProgramData'] = '/etc'
225
240
  FileUtils.mkdir_p(File.dirname(@path))
226
241
  File.write(@path, cred_json_text)
227
242
  expect(@clz.from_system_default_path(@scope)).to_not be_nil
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: googleauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.6
4
+ version: 0.6.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Emiola
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-23 00:00:00.000000000 Z
11
+ date: 2018-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -50,14 +50,14 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0.12'
53
+ version: '0.16'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0.12'
60
+ version: '0.16'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: multi_json
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -116,6 +116,20 @@ extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
118
  - ".gitignore"
119
+ - ".kokoro/build.bat"
120
+ - ".kokoro/build.sh"
121
+ - ".kokoro/common.cfg"
122
+ - ".kokoro/continuous/common.cfg"
123
+ - ".kokoro/continuous/linux.cfg"
124
+ - ".kokoro/continuous/osx.cfg"
125
+ - ".kokoro/continuous/windows.cfg"
126
+ - ".kokoro/osx.sh"
127
+ - ".kokoro/presubmit/common.cfg"
128
+ - ".kokoro/presubmit/linux.cfg"
129
+ - ".kokoro/presubmit/osx.cfg"
130
+ - ".kokoro/presubmit/windows.cfg"
131
+ - ".kokoro/trampoline.sh"
132
+ - ".kokoro/windows.sh"
119
133
  - ".rspec"
120
134
  - ".rubocop.yml"
121
135
  - ".travis.yml"
@@ -182,7 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
196
  version: '0'
183
197
  requirements: []
184
198
  rubyforge_project:
185
- rubygems_version: 2.2.5
199
+ rubygems_version: 2.7.6
186
200
  signing_key:
187
201
  specification_version: 4
188
202
  summary: Google Auth Library for Ruby