blacklight 5.0.0.pre1 → 5.0.0.pre2
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.
- checksums.yaml +4 -4
- data/.travis.yml +0 -4
- data/VERSION +1 -1
- data/app/assets/stylesheets/blacklight/_bookmark.css.scss +4 -0
- data/app/assets/stylesheets/blacklight/_catalog.css.scss +9 -13
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +15 -9
- data/app/helpers/blacklight/catalog_helper_behavior.rb +8 -25
- data/app/helpers/blacklight/facets_helper_behavior.rb +1 -1
- data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +1 -1
- data/app/helpers/blacklight/render_constraints_helper_behavior.rb +2 -2
- data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +1 -1
- data/app/views/bookmarks/index.html.erb +1 -1
- data/app/views/catalog/_did_you_mean.html.erb +1 -1
- data/app/views/catalog/_document.html.erb +4 -10
- data/app/views/catalog/{_document_header.html.erb → _index_header_default.html.erb} +6 -3
- data/app/views/catalog/_paginate_compact.html.erb +5 -0
- data/app/views/catalog/_show_header_default.html.erb +2 -0
- data/app/views/catalog/index.html.erb +1 -1
- data/app/views/catalog/show.html.erb +4 -10
- data/lib/blacklight.rb +0 -1
- data/lib/blacklight/configuration.rb +2 -2
- data/lib/blacklight/controller.rb +0 -1
- data/lib/blacklight/solr/document.rb +2 -0
- data/lib/blacklight/solr/document/schema_org.rb +7 -0
- data/lib/blacklight/solr_response.rb +4 -0
- data/lib/blacklight/user.rb +0 -6
- data/spec/controllers/application_controller_spec.rb +1 -2
- data/spec/controllers/bookmarks_controller_spec.rb +8 -9
- data/spec/controllers/catalog_controller_spec.rb +72 -73
- data/spec/controllers/saved_searches_controller_spec.rb +1 -2
- data/spec/controllers/search_history_controller_spec.rb +9 -10
- data/spec/features/search_pagination_spec.rb +1 -0
- data/spec/features/search_results_spec.rb +1 -0
- data/spec/features/search_spec.rb +1 -0
- data/spec/helpers/blacklight_helper_spec.rb +103 -93
- data/spec/helpers/catalog_helper_spec.rb +34 -21
- data/spec/helpers/facets_helper_spec.rb +41 -41
- data/spec/helpers/hash_as_hidden_fields_spec.rb +8 -9
- data/spec/helpers/render_constraints_helper_spec.rb +3 -3
- data/spec/helpers/search_history_constraints_helper_spec.rb +13 -14
- data/spec/lib/{blacklight_configurable_spec.rb → blacklight/configurable_spec.rb} +12 -14
- data/spec/lib/{blacklight_configuration_spec.rb → blacklight/configuration_spec.rb} +67 -69
- data/spec/lib/{facet_paginator_spec.rb → blacklight/facet_paginator_spec.rb} +13 -16
- data/spec/lib/{search_fields_spec.rb → blacklight/search_fields_spec.rb} +14 -15
- data/spec/lib/{blacklight_solr_document_dublin_core_spec.rb → blacklight/solr/document/dublin_core_spec.rb} +7 -8
- data/spec/lib/{blacklight_email_spec.rb → blacklight/solr/document/email_spec.rb} +5 -6
- data/spec/lib/{blacklight_solr_document_more_like_this_spec.rb → blacklight/solr/document/more_like_this_spec.rb} +5 -5
- data/spec/lib/{blacklight_sms_spec.rb → blacklight/solr/document/sms_spec.rb} +5 -6
- data/spec/lib/{blacklight_solr_document_spec.rb → blacklight/solr/document_spec.rb} +37 -39
- data/spec/lib/{solr_helper_spec.rb → blacklight/solr_helper_spec.rb} +183 -183
- data/spec/lib/{blacklight_solr_response_spec.rb → blacklight/solr_response_spec.rb} +20 -16
- data/spec/lib/{blacklight_user_spec.rb → blacklight/user_spec.rb} +3 -4
- data/spec/lib/blacklight_spec.rb +6 -7
- data/spec/lib/tasks/blacklight_task_spec.rb +2 -3
- data/spec/lib/utils_spec.rb +13 -14
- data/spec/models/bookmark_spec.rb +4 -4
- data/spec/models/record_mailer_spec.rb +15 -15
- data/spec/models/search_spec.rb +7 -7
- data/spec/models/solr_document_spec.rb +4 -4
- data/spec/routing/catalog_routing_spec.rb +12 -12
- data/spec/spec_helper.rb +1 -3
- data/spec/test_app_templates/Gemfile.extra +1 -2
- data/spec/views/catalog/_constraints_element.html.erb_spec.rb +12 -13
- data/spec/views/catalog/_document.html.erb_spec.rb +19 -2
- data/spec/views/catalog/_document_list.html.erb_spec.rb +0 -1
- data/spec/views/catalog/_facets.html.erb_spec.rb +5 -5
- data/spec/views/catalog/_index_default.erb_spec.rb +10 -11
- data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +45 -0
- data/spec/views/catalog/_search_header.erb_spec.rb +0 -1
- data/spec/views/catalog/_show_default.erb_spec.rb +10 -11
- data/spec/views/catalog/_show_sidebar.erb_spec.rb +2 -3
- data/spec/views/catalog/index.atom.builder_spec.rb +26 -27
- data/spec/views/catalog/index.html.erb_spec.rb +1 -1
- data/spec/views/catalog/show.html.erb_spec.rb +56 -0
- data/tasks/blacklight.rake +1 -1
- metadata +65 -64
- data/lib/blacklight/legacy_controller_methods.rb +0 -26
- data/spec/rcov.opts +0 -3
- data/spec/support/assert_difference.rb +0 -17
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
1
|
require 'spec_helper'
|
3
2
|
|
4
3
|
describe "catalog/_constraints_element.html.erb" do
|
@@ -7,9 +6,9 @@ describe "catalog/_constraints_element.html.erb" do
|
|
7
6
|
render :partial => "catalog/constraints_element", :locals => {:label => "my label", :value => "my value"}
|
8
7
|
end
|
9
8
|
it "should render label and value" do
|
10
|
-
rendered.
|
11
|
-
s.
|
12
|
-
s.
|
9
|
+
expect(rendered).to have_selector("span.appliedFilter.constraint") do |s|
|
10
|
+
expect(s).to have_selector "span.filterName", :content => "my label"
|
11
|
+
expect(s).to have_selector "span.filterValue", :content => "my value"
|
13
12
|
end
|
14
13
|
end
|
15
14
|
end
|
@@ -19,14 +18,14 @@ describe "catalog/_constraints_element.html.erb" do
|
|
19
18
|
render :partial => "catalog/constraints_element", :locals => {:label => "my label", :value => "my value", :options => {:remove => "http://remove"}}
|
20
19
|
end
|
21
20
|
it "should include remove link" do
|
22
|
-
rendered.
|
23
|
-
s.
|
21
|
+
expect(rendered).to have_selector("span.appliedFilter") do |s|
|
22
|
+
expect(s).to have_selector(".remove[href='http://remove']")
|
24
23
|
end
|
25
24
|
end
|
26
25
|
|
27
26
|
it "should have an accessible remove label" do
|
28
|
-
rendered.
|
29
|
-
s.
|
27
|
+
expect(rendered).to have_selector(".remove") do |s|
|
28
|
+
expect(s).to have_content("Remove constraint my label: my value")
|
30
29
|
end
|
31
30
|
end
|
32
31
|
end
|
@@ -36,8 +35,8 @@ describe "catalog/_constraints_element.html.erb" do
|
|
36
35
|
render :partial => "catalog/constraints_element", :locals => {:label => "my label", :value => "my value", :options => {:check => false}}
|
37
36
|
end
|
38
37
|
it "should not include checkmark" do
|
39
|
-
rendered.
|
40
|
-
s.
|
38
|
+
expect(rendered).to have_selector("span.appliedFilter") do |s|
|
39
|
+
expect(s).to_not have_selector("img[src$='checkmark.gif']")
|
41
40
|
end
|
42
41
|
end
|
43
42
|
end
|
@@ -47,7 +46,7 @@ describe "catalog/_constraints_element.html.erb" do
|
|
47
46
|
render :partial => "catalog/constraints_element", :locals => {:label => "my label", :value => "my value", :options => {:classes => ["class1", "class2"]}}
|
48
47
|
end
|
49
48
|
it "should include them" do
|
50
|
-
rendered.
|
49
|
+
expect(rendered).to have_selector("span.appliedFilter.constraint.class1.class2")
|
51
50
|
end
|
52
51
|
end
|
53
52
|
|
@@ -56,8 +55,8 @@ describe "catalog/_constraints_element.html.erb" do
|
|
56
55
|
render( :partial => "catalog/constraints_element", :locals => {:label => "<span class='custom_label'>my label</span>", :value => "<span class='custom_value'>my value</span>", :options => {:escape_label => false, :escape_value => false}} )
|
57
56
|
end
|
58
57
|
it "should not escape key and value" do
|
59
|
-
rendered.
|
60
|
-
rendered.
|
58
|
+
expect(rendered).to have_selector("span.appliedFilter.constraint span.filterName span.custom_label")
|
59
|
+
expect(rendered).to have_selector("span.appliedFilter.constraint span.filterValue span.custom_value")
|
61
60
|
end
|
62
61
|
|
63
62
|
end
|
@@ -9,14 +9,31 @@ describe "catalog/_document" do
|
|
9
9
|
Blacklight::Configuration.new
|
10
10
|
end
|
11
11
|
|
12
|
-
it "should render the header, thumbnail and index" do
|
12
|
+
it "should render the header, thumbnail and index by default" do
|
13
|
+
view.stub(:render_grouped_response?).and_return(false)
|
13
14
|
view.stub(:blacklight_config).and_return(blacklight_config)
|
14
|
-
stub_template "catalog/
|
15
|
+
stub_template "catalog/_index_header_default.html.erb" => "document_header"
|
15
16
|
stub_template "catalog/_thumbnail_default.html.erb" => "thumbnail_default"
|
16
17
|
stub_template "catalog/_index_default.html.erb" => "index_default"
|
17
18
|
render :partial => "catalog/document", :locals => {:document => document, :document_counter => 1}
|
18
19
|
expect(rendered).to match /document_header/
|
19
20
|
expect(rendered).to match /thumbnail_default/
|
20
21
|
expect(rendered).to match /index_default/
|
22
|
+
expect(rendered).to have_selector('div.document[@itemscope]')
|
23
|
+
expect(rendered).to have_selector('div.document[@itemtype="http://schema.org/Thing"]')
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
it "should use the index.partials parameter to determine the partials to render" do
|
28
|
+
view.stub(:render_grouped_response?).and_return(false)
|
29
|
+
view.stub(:blacklight_config).and_return(blacklight_config)
|
30
|
+
blacklight_config.index.partials = ['a', 'b', 'c']
|
31
|
+
stub_template "catalog/_a_default.html.erb" => "a_partial"
|
32
|
+
stub_template "catalog/_b_default.html.erb" => "b_partial"
|
33
|
+
stub_template "catalog/_c_default.html.erb" => "c_partial"
|
34
|
+
render :partial => "catalog/document", :locals => {:document => document, :document_counter => 1}
|
35
|
+
expect(rendered).to match /a_partial/
|
36
|
+
expect(rendered).to match /b_partial/
|
37
|
+
expect(rendered).to match /c_partial/
|
21
38
|
end
|
22
39
|
end
|
@@ -8,7 +8,7 @@ describe "catalog/_facets" do
|
|
8
8
|
it "should not have a header if no facets are displayed" do
|
9
9
|
view.stub(:render_facet_partials => '')
|
10
10
|
render
|
11
|
-
rendered.
|
11
|
+
expect(rendered).to_not have_selector('h4')
|
12
12
|
end
|
13
13
|
|
14
14
|
it "should have a header" do
|
@@ -24,7 +24,7 @@ describe "catalog/_facets" do
|
|
24
24
|
|
25
25
|
view.stub(:render_facet_partials => '')
|
26
26
|
render
|
27
|
-
rendered.
|
27
|
+
expect(rendered).to have_selector('h4')
|
28
28
|
end
|
29
29
|
|
30
30
|
describe "facet display" do
|
@@ -42,13 +42,13 @@ describe "catalog/_facets" do
|
|
42
42
|
|
43
43
|
it "should have a(n accessible) header" do
|
44
44
|
render
|
45
|
-
rendered.
|
45
|
+
expect(rendered).to have_selector('h5')
|
46
46
|
end
|
47
47
|
|
48
48
|
it "should list values" do
|
49
49
|
render
|
50
|
-
rendered.
|
51
|
-
rendered.
|
50
|
+
expect(rendered).to have_selector('a.facet_select')
|
51
|
+
expect(rendered).to have_selector('.facet-count')
|
52
52
|
end
|
53
53
|
|
54
54
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
1
|
require 'spec_helper'
|
3
2
|
|
4
3
|
# spec for default partial to display solr document fields
|
@@ -45,21 +44,21 @@ describe "/catalog/_index_default.erb" do
|
|
45
44
|
end
|
46
45
|
|
47
46
|
it "should only display fields listed in the initializer" do
|
48
|
-
@rendered.
|
49
|
-
@rendered.
|
47
|
+
expect(@rendered).to_not include_text("val_2")
|
48
|
+
expect(@rendered).to_not include_text(@fname_2)
|
50
49
|
end
|
51
50
|
|
52
51
|
it "should skip over fields listed in initializer that are not in solr response" do
|
53
|
-
@rendered.
|
52
|
+
expect(@rendered).to_not include_text(@fname_3)
|
54
53
|
end
|
55
54
|
|
56
55
|
it "should display field labels from initializer and raw solr field names in the class" do
|
57
56
|
# labels
|
58
|
-
@rendered.
|
59
|
-
@rendered.
|
57
|
+
expect(@rendered).to include_text(@flabel_1)
|
58
|
+
expect(@rendered).to include_text(@flabel_4)
|
60
59
|
# classes
|
61
|
-
@rendered.
|
62
|
-
@rendered.
|
60
|
+
expect(@rendered).to include_text("blacklight-#{@fname_1}")
|
61
|
+
expect(@rendered).to include_text("blacklight-#{@fname_4}")
|
63
62
|
end
|
64
63
|
|
65
64
|
# this test probably belongs in a Cucumber feature
|
@@ -68,9 +67,9 @@ describe "/catalog/_index_default.erb" do
|
|
68
67
|
# end
|
69
68
|
|
70
69
|
it "should have values for displayed fields" do
|
71
|
-
@rendered.
|
72
|
-
@rendered.
|
73
|
-
@rendered.
|
70
|
+
expect(@rendered).to include_text("val_1")
|
71
|
+
expect(@rendered).to include_text("val_4")
|
72
|
+
expect(@rendered).to_not include_text("val_2")
|
74
73
|
end
|
75
74
|
|
76
75
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "catalog/_paginate_compact.html.erb" do
|
4
|
+
|
5
|
+
describe "with a real solr response", :integration => true do
|
6
|
+
def blacklight_config
|
7
|
+
@config ||= CatalogController.blacklight_config
|
8
|
+
end
|
9
|
+
|
10
|
+
def blacklight_config=(config)
|
11
|
+
@config = config
|
12
|
+
end
|
13
|
+
|
14
|
+
def blacklight_solr
|
15
|
+
Blacklight.solr
|
16
|
+
end
|
17
|
+
|
18
|
+
def facet_limit_for *args
|
19
|
+
0
|
20
|
+
end
|
21
|
+
|
22
|
+
include Blacklight::SolrHelper
|
23
|
+
|
24
|
+
it "should render solr responses" do
|
25
|
+
solr_response, document_list = get_search_results(:q => '')
|
26
|
+
|
27
|
+
render :partial => 'catalog/paginate_compact', :object => solr_response
|
28
|
+
expect(rendered).to have_selector ".page_entries"
|
29
|
+
expect(rendered).to have_selector "a[@rel=next]"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should render paginatable arrays" do
|
34
|
+
render :partial => 'catalog/paginate_compact', :object => (Kaminari.paginate_array([], total_count: 145).page(1).per(10))
|
35
|
+
expect(rendered).to have_selector ".page_entries"
|
36
|
+
expect(rendered).to have_selector "a[@rel=next]"
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should render ActiveRecord collections" do
|
40
|
+
50.times { b = Bookmark.new; b.user_id = 1; b.save! }
|
41
|
+
render :partial => 'catalog/paginate_compact', :object => Bookmark.page(1).per(25)
|
42
|
+
expect(rendered).to have_selector ".page_entries"
|
43
|
+
expect(rendered).to have_selector "a[@rel=next]"
|
44
|
+
end
|
45
|
+
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
1
|
require 'spec_helper'
|
3
2
|
|
4
3
|
# spec for default partial to display solr document fields
|
@@ -47,21 +46,21 @@ describe "/catalog/_show_default.html.erb" do
|
|
47
46
|
end
|
48
47
|
|
49
48
|
it "should only display fields listed in the initializer" do
|
50
|
-
@rendered.
|
51
|
-
@rendered.
|
49
|
+
expect(@rendered).to_not include_text("val_2")
|
50
|
+
expect(@rendered).to_not include_text(@fname_2)
|
52
51
|
end
|
53
52
|
|
54
53
|
it "should skip over fields listed in initializer that are not in solr response" do
|
55
|
-
@rendered.
|
54
|
+
expect(@rendered).to_not include_text(@fname_3)
|
56
55
|
end
|
57
56
|
|
58
57
|
it "should display field labels from initializer and raw solr field names in the class" do
|
59
58
|
# labels
|
60
|
-
@rendered.
|
61
|
-
@rendered.
|
59
|
+
expect(@rendered).to include_text(@flabel_1)
|
60
|
+
expect(@rendered).to include_text(@flabel_4)
|
62
61
|
# classes
|
63
|
-
@rendered.
|
64
|
-
@rendered.
|
62
|
+
expect(@rendered).to include_text("blacklight-#{@fname_1}")
|
63
|
+
expect(@rendered).to include_text("blacklight-#{@fname_4}")
|
65
64
|
end
|
66
65
|
|
67
66
|
# this test probably belongs in a Cucumber feature
|
@@ -70,9 +69,9 @@ describe "/catalog/_show_default.html.erb" do
|
|
70
69
|
# end
|
71
70
|
|
72
71
|
it "should have values for displayed fields" do
|
73
|
-
@rendered.
|
74
|
-
@rendered.
|
75
|
-
@rendered.
|
72
|
+
expect(@rendered).to include_text("val_1")
|
73
|
+
expect(@rendered).to include_text("val_4")
|
74
|
+
expect(@rendered).to_not include_text("val_2")
|
76
75
|
end
|
77
76
|
|
78
77
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
1
|
require 'spec_helper'
|
3
2
|
|
4
3
|
# spec for sidebar partial in catalog show view
|
@@ -20,7 +19,7 @@ describe "/catalog/_show_sidebar.html.erb" do
|
|
20
19
|
@document = SolrDocument.new :id => 1, :title_s => 'abc', :format => 'default'
|
21
20
|
@document.stub(:more_like_this).and_return([SolrDocument.new({ 'id' => '2', 'title_display' => 'Title of MLT Document' })])
|
22
21
|
render
|
23
|
-
rendered.
|
24
|
-
rendered.
|
22
|
+
expect(rendered).to include_text("More Like This")
|
23
|
+
expect(rendered).to include_text("Title of MLT Document")
|
25
24
|
end
|
26
25
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
1
|
require 'spec_helper'
|
3
2
|
|
4
3
|
describe "catalog/index" do
|
@@ -41,51 +40,51 @@ describe "catalog/index" do
|
|
41
40
|
end
|
42
41
|
|
43
42
|
it "should have contextual information" do
|
44
|
-
rendered.
|
45
|
-
rendered.
|
46
|
-
rendered.
|
47
|
-
rendered.
|
48
|
-
rendered.
|
49
|
-
rendered.
|
50
|
-
rendered.
|
43
|
+
expect(rendered).to have_selector("link[rel=self]")
|
44
|
+
expect(rendered).to have_selector("link[rel=next]")
|
45
|
+
expect(rendered).to have_selector("link[rel=previous]")
|
46
|
+
expect(rendered).to have_selector("link[rel=first]")
|
47
|
+
expect(rendered).to have_selector("link[rel=last]")
|
48
|
+
expect(rendered).to have_selector("link[rel='alternate'][type='text/html']")
|
49
|
+
expect(rendered).to have_selector("link[rel=search][type='application/opensearchdescription+xml']")
|
51
50
|
end
|
52
51
|
|
53
52
|
it "should get paging data correctly from response" do
|
54
53
|
# Can't use have_tag for namespaced elements, sorry.
|
55
|
-
@response_xml.elements["/feed/opensearch:totalResults"].text.
|
56
|
-
@response_xml.elements["/feed/opensearch:startIndex"].text.
|
57
|
-
@response_xml.elements["/feed/opensearch:itemsPerPage"].text.
|
54
|
+
expect(@response_xml.elements["/feed/opensearch:totalResults"].text).to eq "30"
|
55
|
+
expect(@response_xml.elements["/feed/opensearch:startIndex"].text).to eq "10"
|
56
|
+
expect(@response_xml.elements["/feed/opensearch:itemsPerPage"].text).to eq "10"
|
58
57
|
end
|
59
58
|
|
60
59
|
it "should include an opensearch Query role=request" do
|
61
60
|
|
62
|
-
@response_xml.elements.to_a("/feed/opensearch:itemsPerPage").
|
61
|
+
expect(@response_xml.elements.to_a("/feed/opensearch:itemsPerPage")).to have(1).item
|
63
62
|
query_el = @response_xml.elements["/feed/opensearch:Query"]
|
64
|
-
query_el.
|
65
|
-
query_el.attributes["role"].
|
66
|
-
query_el.attributes["searchTerms"].
|
67
|
-
query_el.attributes["startPage"].
|
63
|
+
expect(query_el).to_not be_nil
|
64
|
+
expect(query_el.attributes["role"]).to eq "request"
|
65
|
+
expect(query_el.attributes["searchTerms"]).to eq ""
|
66
|
+
expect(query_el.attributes["startPage"]).to eq "2"
|
68
67
|
end
|
69
68
|
|
70
69
|
it "should have ten entries" do
|
71
|
-
rendered.
|
70
|
+
expect(rendered).to have_selector("entry", :count => 10)
|
72
71
|
end
|
73
72
|
|
74
73
|
describe "entries" do
|
75
74
|
it "should have a title" do
|
76
|
-
rendered.
|
75
|
+
expect(rendered).to have_selector("entry > title")
|
77
76
|
end
|
78
77
|
it "should have an updated" do
|
79
|
-
rendered.
|
78
|
+
expect(rendered).to have_selector("entry > updated")
|
80
79
|
end
|
81
80
|
it "should have html link" do
|
82
|
-
rendered.
|
81
|
+
expect(rendered).to have_selector("entry > link[rel=alternate][type='text/html']")
|
83
82
|
end
|
84
83
|
it "should have an id" do
|
85
|
-
rendered.
|
84
|
+
expect(rendered).to have_selector("entry > id")
|
86
85
|
end
|
87
86
|
it "should have a summary" do
|
88
|
-
rendered.
|
87
|
+
expect(rendered).to have_selector("entry > summary")
|
89
88
|
end
|
90
89
|
|
91
90
|
describe "with an author" do
|
@@ -93,7 +92,7 @@ describe "catalog/index" do
|
|
93
92
|
@entry = @response_xml.elements.to_a("/feed/entry")[0]
|
94
93
|
end
|
95
94
|
it "should have author tag" do
|
96
|
-
@entry.elements["author/name"].
|
95
|
+
expect(@entry.elements["author/name"]).not_to be_nil
|
97
96
|
end
|
98
97
|
end
|
99
98
|
|
@@ -102,7 +101,7 @@ describe "catalog/index" do
|
|
102
101
|
@entry = @response_xml.elements.to_a("/feed/entry")[1]
|
103
102
|
end
|
104
103
|
it "should not have an author tag" do
|
105
|
-
@entry.elements["author/name"].
|
104
|
+
expect(@entry.elements["author/name"]).to be_nil
|
106
105
|
end
|
107
106
|
end
|
108
107
|
end
|
@@ -113,10 +112,10 @@ describe "catalog/index" do
|
|
113
112
|
@entry = @response_xml.elements.to_a("/feed/entry")[0]
|
114
113
|
end
|
115
114
|
it "should include a link rel tag" do
|
116
|
-
@entry.to_s.
|
115
|
+
expect(@entry.to_s).to have_selector("link[rel=alternate][type='application/marc']")
|
117
116
|
end
|
118
117
|
it "should have content embedded" do
|
119
|
-
@entry.to_s.
|
118
|
+
expect(@entry.to_s).to have_selector("content")
|
120
119
|
end
|
121
120
|
end
|
122
121
|
describe "for an entry with NO content available" do
|
@@ -124,7 +123,7 @@ describe "catalog/index" do
|
|
124
123
|
@entry = @response_xml.elements.to_a("/feed/entry")[5]
|
125
124
|
end
|
126
125
|
it "should include content" do
|
127
|
-
@entry.to_s.
|
126
|
+
expect(@entry.to_s).to_not have_selector("content[type='application/marc']")
|
128
127
|
end
|
129
128
|
end
|
130
129
|
end
|
@@ -23,7 +23,7 @@ describe "catalog/index.html.erb" do
|
|
23
23
|
view.stub(:blacklight_config).and_return(Blacklight::Configuration.new)
|
24
24
|
view.stub(:has_search_parameters?).and_return(true)
|
25
25
|
view.stub(:render_opensearch_response_metadata).and_return("")
|
26
|
-
|
26
|
+
assign(:response, double(:empty? => true))
|
27
27
|
render
|
28
28
|
expect(rendered).to match /header_content/
|
29
29
|
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "catalog/show.html.erb" do
|
4
|
+
|
5
|
+
let :document do
|
6
|
+
SolrDocument.new :id => 'xyz', :format => 'a'
|
7
|
+
end
|
8
|
+
|
9
|
+
let :blacklight_config do
|
10
|
+
Blacklight::Configuration.new
|
11
|
+
end
|
12
|
+
|
13
|
+
before :each do
|
14
|
+
view.stub(:has_user_authentication_provider? => false)
|
15
|
+
view.stub(:render_document_sidebar_partial => "Sidebar")
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should include schema.org itemscope/type properties" do
|
19
|
+
view.stub(:document_show_html_title).and_return("Heading")
|
20
|
+
document.stub(:itemtype => 'some-item-type-uri')
|
21
|
+
assign :document, document
|
22
|
+
view.stub(:blacklight_config).and_return(blacklight_config)
|
23
|
+
render
|
24
|
+
|
25
|
+
expect(rendered).to have_selector('div#document[@itemscope]')
|
26
|
+
expect(rendered).to have_selector('div#document[@itemtype="some-item-type-uri"]')
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should render the show_header and show partials by default" do
|
30
|
+
view.stub(:render_grouped_response?).and_return(false)
|
31
|
+
view.stub(:blacklight_config).and_return(blacklight_config)
|
32
|
+
stub_template "catalog/_show_header_default.html.erb" => "document_header"
|
33
|
+
stub_template "catalog/_show_default.html.erb" => "show_default"
|
34
|
+
|
35
|
+
assign :document, document
|
36
|
+
render
|
37
|
+
|
38
|
+
expect(rendered).to match /document_header/
|
39
|
+
expect(rendered).to match /show_default/
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
it "should use the show.partials parameter to determine the partials to render" do
|
44
|
+
view.stub(:render_grouped_response?).and_return(false)
|
45
|
+
view.stub(:blacklight_config).and_return(blacklight_config)
|
46
|
+
blacklight_config.show.partials = ['a', 'b', 'c']
|
47
|
+
stub_template "catalog/_a_default.html.erb" => "a_partial"
|
48
|
+
stub_template "catalog/_b_default.html.erb" => "b_partial"
|
49
|
+
stub_template "catalog/_c_default.html.erb" => "c_partial"
|
50
|
+
assign :document, document
|
51
|
+
render
|
52
|
+
expect(rendered).to match /a_partial/
|
53
|
+
expect(rendered).to match /b_partial/
|
54
|
+
expect(rendered).to match /c_partial/
|
55
|
+
end
|
56
|
+
end
|