hydra-core 8.2.0 → 9.0.0.beta1

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.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/concerns/hydra/controller/controller_behavior.rb +5 -6
  3. data/app/controllers/concerns/hydra/controller/download_behavior.rb +37 -39
  4. data/app/models/concerns/hydra/model_methods.rb +22 -22
  5. data/hydra-core.gemspec +3 -3
  6. data/lib/generators/hydra/head_generator.rb +0 -2
  7. data/lib/generators/hydra/templates/catalog_controller.rb +1 -2
  8. data/lib/generators/hydra/templates/config/initializers/hydra_config.rb +8 -8
  9. data/lib/hydra-core.rb +4 -0
  10. data/lib/hydra-head/version.rb +1 -2
  11. data/spec/controllers/catalog_controller_spec.rb +6 -8
  12. data/spec/controllers/downloads_controller_spec.rb +40 -47
  13. data/spec/lib/catalog_spec.rb +15 -0
  14. data/spec/lib/model_methods_spec.rb +19 -9
  15. data/spec/spec_helper.rb +9 -5
  16. data/spec/support/lib/generators/test_app_generator.rb +1 -8
  17. data/spec/support/lib/tasks/rspec.rake +2 -1
  18. data/tasks/rspec.rake +1 -7
  19. metadata +25 -31
  20. data/app/search_builders/hydra/search_builder.rb +0 -5
  21. data/lib/generators/hydra/hyhead_fixtures_generator.rb +0 -27
  22. data/lib/generators/hydra/templates/config/blacklight.yml +0 -9
  23. data/lib/railties/hydra-fixtures.rake +0 -49
  24. data/spec/models/mods_asset_spec.rb +0 -16
  25. data/spec/search_builders/search_builder_spec.rb +0 -22
  26. data/spec/support/app/models/generic_content.rb +0 -21
  27. data/spec/support/spec/fixtures/hydra_test_generic_content.foxml.xml +0 -138
  28. data/spec/support/spec/fixtures/hydrangea_fixture_mods_article1.foxml.xml +0 -234
  29. data/tasks/hydra-head-fixtures.rake +0 -58
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe Hydra::Controller::ControllerBehavior do
4
+
5
+ before do
6
+ class CatalogTest < ApplicationController
7
+ include Hydra::Controller::ControllerBehavior
8
+ end
9
+ end
10
+
11
+ it "should extend classes with the necessary Hydra modules" do
12
+ expect(CatalogTest.included_modules).to include(Hydra::AccessControlsEnforcement)
13
+ end
14
+
15
+ end
@@ -6,7 +6,8 @@ describe Hydra::ModelMethods do
6
6
  class TestModel < ActiveFedora::Base
7
7
  include Hydra::AccessControls::Permissions
8
8
  include Hydra::ModelMethods
9
- has_metadata "properties", type: Hydra::Datastream::Properties
9
+ contains "properties", class_name: 'Hydra::Datastream::Properties'
10
+ has_attributes :depositor, datastream: :properties, multiple: false
10
11
  end
11
12
  end
12
13
 
@@ -15,13 +16,15 @@ describe Hydra::ModelMethods do
15
16
  describe "apply_depositor_metadata" do
16
17
  it "should add edit access" do
17
18
  subject.apply_depositor_metadata('naomi')
18
- expect(subject.rightsMetadata.users).to eq('naomi' => 'edit')
19
+ expect(subject.edit_users).to eq ['naomi']
19
20
  end
21
+
20
22
  it "should not overwrite people with edit access" do
21
- subject.rightsMetadata.permissions({:person=>"jessie"}, 'edit')
23
+ subject.edit_users = ['jessie']
22
24
  subject.apply_depositor_metadata('naomi')
23
- expect(subject.rightsMetadata.users).to eq('naomi' => 'edit', 'jessie' =>'edit')
25
+ expect(subject.edit_users).to match_array ['naomi', 'jessie']
24
26
  end
27
+
25
28
  it "should set depositor" do
26
29
  subject.apply_depositor_metadata('chris')
27
30
  expect(subject.properties.depositor).to eq ['chris']
@@ -34,13 +37,20 @@ describe Hydra::ModelMethods do
34
37
  end
35
38
 
36
39
  describe 'add_file' do
40
+ let(:file_name) { "my_file.foo" }
41
+ let(:mock_file) { "File contents" }
42
+
37
43
  it "should set the dsid, mimetype and content" do
38
- file_name = "my_file.foo"
39
- mock_file = "File contents"
40
- expect(subject).to receive(:add_file_datastream).with(mock_file, :label=>file_name, :mimeType=>"mymimetype", :dsid=>'bar')
41
- expect(subject).to receive(:set_title_and_label).with( file_name, :only_if_blank=>true )
42
- expect(MIME::Types).to receive(:of).with(file_name).and_return([double(:content_type=>"mymimetype")])
44
+ expect(subject).to receive(:add_file_datastream).with(mock_file, label: file_name, mime_type: "mymimetype", dsid: 'bar', original_name: file_name)
45
+ expect(subject).to receive(:set_title_and_label).with(file_name, only_if_blank: true )
46
+ expect(MIME::Types).to receive(:of).with(file_name).and_return([double(content_type: "mymimetype")])
43
47
  subject.add_file(mock_file, 'bar', file_name)
44
48
  end
49
+
50
+ it "should accept a supplied mime_type and content" do
51
+ expect(subject).to receive(:add_file_datastream).with(mock_file, label: file_name, mime_type: "image/png", dsid: 'bar', original_name: file_name)
52
+ expect(subject).to receive(:set_title_and_label).with(file_name, only_if_blank: true )
53
+ subject.add_file(mock_file, 'bar', file_name, 'image/png')
54
+ end
45
55
  end
46
56
  end
data/spec/spec_helper.rb CHANGED
@@ -8,7 +8,7 @@ require 'bundler/setup'
8
8
  require 'rspec/rails'
9
9
  require 'hydra-core'
10
10
 
11
- if ENV['COVERAGE'] and RUBY_VERSION =~ /^1.9/
11
+ if ENV['COVERAGE']
12
12
  require 'simplecov'
13
13
  require 'simplecov-rcov'
14
14
 
@@ -16,11 +16,15 @@ if ENV['COVERAGE'] and RUBY_VERSION =~ /^1.9/
16
16
  SimpleCov.start
17
17
  end
18
18
 
19
+ ActiveFedora::Base.logger = Logger.new(STDOUT)
20
+
21
+ require 'active_fedora/cleaner'
19
22
  RSpec.configure do |config|
20
- config.include Devise::TestHelpers, :type => :controller
23
+ config.include Devise::TestHelpers, type: :controller
21
24
  config.use_transactional_fixtures = true
22
- config.before(:suite) { User.destroy_all }
23
25
  config.infer_spec_type_from_file_location!
24
- end
25
-
26
26
 
27
+ config.before(:each) do
28
+ ActiveFedora::Cleaner.clean!
29
+ end
30
+ end
@@ -3,16 +3,9 @@ require 'rails/generators'
3
3
  class TestAppGenerator < Rails::Generators::Base
4
4
  source_root File.expand_path("../../../../support", __FILE__)
5
5
 
6
- def copy_test_fixtures
7
- copy_file "app/models/generic_content.rb"
8
-
6
+ def copy_test_classes
9
7
  # Download controller
10
8
  copy_file "app/controllers/downloads_controller.rb"
11
-
12
- copy_file "spec/fixtures/hydrangea_fixture_mods_article1.foxml.xml"
13
-
14
- # For testing Hydra::SubmissionWorkflow
15
- copy_file "spec/fixtures/hydra_test_generic_content.foxml.xml"
16
9
  end
17
10
 
18
11
  def copy_rspec_rake_task
@@ -2,6 +2,7 @@ require 'rspec/core/rake_task'
2
2
  desc "run the hydra-core gem spec"
3
3
  gem_home = File.expand_path('../../../../..', __FILE__)
4
4
  RSpec::Core::RakeTask.new(:myspec) do |t|
5
- t.rspec_opts = ["--colour", '--backtrace', "--default-path #{gem_home}"]
5
+ t.pattern = gem_home + '/spec/**/*_spec.rb'
6
+ t.rspec_opts = ["--colour", '--backtrace']
6
7
  t.ruby_opts = "-I#{gem_home}/spec"
7
8
  end
data/tasks/rspec.rake CHANGED
@@ -3,7 +3,7 @@ ENV["RAILS_ROOT"] ||= 'spec/internal'
3
3
  GEM_ROOT= File.expand_path(File.join(File.dirname(__FILE__),".."))
4
4
 
5
5
  desc "Run specs"
6
- task :spec => [:generate, :fixtures] do |t|
6
+ task spec: :generate do |t|
7
7
  focused_spec = ENV['SPEC'] ? " SPEC=#{File.join(GEM_ROOT, ENV['SPEC'])}" : ''
8
8
  within_test_app do
9
9
  system "rake myspec#{focused_spec}"
@@ -11,12 +11,6 @@ task :spec => [:generate, :fixtures] do |t|
11
11
  end
12
12
  end
13
13
 
14
- task :fixtures do
15
- within_test_app do
16
- system "rake hydra:fixtures:refresh RAILS_ENV=test"
17
- end
18
- end
19
-
20
14
 
21
15
  desc "Create the test rails app"
22
16
  task :generate do
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: 8.2.0
4
+ version: 9.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Zumwalt, Bess Sadler, Julie Meloni, Naomi Dushay, Jessie Keck, John Scofield,
@@ -9,22 +9,28 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-02-06 00:00:00.000000000 Z
12
+ date: 2014-12-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: 3.2.3
21
+ - - "<"
19
22
  - !ruby/object:Gem::Version
20
- version: '4.0'
23
+ version: '5'
21
24
  type: :runtime
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
24
27
  requirements:
25
- - - "~>"
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ version: 3.2.3
31
+ - - "<"
26
32
  - !ruby/object:Gem::Version
27
- version: '4.0'
33
+ version: '5'
28
34
  - !ruby/object:Gem::Dependency
29
35
  name: block_helpers
30
36
  requirement: !ruby/object:Gem::Requirement
@@ -45,28 +51,28 @@ dependencies:
45
51
  requirements:
46
52
  - - '='
47
53
  - !ruby/object:Gem::Version
48
- version: 8.2.0
54
+ version: 9.0.0.beta1
49
55
  type: :runtime
50
56
  prerelease: false
51
57
  version_requirements: !ruby/object:Gem::Requirement
52
58
  requirements:
53
59
  - - '='
54
60
  - !ruby/object:Gem::Version
55
- version: 8.2.0
61
+ version: 9.0.0.beta1
56
62
  - !ruby/object:Gem::Dependency
57
63
  name: jettywrapper
58
64
  requirement: !ruby/object:Gem::Requirement
59
65
  requirements:
60
- - - "~>"
66
+ - - ">="
61
67
  - !ruby/object:Gem::Version
62
- version: '1.5'
68
+ version: 1.4.1
63
69
  type: :runtime
64
70
  prerelease: false
65
71
  version_requirements: !ruby/object:Gem::Requirement
66
72
  requirements:
67
- - - "~>"
73
+ - - ">="
68
74
  - !ruby/object:Gem::Version
69
- version: '1.5'
75
+ version: 1.4.1
70
76
  - !ruby/object:Gem::Dependency
71
77
  name: sqlite3
72
78
  requirement: !ruby/object:Gem::Requirement
@@ -144,40 +150,34 @@ files:
144
150
  - app/models/concerns/hydra/solr.rb
145
151
  - app/models/hydra/datastream/properties.rb
146
152
  - app/models/mods_asset.rb
147
- - app/search_builders/hydra/search_builder.rb
148
153
  - config/jetty.yml
149
154
  - config/locales/hydra.en.yml
150
155
  - hydra-core.gemspec
151
156
  - lib/application_helper.rb
152
157
  - lib/generators/hydra/head_generator.rb
153
- - lib/generators/hydra/hyhead_fixtures_generator.rb
154
158
  - lib/generators/hydra/jetty_generator.rb
155
159
  - lib/generators/hydra/templates/ability.rb
156
160
  - lib/generators/hydra/templates/catalog_controller.rb
157
- - lib/generators/hydra/templates/config/blacklight.yml
158
161
  - lib/generators/hydra/templates/config/initializers/hydra_config.rb
159
162
  - lib/generators/hydra/templates/config/role_map.yml
160
163
  - lib/hydra-core.rb
161
164
  - lib/hydra-head/engine.rb
162
165
  - lib/hydra-head/version.rb
163
166
  - lib/railties/active-fedora.rake
164
- - lib/railties/hydra-fixtures.rake
165
167
  - lib/railties/hydra_jetty.rake
166
168
  - spec/.gitignore
167
169
  - spec/controllers/catalog_controller_spec.rb
168
170
  - spec/controllers/downloads_controller_spec.rb
169
171
  - spec/factories.rb
170
172
  - spec/helpers/blacklight_helper_spec.rb
173
+ - spec/lib/catalog_spec.rb
171
174
  - spec/lib/model_methods_spec.rb
172
- - spec/models/mods_asset_spec.rb
173
175
  - spec/models/solr_document_spec.rb
174
176
  - spec/models/user_spec.rb
175
177
  - spec/rcov.opts
176
- - spec/search_builders/search_builder_spec.rb
177
178
  - spec/spec.opts
178
179
  - spec/spec_helper.rb
179
180
  - spec/support/app/controllers/downloads_controller.rb
180
- - spec/support/app/models/generic_content.rb
181
181
  - spec/support/app/models/sample.rb
182
182
  - spec/support/app/models/solr_document.rb
183
183
  - spec/support/db/migrate/20111101221803_create_searches.rb
@@ -185,12 +185,9 @@ files:
185
185
  - spec/support/lib/tasks/rspec.rake
186
186
  - spec/support/matchers/helper_matcher.rb
187
187
  - spec/support/matchers/solr_matchers.rb
188
- - spec/support/spec/fixtures/hydra_test_generic_content.foxml.xml
189
- - spec/support/spec/fixtures/hydrangea_fixture_mods_article1.foxml.xml
190
188
  - spec/test_app_templates/Gemfile.extra
191
189
  - spec/unit/hydra-head-engine_spec.rb
192
190
  - spec/unit/hydra-head_spec.rb
193
- - tasks/hydra-head-fixtures.rake
194
191
  - tasks/hydra_jetty.rake
195
192
  - tasks/rspec.rake
196
193
  homepage: http://projecthydra.org
@@ -205,15 +202,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
205
202
  requirements:
206
203
  - - ">="
207
204
  - !ruby/object:Gem::Version
208
- version: 2.0.0
205
+ version: 1.9.3
209
206
  required_rubygems_version: !ruby/object:Gem::Requirement
210
207
  requirements:
211
- - - ">="
208
+ - - ">"
212
209
  - !ruby/object:Gem::Version
213
- version: '0'
210
+ version: 1.3.1
214
211
  requirements: []
215
212
  rubyforge_project:
216
- rubygems_version: 2.6.8
213
+ rubygems_version: 2.2.2
217
214
  signing_key:
218
215
  specification_version: 4
219
216
  summary: Hydra-Head Rails Engine (requires Rails3)
@@ -223,16 +220,14 @@ test_files:
223
220
  - spec/controllers/downloads_controller_spec.rb
224
221
  - spec/factories.rb
225
222
  - spec/helpers/blacklight_helper_spec.rb
223
+ - spec/lib/catalog_spec.rb
226
224
  - spec/lib/model_methods_spec.rb
227
- - spec/models/mods_asset_spec.rb
228
225
  - spec/models/solr_document_spec.rb
229
226
  - spec/models/user_spec.rb
230
227
  - spec/rcov.opts
231
- - spec/search_builders/search_builder_spec.rb
232
228
  - spec/spec.opts
233
229
  - spec/spec_helper.rb
234
230
  - spec/support/app/controllers/downloads_controller.rb
235
- - spec/support/app/models/generic_content.rb
236
231
  - spec/support/app/models/sample.rb
237
232
  - spec/support/app/models/solr_document.rb
238
233
  - spec/support/db/migrate/20111101221803_create_searches.rb
@@ -240,8 +235,7 @@ test_files:
240
235
  - spec/support/lib/tasks/rspec.rake
241
236
  - spec/support/matchers/helper_matcher.rb
242
237
  - spec/support/matchers/solr_matchers.rb
243
- - spec/support/spec/fixtures/hydra_test_generic_content.foxml.xml
244
- - spec/support/spec/fixtures/hydrangea_fixture_mods_article1.foxml.xml
245
238
  - spec/test_app_templates/Gemfile.extra
246
239
  - spec/unit/hydra-head-engine_spec.rb
247
240
  - spec/unit/hydra-head_spec.rb
241
+ has_rdoc:
@@ -1,5 +0,0 @@
1
- module Hydra
2
- class SearchBuilder < Blacklight::Solr::SearchBuilder
3
- include Hydra::AccessControlsEnforcement
4
- end
5
- end
@@ -1,27 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- require 'rails/generators'
3
- require 'rails/generators/migration'
4
-
5
- module Hydra
6
- class HyheadFixturesGenerator < Rails::Generators::Base
7
-
8
- source_root File.expand_path('../../../../', __FILE__)
9
-
10
- desc """
11
- This Generator copies the hydra-head sample/test objects into your application's test_support/fixtures directory
12
- These objects are useful for getting a sense of how hydra works, but you will want to delete them and create your own
13
- fixtures to run your application's tests against.
14
-
15
- After running this generator, you can import your fixtures into fedora & solr by running
16
-
17
- rake hydra:fixtures:refresh
18
- rake hydra:fixtures:refresh RAILS_ENV=test
19
-
20
- """
21
-
22
- def copy_hyhead_fixtures
23
- directory("test_support/fixtures", "spec/fixtures")
24
- end
25
-
26
- end
27
- end
@@ -1,9 +0,0 @@
1
- development:
2
- adapter: solr
3
- url: <%= ENV['SOLR_URL'] || "http://127.0.0.1:8983/solr/development" %>
4
- test: &test
5
- adapter: solr
6
- url: <%= "http://127.0.0.1:#{ENV['TEST_JETTY_PORT'] || 8983}/solr/test" %>
7
- production:
8
- adapter: solr
9
- url: <%= ENV['SOLR_URL'] || "http://127.0.0.1:8983/solr/blacklight-core" %>
@@ -1,49 +0,0 @@
1
- namespace :hydra do
2
-
3
- desc "Init Hydra configuration"
4
- task :init => [:environment] do
5
- # We need to just start rails so that all the models are loaded
6
- end
7
-
8
- desc "Load hydra-head models"
9
- task :load_models do
10
- Dir.glob(File.join(File.expand_path(File.dirname(__FILE__)), "..",'app','models', '*.rb')).each do |model|
11
- load model
12
- end
13
- end
14
-
15
- namespace :fixtures do
16
- task :load do
17
- ENV["dir"] ||= File.join("spec", "fixtures")
18
- loader = ActiveFedora::FixtureLoader.new(ENV['dir'])
19
- Dir.glob("#{ENV['dir']}/*.foxml.xml").each do |fixture_path|
20
- pid = File.basename(fixture_path, ".foxml.xml").sub("_",":")
21
- begin
22
- foo = loader.reload(pid)
23
- puts "Updated #{pid}"
24
- rescue Errno::ECONNREFUSED => e
25
- puts "Can't connect to Fedora! Are you sure jetty is running? (#{ActiveFedora::Base.connection_for_pid(pid).inspect})"
26
- rescue Exception => e
27
- puts("Received a Fedora error while loading #{pid}\n#{e}")
28
- logger.error("Received a Fedora error while loading #{pid}\n#{e}")
29
- end
30
- end
31
- end
32
-
33
- desc "Remove default Hydra fixtures"
34
- task :delete do
35
- ENV["dir"] ||= File.join("spec", "fixtures")
36
- loader = ActiveFedora::FixtureLoader.new(ENV['dir'])
37
- Dir.glob("#{ENV['dir']}/*.foxml.xml").each do |fixture_path|
38
- ENV["pid"] = File.basename(fixture_path, ".foxml.xml").sub("_",":")
39
- Rake::Task["repo:delete"].reenable
40
- Rake::Task["repo:delete"].invoke
41
- end
42
- end
43
-
44
- desc "Refresh default Hydra fixtures"
45
- task :refresh => [:delete, :load]
46
-
47
- end
48
- end
49
-
@@ -1,16 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe ModsAsset do
4
-
5
- let(:asset) { ModsAsset.new nil }
6
-
7
- it "Should be a kind of ActiveFedora::Base" do
8
- expect(asset).to be_kind_of(ActiveFedora::Base)
9
- end
10
-
11
- it "should set up descMetadata and rightsMetadata datastreams" do
12
- expect(asset.datastreams).to have_key("rightsMetadata")
13
- expect(asset.datastreams["rightsMetadata"]).to be_instance_of(Hydra::Datastream::RightsMetadata)
14
- end
15
-
16
- end
@@ -1,22 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Hydra::SearchBuilder do
4
- let(:processor_chain) { [:add_access_controls_to_solr_params] }
5
- let(:context) { double('context') }
6
- let(:user) { double('user', user_key: 'joe') }
7
- let(:current_ability) { double('ability', user_groups: [], current_user: user) }
8
-
9
- subject { described_class.new(processor_chain, context) }
10
- before { subject.current_ability = current_ability }
11
-
12
- it "should extend classes with the necessary Hydra modules" do
13
- expect(Hydra::SearchBuilder.included_modules).to include(Hydra::AccessControlsEnforcement)
14
- end
15
-
16
- context "when a query is generated" do
17
- it "should triggers add_access_controls_to_solr_params" do
18
- expect(subject).to receive(:add_access_controls_to_solr_params)
19
- subject.query
20
- end
21
- end
22
- end