hydra-core 10.3.4 → 10.4.0.rc1

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: 5f22d63c40f395b64d39964503b3cd5bbd506a54
4
- data.tar.gz: 45afddc95efdfb66a68897156cbc4acd2700942e
3
+ metadata.gz: 96edaa48ae802442e0cf200e2314d496c1d4ffb4
4
+ data.tar.gz: 70dcb3c1d56a9eb810ebf83218a7ee502c5f8159
5
5
  SHA512:
6
- metadata.gz: 6f9962c603971a98ecbb513095ac06c4f0cd06822cb97b796b615104651dd28ca713109cf743a27da84ea7e51d2bf02b900f3553115cc4d708ff5dcc82791229
7
- data.tar.gz: 4ea31720d3a2c144fa4f0df169a701d6460a7152ee5f6e4d6f62242a903c4724fce07a3c00efebc63178df4ea4e25e7e15e40e13fb416ea0f929aafa9f32da2f
6
+ metadata.gz: 8ef8018d7bfd99c3e0a2a2c9b0de32f314d2b7ee9869ee8c017ce841b49516aa78db88fc7344917f623adf7fdc118ba67653b988d37caae0130ec735e269f533
7
+ data.tar.gz: db4fda19263dd2f2ffdc72587ae5e95fb8c98b04367c84976fc13593fb4f3d1fb4f1bcac296ed3c0ccd66676c94f2a9ca87f9d25903e3e753f281e34a9c5fea0
@@ -1,3 +1,3 @@
1
1
  module HydraHead
2
- VERSION = "10.3.4"
2
+ VERSION = "10.4.0.rc1"
3
3
  end
data/lib/tasks/hydra.rake CHANGED
@@ -4,7 +4,9 @@ namespace :hydra do
4
4
  desc "Start a solr, fedora and rails instance"
5
5
  task :server do
6
6
  with_server('development') do
7
- IO.popen('rails server') do |io|
7
+ # If HOST specified, bind to that IP with -b
8
+ server_options = " -b #{ENV['HOST']}" if ENV['HOST']
9
+ IO.popen("rails server#{server_options}") do |io|
8
10
  begin
9
11
  io.each do |line|
10
12
  puts line
@@ -6,7 +6,7 @@ describe CatalogController do
6
6
  session[:user]='bob'
7
7
  end
8
8
 
9
- it "should use CatalogController" do
9
+ it "uses the CatalogController" do
10
10
  expect(controller).to be_an_instance_of CatalogController
11
11
  end
12
12
 
@@ -47,8 +47,8 @@ describe CatalogController do
47
47
  allow(controller).to receive(:enforce_show_permissions)
48
48
  end
49
49
  context "with no asset" do
50
- it "should return a not found response code" do
51
- get 'show', :id => "test", :format => :nt
50
+ it "returns a not found response code" do
51
+ get 'show', params: { id: "test", format: :nt }
52
52
 
53
53
  expect(response).to be_not_found
54
54
  end
@@ -66,35 +66,39 @@ describe CatalogController do
66
66
  let(:related) do
67
67
  ActiveFedora::Base.create
68
68
  end
69
- it "should be able to negotiate jsonld" do
70
- get 'show', :id => asset.id, :format => :jsonld
69
+ it "is able to negotiate jsonld" do
70
+ get 'show', params: { id: asset.id, format: :jsonld }
71
71
 
72
72
  expect(response).to be_success
73
73
  expect(response.headers['Content-Type']).to include("application/ld+json")
74
74
  graph = RDF::Reader.for(:jsonld).new(response.body)
75
75
  expect(graph.statements.to_a.length).to eq 3
76
76
  end
77
- it "should be able to negotiate ttl" do
78
- get 'show', :id => asset.id, :format => :ttl
77
+
78
+ it "is able to negotiate ttl" do
79
+ get 'show', params: { id: asset.id, format: :ttl }
79
80
 
80
81
  expect(response).to be_success
81
82
  graph = RDF::Reader.for(:ttl).new(response.body)
82
83
  expect(graph.statements.to_a.length).to eq 3
83
84
  end
84
- it "should return an n-triples graph with just the content put in" do
85
- get 'show', :id => asset.id, :format => :nt
85
+
86
+ it "returns an n-triples graph with just the content put in" do
87
+ get 'show', params: { id: asset.id, format: :nt }
86
88
 
87
89
  graph = RDF::Reader.for(:ntriples).new(response.body)
88
90
  statements = graph.statements.to_a
89
91
  expect(statements.length).to eq 3
90
92
  expect(statements.first.subject).to eq asset.rdf_subject
91
93
  end
94
+
92
95
  context "with a configured subject converter" do
93
96
  before do
94
97
  Hydra.config.id_to_resource_uri = lambda { |id, _| "http://hydra.box/catalog/#{id}" }
95
- get 'show', :id => asset.id, :format => :nt
98
+ get 'show', params: { id: asset.id, format: :nt }
96
99
  end
97
- it "should convert it" do
100
+
101
+ it "converts the subject using the specified converter" do
98
102
  graph = RDF::Graph.new << RDF::Reader.for(:ntriples).new(response.body)
99
103
  title_statement = graph.query([nil, RDF::Vocab::DC.title, nil]).first
100
104
  related_statement = graph.query([nil, RDF::Vocab::DC.isReferencedBy, nil]).first
@@ -108,10 +112,10 @@ describe CatalogController do
108
112
 
109
113
  describe "filters" do
110
114
  describe "show" do
111
- it "should trigger enforce_show_permissions" do
115
+ it "triggers enforce_show_permissions" do
112
116
  allow(controller).to receive(:current_user).and_return(nil)
113
117
  expect(controller).to receive(:enforce_show_permissions)
114
- get :show, id: 'test:3'
118
+ get :show, params: { id: 'test:3' }
115
119
  end
116
120
  end
117
121
  end
@@ -10,8 +10,9 @@ describe DownloadsController do
10
10
  end
11
11
 
12
12
  describe "routing" do
13
- it "should route" do
14
- assert_recognizes( {:controller=>"downloads", :action=>"show", "id"=>"test1"}, "/downloads/test1?filename=my%20dog.jpg" )
13
+ it "routes" do
14
+ assert_recognizes({ controller: "downloads", action: "show", id: "test1" },
15
+ "/downloads/test1?filename=my%20dog.jpg")
15
16
  end
16
17
  end
17
18
 
@@ -41,8 +42,8 @@ describe DownloadsController do
41
42
  context "when not logged in" do
42
43
 
43
44
  context "when a specific datastream is requested" do
44
- it "should redirect to the root path and display an error" do
45
- get :show, id: obj, file: "descMetadata"
45
+ it "redirects to the root path and display an error" do
46
+ get :show, params: { id: obj, file: "descMetadata" }
46
47
  expect(response).to redirect_to new_user_session_path
47
48
  expect(flash[:alert]).to eq "You are not authorized to access this page."
48
49
  end
@@ -55,8 +56,8 @@ describe DownloadsController do
55
56
  sign_in user
56
57
  end
57
58
  context "when a specific datastream is requested" do
58
- it "should redirect to the root path and display an error" do
59
- get :show, id: obj, file: "descMetadata"
59
+ it "redirects to the root path and display an error" do
60
+ get :show, params: { id: obj, file: "descMetadata" }
60
61
  expect(response).to redirect_to root_path
61
62
  expect(flash[:alert]).to eq "You are not authorized to access this page."
62
63
  end
@@ -72,7 +73,7 @@ describe DownloadsController do
72
73
  describe "#show" do
73
74
  it "defaults to returning default download configured by object" do
74
75
  allow(ContentHolder).to receive(:default_file_path).and_return('buzz')
75
- get :show, id: obj
76
+ get :show, params: { id: obj }
76
77
  expect(response).to be_successful
77
78
  expect(response.headers['Content-Type']).to start_with "image/png"
78
79
  expect(response.headers["Content-Disposition"]).to eq "inline; filename=\"buzz.png\""
@@ -81,7 +82,7 @@ describe DownloadsController do
81
82
 
82
83
  it "defaults to returning default download configured by controller" do
83
84
  expect(DownloadsController.default_file_path).to eq "content"
84
- get :show, id: obj
85
+ get :show, params: { id: obj }
85
86
  expect(response).to be_successful
86
87
  expect(response.headers['Content-Type']).to start_with "image/png"
87
88
  expect(response.headers["Content-Disposition"]).to eq "inline; filename=\"world.png\""
@@ -90,14 +91,14 @@ describe DownloadsController do
90
91
 
91
92
  context "when a specific datastream is requested" do
92
93
  context "and it doesn't exist" do
93
- it "should return :not_found when the datastream doesn't exist" do
94
- get :show, id: obj, file: "thumbnail"
94
+ it "returns :not_found when the datastream doesn't exist" do
95
+ get :show, params: { id: obj, file: "thumbnail" }
95
96
  expect(response).to be_not_found
96
97
  end
97
98
  end
98
99
  context "and it exists" do
99
- it "should return it" do
100
- get :show, id: obj, file: "descMetadata"
100
+ it "returns it" do
101
+ get :show, params: { id: obj, file: "descMetadata" }
101
102
  expect(response).to be_successful
102
103
  expect(response.headers['Content-Type']).to start_with "text/plain"
103
104
  expect(response.headers["Content-Disposition"]).to eq "inline; filename=\"metadata.xml\""
@@ -105,15 +106,17 @@ describe DownloadsController do
105
106
  end
106
107
  end
107
108
  end
108
- it "should support setting disposition to inline" do
109
- get :show, id: obj, :disposition => "inline"
109
+
110
+ it "supports setting disposition to inline" do
111
+ get :show, params: { id: obj, disposition: "inline" }
110
112
  expect(response).to be_successful
111
113
  expect(response.headers['Content-Type']).to start_with "image/png"
112
114
  expect(response.headers["Content-Disposition"]).to eq "inline; filename=\"world.png\""
113
115
  expect(response.body).to eq 'foobarfoobarfoobar'
114
116
  end
115
- it "should allow you to specify filename for download" do
116
- get :show, id: obj, "filename" => "my%20dog.png"
117
+
118
+ it "allows you to specify filename for download" do
119
+ get :show, params: { id: obj, "filename" => "my%20dog.png" }
117
120
  expect(response).to be_successful
118
121
  expect(response.headers['Content-Type']).to start_with "image/png"
119
122
  expect(response.headers["Content-Disposition"]).to eq "inline; filename=\"my%20dog.png\""
@@ -131,7 +134,7 @@ describe DownloadsController do
131
134
 
132
135
  it "head request" do
133
136
  request.env["HTTP_RANGE"] = 'bytes=0-15'
134
- head :show, id: parent, file: 'webm'
137
+ head :show, params: { id: parent, file: 'webm' }
135
138
  expect(response.headers['Content-Length']).to eq 16
136
139
  expect(response.headers['Accept-Ranges']).to eq 'bytes'
137
140
  expect(response.headers['Content-Type']).to start_with 'video/webm'
@@ -139,7 +142,7 @@ describe DownloadsController do
139
142
 
140
143
  it "sends the whole thing" do
141
144
  request.env["HTTP_RANGE"] = 'bytes=0-15'
142
- get :show, id: '1234', file: 'webm'
145
+ get :show, params: { id: '1234', file: 'webm' }
143
146
  expect(response.body).to eq 'one1two2threfour'
144
147
  expect(response.headers["Content-Range"]).to eq 'bytes 0-15/16'
145
148
  expect(response.headers["Content-Length"]).to eq '16'
@@ -151,13 +154,13 @@ describe DownloadsController do
151
154
 
152
155
  it "sends the whole thing when the range is open ended" do
153
156
  request.env["HTTP_RANGE"] = 'bytes=0-'
154
- get :show, id: '1234', file: 'webm'
157
+ get :show, params: { id: '1234', file: 'webm' }
155
158
  expect(response.body).to eq 'one1two2threfour'
156
159
  end
157
160
 
158
161
  it "gets a range not starting at the beginning" do
159
162
  request.env["HTTP_RANGE"] = 'bytes=3-15'
160
- get :show, id: '1234', file: 'webm'
163
+ get :show, params: { id: '1234', file: 'webm' }
161
164
  expect(response.body).to eq '1two2threfour'
162
165
  expect(response.headers["Content-Range"]).to eq 'bytes 3-15/16'
163
166
  expect(response.headers["Content-Length"]).to eq '13'
@@ -165,7 +168,7 @@ describe DownloadsController do
165
168
 
166
169
  it "gets a range not ending at the end" do
167
170
  request.env["HTTP_RANGE"] = 'bytes=4-11'
168
- get :show, id: '1234', file: 'webm'
171
+ get :show, params: { id: '1234', file: 'webm' }
169
172
  expect(response.body).to eq 'two2thre'
170
173
  expect(response.headers["Content-Range"]).to eq 'bytes 4-11/16'
171
174
  expect(response.headers["Content-Length"]).to eq '8'
@@ -182,9 +185,9 @@ describe DownloadsController do
182
185
  end
183
186
  sign_in @user
184
187
  end
185
- it "should use the custom param value to retrieve the asset" do
188
+ it "uses the custom param value to retrieve the asset" do
186
189
  allow(controller).to receive(:asset_param_key).and_return(:object_id)
187
- get :show, object_id: obj
190
+ get :show, params: { object_id: obj }
188
191
  expect(response).to be_successful
189
192
  end
190
193
  end
@@ -2,31 +2,39 @@ require 'spec_helper'
2
2
 
3
3
  describe User do
4
4
 
5
- describe "user_key" do
5
+ describe "#user_key" do
6
6
  let(:user) { User.new.tap {|u| u.email = "foo@example.com"} }
7
7
  before do
8
8
  allow(user).to receive(:username).and_return('foo')
9
9
  end
10
+ subject { user.user_key }
10
11
 
11
- it "should return email" do
12
- expect(user.user_key).to eq 'foo@example.com'
12
+ context "by default" do
13
+ it "returns email" do
14
+ expect(subject).to eq 'foo@example.com'
15
+ end
13
16
  end
14
17
 
15
- it "should return username" do
16
- allow(Devise).to receive(:authentication_keys).and_return([:username])
17
- expect(user.user_key).to eq 'foo'
18
+ context "when devise is configured to use the username" do
19
+ before do
20
+ allow(Devise).to receive(:authentication_keys).and_return([:username])
21
+ end
22
+ it "returns username" do
23
+ expect(subject).to eq 'foo'
24
+ end
18
25
  end
19
-
20
26
  end
21
27
 
22
- end
23
-
24
- module UserTestAttributes
25
- ['first_name','last_name','full_name','affiliation','photo'].each do |attr|
26
- class_eval <<-EOM
27
- def #{attr}
28
- "test_#{attr}"
29
- end
30
- EOM
28
+ describe "#groups" do
29
+ let(:user) { FactoryGirl.create(:user) }
30
+ let(:mock_service) { double }
31
+ before do
32
+ user.group_service = mock_service
33
+ end
34
+ subject { user.groups }
35
+ it "returns a list of groups" do
36
+ expect(mock_service).to receive(:fetch_groups).with(user: user).and_return(['my_group'])
37
+ expect(subject).to eq ['my_group']
38
+ end
31
39
  end
32
40
  end
data/spec/spec_helper.rb CHANGED
@@ -7,6 +7,8 @@ EngineCart.load_application! path
7
7
  require 'bundler/setup'
8
8
  require 'rspec/rails'
9
9
  require 'hydra-core'
10
+ require "factory_girl"
11
+ require "factories"
10
12
 
11
13
  if ENV['COVERAGE']
12
14
  require 'simplecov'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hydra-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 10.3.4
4
+ version: 10.4.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Zumwalt, Bess Sadler, Julie Meloni, Naomi Dushay, Jessie Keck, John Scofield,
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-11-29 00:00:00.000000000 Z
12
+ date: 2017-01-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
@@ -37,14 +37,14 @@ dependencies:
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 10.3.4
40
+ version: 10.4.0.rc1
41
41
  type: :runtime
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 10.3.4
47
+ version: 10.4.0.rc1
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: sqlite3
50
50
  requirement: !ruby/object:Gem::Requirement
@@ -175,12 +175,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
175
175
  version: 1.9.3
176
176
  required_rubygems_version: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ">="
178
+ - - ">"
179
179
  - !ruby/object:Gem::Version
180
- version: '0'
180
+ version: 1.3.1
181
181
  requirements: []
182
182
  rubyforge_project:
183
- rubygems_version: 2.5.2
183
+ rubygems_version: 2.6.8
184
184
  signing_key:
185
185
  specification_version: 4
186
186
  summary: Hydra-Head Rails Engine (requires Rails3)