escher 0.4.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dbb2c924f14cb51125c9a2248c3363c44db153f6
4
- data.tar.gz: 01990347371ae73f6e51b9f82f1c8912fd99d656
3
+ metadata.gz: f5d7892a58786fb9802e66a734ddc2f7f84a4b42
4
+ data.tar.gz: 18bf4433e019a4581eb6980f9819f2b336c3495a
5
5
  SHA512:
6
- metadata.gz: 8627e0c6108b62f1ab72136bcd0f53362ec50af7cbffdbed37560b2d9ee55cd449e1c953445447e6d1c3774e09f46534b8e14e7a6efc386e1887965e3abe2e88
7
- data.tar.gz: 8e7705c5395920085e166b1953db9433ad42db825acf1a733a4f70a6dfd640513f0f71034b115b1f1c8f6af5676a5293cdbccafefec4af40748bef7bf11e0097
6
+ metadata.gz: 006d627eddd82e86ef6e803019bee58183314d85b299a82a62da7e2579b069bd11e247d20d444822dd87acba7276612d19af415f608d5f55ccb88e532bdc36e4
7
+ data.tar.gz: 6d7cabbbaba10921751b255dcd9865f9bdc6abb08b1a7114190aac257f168f1118f9ea40b8399ac6502530ae3f04b38ebc7ef43cdc044eedf9f5eee9c4fcc71b
@@ -6,7 +6,7 @@ module Escher
6
6
  case request
7
7
 
8
8
  when defined?(ActionDispatch::Request) && ActionDispatch::Request
9
- ActionDispatchRequest.new(request)
9
+ RackRequest.new(Rack::Request.new(request.env))
10
10
 
11
11
  when defined?(Rack::Request) && Rack::Request
12
12
  RackRequest.new(request)
@@ -6,7 +6,6 @@ module Escher::Request
6
6
  require 'escher/request/hash_request'
7
7
  require 'escher/request/rack_request'
8
8
  require 'escher/request/legacy_request'
9
- require 'escher/request/action_dispatch_request'
10
9
 
11
10
  require 'escher/request/factory'
12
11
 
@@ -1,3 +1,3 @@
1
1
  module Escher
2
- VERSION = '0.4.3'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -7,19 +7,31 @@ require 'action_dispatch'
7
7
  describe Escher::Request::Factory do
8
8
 
9
9
  describe ".from_request" do
10
+ request_env = {Rack::PATH_INFO.to_s => "request-path"}
11
+
10
12
  {
11
13
 
12
- {uri: "request uri"} => Escher::Request::HashRequest,
13
- Struct.new(:uri) => Escher::Request::LegacyRequest,
14
- Rack::Request.new({}) => Escher::Request::RackRequest,
15
- ActionDispatch::Request.new({}) => Escher::Request::ActionDispatchRequest
14
+ {uri: "request-path"} => Escher::Request::HashRequest,
15
+ Struct.new("Request", :uri).new("request-path") => Escher::Request::LegacyRequest,
16
+ Rack::Request.new(request_env) => Escher::Request::RackRequest,
17
+ ActionDispatch::Request.new(request_env) => Escher::Request::RackRequest
16
18
 
17
19
  }.each do |request, expected_class|
18
20
 
19
- it "should return a #{expected_class.name} when the request to be wrapped is a #{request.class.name}" do
20
- expect(expected_class).to receive(:new).with(request).and_return "#{expected_class.name} wrapping request"
21
+ context "the request to be wrapped is a #{request.class.name}" do
22
+
23
+ it "returns a #{expected_class.name}" do
24
+ wrapped_request = described_class.from_request request
25
+
26
+ expect(wrapped_request).to be_an_instance_of expected_class
27
+ end
28
+
29
+ it "wraps the path from the original request" do
30
+ wrapped_request = described_class.from_request request
31
+
32
+ expect(wrapped_request.path).to eq "request-path"
33
+ end
21
34
 
22
- expect(described_class.from_request request).to eq "#{expected_class.name} wrapping request"
23
35
  end
24
36
 
25
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: escher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andras Barthazi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-25 00:00:00.000000000 Z
11
+ date: 2017-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -127,7 +127,6 @@ files:
127
127
  - lib/escher/auth.rb
128
128
  - lib/escher/escher_error.rb
129
129
  - lib/escher/request.rb
130
- - lib/escher/request/action_dispatch_request.rb
131
130
  - lib/escher/request/base.rb
132
131
  - lib/escher/request/dci.rb
133
132
  - lib/escher/request/dci/rack_env.rb
@@ -315,7 +314,6 @@ files:
315
314
  - spec/emarsys_testsuite/post-header-value-spaces.sreq
316
315
  - spec/emarsys_testsuite/post-header-value-spaces.sts
317
316
  - spec/escher/auth_spec.rb
318
- - spec/escher/request/action_dispatch_request_spec.rb
319
317
  - spec/escher/request/factory_spec.rb
320
318
  - spec/escher/request/hash_request_spec.rb
321
319
  - spec/escher/request/rack_request_spec.rb
@@ -343,7 +341,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
343
341
  version: '0'
344
342
  requirements: []
345
343
  rubyforge_project:
346
- rubygems_version: 2.5.1
344
+ rubygems_version: 2.6.8
347
345
  signing_key:
348
346
  specification_version: 4
349
347
  summary: Library for HTTP request signing (Ruby implementation)
@@ -526,7 +524,6 @@ test_files:
526
524
  - spec/emarsys_testsuite/post-header-value-spaces.sreq
527
525
  - spec/emarsys_testsuite/post-header-value-spaces.sts
528
526
  - spec/escher/auth_spec.rb
529
- - spec/escher/request/action_dispatch_request_spec.rb
530
527
  - spec/escher/request/factory_spec.rb
531
528
  - spec/escher/request/hash_request_spec.rb
532
529
  - spec/escher/request/rack_request_spec.rb
@@ -1,47 +0,0 @@
1
- module Escher
2
- module Request
3
- class ActionDispatchRequest < Base
4
-
5
- include Escher::Request::DCI::RackEnv
6
-
7
- def headers
8
- get_headers_by_rack_env(request.env)
9
- end
10
-
11
-
12
-
13
- def method
14
- request.request_method
15
- end
16
-
17
-
18
-
19
- def body
20
- case request.body
21
- when StringIO
22
- request.body.string
23
- else
24
- request.body.to_s
25
- end
26
- end
27
-
28
-
29
-
30
- def path
31
- request.env['REQUEST_PATH'] || request.path
32
- end
33
-
34
-
35
-
36
- def query_values
37
- Addressable::URI.new(:query => request.env['QUERY_STRING']).query_values(Array) or []
38
- end
39
-
40
-
41
-
42
- def set_header(header_name, value)
43
- end
44
-
45
- end
46
- end
47
- end
@@ -1,120 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'action_dispatch'
4
-
5
- describe Escher::Request::ActionDispatchRequest do
6
-
7
- let(:request_params) { {"PATH_INFO" => "/", } }
8
- let(:request) { ActionDispatch::Request.new(request_params) }
9
-
10
- subject { described_class.new request }
11
-
12
- describe "#request" do
13
- it "should return the underlying request object" do
14
- expect(subject.request).to eq request
15
- end
16
- end
17
-
18
-
19
- describe "#headers" do
20
- it "should return only the HTTP request headers" do
21
- request_params.merge! 'HTTP_HOST' => 'some host',
22
- 'SOME_HEADER' => 'some header'
23
-
24
- expect(subject.headers).to eq [['HOST', 'some host']]
25
- end
26
-
27
- it "should replace underscores with dashes in the header name" do
28
- request_params.merge! 'HTTP_HOST_NAME' => 'some host'
29
-
30
- expect(subject.headers).to eq [['HOST-NAME', 'some host']]
31
- end
32
-
33
- it 'should add the content-type and content-length to the headers' do
34
- request_params.merge!( 'CONTENT_LENGTH' => '123', 'CONTENT_TYPE' => 'text/plain' )
35
-
36
- expect(subject.headers).to eq [%w(CONTENT-LENGTH 123), %w(CONTENT-TYPE text/plain)]
37
- end
38
- end
39
-
40
-
41
- describe "#has_header?" do
42
- it "should return true if request has specified header, false otherwise" do
43
- request_params.merge! 'HTTP_HOST_NAME' => 'some host'
44
-
45
- expect(subject.has_header? 'host-name').to be_truthy
46
- expect(subject.has_header? 'no-such-header').to be_falsey
47
- end
48
- end
49
-
50
-
51
- describe "#header" do
52
- it "should return the value for the requested header" do
53
- request_params.merge! 'HTTP_HOST' => 'some host'
54
-
55
- expect(subject.header 'host').to eq 'some host'
56
- end
57
-
58
- it "should return nil if no such header exists" do
59
- expect(subject.header 'host').to be_nil
60
- end
61
- end
62
-
63
-
64
- describe "#method" do
65
- it "should return the request method" do
66
- request_params.merge! 'REQUEST_METHOD' => 'GET'
67
-
68
- expect(subject.method).to eq 'GET'
69
- end
70
- end
71
-
72
-
73
- describe "#body" do
74
- it "should return the request body" do
75
- request_params.merge! 'rack.input' => 'request body'
76
-
77
- expect(subject.body).to eq 'request body'
78
- end
79
-
80
- it "should return empty string for no body" do
81
- expect(subject.body).to eq ''
82
- end
83
- end
84
-
85
-
86
- describe "#path" do
87
- it "should return the request path" do
88
- request_params.merge! 'REQUEST_PATH' => '/resources/id///'
89
-
90
- expect(subject.path).to eq '/resources/id///'
91
- end
92
- end
93
-
94
-
95
- describe "#query_values" do
96
- it "should return the request query parameters as an array of key-value pairs" do
97
- request_params.merge! 'QUERY_STRING' => 'search=query&param=value'
98
-
99
- expect(subject.query_values).to eq [['search', 'query'], ['param', 'value']]
100
- end
101
-
102
- it "should return the query parameters regardless of fragments" do
103
- request_params.merge! 'QUERY_STRING' => "@\#$%^&+=/,?><`\";:\\|][{}"
104
-
105
- expect(subject.query_values).to eq [["@\#$%^"], ["+", "/,?><`\";:\\|][{}"]]
106
- end
107
-
108
- it "should return an empty array if the request has no query parameters" do
109
- expect(subject.query_values).to eq []
110
- end
111
- end
112
-
113
-
114
- describe "#set_header" do
115
- it "should ignore calls" do
116
- expect { subject.set_header 'test-header', 'test value' }.not_to raise_error
117
- end
118
- end
119
-
120
- end