djatoka 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +25 -0
- data/.travis.yml +9 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +68 -0
- data/README.rdoc +2 -0
- data/Rakefile +3 -34
- data/djatoka.gemspec +30 -0
- data/fixtures/vcr_cassettes/djatoka_common.yml +50 -0
- data/init.rb +2 -0
- data/lib/djatoka.rb +0 -1
- data/lib/djatoka/resolver.rb +4 -3
- data/test/fixtures/5aa182c2-c092-4596-af6e-e95d2e263de3.json +16 -0
- data/test/fixtures/b820f537-26a1-4af8-b86a-e7a4cac6187a.json +16 -0
- data/test/fixtures/empty-metadata.json +8 -0
- data/test/fixtures/ping-5aa182c2-c092-4596-af6e-e95d2e263de3.json +11 -0
- data/test/fixtures/ping-asdf.json +9 -0
- data/test/fixtures/ua023_015-006-bx0003-014-075-metadata.json +16 -0
- data/test/helper.rb +55 -0
- data/test/test_common.rb +97 -0
- data/test/test_djatoka.rb +29 -0
- data/test/test_metadata.rb +103 -0
- data/test/test_region.rb +151 -0
- data/test/test_resolver.rb +101 -0
- data/test/test_view_helpers.rb +15 -0
- data/watchr.rb +67 -0
- metadata +142 -140
- data/VERSION +0 -1
data/test/test_common.rb
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestDjatokaCommon < Test::Unit::TestCase
|
4
|
+
|
5
|
+
context 'A Djatoka Resolver' do
|
6
|
+
with_a_resolver do
|
7
|
+
setup do
|
8
|
+
@region = Djatoka::Region.new(@resolver, @identifier)
|
9
|
+
end
|
10
|
+
should 'create a query for a 75x75 version of the image' do
|
11
|
+
assert_equal '0,874,106,106', @region.smallbox.query.region
|
12
|
+
assert_equal '75', @region.smallbox.query.scale
|
13
|
+
end
|
14
|
+
|
15
|
+
should 'return a String for a smallbox URL' do
|
16
|
+
assert @region.smallbox_url.is_a? String
|
17
|
+
assert @region.smallbox_url.include? 'http://african.lanl.gov'
|
18
|
+
assert @region.smallbox_url.include? 'svc.region=0%2C874%2C106%2C106'
|
19
|
+
end
|
20
|
+
|
21
|
+
should 'return a uri for a small square version of the image' do
|
22
|
+
assert_equal '0,874,106,106', @region.smallbox.uri.query_values['svc.region']
|
23
|
+
end
|
24
|
+
|
25
|
+
should 'create a query for a square version of the image' do
|
26
|
+
assert_equal '0,874,3372,3372', @region.square.query.region
|
27
|
+
assert_equal nil, @region.square.query.scale
|
28
|
+
end
|
29
|
+
should 'create a query for a left justified version of the image' do
|
30
|
+
assert_equal '0,0,3372,3372', @region.top_left_square.query.region
|
31
|
+
end
|
32
|
+
should 'create a query for a right justified version of the image' do
|
33
|
+
assert_equal '0,1748,3372,3372', @region.bottom_right_square.query.region
|
34
|
+
end
|
35
|
+
should 'return a uri for a square version of the image' do
|
36
|
+
assert_equal '0,874,3372,3372', @region.square_uri.query_values['svc.region']
|
37
|
+
assert_equal nil, @region.square_uri.query_values['svc.scale']
|
38
|
+
end
|
39
|
+
should 'return a url for a square version of the image' do
|
40
|
+
assert @region.square_url.is_a? String
|
41
|
+
assert @region.square_url.include? 'http://african.lanl.gov'
|
42
|
+
assert @region.square_url.include? 'svc.region=0%2C874%2C3372%2C3372'
|
43
|
+
end
|
44
|
+
should 'create a query for a square version of the image at a good level' do
|
45
|
+
@region.scale('555')
|
46
|
+
assert_equal '0,874,843,843', @region.square.query.region
|
47
|
+
assert_equal '555', @region.square.query.scale
|
48
|
+
assert_equal '4', @region.square.query.level
|
49
|
+
end
|
50
|
+
|
51
|
+
should 'pick the best level' do
|
52
|
+
metadata = Djatoka::Metadata.new(@resolver, @identifier).perform
|
53
|
+
@region.scale('200')
|
54
|
+
best_level = @region.pick_best_level(metadata)
|
55
|
+
assert_equal 2, best_level
|
56
|
+
end
|
57
|
+
|
58
|
+
context 'an image which is higher than it is wider' do
|
59
|
+
setup do
|
60
|
+
@region = Djatoka::Region.new(@resolver, 'info:lanl-repo/ds/b820f537-26a1-4af8-b86a-e7a4cac6187a')
|
61
|
+
end
|
62
|
+
should 'crop appropriately into a centered square' do
|
63
|
+
assert_equal '513,0,4093,4093', @region.square.query.region
|
64
|
+
end
|
65
|
+
should 'crop appropriately into a top justified square' do
|
66
|
+
assert_equal '0,0,4093,4093', @region.top_left_square.query.region
|
67
|
+
end
|
68
|
+
should 'crop appropriately into bottom justified square' do
|
69
|
+
assert_equal '1027,0,4093,4093', @region.bottom_right_square.query.region
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context 'an image where the dwt_levels do not match the djatoka levels' do
|
74
|
+
setup do
|
75
|
+
@region2 = Djatoka::Region.new(@resolver, 'ua023_015-006-bx0003-014-075')
|
76
|
+
end
|
77
|
+
should 'be able to scale properly' do
|
78
|
+
@region2.scale('300').square
|
79
|
+
assert @region2.url
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
context 'an request for a non-existent image' do
|
84
|
+
setup do
|
85
|
+
@no_region = Djatoka::Region.new(@resolver, 'asdf')
|
86
|
+
end
|
87
|
+
should 'not raise when no metadata and trying to create a square at scale' do
|
88
|
+
@no_region.scale(300).square
|
89
|
+
assert @no_region.url
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestDjatoka < Test::Unit::TestCase
|
4
|
+
should 'allow Djatoka.use_curb to be set' do
|
5
|
+
Djatoka.use_curb=true
|
6
|
+
assert Djatoka.use_curb?
|
7
|
+
set_testing_curb
|
8
|
+
end
|
9
|
+
|
10
|
+
with_a_resolver do
|
11
|
+
should 'be able to set Djatoka.resolver to a Djatoka::Resolver' do
|
12
|
+
Djatoka.resolver = @resolver
|
13
|
+
assert Djatoka.resolver.is_a? Djatoka::Resolver
|
14
|
+
end
|
15
|
+
|
16
|
+
should 'be able to set Djatoka.resolver to a URL and get a Djatoka::Resolver' do
|
17
|
+
Djatoka.resolver = 'http://african.lanl.gov/adore-djatoka/resolver'
|
18
|
+
assert Djatoka.resolver.is_a? Djatoka::Resolver
|
19
|
+
assert_equal 'http://african.lanl.gov/adore-djatoka/resolver', Djatoka.resolver.url
|
20
|
+
end
|
21
|
+
|
22
|
+
should_eventually 'not be able to set a Djatoka.resolver to a bad string' do
|
23
|
+
Djatoka.resolver = 'asdf'
|
24
|
+
assert Djatoka.resolver.nil?
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
@@ -0,0 +1,103 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestDjatokaMetadata < Test::Unit::TestCase
|
4
|
+
with_a_resolver do
|
5
|
+
context 'a metadata object' do
|
6
|
+
setup do
|
7
|
+
@metadata_obj = @resolver.metadata(@identifier)
|
8
|
+
@metadata = @metadata_obj.perform
|
9
|
+
end
|
10
|
+
|
11
|
+
should 'create a metadata object' do
|
12
|
+
assert @metadata.is_a? Djatoka::Metadata
|
13
|
+
end
|
14
|
+
|
15
|
+
should "create a metadata URL for an identifier" do
|
16
|
+
assert @metadata.url.include? 'http://african.lanl.gov/adore-djatoka/resolver?'
|
17
|
+
assert @metadata.url.include? 'url_ver=Z39.88-2004'
|
18
|
+
assert @metadata.url.include? 'svc_id=info%3Alanl-repo%2Fsvc%2FgetMetadata'
|
19
|
+
assert @metadata.url.include? 'rft_id=info%3Alanl-repo%2Fds%2F5aa182c2-c092-4596-af6e-e95d2e263de3'
|
20
|
+
end
|
21
|
+
|
22
|
+
should 'create a metadata uri for an identifier' do
|
23
|
+
uri = @metadata.uri
|
24
|
+
assert_equal 'african.lanl.gov', uri.host
|
25
|
+
end
|
26
|
+
|
27
|
+
should "return imagefile metadata for an identifier" do
|
28
|
+
assert_equal '/lanl/data/loc/cc5fc4f7-e50a-455f-b3ce-a6a8b54824e6/WEJLNXSBWO7LPLC7Z6DITFX7A45XR3GS.jp2',
|
29
|
+
@metadata.imagefile
|
30
|
+
end
|
31
|
+
|
32
|
+
should 'return an identifier for a good request' do
|
33
|
+
assert_equal @identifier,
|
34
|
+
@metadata.identifier
|
35
|
+
end
|
36
|
+
|
37
|
+
should 'return a height for a good request' do
|
38
|
+
assert_equal '3372', @metadata.height
|
39
|
+
end
|
40
|
+
|
41
|
+
should 'return a width for a good request' do
|
42
|
+
assert_equal '5120', @metadata.width
|
43
|
+
end
|
44
|
+
|
45
|
+
should 'return an OK status for a good request' do
|
46
|
+
metadata = @metadata.status
|
47
|
+
end
|
48
|
+
|
49
|
+
should 'return a nil for a bad request' do
|
50
|
+
metadata = @resolver.metadata('asdf')
|
51
|
+
assert_equal nil, metadata.status
|
52
|
+
end
|
53
|
+
end #context metadata response
|
54
|
+
|
55
|
+
context 'using net::http' do
|
56
|
+
should 'return a height for a good request' do
|
57
|
+
Djatoka.use_curb=false
|
58
|
+
assert_equal '3372', Djatoka::Metadata.new(@resolver, @identifier).perform.height
|
59
|
+
set_testing_curb
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
context 'determining all the levels for a particular metadata response' do
|
64
|
+
setup do
|
65
|
+
@metadata_obj = @resolver.metadata(@identifier)
|
66
|
+
@metadata = @metadata_obj.perform
|
67
|
+
@levels = @metadata.all_levels
|
68
|
+
end
|
69
|
+
should 'create the number of metadata levels as djatoka provides' do
|
70
|
+
assert_equal 7, @levels.length
|
71
|
+
end
|
72
|
+
should 'return height and width for all levels' do
|
73
|
+
expected_levels = { "0"=>{"height"=>53, "width"=>80},
|
74
|
+
"1"=>{"height"=>106, "width"=>160},
|
75
|
+
"2"=>{"height"=>211, "width"=>320},
|
76
|
+
"3"=>{"height"=>422, "width"=>640},
|
77
|
+
"4"=>{"height"=>843, "width"=>1280},
|
78
|
+
"5"=>{"height"=>1686, "width"=>2560},
|
79
|
+
"6"=>{"height"=>3372, "width"=>5120}}
|
80
|
+
assert_equal expected_levels, @levels
|
81
|
+
end
|
82
|
+
should 'know which is the max level' do
|
83
|
+
assert_equal "6", @metadata.max_level
|
84
|
+
end
|
85
|
+
|
86
|
+
should 'return appropriate height and width for all levels when levels and dwt_levels do not match' do
|
87
|
+
levels = {"0"=>{"height"=>58, "width"=>37},
|
88
|
+
"1"=>{"height"=>115, "width"=>74},
|
89
|
+
"2"=>{"height"=>229, "width"=>148},
|
90
|
+
"3"=>{"height"=>458, "width"=>296},
|
91
|
+
"4"=>{"height"=>915, "width"=>592}}
|
92
|
+
metadata = @resolver.metadata('ua023_015-006-bx0003-014-075').perform
|
93
|
+
returned_levels = metadata.all_levels
|
94
|
+
assert_equal levels, returned_levels
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
end # levels
|
99
|
+
|
100
|
+
end #with_a_resolver
|
101
|
+
|
102
|
+
end
|
103
|
+
|
data/test/test_region.rb
ADDED
@@ -0,0 +1,151 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestDjatokaMetadata < Test::Unit::TestCase
|
4
|
+
with_a_resolver do
|
5
|
+
context 'creates image URLs for a region' do
|
6
|
+
setup do
|
7
|
+
@region = Djatoka::Region.new(@resolver, @identifier)
|
8
|
+
end
|
9
|
+
|
10
|
+
should 'create good region parameters' do
|
11
|
+
good_params = {'rft_id'=>"info:lanl-repo/ds/5aa182c2-c092-4596-af6e-e95d2e263de3",
|
12
|
+
"svc_val_fmt"=>"info:ofi/fmt:kev:mtx:jpeg2000",
|
13
|
+
"svc_id"=>"info:lanl-repo/svc/getRegion",
|
14
|
+
'url_ver'=>"Z39.88-2004"}
|
15
|
+
assert_equal good_params, @region.region_params
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'create a new region if given a string as a resolver' do
|
19
|
+
should 'create a resolver object' do
|
20
|
+
region = Djatoka::Region.new('http://african.lanl.gov/adore-djatoka/resolver', @identifier)
|
21
|
+
assert region.resolver.is_a? Djatoka::Resolver
|
22
|
+
assert_equal 'http://african.lanl.gov/adore-djatoka/resolver', region.resolver.to_s
|
23
|
+
assert_equal 'african.lanl.gov', region.resolver.host
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'create a default region uri' do
|
28
|
+
setup do
|
29
|
+
@region_uri = @region.uri
|
30
|
+
@query_values = @region.uri.query_values
|
31
|
+
end
|
32
|
+
should 'create a default region uri' do
|
33
|
+
assert_equal @identifier, @query_values['rft_id']
|
34
|
+
assert_equal nil, @query_values['svc.scale']
|
35
|
+
end
|
36
|
+
should 'output a region url' do
|
37
|
+
assert @region.url.is_a? String
|
38
|
+
assert @region.url.include? 'http://african.lanl.gov'
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'add query parameters' do
|
43
|
+
should 'accept a scale as a String' do
|
44
|
+
scale_region = @region.scale('96')
|
45
|
+
assert_equal '96', scale_region.query.scale
|
46
|
+
end
|
47
|
+
should 'accept a scale as a single Integer' do
|
48
|
+
assert_equal '96', @region.scale(96).query.scale
|
49
|
+
end
|
50
|
+
should 'accept a scale as a Float' do
|
51
|
+
assert_equal '0.5', @region.scale(0.5).query.scale
|
52
|
+
end
|
53
|
+
should 'accept a scale as an Array of 2' do
|
54
|
+
assert_equal '1024,768', @region.scale([1024,768]).query.scale
|
55
|
+
assert_equal '10,60', @region.scale(['10', '60']).query.scale
|
56
|
+
end
|
57
|
+
|
58
|
+
should 'accept a level as a String' do
|
59
|
+
level_region = @region.level('2')
|
60
|
+
assert_equal '2', level_region.query.level
|
61
|
+
end
|
62
|
+
should 'accept a level as an Integer' do
|
63
|
+
assert_equal '3', @region.level(3).query.level
|
64
|
+
end
|
65
|
+
|
66
|
+
should 'accept a rotate as a String' do
|
67
|
+
assert_equal '180', @region.rotate('180').query.rotate
|
68
|
+
end
|
69
|
+
should 'accept a rotate as an Integer' do
|
70
|
+
assert_equal '180', @region.rotate(180).query.rotate
|
71
|
+
end
|
72
|
+
|
73
|
+
should 'accept a region as a String' do
|
74
|
+
assert_equal '0,0,256,256', @region.region('0,0,256,256').query.region
|
75
|
+
end
|
76
|
+
should 'accept a region as an Array of Strings' do
|
77
|
+
assert_equal '0,0,256,256', @region.region(['0','0','256','256']).query.region
|
78
|
+
end
|
79
|
+
should 'accept a region as an Array of Integers and/or Floats' do
|
80
|
+
assert_equal '0.1,0.1,5,5', @region.region([0.1, 0.1, 5, 5]).query.region
|
81
|
+
end
|
82
|
+
|
83
|
+
should 'accept a format as a String' do
|
84
|
+
assert_equal 'image/png', @region.format('image/png').query.format
|
85
|
+
end
|
86
|
+
should 'accept a clayer as a String' do
|
87
|
+
assert_equal '0', @region.clayer('0').query.clayer
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
context 'add empty or null query parameters' do
|
92
|
+
should 'have no value in the uri' do
|
93
|
+
assert_equal nil, @region.level(nil).uri.query_values['svc.level']
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
context 'create a query uri with svc values' do
|
98
|
+
should 'have a svc.scale paramter' do
|
99
|
+
assert_equal '96', @region.scale('96').uri.query_values['svc.scale']
|
100
|
+
end
|
101
|
+
context 'and method chaining' do
|
102
|
+
setup do
|
103
|
+
@region2 = @region.dup.scale('96').level('3')
|
104
|
+
@region2_query_values = @region2.uri.query_values
|
105
|
+
end
|
106
|
+
should 'have svc.scale and svc.level parameters after method chaining' do
|
107
|
+
assert_equal '96', @region2_query_values['svc.scale']
|
108
|
+
assert_equal '3', @region2_query_values['svc.level']
|
109
|
+
end
|
110
|
+
should 'have default values after method chaining svc values' do
|
111
|
+
assert_equal 'info:lanl-repo/svc/getRegion', @region2_query_values['svc_id']
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end #context create a query uri with svc values
|
115
|
+
|
116
|
+
context 'create a new region and pass in query parameters' do
|
117
|
+
should 'accept param keys as symbols' do
|
118
|
+
params = {:level=> 3, :rotate=>180, :region => '0,0,500,500',
|
119
|
+
:scale => 75, :format => 'image/png'
|
120
|
+
}
|
121
|
+
region = Djatoka::Region.new(@resolver,@identifier,params)
|
122
|
+
assert_equal '3', region.query.level
|
123
|
+
assert_equal '180', region.query.rotate
|
124
|
+
assert_equal '0,0,500,500', region.query.region
|
125
|
+
assert_equal '75', region.query.scale
|
126
|
+
assert_equal 'image/png', region.query.format
|
127
|
+
end
|
128
|
+
should 'accept param keys as strings' do
|
129
|
+
params = {'level'=> 3, 'rotate'=> 180, 'region' => '0,0,500,500',
|
130
|
+
'scale' => 75, 'format' => 'image/png'
|
131
|
+
}
|
132
|
+
region = Djatoka::Region.new(@resolver,@identifier,params)
|
133
|
+
assert_equal '3', region.query.level
|
134
|
+
assert_equal '180', region.query.rotate
|
135
|
+
assert_equal '0,0,500,500', region.query.region
|
136
|
+
assert_equal '75', region.query.scale
|
137
|
+
assert_equal 'image/png', region.query.format
|
138
|
+
end
|
139
|
+
should 'not choke on params it responds to but are not instance methods' do
|
140
|
+
region = Djatoka::Region.new(@resolver,@identifier,{:class => 'djatoka_image'})
|
141
|
+
assert region.is_a? Djatoka::Region
|
142
|
+
assert_equal nil, region.uri.query_values['svc.class']
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
end #context
|
147
|
+
|
148
|
+
end #with_a_resolver
|
149
|
+
|
150
|
+
end
|
151
|
+
|
@@ -0,0 +1,101 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestDjatokaResolver < Test::Unit::TestCase
|
4
|
+
with_a_resolver do
|
5
|
+
context 'A Djatoka Resolver' do
|
6
|
+
|
7
|
+
should 'hold a good host from a base_url' do
|
8
|
+
assert_equal 'african.lanl.gov', @resolver.host
|
9
|
+
end
|
10
|
+
|
11
|
+
should 'hold a good path from a base_url' do
|
12
|
+
assert_equal '/adore-djatoka/resolver', @resolver.path
|
13
|
+
end
|
14
|
+
|
15
|
+
should 'create a ping url' do
|
16
|
+
assert_equal 'http://african.lanl.gov/adore-djatoka/resolver?url_ver=Z39.88-2004&svc_id=info%3Alanl-repo%2Fsvc%2Fping&rft_id=info%3Alanl-repo%2Fds%2F5aa182c2-c092-4596-af6e-e95d2e263de3',
|
17
|
+
@resolver.ping_url(@identifier)
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'a ping request' do
|
21
|
+
setup do
|
22
|
+
@ping_response = @resolver.ping(@identifier)
|
23
|
+
end
|
24
|
+
|
25
|
+
should 'return an OK status for a good request' do
|
26
|
+
assert_equal 'OK', @ping_response['status']
|
27
|
+
end
|
28
|
+
|
29
|
+
should 'return the identifier for a good request' do
|
30
|
+
assert_equal @identifier, @ping_response['identifier']
|
31
|
+
end
|
32
|
+
|
33
|
+
should 'return a nil for a bad request' do
|
34
|
+
ping_response = @resolver.ping('asdf')
|
35
|
+
assert_equal nil, ping_response
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'a ping request using net::http' do
|
40
|
+
setup do
|
41
|
+
Djatoka.use_curb=false
|
42
|
+
end
|
43
|
+
should 'return an OK status for a good request' do
|
44
|
+
assert_equal 'OK', @resolver.ping(@identifier).status
|
45
|
+
Djatoka.use_curb=true
|
46
|
+
end
|
47
|
+
should 'return a nil for a bad request' do
|
48
|
+
ping_response = @resolver.ping('asdf')
|
49
|
+
assert_equal nil, ping_response
|
50
|
+
Djatoka.use_curb=true
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
should 'create a region from a resolver' do
|
55
|
+
assert @resolver.region(@identifier).is_a? Djatoka::Region
|
56
|
+
end
|
57
|
+
should 'create a region uri from a resolver' do
|
58
|
+
assert @resolver.region_uri(@identifier).is_a? Addressable::URI
|
59
|
+
end
|
60
|
+
|
61
|
+
end #context a Djatoka::Resolver
|
62
|
+
|
63
|
+
context 'a resolver with a port number' do
|
64
|
+
setup do
|
65
|
+
@resolver_port = Djatoka::Resolver.new('http://example.com:8080/adore-djatoka/resolver')
|
66
|
+
end
|
67
|
+
should 'hold good uri data' do
|
68
|
+
assert_equal('http', @resolver_port.scheme)
|
69
|
+
assert_equal 'example.com', @resolver_port.host
|
70
|
+
assert_equal 8080, @resolver_port.port
|
71
|
+
assert_equal '/adore-djatoka/resolver', @resolver_port.path
|
72
|
+
end
|
73
|
+
should 'create a good metadata uri' do
|
74
|
+
metadata_url = Djatoka::Metadata.new(@resolver_port, 'asdf').uri
|
75
|
+
assert_equal 8080, metadata_url.port
|
76
|
+
end
|
77
|
+
should 'create a metadata url' do
|
78
|
+
metadata_url = @resolver_port.metadata_url(@identifier)
|
79
|
+
assert metadata_url.is_a? String
|
80
|
+
assert metadata_url.include?('getMetadata')
|
81
|
+
end
|
82
|
+
should 'create a good url' do
|
83
|
+
assert_equal 'http://example.com:8080/adore-djatoka/resolver', @resolver_port.url
|
84
|
+
end
|
85
|
+
end #context: resolver with a port number
|
86
|
+
|
87
|
+
context 'a resolver with an https scheme' do
|
88
|
+
setup do
|
89
|
+
@resolver_https = Djatoka::Resolver.new('https://example.com:8080/adore-djatoka/resolver')
|
90
|
+
end
|
91
|
+
should 'hold good uri data' do
|
92
|
+
assert_equal 'example.com', @resolver_https.host
|
93
|
+
assert_equal 8080, @resolver_https.port
|
94
|
+
assert_equal '/adore-djatoka/resolver', @resolver_https.path
|
95
|
+
assert_equal('https', @resolver_https.scheme)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
end #with_a_resolver
|
100
|
+
end
|
101
|
+
|