ur 0.2.0 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/README.md +2 -2
- data/lib/ur/content_type.rb +65 -41
- data/lib/ur/middleware.rb +2 -2
- data/lib/ur/request_and_response.rb +8 -4
- data/lib/ur/sub_ur.rb +1 -1
- data/lib/ur/version.rb +1 -1
- data/lib/ur/weblink.rb +125 -0
- data/lib/ur.rb +10 -9
- data/resources/ur.schema.yml +1 -0
- data/ur.gemspec +12 -15
- metadata +11 -152
- data/.simplecov +0 -1
- data/Rakefile.rb +0 -9
- data/resources/icons/LGPL-3.0.png +0 -0
- data/test/content_type_test.rb +0 -342
- data/test/test_helper.rb +0 -33
- data/test/ur_faraday_test.rb +0 -79
- data/test/ur_metadata_test.rb +0 -11
- data/test/ur_rack_test.rb +0 -25
- data/test/ur_test.rb +0 -105
data/test/ur_metadata_test.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
require_relative 'test_helper'
|
2
|
-
|
3
|
-
describe 'Ur metadata' do
|
4
|
-
it 'sets duration from began_at' do
|
5
|
-
ur = Ur.new
|
6
|
-
ur.metadata.began_at = Time.now
|
7
|
-
ur.metadata.finish!
|
8
|
-
assert_instance_of(Float, ur.metadata.duration)
|
9
|
-
assert_operator(ur.metadata.duration, :>, 0)
|
10
|
-
end
|
11
|
-
end
|
data/test/ur_rack_test.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
require_relative 'test_helper'
|
2
|
-
require 'rack'
|
3
|
-
|
4
|
-
describe 'Ur rack integration' do
|
5
|
-
it 'builds from a rack env' do
|
6
|
-
env = Rack::MockRequest.env_for('https://ur.unth.net/', {'HTTP_FOO' => 'bar'})
|
7
|
-
ur = Ur.from_rack_request(env)
|
8
|
-
assert_equal('inbound', ur.bound)
|
9
|
-
assert_equal('GET', ur.request['method'])
|
10
|
-
assert_equal('bar', ur.request.headers['foo'])
|
11
|
-
assert_equal('https://ur.unth.net/', ur.request.uri)
|
12
|
-
assert(ur.response.empty?)
|
13
|
-
assert(ur.validate)
|
14
|
-
end
|
15
|
-
it 'builds from a rack request' do
|
16
|
-
env = Rack::Request.new(Rack::MockRequest.env_for('https://ur.unth.net/', {'HTTP_FOO' => 'bar'}))
|
17
|
-
ur = Ur.from_rack_request(env)
|
18
|
-
assert_equal('inbound', ur.bound)
|
19
|
-
assert_equal('GET', ur.request['method'])
|
20
|
-
assert_equal('bar', ur.request.headers['foo'])
|
21
|
-
assert_equal('https://ur.unth.net/', ur.request.uri)
|
22
|
-
assert(ur.response.empty?)
|
23
|
-
assert(ur.validate)
|
24
|
-
end
|
25
|
-
end
|
data/test/ur_test.rb
DELETED
@@ -1,105 +0,0 @@
|
|
1
|
-
require_relative 'test_helper'
|
2
|
-
require 'faraday'
|
3
|
-
require 'active_support/tagged_logging'
|
4
|
-
|
5
|
-
describe 'Ur' do
|
6
|
-
it 'has a valid schema' do
|
7
|
-
Ur.schema.validate_schema!
|
8
|
-
end
|
9
|
-
|
10
|
-
it 'initializes' do
|
11
|
-
Ur.new_jsi({})
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'would prefer not to initialize' do
|
15
|
-
assert_raises(TypeError) { Ur.new("hello!") }
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'integrates with rack and faraday middlewares' do
|
19
|
-
rack_app = proc do |env|
|
20
|
-
[200, {'Content-Type' => 'text/plain'}, ['ᚒ']]
|
21
|
-
end
|
22
|
-
client_logger = ActiveSupport::TaggedLogging.new(Logger.new(StringIO.new))
|
23
|
-
server_logger = ActiveSupport::TaggedLogging.new(Logger.new(StringIO.new))
|
24
|
-
called_rack_before_request = false
|
25
|
-
called_rack_after_response = false
|
26
|
-
called_faraday_before_request = false
|
27
|
-
called_faraday_after_response = false
|
28
|
-
rack_app = Ur::RackMiddleware.new(rack_app, logger: server_logger,
|
29
|
-
before_request: -> (ur) do
|
30
|
-
called_rack_before_request = true
|
31
|
-
|
32
|
-
server_logger.push_tags 'ur_test_rack'
|
33
|
-
|
34
|
-
assert_equal('inbound', ur.bound)
|
35
|
-
assert_equal('GET', ur.request['method'])
|
36
|
-
assert_equal('ur.unth.net', ur.request.headers['host'])
|
37
|
-
assert_equal('bar', ur.request.headers['foo'])
|
38
|
-
assert_equal('https://ur.unth.net/', ur.request.uri)
|
39
|
-
assert(ur.response.empty?)
|
40
|
-
assert_nil(ur.metadata.began_at)
|
41
|
-
assert_nil(ur.metadata.duration)
|
42
|
-
assert(ur.validate)
|
43
|
-
end,
|
44
|
-
after_response: -> (ur) do
|
45
|
-
called_rack_after_response = true
|
46
|
-
|
47
|
-
server_logger.pop_tags
|
48
|
-
|
49
|
-
assert_equal('inbound', ur.bound)
|
50
|
-
assert_equal('GET', ur.request['method'])
|
51
|
-
assert_equal(200, ur.response.status)
|
52
|
-
assert_equal('text/plain', ur.response.headers['Content-Type'])
|
53
|
-
assert_equal('ᚒ', ur.response.body)
|
54
|
-
assert_instance_of(Time, ur.metadata.began_at)
|
55
|
-
assert_instance_of(Float, ur.metadata.duration)
|
56
|
-
assert_operator(ur.metadata.duration, :>, 0)
|
57
|
-
assert_equal(['ur_test_rack'], ur.metadata.tags.to_a)
|
58
|
-
assert(ur.validate)
|
59
|
-
end,
|
60
|
-
)
|
61
|
-
faraday_conn = ::Faraday.new('https://ur.unth.net/') do |builder|
|
62
|
-
builder.use(Ur::FaradayMiddleware, logger: client_logger,
|
63
|
-
before_request: -> (ur) do
|
64
|
-
called_faraday_before_request = true
|
65
|
-
|
66
|
-
client_logger.push_tags 'ur_test_faraday'
|
67
|
-
|
68
|
-
assert_equal('outbound', ur.bound)
|
69
|
-
assert_equal('get', ur.request['method'])
|
70
|
-
assert_equal('bar', ur.request.headers['foo'])
|
71
|
-
assert_equal('https://ur.unth.net/', ur.request.uri)
|
72
|
-
assert_equal(Addressable::URI.parse('https://ur.unth.net/'), ur.request.addressable_uri)
|
73
|
-
assert(ur.response.empty?)
|
74
|
-
assert_nil(ur.metadata.began_at)
|
75
|
-
assert_nil(ur.metadata.duration)
|
76
|
-
assert(ur.validate)
|
77
|
-
end,
|
78
|
-
after_response: -> (ur) do
|
79
|
-
called_faraday_after_response = true
|
80
|
-
|
81
|
-
client_logger.pop_tags
|
82
|
-
|
83
|
-
assert_equal('outbound', ur.bound)
|
84
|
-
assert_equal('get', ur.request['method'])
|
85
|
-
assert_equal(200, ur.response.status)
|
86
|
-
assert_equal('text/plain', ur.response.headers['Content-Type'])
|
87
|
-
assert_equal('ᚒ', ur.response.body)
|
88
|
-
assert_instance_of(Time, ur.metadata.began_at)
|
89
|
-
assert_instance_of(Float, ur.metadata.duration)
|
90
|
-
assert_operator(ur.metadata.duration, :>, 0)
|
91
|
-
assert_equal(['ur_test_faraday'], ur.metadata.tags.to_a)
|
92
|
-
assert(ur.validate)
|
93
|
-
end,
|
94
|
-
)
|
95
|
-
builder.adapter(:rack, rack_app)
|
96
|
-
end
|
97
|
-
res = faraday_conn.get('/', nil, {'Foo' => 'bar'})
|
98
|
-
assert(called_rack_before_request)
|
99
|
-
assert(called_rack_after_response)
|
100
|
-
assert(called_faraday_before_request)
|
101
|
-
assert(called_faraday_after_response)
|
102
|
-
assert_equal(200, res.status)
|
103
|
-
assert_equal('ᚒ', res.body)
|
104
|
-
end
|
105
|
-
end
|