hydra-collections 4.0.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/.travis.yml +0 -3
  4. data/Gemfile +6 -1
  5. data/app/controllers/concerns/hydra/collections/selects_collections.rb +30 -33
  6. data/app/controllers/concerns/hydra/collections_controller_behavior.rb +39 -17
  7. data/app/models/concerns/hydra/collection.rb +5 -76
  8. data/app/models/concerns/hydra/collections/actions.rb +22 -0
  9. data/app/models/concerns/hydra/collections/metadata.rb +62 -0
  10. data/app/models/concerns/hydra/collections/relations.rb +8 -0
  11. data/app/search_builders/hydra/collections/search_builder.rb +31 -0
  12. data/app/views/collections/_bookmark_control.html.erb +2 -0
  13. data/app/views/collections/_document_list.html.erb +1 -1
  14. data/app/views/collections/_index_default.html.erb +2 -0
  15. data/app/views/collections/_index_header_default.html.erb +2 -0
  16. data/app/views/collections/_paginate_compact.html.erb +1 -0
  17. data/app/views/collections/_results_pagination.html.erb +9 -0
  18. data/app/views/collections/_search_results.html.erb +23 -0
  19. data/app/views/collections/_thumbnail_default.html.erb +2 -0
  20. data/app/views/collections/index.html.erb +9 -0
  21. data/app/views/collections/show.html.erb +3 -3
  22. data/app/views/layouts/collections.html.erb +48 -0
  23. data/config/routes.rb +3 -3
  24. data/hydra-collections.gemspec +3 -2
  25. data/lib/hydra/collections/collectible.rb +1 -0
  26. data/lib/hydra/collections/search_service.rb +2 -2
  27. data/lib/hydra/collections/version.rb +1 -1
  28. data/spec/controllers/collections_controller_spec.rb +37 -51
  29. data/spec/controllers/other_collections_controller_spec.rb +25 -57
  30. data/spec/controllers/selects_collections_spec.rb +14 -30
  31. data/spec/helpers/collections_helper_spec.rb +5 -5
  32. data/spec/lib/collectible_spec.rb +1 -0
  33. data/spec/models/collection_spec.rb +7 -34
  34. data/spec/spec_helper.rb +7 -11
  35. data/spec/test_app_templates/Gemfile.extra +1 -0
  36. data/spec/test_app_templates/app/controllers/other_collections_controller.rb +8 -0
  37. data/spec/test_app_templates/app/views/catalog/_sort_and_per_page.html.erb +3 -8
  38. data/spec/test_app_templates/config/blacklight.yml +22 -0
  39. data/spec/test_app_templates/lib/generators/test_app_generator.rb +17 -9
  40. data/spec/views/collections/_thumbnail_default.html.erb_spec.rb +25 -0
  41. data/spec/views/collections/show.html.erb_spec.rb +32 -0
  42. metadata +44 -7
@@ -0,0 +1,2 @@
1
+ <%= render 'catalog/bookmark_control', document: document %>
2
+
@@ -1 +1 @@
1
- <%= render partial:'catalog/document_list', locals:{documents: documents} %>
1
+ <%= render 'catalog/document_list', documents: documents %>
@@ -0,0 +1,2 @@
1
+ <%= render 'catalog/index_default', document: document %>
2
+
@@ -0,0 +1,2 @@
1
+ <%= render 'catalog/index_header_default', document: document, document_counter: document_counter %>
2
+
@@ -0,0 +1 @@
1
+ <%= paginate paginate_compact, page_entries_info: page_entries_info(paginate_compact), theme: :blacklight_compact, route_set: collections %>
@@ -0,0 +1,9 @@
1
+ <% if show_pagination? and @response.total_pages > 1 %>
2
+ <div class="row record-padding">
3
+ <div class="col-md-9">
4
+ <div class="pagination">
5
+ <%= paginate @response, :outer_window => 2, :theme => 'blacklight', route_set: collections %>
6
+ </div>
7
+ </div>
8
+ </div>
9
+ <% end %>
@@ -0,0 +1,23 @@
1
+ <h2 class="sr-only top-content-title"><%= t('blacklight.search.search_results_header') %></h2>
2
+
3
+ <% @page_title = t('blacklight.search.title', :application_name => application_name) %>
4
+
5
+
6
+ <% content_for(:head) do -%>
7
+ <%= render_opensearch_response_metadata %>
8
+ <% end -%>
9
+
10
+
11
+ <%= render 'search_header' %>
12
+
13
+ <h2 class="sr-only"><%= t('blacklight.search.search_results') %></h2>
14
+
15
+ <%- if @response.empty? %>
16
+ <%= render "zero_results" %>
17
+ <%- elsif render_grouped_response? %>
18
+ <%= render_grouped_document_index %>
19
+ <%- else %>
20
+ <%= render_document_index %>
21
+ <%- end %>
22
+
23
+ <%= render 'results_pagination' %>
@@ -0,0 +1,2 @@
1
+ <%= render 'catalog/thumbnail_default', document: document, document_counter: document_counter %>
2
+
@@ -0,0 +1,9 @@
1
+ <div id="sidebar" class="col-md-3 col-sm-4">
2
+ <%= render 'search_sidebar' %>
3
+ </div>
4
+
5
+ <div id="content" class="col-md-9 col-sm-8">
6
+ <h2>Collections</h2>
7
+ <%= render 'search_results' %>
8
+ </div>
9
+
@@ -1,5 +1,5 @@
1
1
  <h1><%=@collection.title%><h1>
2
2
  <h3><%=@collection.description%> </h3>
3
- <h3> <u>Contained Files </u></h3>
4
- <%= render partial: 'search_form'%>
5
- <%= render partial:'document_list', locals:{documents: @member_docs} %>
3
+ <h3><u>Contained Files</u></h3>
4
+ <%= render 'search_form'%>
5
+ <%= render 'document_list', documents: @member_docs %>
@@ -0,0 +1,48 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" class="no-js">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6
+
7
+ <!-- Mobile viewport optimization h5bp.com/ad -->
8
+ <meta name="HandheldFriendly" content="True">
9
+ <meta name="viewport" content="width=device-width,initial-scale=1.0">
10
+
11
+ <!-- Internet Explorer use the highest version available -->
12
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
13
+
14
+ <!-- Mobile IE allows us to activate ClearType technology for smoothing fonts for easy reading -->
15
+ <!--[if IEMobile]>
16
+ <meta http-equiv="cleartype" content="on">
17
+ <![endif]-->
18
+
19
+ <title><%= render_page_title %></title>
20
+ <%= opensearch_description_tag application_name, opensearch_catalog_url(:format => 'xml') %>
21
+ <%= favicon_link_tag 'favicon.ico' %>
22
+ <%= stylesheet_link_tag "application", media: "all" %>
23
+ <%= javascript_include_tag "application" %>
24
+ <%= csrf_meta_tags %>
25
+ <%= content_for(:head) %>
26
+
27
+ <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
28
+ <!--[if lt IE 9]>
29
+ <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
30
+ <![endif]-->
31
+
32
+ </head>
33
+ <body class="<%= render_body_class %>">
34
+ <%= render :partial => 'shared/header_navbar' %>
35
+
36
+ <%= render partial: 'shared/ajax_modal' %>
37
+
38
+ <div id="main-container" class="container">
39
+ <%= render :partial=>'/flash_msg', layout: 'shared/flash_messages' %>
40
+
41
+ <div class="row">
42
+ <%= yield %>
43
+ </div>
44
+ </div>
45
+
46
+ <%= render :partial => 'shared/footer' %>
47
+ </body>
48
+ </html>
@@ -1,3 +1,3 @@
1
- Hydra::Collections::Engine.routes.draw do
2
- resources :collections, except: :index
3
- end
1
+ Hydra::Collections::Engine.routes.draw do
2
+ resources :collections
3
+ end
@@ -18,8 +18,9 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency 'hydra-head', '~> 9.0.1'
22
- spec.add_dependency 'deprecation', '~> 0.1.0'
21
+ spec.add_dependency 'hydra-head', '~> 9.1'
22
+ spec.add_dependency 'deprecation', '~> 0.1'
23
+ spec.add_dependency 'blacklight', '~> 5.10'
23
24
 
24
25
  spec.add_development_dependency 'engine_cart', '~> 0.5'
25
26
  spec.add_development_dependency 'rspec-rails', '~> 3.1'
@@ -19,6 +19,7 @@ module Hydra::Collections::Collectible
19
19
  # return solr_doc
20
20
  # end
21
21
  def index_collection_ids(solr_doc={})
22
+ Deprecation.warn(Hydra::Collections::Collectible, 'index_collection_ids is deprecated and will be removed in version 5.0')
22
23
  # CollectionAssociation#ids_reader loads from solr on each call, so only call it once
23
24
  # see https://github.com/projecthydra/active_fedora/issues/644
24
25
  ids = collection_ids
@@ -2,7 +2,7 @@ module Hydra
2
2
  module Collections
3
3
  class SearchService
4
4
  include Blacklight::Configurable
5
- include Blacklight::SolrHelper
5
+ include Blacklight::SearchHelper
6
6
 
7
7
  def initialize(session, user_key)
8
8
  @session = session
@@ -10,7 +10,7 @@ module Hydra
10
10
  self.class.copy_blacklight_config_from(::CatalogController)
11
11
  end
12
12
 
13
- solr_search_params_logic << :apply_gated_search
13
+ self.search_params_logic << :apply_gated_search
14
14
 
15
15
  def last_search_documents
16
16
  return [] if @session[:history].blank?
@@ -1,5 +1,5 @@
1
1
  module Hydra
2
2
  module Collections
3
- VERSION = "4.0.0"
3
+ VERSION = "5.0.0"
4
4
  end
5
5
  end
@@ -3,6 +3,8 @@ require 'spec_helper'
3
3
  describe CollectionsController, :type => :controller do
4
4
  let(:collections) { Hydra::Collections::Engine.routes.url_helpers }
5
5
 
6
+ routes { Hydra::Collections::Engine.routes }
7
+
6
8
  before(:all) do
7
9
  CollectionsController.configure_blacklight do |config|
8
10
  config.default_solr_params = {:qf => 'label_tesim'}
@@ -15,7 +17,6 @@ describe CollectionsController, :type => :controller do
15
17
 
16
18
  def to_solr(solr_doc={})
17
19
  super.tap do |solr_doc|
18
- solr_doc = index_collection_ids(solr_doc)
19
20
  solr_doc["label_tesim"] = self.title
20
21
  end
21
22
  end
@@ -26,15 +27,29 @@ describe CollectionsController, :type => :controller do
26
27
  Object.send(:remove_const, :GenericFile)
27
28
  end
28
29
 
30
+ let(:user) { FactoryGirl.create(:user) }
31
+
29
32
  before do
30
33
  allow(controller).to receive(:has_access?).and_return(true)
31
34
 
32
- @user = FactoryGirl.find_or_create(:user)
33
- sign_in @user
35
+ sign_in user
34
36
  allow_any_instance_of(User).to receive(:groups).and_return([])
35
37
  allow(controller).to receive(:clear_session_user) ## Don't clear out the authenticated session
36
38
  end
37
39
 
40
+ describe "#index" do
41
+ let!(:collection1) { Collection.create { |c| c.apply_depositor_metadata(user.user_key) } }
42
+ let!(:collection2) { Collection.create { |c| c.apply_depositor_metadata(user.user_key) } }
43
+ let!(:generic_file) { GenericFile.create }
44
+
45
+ it "should show a list of collections" do
46
+ get :index
47
+ expect(response).to be_successful
48
+ expect(assigns[:document_list].map(&:id)).not_to include generic_file.id
49
+ expect(assigns[:document_list].map(&:id)).to eq [collection1.id, collection2.id]
50
+ end
51
+ end
52
+
38
53
  describe '#new' do
39
54
  it 'should assign @collection' do
40
55
  get :new
@@ -49,7 +64,7 @@ describe CollectionsController, :type => :controller do
49
64
  }.to change { Collection.count }.by(1)
50
65
  expect(assigns[:collection].title).to eq("My First Collection ")
51
66
  expect(assigns[:collection].description).to eq("The Description\r\n\r\nand more")
52
- expect(assigns[:collection].depositor).to eq(@user.user_key)
67
+ expect(assigns[:collection].depositor).to eq(user.user_key)
53
68
  expect(response).to redirect_to collections.collection_path(assigns[:collection])
54
69
  end
55
70
  it "should add docs to collection if batch ids provided" do
@@ -90,9 +105,7 @@ describe CollectionsController, :type => :controller do
90
105
 
91
106
  describe "#update" do
92
107
  before do
93
- @collection = Collection.new
94
- @collection.apply_depositor_metadata(@user.user_key)
95
- @collection.save
108
+ @collection = Collection.create { |c| c.apply_depositor_metadata(user.user_key) }
96
109
  @asset1 = GenericFile.create!
97
110
  @asset2 = GenericFile.create!
98
111
  @asset3 = GenericFile.create!
@@ -116,7 +129,7 @@ describe CollectionsController, :type => :controller do
116
129
  it "should support adding batches of members" do
117
130
  @collection.members << @asset1
118
131
  @collection.save
119
- put :update, id: @collection.id, collection: { members:"add" }, batch_document_ids: [@asset2, @asset3]
132
+ put :update, id: @collection, collection: { members:"add" }, batch_document_ids: [@asset2, @asset3]
120
133
  expect(response).to redirect_to collections.collection_path(@collection)
121
134
  expect(assigns[:collection].members).to match_array [@asset2, @asset3, @asset1]
122
135
  end
@@ -124,45 +137,26 @@ describe CollectionsController, :type => :controller do
124
137
  it "should support removing batches of members" do
125
138
  @collection.members = [@asset1, @asset2, @asset3]
126
139
  @collection.save
127
- put :update, id: @collection.id, collection: { members: "remove" }, batch_document_ids: [@asset1, @asset3]
140
+ put :update, id: @collection, collection: { members: "remove" }, batch_document_ids: [@asset1, @asset3]
128
141
  expect(response).to redirect_to collections.collection_path(@collection)
129
142
  expect(assigns[:collection].members).to eq([@asset2])
130
143
  end
131
144
  end
132
145
 
133
146
  it "should support setting members array" do
134
- put :update, id: @collection.id, collection: { members: "add" }, batch_document_ids: [@asset2, @asset3, @asset1]
147
+ put :update, id: @collection, collection: { members: "add" }, batch_document_ids: [@asset2, @asset3, @asset1]
135
148
  expect(response).to redirect_to collections.collection_path(@collection)
136
149
  expect(assigns[:collection].members).to match_array [@asset2, @asset3, @asset1]
137
150
  end
138
151
 
139
152
  it "should set/un-set collection on members" do
140
153
  # Add to collection (sets collection on members)
141
- put :update, id: @collection.id, collection: { members: "add"}, batch_document_ids: [@asset2, @asset3]
154
+ put :update, id: @collection, collection: { members: "add" }, batch_document_ids: [@asset2, @asset3]
142
155
  expect(assigns[:collection].members).to match_array [@asset2, @asset3]
143
156
 
144
- ## Check that member lists collection in its solr doc
145
- @asset2.reload
146
- expect(@asset2.to_solr[Solrizer.solr_name(:collection)]).to eq [@collection.id]
147
- ## Check that member was re-indexed with collection info
148
- asset_results = ActiveFedora::SolrService.instance.conn.get "select", params:{fq:["id:\"#{@asset2.id}\""],fl:['id',Solrizer.solr_name(:collection)]}
149
- doc = asset_results["response"]["docs"].first
150
- expect(doc["id"]).to eq(@asset2.id)
151
- expect(doc[Solrizer.solr_name(:collection)]).to eq [@collection.id]
152
-
153
157
  # Remove from collection (un-sets collection on members)
154
158
  put :update, id: @collection, collection: { members:"remove" }, batch_document_ids: [@asset2]
155
159
  expect(assigns[:collection].members).to_not include(@asset2)
156
-
157
- ## Check that member no longer lists collection in its solr doc
158
- @asset2.reload
159
- expect(@asset2.to_solr[Solrizer.solr_name(:collection)]).to eq([])
160
-
161
- ## Check that member was re-indexed without collection info
162
- asset_results = ActiveFedora::SolrService.instance.conn.get "select", params:{fq:["id:\"#{@asset2.id}\""],fl:['id',Solrizer.solr_name(:collection)]}
163
- doc = asset_results["response"]["docs"].first
164
- expect(doc["id"]).to eq(@asset2.id)
165
- expect(doc[Solrizer.solr_name(:collection)]).to be_nil
166
160
  end
167
161
 
168
162
  context "when moving members between collections" do
@@ -171,14 +165,13 @@ describe CollectionsController, :type => :controller do
171
165
  @collection.save
172
166
  end
173
167
  let(:collection2) do
174
- Collection.new.tap do |col|
175
- col.apply_depositor_metadata(@user.user_key)
176
- col.save
168
+ Collection.create do |col|
169
+ col.apply_depositor_metadata(user.user_key)
177
170
  end
178
171
  end
179
172
 
180
173
  it "moves the members" do
181
- put :update, id: @collection, collection: {members: "move"},
174
+ put :update, id: @collection, collection: {members: "move"},
182
175
  destination_collection_id: collection2, batch_document_ids: [@asset2, @asset3]
183
176
  expect(@collection.reload.members).to eq [@asset1]
184
177
  expect(collection2.reload.members).to match_array [@asset2, @asset3]
@@ -189,20 +182,21 @@ describe CollectionsController, :type => :controller do
189
182
  describe "#destroy" do
190
183
  describe "valid collection" do
191
184
  before do
192
- @collection = Collection.new
193
- @collection.apply_depositor_metadata(@user.user_key)
194
- @collection.save
185
+ @collection = Collection.create { |c| c.apply_depositor_metadata(user.user_key) }
195
186
  expect(controller).to receive(:authorize!).and_return(true)
196
187
  end
188
+
197
189
  it "should delete collection" do
198
- delete :destroy, id: @collection.id
190
+ delete :destroy, id: @collection
199
191
  expect(response).to redirect_to Rails.application.routes.url_helpers.catalog_index_path
200
192
  expect(flash[:notice]).to eq("Collection was successfully deleted.")
201
193
  end
194
+
202
195
  it "should after_destroy" do
203
196
  expect(controller).to receive(:after_destroy).and_call_original
204
- delete :destroy, id: @collection.id
197
+ delete :destroy, id: @collection
205
198
  end
199
+
206
200
  it "should call update members" do
207
201
  @asset1 = GenericFile.create!
208
202
  @collection.members << @asset1
@@ -210,20 +204,12 @@ describe CollectionsController, :type => :controller do
210
204
  @asset1 = @asset1.reload
211
205
  @asset1.update_index
212
206
  expect(@asset1.collections).to eq [@collection]
213
- asset_results = ActiveFedora::SolrService.instance.conn.get "select", params:{fq:["id:\"#{@asset1.id}\""],fl:['id',Solrizer.solr_name(:collection)]}
214
- expect(asset_results["response"]["numFound"]).to eq(1)
215
- doc = asset_results["response"]["docs"].first
216
- expect(doc[Solrizer.solr_name(:collection)]).to eq([@collection.id])
217
207
 
218
208
  delete :destroy, id: @collection
219
- expect(@asset1.reload.collections).to eq([])
220
- asset_results = ActiveFedora::SolrService.instance.conn.get "select", params:{fq:["id:\"#{@asset1.id}\""],fl:['id',Solrizer.solr_name(:collection)]}
221
- expect(asset_results["response"]["numFound"]).to eq(1)
222
- doc = asset_results["response"]["docs"].first
223
- expect(doc[Solrizer.solr_name(:collection)]).to be_nil
224
- @asset1.destroy
209
+ expect(@asset1.reload.collections).to eq []
225
210
  end
226
211
  end
212
+
227
213
  it "should not delete an invalid collection" do
228
214
  expect {delete :destroy, id: 'zz:-1'}.to raise_error
229
215
  end
@@ -236,7 +222,7 @@ describe CollectionsController, :type => :controller do
236
222
  @asset3 = GenericFile.create!(title: "Third of the Assets")
237
223
  @collection = Collection.new(id:"abc123")
238
224
  @collection.title = "My collection"
239
- @collection.apply_depositor_metadata(@user.user_key)
225
+ @collection.apply_depositor_metadata(user.user_key)
240
226
  @collection.members = [@asset1, @asset2, @asset3]
241
227
  @collection.save!
242
228
  expect(controller).to receive(:authorize!).and_return(true)
@@ -248,7 +234,7 @@ describe CollectionsController, :type => :controller do
248
234
  @asset4 = GenericFile.create!(title: "#{@asset1.id}")
249
235
  @collection2 = Collection.new(id: "abc1234")
250
236
  @collection2.title = "Other collection"
251
- @collection2.apply_depositor_metadata(@user.user_key)
237
+ @collection2.apply_depositor_metadata(user.user_key)
252
238
  @collection2.members = [@asset4]
253
239
  @collection2.save
254
240
  end
@@ -1,85 +1,53 @@
1
1
  require 'spec_helper'
2
2
 
3
- class OtherCollectionsController < ApplicationController
4
- include Hydra::CollectionsControllerBehavior
5
-
6
- def show
7
- super
8
- redirect_to root_path
9
- end
10
-
11
- end
12
-
13
- class OtherCollection < ActiveFedora::Base
14
- include Hydra::Collection
15
- include Hydra::Collections::Collectible
16
-
17
- def to_solr(solr_doc={})
18
- super.tap do |solr_doc|
19
- index_collection_ids(solr_doc)
3
+ # make sure a collection by another name still assigns the @collection variable
4
+ describe OtherCollectionsController, :type => :controller do
5
+ before(:all) do
6
+ class OtherCollection < ActiveFedora::Base
7
+ include Hydra::Collection
8
+ include Hydra::Collections::Collectible
20
9
  end
21
- end
22
- end
23
-
24
- class Member < ActiveFedora::Base
25
- include Hydra::Collections::Collectible
26
- attr_accessor :title
27
10
 
28
- def to_solr(solr_doc={})
29
- super.tap do |solr_doc|
30
- index_collection_ids(solr_doc)
11
+ class Member < ActiveFedora::Base
12
+ include Hydra::Collections::Collectible
13
+ attr_accessor :title
31
14
  end
32
15
  end
33
16
 
34
- end
35
-
36
- # make sure a collection by another name still assigns the @collection variable
37
- describe OtherCollectionsController, :type => :controller do
38
- before(:all) do
39
- @user = FactoryGirl.find_or_create(:user)
40
- end
41
17
  after(:all) do
42
- @user.destroy
43
- Member.destroy_all
44
- OtherCollection.destroy_all
45
18
  Object.send(:remove_const, :Member)
46
19
  Object.send(:remove_const, :OtherCollection)
47
- Object.send(:remove_const, :OtherCollectionsController)
48
-
49
20
  end
50
-
21
+
22
+ let(:user) { FactoryGirl.find_or_create(:user) }
23
+
51
24
  before do
52
25
  allow(controller).to receive(:has_access?).and_return(true)
53
-
54
- @user = FactoryGirl.find_or_create(:user)
55
- sign_in @user
56
- allow_any_instance_of(User).to receive(:groups).and_return([])
57
- allow(controller).to receive(:clear_session_user) ## Don't clear out the authenticated session
26
+ sign_in user
27
+ # allow_any_instance_of(User).to receive(:groups).and_return([])
28
+ # allow(controller).to receive(:clear_session_user) ## Don't clear out the authenticated session
58
29
  end
59
30
 
60
31
  describe "#show" do
61
- let(:asset1) {Member.create!(title: "First of the Assets")}
62
- let(:asset2) {Member.create!(title: "Second of the Assets")}
63
- let(:asset3) {Member.create!(title: "Third of the Assets")}
64
- let(:collection) {OtherCollection.new}
32
+ let(:asset1) { Member.create!(title: "First of the Assets") }
33
+ let(:asset2) { Member.create!(title: "Second of the Assets") }
34
+ let(:asset3) { Member.create!(title: "Third of the Assets") }
35
+ let(:collection) do
36
+ OtherCollection.create(id: 'foo123', title: "My collection",
37
+ members: [asset1, asset2, asset3]) do |collection|
38
+ collection.apply_depositor_metadata(user.user_key)
39
+ end
40
+ end
65
41
 
66
42
  before do
67
- collection.title = "My collection"
68
- collection.apply_depositor_metadata(@user.user_key)
69
- collection.members = [asset1,asset2,asset3]
70
- collection.save
71
43
  allow(controller).to receive(:apply_gated_search)
72
44
  end
73
- after do
74
- Rails.application.reload_routes!
75
- end
45
+
76
46
  it "should show the collections" do
77
- routes.draw { resources :other_collections, except: :index }
78
47
  get :show, id: collection
79
48
  expect(assigns[:collection].title).to eq collection.title
80
49
  ids = assigns[:member_docs].map(&:id)
81
50
  expect(ids).to include(asset1.id, asset2.id, asset3.id)
82
51
  end
83
52
  end
84
-
85
53
  end