registrar 0.1.1 → 0.2

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
  SHA1:
3
- metadata.gz: a25b22e6152db7324fd77fe314456f0712b3307c
4
- data.tar.gz: bdabcd14909f9a8c52a30281b348f26479bc5e39
3
+ metadata.gz: aea36c6ffc82208ace8e3d29c4f68bbdb256532f
4
+ data.tar.gz: 9a5ff1921848ac3abef563fcc4da7355a1c856de
5
5
  SHA512:
6
- metadata.gz: 39cca0acf4f69843cc945e83a3414ccd6b5c4ca3a1834d4a3123ecceaa53c8a7d84ef289c586ed7bca6f9a7af41035c7960164eeebd7bc84833e2a6d5b374d02
7
- data.tar.gz: be78150a414142ae34a14799f5a34e78f968294e2e48b49d484520b6f233b8e6b4ecdfd24ae1a9879fd1cc3a9c527c973613a9a2de25d076217f6303bc1416ff
6
+ metadata.gz: de3e2f7d3633a230a150f389fad514181f453f773648d1e738cf5cb4769a9715f6229a154ddf6d448942667a3d19d59badbdf9b4c4b9aa606cefe098c23d9409
7
+ data.tar.gz: ef54cf222736dd0e882a4014114653adb017a0cbdf2d22644b7dd876c3f850466ea110b0430396d2d7109928e716915303a4c89f2e1483159a32a54ed3d4f631
@@ -99,7 +99,14 @@ module Registrar
99
99
  end
100
100
 
101
101
  def ip
102
- env['HTTP_CLIENT_IP'] || env['HTTP_X_REMOTE_ADDR'] || env['REMOTE_ADDR']
102
+ action_dispatch_remote_ip || env['HTTP_CLIENT_IP'] ||
103
+ env['HTTP_X_REMOTE_ADDR'] || env['REMOTE_ADDR']
104
+ end
105
+
106
+ def action_dispatch_remote_ip
107
+ if remote_ip = env['action_dispatch.remote_ip']
108
+ remote_ip.to_s
109
+ end
103
110
  end
104
111
 
105
112
  def user_agent
@@ -1,3 +1,3 @@
1
1
  module Registrar
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2"
3
3
  end
@@ -2,11 +2,45 @@ require 'spec_helper'
2
2
  require 'omniauth'
3
3
 
4
4
  class OmniAuthAuthBuilderSpec < Spec
5
+ let(:passed_env) { Hash.new }
6
+
5
7
  it 'normalizes OmniAuth Auth Hash Schema 1.0 and later' do
6
- get '/'
8
+ passed_env['HTTP_USER_AGENT'] = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7"
9
+ passed_env['REMOTE_ADDR'] = "127.0.0.2"
10
+ passed_env['X-Locale'] = 'fr'
11
+
12
+ get '/', nil, passed_env
7
13
  assert_normalizes_auth env
8
14
  end
9
15
 
16
+ it 'prefers HTTP_X_REMOTE_ADDR over REMOTE_ADDR' do
17
+ passed_env['REMOTE_ADDR'] = '127.0.0.2'
18
+ passed_env['HTTP_X_REMOTE_ADDR'] = '127.0.0.3'
19
+
20
+ get '/', nil, passed_env
21
+
22
+ assert_equal passed_env['HTTP_X_REMOTE_ADDR'], traced['ip']
23
+ end
24
+
25
+ it 'prefers HTTP_CLIENT_IP over HTTP_X_REMOTE_ADDR' do
26
+ passed_env['HTTP_X_REMOTE_ADDR'] = '127.0.0.3'
27
+ passed_env['HTTP_CLIENT_IP'] = '127.0.0.4'
28
+
29
+ get '/', nil, passed_env
30
+
31
+ assert_equal passed_env['HTTP_CLIENT_IP'], traced['ip']
32
+ end
33
+
34
+ it 'prefers action_dispatch.remote_ip in env over HTTP_CLIENT_IP' do
35
+ remote_ip = RemoteIpFake.new("127.0.0.5")
36
+ passed_env['action_dispatch.remote_ip'] = remote_ip
37
+ passed_env['HTTP_CLIENT_IP'] = '127.0.0.4'
38
+
39
+ get '/', nil, passed_env
40
+
41
+ assert_equal "127.0.0.5", traced['ip']
42
+ end
43
+
10
44
  private
11
45
 
12
46
  def assert_normalizes_auth(env)
@@ -61,17 +95,8 @@ class OmniAuthAuthBuilderSpec < Spec
61
95
  builder.to_app
62
96
  end
63
97
 
64
- class TraceStub
65
- def initialize(app)
66
- @app = app
67
- end
68
-
69
- def call(env)
70
- env['X-Locale'] = 'fr'
71
- env['HTTP_USER_AGENT'] = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7"
72
- env['REMOTE_ADDR'] = "127.0.0.2"
73
- @app.call(env)
74
- end
98
+ def traced
99
+ env['registrar.auth']['trace']
75
100
  end
76
101
 
77
102
  class TimeStub
@@ -80,18 +105,6 @@ class OmniAuthAuthBuilderSpec < Spec
80
105
  end
81
106
  end
82
107
 
83
- def env
84
- last_request.env
85
- end
86
-
87
- def response
88
- last_response
89
- end
90
-
91
- def app
92
- @app ||= build_app
93
- end
94
-
95
108
  class OmniAuthFacebookStub
96
109
  def initialize(app)
97
110
  @app = app
@@ -121,9 +134,14 @@ class OmniAuthAuthBuilderSpec < Spec
121
134
  end
122
135
  end
123
136
 
137
+ class RemoteIpFake < Struct.new(:ip)
138
+ def to_s
139
+ ip
140
+ end
141
+ end
142
+
124
143
  def builder
125
144
  Rack::Builder.new do
126
- use TraceStub
127
145
  use OmniAuthFacebookStub
128
146
 
129
147
  use Registrar::AuthBuilder::OmniAuth, TimeStub.new
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: registrar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: '0.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Owiesniak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-14 00:00:00.000000000 Z
11
+ date: 2016-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: omniauth