hydra-core 8.2.0 → 9.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
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