disiid_user 3.1.4 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: aa044938972c66d9e4fa7c5f005b589fdedc8d5a
4
+ data.tar.gz: 83f7a1427949832bd5b0caa9d813d8dc7d0a374b
5
+ SHA512:
6
+ metadata.gz: dbd2a1293b0f9c721f91d466a07195f1eae238b45ca84bf3882969e430c7c05ae817c62074e0e99c9f3b0dcc378632807615dc45c32591fb35f615a4450e7936
7
+ data.tar.gz: bb62f8268cb8b65a80d5a8e3937f0047900fe651ad9a916b048b34b171fd59dbfc519e2510ea788b1783a53e302115b136ac10e15db02b10aa8bf7165a4d62c1
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source "http://rubygems.org"
2
-
2
+ gem 'activeresource', require: 'active_resource'
3
3
  # Specify your gem's dependencies in disiid_user.gemspec
4
4
  gemspec
data/disiid_user.gemspec CHANGED
@@ -11,7 +11,8 @@ Gem::Specification.new do |s|
11
11
  s.homepage = "http://disi.unitn.it"
12
12
  s.summary = %q{DISI ID global user}
13
13
  s.description = %q{DISI - UniTN internal development}
14
-
14
+ s.license = "MIT"
15
+
15
16
  s.required_rubygems_version = ">= 1.3.6"
16
17
  s.rubyforge_project = "disiid_user"
17
18
 
@@ -21,9 +22,10 @@ Gem::Specification.new do |s|
21
22
  s.require_paths = ["lib"]
22
23
 
23
24
  # specify any dependencies here; for example:
24
- s.add_development_dependency "rspec"
25
- s.add_development_dependency "bundler"
25
+ s.add_development_dependency "rspec", '~> 3'
26
+ s.add_development_dependency "rspec-mocks", '~> 3'
27
+ s.add_development_dependency "bundler", '~> 1'
26
28
  # runtime dependencies
27
- s.add_runtime_dependency "activeresource", '~> 3'
28
- s.add_runtime_dependency "activerecord", '~> 3'
29
+ s.add_runtime_dependency "activeresource", '~> 4'
30
+ s.add_runtime_dependency "activerecord", '~> 4'
29
31
  end
@@ -1,3 +1,3 @@
1
1
  module DisiidUser
2
- VERSION = "3.1.4"
2
+ VERSION = "4.0.1"
3
3
  end
@@ -1,5 +1,9 @@
1
1
  require 'spec_helper'
2
2
  require 'stub_user'
3
+ require 'fakeweb'
4
+ #require 'webmock/rspec'
5
+ require 'active_resource'
6
+ require 'active_resource/http_mock'
3
7
 
4
8
  # admin@example.org
5
9
  # 6a002a40-bc63-4095-9bb0-f31bf386bf55
@@ -39,8 +43,14 @@ describe DisiidUser do
39
43
  shared_examples_for "new user from identity" do
40
44
  it { should be_instance_of(User) }
41
45
  it { should be_new_record }
42
- its(:identity_url) { should == 'http://openid.provider.local/users/6a002a40-bc63-4095-9bb0-f31bf386bf55' }
43
- its(:uuid) { should == '6a002a40-bc63-4095-9bb0-f31bf386bf55' }
46
+ # its(:identity_url) { should == 'http://openid.provider.local/users/6a002a40-bc63-4095-9bb0-f31bf386bf55' }
47
+ # its(:uuid) { should == '6a002a40-bc63-4095-9bb0-f31bf386bf55' }
48
+ it "has correct identity url" do
49
+ expect(subject.identity_url).to eq 'http://openid.provider.local/users/6a002a40-bc63-4095-9bb0-f31bf386bf55'
50
+ end
51
+ it "has correct uuid" do
52
+ expect(subject.uuid).to eq '6a002a40-bc63-4095-9bb0-f31bf386bf55'
53
+ end
44
54
  end
45
55
 
46
56
  describe ".build_from_identity" do
@@ -243,15 +253,21 @@ describe DisiidUser do
243
253
  end
244
254
 
245
255
  context 'when exists' do
256
+
246
257
  before {
247
- @user.identity_url = "http://openid.provider.local/users/6a002a40-bc63-4095-9bb0-f31bf386bf55"
258
+ @user.identity_url = "http://openid.provider.local/users/6a002a40-bc63-4095-9bb0-f31bf386bf55"
259
+ ActiveResource::HttpMock.respond_to do |mock|
260
+ mock.get "/users/#{@user.uuid}.xml?auth_token=#{DisiidUser::RemoteUser.auth_token}", {"Accept" => "application/xml"}, File.read("#{File.dirname(__FILE__)}/#{@user.uuid}.xml"), 200
261
+ mock.get "/users/#{@user.uuid}.json?auth_token=#{DisiidUser::RemoteUser.auth_token}", {"Accept" => "application/json"}, File.read("#{File.dirname(__FILE__)}/#{@user.uuid}.json"), 200
262
+ end
248
263
  }
249
264
 
250
265
  [:xml, :json].each { |format|
251
266
  it "should have remote attributes in #{format} format" do
252
267
  DisiidUser::RemoteUser.format = format
268
+ DisiidUser::RemoteUser.auth_token = 'sometoken'
253
269
  ActiveSupport.parse_json_times = true
254
-
270
+ expect(@user.email).not_to be_nil
255
271
  @user.email.should == 'admin@example.org'
256
272
  @user.first_name.should == 'John'
257
273
  @user.last_name.should == 'Smith'
@@ -275,13 +291,17 @@ describe DisiidUser do
275
291
  @user.remote_updated_at.should == DateTime.parse('2011-12-06T11:15:33Z')
276
292
  # for this to evaluate to boolean
277
293
  # XML tag should contain type="boolean" attribute
278
- @user.hide_photo.should be_false
294
+ expect(@user.hide_photo).to be false
279
295
  end
280
296
  }
281
297
 
282
298
  it 'should have assign methods like email=(...)' do
283
- @user.email = 'new@email.com'
284
- @user.email.should == 'new@email.com'
299
+ DisiidUser::RemoteUser.format = :xml
300
+ DisiidUser::RemoteUser.auth_token = 'sometoken'
301
+ DisiidUser::RemoteUser.site = "http://openid.provider.local"
302
+
303
+ @user.email ='new@email.com'
304
+ expect(@user.email).to eq 'new@email.com'
285
305
 
286
306
  @user.homepage = 'http://some.page.com'
287
307
  @user.homepage.should == 'http://some.page.com'
@@ -290,6 +310,7 @@ describe DisiidUser do
290
310
 
291
311
  it 'should get all roles, including remote' do
292
312
  @user.local_roles = 'manager'
313
+
293
314
  @user.roles.should include 'admin' # remote
294
315
  @user.roles.should include 'manager' # local
295
316
  end
@@ -306,7 +327,14 @@ describe DisiidUser do
306
327
  end # context 'when exists'
307
328
 
308
329
  context 'when search' do
309
- before { DisiidUser::RemoteUser.auth_token = 'sometoken' }
330
+ before {
331
+ DisiidUser::RemoteUser.auth_token = 'sometoken'
332
+ ActiveResource::HttpMock.respond_to do |mock|
333
+ mock.get "/users.xml?auth_token=#{DisiidUser::RemoteUser.auth_token}&q=e", {"Accept" => "application/xml"}, File.read("#{File.dirname(__FILE__)}/users.xml"), 200
334
+ mock.get "/users.json?auth_token=#{DisiidUser::RemoteUser.auth_token}&q=e", {"Accept" => "application/json"}, File.read("#{File.dirname(__FILE__)}/users.json"), 200
335
+ end
336
+
337
+ }
310
338
 
311
339
  it 'should find a list of users with activeresource' do
312
340
  @users = DisiidUser::RemoteUser.find(:all , :params => {:q => 'e', :auth_token => 'sometoken'})
data/spec/spec_helper.rb CHANGED
@@ -2,7 +2,25 @@ require 'rspec'
2
2
  require 'disiid_user'
3
3
  require 'active_record/errors'
4
4
 
5
+ ##
6
+ # keep compatibility to rspec 2.x
7
+ module DoubleAliases
8
+ def mock(*args, &block)
9
+ double(*args, &block)
10
+ end
11
+ alias stub mock
12
+ end
13
+
5
14
  RSpec.configure do |config|
6
- config.color_enabled = true
15
+ config.include DoubleAliases
16
+ config.color = true
7
17
  config.formatter = 'documentation'
18
+ # keep compatibility to rspec 2.x
19
+ config.expect_with :rspec do |c|
20
+ c.syntax = [:should, :expect]
21
+ end
22
+ # keep compatibility to rspec 2.x
23
+ config.mock_with :rspec do |c|
24
+ c.syntax = [:should, :expect]
25
+ end
8
26
  end
data/spec/stub_user.rb CHANGED
@@ -23,11 +23,13 @@ class User
23
23
  def self.scope(*args); end
24
24
 
25
25
  include DisiidUser
26
+
26
27
  end
27
28
 
28
29
  class FakeResponse
29
30
  attr_accessor :body
30
31
  def initialize(body); @body = body; end
32
+
31
33
  end
32
34
 
33
35
  # Stub ActiveRecord so that it won't do real HTTP requests
@@ -35,30 +37,57 @@ module ActiveResource
35
37
  class Connection
36
38
  # taps into ActiveRecord to read data from stub files
37
39
  # instead of doing a real HTTP request
38
- def get(path, *args)
39
- read_from_file(path)
40
- rescue; raise ActiveResource::ResourceNotFound; end
40
+ ## def get(path, *args)
41
+ # def get(path, headers = {})
42
+ # read_from_file(path)
43
+ # rescue; raise ActiveResource::ResourceNotFound; end
44
+ #
45
+ # # stubs PUT request so to not do it for real
46
+ ## def put(path, payload, headers)
47
+ # def put(path, body = '', headers = {})
48
+ # read_from_file(path)
49
+ # rescue; raise ActiveResource::ResourceNotFound; end
50
+ #
51
+ # def patch(path, body = '', headers = {})
52
+ # read_from_file(path)
53
+ # rescue; raise ActiveResource::ResourceNotFound; end
41
54
 
42
- # stubs PUT request so to not do it for real
43
- def put(path, payload, headers)
44
- read_from_file(path)
45
- rescue; raise ActiveResource::ResourceNotFound; end
55
+ # # taps into ActiveRecord to read data from stub files
56
+ # # instead of doing a real HTTP request
57
+ # def get(path, *args)
58
+ # read_from_file(path)
59
+ # rescue; raise ActiveResource::ResourceNotFound; end
60
+ #
61
+ # # stubs PUT request so to not do it for real
62
+ # def put(path, payload, headers)
63
+ # read_from_file(path)
64
+ # rescue; raise ActiveResource::ResourceNotFound; end
46
65
 
47
66
  private
48
67
 
49
68
  def read_from_file(fake_url_path)
50
- if matched = /users\.(xml|json)/.match(fake_url_path)
51
- filename = "#{File.dirname(__FILE__)}/users.#{matched[1]}"
69
+ # if matched = /users\.(xml|json)/.match(fake_url_path)
70
+ # filename = "#{File.dirname(__FILE__)}/users.#{matched[1]}"
71
+ # else
72
+ # # /collection_name/uuid?query
73
+ # record = /\/[^\/]+\/([^\/\?]+)/.match(fake_url_path)[1]
74
+ # # record string includes .xml or .json too
75
+ # filename = "#{File.dirname(__FILE__)}/#{record}".sub(/\?.*$/, '')
76
+ # end
77
+ # fake_url_path
78
+ # /users.xml?uuid=XXX
79
+ # /users.xml
80
+ if fake_url_path.match("uuid=")
81
+ name = fake_url_path.split("?uuid=")[1]
82
+ ext = fake_url_path.split("?uuid=")[0].split(".")[1]
83
+ filename = "#{File.dirname(__FILE__)}/#{name}.#{ext}"
52
84
  else
53
- # /collection_name/uuid?query
54
- record = /\/[^\/]+\/([^\/\?]+)/.match(fake_url_path)[1]
55
- # record string includes .xml or .json too
56
- filename = "#{File.dirname(__FILE__)}/#{record}".sub(/\?.*$/, '')
85
+ filename = "#{File.dirname(__FILE__)}/#{fake_url_path.split("?")[0].sub(/^\//, '')}"
57
86
  end
58
87
  # format is either ActiveResource::Formats::XmlFormat or JsonFormat
59
88
  # 3.0.x defaults to XML, 3.1.x defaults to JSON
60
89
  data = open(filename).read
61
- /3\.1/.match(ActiveResource::VERSION::STRING) ? FakeResponse.new(data) : format.decode(data)
90
+ { :body => /3\.1/.match(ActiveResource::VERSION::STRING) ? FakeResponse.new(data) : format.decode(data) }
62
91
  end
63
92
  end
64
93
  end
@@ -74,3 +103,4 @@ module Rails
74
103
  def self.cache; StubCache; end
75
104
  end
76
105
 
106
+
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: disiid_user
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.4
5
- prerelease:
4
+ version: 4.0.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Danilo Severina
@@ -10,52 +9,78 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2011-12-28 00:00:00.000000000Z
12
+ date: 2015-07-09 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: rspec
17
- requirement: &70313544551380 !ruby/object:Gem::Requirement
18
- none: false
16
+ requirement: !ruby/object:Gem::Requirement
19
17
  requirements:
20
- - - ! '>='
18
+ - - "~>"
21
19
  - !ruby/object:Gem::Version
22
- version: '0'
20
+ version: '3'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '3'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rspec-mocks
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '3'
23
35
  type: :development
24
36
  prerelease: false
25
- version_requirements: *70313544551380
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '3'
26
42
  - !ruby/object:Gem::Dependency
27
43
  name: bundler
28
- requirement: &70313544550720 !ruby/object:Gem::Requirement
29
- none: false
44
+ requirement: !ruby/object:Gem::Requirement
30
45
  requirements:
31
- - - ! '>='
46
+ - - "~>"
32
47
  - !ruby/object:Gem::Version
33
- version: '0'
48
+ version: '1'
34
49
  type: :development
35
50
  prerelease: false
36
- version_requirements: *70313544550720
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1'
37
56
  - !ruby/object:Gem::Dependency
38
57
  name: activeresource
39
- requirement: &70313544550160 !ruby/object:Gem::Requirement
40
- none: false
58
+ requirement: !ruby/object:Gem::Requirement
41
59
  requirements:
42
- - - ~>
60
+ - - "~>"
43
61
  - !ruby/object:Gem::Version
44
- version: '3'
62
+ version: '4'
45
63
  type: :runtime
46
64
  prerelease: false
47
- version_requirements: *70313544550160
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '4'
48
70
  - !ruby/object:Gem::Dependency
49
71
  name: activerecord
50
- requirement: &70313544549320 !ruby/object:Gem::Requirement
51
- none: false
72
+ requirement: !ruby/object:Gem::Requirement
52
73
  requirements:
53
- - - ~>
74
+ - - "~>"
54
75
  - !ruby/object:Gem::Version
55
- version: '3'
76
+ version: '4'
56
77
  type: :runtime
57
78
  prerelease: false
58
- version_requirements: *70313544549320
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '4'
59
84
  description: DISI - UniTN internal development
60
85
  email:
61
86
  - tech@disi.unitn.it
@@ -63,8 +88,8 @@ executables: []
63
88
  extensions: []
64
89
  extra_rdoc_files: []
65
90
  files:
66
- - .gitignore
67
- - .rvmrc-template
91
+ - ".gitignore"
92
+ - ".rvmrc-template"
68
93
  - Gemfile
69
94
  - Rakefile
70
95
  - TODO
@@ -82,37 +107,27 @@ files:
82
107
  - spec/users.json
83
108
  - spec/users.xml
84
109
  homepage: http://disi.unitn.it
85
- licenses: []
110
+ licenses:
111
+ - MIT
112
+ metadata: {}
86
113
  post_install_message:
87
114
  rdoc_options: []
88
115
  require_paths:
89
116
  - lib
90
117
  required_ruby_version: !ruby/object:Gem::Requirement
91
- none: false
92
118
  requirements:
93
- - - ! '>='
119
+ - - ">="
94
120
  - !ruby/object:Gem::Version
95
121
  version: '0'
96
122
  required_rubygems_version: !ruby/object:Gem::Requirement
97
- none: false
98
123
  requirements:
99
- - - ! '>='
124
+ - - ">="
100
125
  - !ruby/object:Gem::Version
101
126
  version: 1.3.6
102
127
  requirements: []
103
128
  rubyforge_project: disiid_user
104
- rubygems_version: 1.8.10
129
+ rubygems_version: 2.4.3
105
130
  signing_key:
106
- specification_version: 3
131
+ specification_version: 4
107
132
  summary: DISI ID global user
108
- test_files:
109
- - spec/596568c5-d6e7-4328-815c-c532aeed1198.xml
110
- - spec/6a002a40-bc63-4095-9bb0-f31bf386bf55.json
111
- - spec/6a002a40-bc63-4095-9bb0-f31bf386bf55.xml
112
- - spec/disiid_user_spec.rb
113
- - spec/remote_user_spec.rb
114
- - spec/spec_helper.rb
115
- - spec/stub_methods_spec.rb
116
- - spec/stub_user.rb
117
- - spec/users.json
118
- - spec/users.xml
133
+ test_files: []