digital_objects_spec.rb
1 require 'spec_helper' 2 require 'rails_helper' 3 4 describe 'Digital Objects', js: true do 5 def visit_digital_object_page(title) 6 visit("/search?utf8=✓&op[]=&q[]='#{title}'&limit=digital_object&field[]=&from_year[]=&to_year[]=") 7 click_link title 8 end 9 10 describe "Born Digital" do 11 before(:each) do 12 visit_digital_object_page('Born digital') 13 end 14 15 it 'should be accessible from the browse page' do 16 expect(current_path).to match(/repositories.*digital_objects\/\d+/) 17 end 18 19 it 'should display a link to a related published accession' do 20 expect(page).to have_content('Published Accession') 21 end 22 23 it 'should not display a link to a related but unpublished accession' do 24 expect(page).to_not have_content('Unpublished Accession') 25 end 26 end 27 28 describe "Digital Object With Classification" do 29 before(:each) do 30 visit_digital_object_page('Digital Object With Classification') 31 end 32 33 it 'should show linked classification details for digital objects' do 34 expect(page).to have_content('Record Groups') 35 end 36 end 37 38 it 'does not highlight repository uri' do 39 visit('/') 40 41 click_on 'Repositories' 42 click_on 'Test Repo 1' 43 find('#whats-in-container form .btn.btn-default.digital_object').click 44 45 expect(page).to_not have_text Pathname.new(current_path).parent.to_s 46 end 47 48 describe "breadcrumbs with mixed content" do 49 before(:each) do 50 @repo = create(:repo, repo_code: "collection_organization_test_#{Time.now.to_i}") 51 set_repo(@repo) 52 @resource = create(:resource, 53 title: 'This is <emph render="italic">a mixed content</emph> title', 54 publish: true 55 ) 56 57 @do = create(:digital_object, publish: true) 58 @doc = create(:digital_object_component, 59 publish: true, 60 digital_object: { ref: @do.uri } 61 ) 62 63 64 @ao = create(:archival_object, 65 publish: true, 66 title: 'This is <emph render="italic">another mixed content</emph> title', 67 resource: {'ref' => @resource.uri}, 68 instances: [build(:instance_digital, 69 digital_object: { ref: @do.uri }, 70 is_representative: true 71 )] 72 ) 73 run_indexers 74 end 75 76 it 'displays breadcrumbs when mixed content is included' do 77 visit @do.uri 78 79 within('#linked_instances_list') do 80 expect(page).to have_css('span.emph.render-italic', text: 'This is a mixed content title') 81 expect(page).to have_css('span.emph.render-italic', text: 'This is another mixed content title') 82 end 83 end 84 end 85 86 describe 'Digital Materials listing' do 87 before (:each) do 88 visit '/' 89 click_link 'Digital Materials' 90 end 91 92 it 'displays breadcrumbs for items in the Digital Materials listing' do 93 within find('div[data-uri="/repositories/2/digital_objects/5"') do 94 expect(page).to have_content('Resource with digital instance') 95 end 96 end 97 98 describe 'accessibility' do 99 it "does not skip heading levels" do 100 expect(page).to be_axe_clean.checking_only :'heading-order' 101 end 102 103 context 'individual digital materials page' do 104 before (:each) do 105 first("a[class='record-title']").click 106 end 107 108 it "does not skip heading levels" do 109 expect(page).to be_axe_clean.checking_only :'heading-order' 110 end 111 end 112 end 113 end 114 end