spec/content_metadata_spec.rb in assembly-objectfile-1.6.7 vs spec/content_metadata_spec.rb in assembly-objectfile-1.6.8
- old
+ new
@@ -3,563 +3,563 @@
describe Assembly::ContentMetadata do
it "should generate valid content metadata with exif for a single tif and jp2 of style=simple_image, adding file attributes" do
objects=[Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE)]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:add_exif=>true,:add_file_attributes=>true,:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource").length.should be 2
- xml.xpath("//resource/file").length.should be 2
- xml.xpath("//resource/file/checksum").length.should be 4
- xml.xpath("//resource/file/checksum")[0].text.should == "8d11fab63089a24c8b17063d29a4b0eac359fb41"
- xml.xpath("//resource/file/checksum")[1].text.should == "a2400500acf21e43f5440d93be894101"
- xml.xpath("//resource/file/checksum")[2].text.should == "b965b5787e0100ec2d43733144120feab327e88c"
- xml.xpath("//resource/file/checksum")[3].text.should == "4eb54050d374291ece622d45e84f014d"
- xml.xpath("//label").length.should be 2
- xml.xpath("//label")[0].text.should =~ /Image 1/
- xml.xpath("//label")[1].text.should =~ /Image 2/
- xml.xpath("//resource")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource")[1].attributes['type'].value.should == "image"
- xml.xpath("//resource/file")[0].attributes['size'].value.should == "63542"
- xml.xpath("//resource/file")[0].attributes['mimetype'].value.should == "image/tiff"
- xml.xpath("//resource/file")[0].attributes['publish'].value.should == "no"
- xml.xpath("//resource/file")[0].attributes['preserve'].value.should == "yes"
- xml.xpath("//resource/file")[0].attributes['shelve'].value.should == "no"
- xml.xpath("//resource/file/imageData")[0].attributes['width'].value.should == "100"
- xml.xpath("//resource/file/imageData")[0].attributes['height'].value.should == "100"
- xml.xpath("//resource/file")[1].attributes['size'].value.should == "306"
- xml.xpath("//resource/file")[1].attributes['mimetype'].value.should == "image/jp2"
- xml.xpath("//resource/file")[1].attributes['publish'].value.should == "yes"
- xml.xpath("//resource/file")[1].attributes['preserve'].value.should == "no"
- xml.xpath("//resource/file")[1].attributes['shelve'].value.should == "yes"
- xml.xpath("//resource/file/imageData")[1].attributes['width'].value.should == "100"
- xml.xpath("//resource/file/imageData")[1].attributes['height'].value.should == "100"
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource").length).to be 2
+ expect(xml.xpath("//resource/file").length).to be 2
+ expect(xml.xpath("//resource/file/checksum").length).to be 4
+ expect(xml.xpath("//resource/file/checksum")[0].text).to eq("8d11fab63089a24c8b17063d29a4b0eac359fb41")
+ expect(xml.xpath("//resource/file/checksum")[1].text).to eq("a2400500acf21e43f5440d93be894101")
+ expect(xml.xpath("//resource/file/checksum")[2].text).to eq("b965b5787e0100ec2d43733144120feab327e88c")
+ expect(xml.xpath("//resource/file/checksum")[3].text).to eq("4eb54050d374291ece622d45e84f014d")
+ expect(xml.xpath("//label").length).to be 2
+ expect(xml.xpath("//label")[0].text).to match(/Image 1/)
+ expect(xml.xpath("//label")[1].text).to match(/Image 2/)
+ expect(xml.xpath("//resource")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource")[1].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource/file")[0].attributes['size'].value).to eq("63542")
+ expect(xml.xpath("//resource/file")[0].attributes['mimetype'].value).to eq("image/tiff")
+ expect(xml.xpath("//resource/file")[0].attributes['publish'].value).to eq("no")
+ expect(xml.xpath("//resource/file")[0].attributes['preserve'].value).to eq("yes")
+ expect(xml.xpath("//resource/file")[0].attributes['shelve'].value).to eq("no")
+ expect(xml.xpath("//resource/file/imageData")[0].attributes['width'].value).to eq("100")
+ expect(xml.xpath("//resource/file/imageData")[0].attributes['height'].value).to eq("100")
+ expect(xml.xpath("//resource/file")[1].attributes['size'].value).to eq("306")
+ expect(xml.xpath("//resource/file")[1].attributes['mimetype'].value).to eq("image/jp2")
+ expect(xml.xpath("//resource/file")[1].attributes['publish'].value).to eq("yes")
+ expect(xml.xpath("//resource/file")[1].attributes['preserve'].value).to eq("no")
+ expect(xml.xpath("//resource/file")[1].attributes['shelve'].value).to eq("yes")
+ expect(xml.xpath("//resource/file/imageData")[1].attributes['width'].value).to eq("100")
+ expect(xml.xpath("//resource/file/imageData")[1].attributes['height'].value).to eq("100")
end
it "should generate valid content metadata with no exif for a single tif and jp2 of style=simple_image, adding specific file attributes for 2 objects, and defaults for 1 object" do
obj1=Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE)
obj2=Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE)
obj3=Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE2)
obj1.file_attributes={:publish=>'no',:preserve=>'no',:shelve=>'no'}
obj2.file_attributes={:publish=>'yes',:preserve=>'yes',:shelve=>'yes'}
objects=[obj1,obj2,obj3]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:add_exif=>false,:add_file_attributes=>true,:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource").length.should be 3
- xml.xpath("//resource/file").length.should be 3
- xml.xpath("//resource/file/checksum").length.should be 0
- xml.xpath("//resource/file/imageData").length.should be 0
- xml.xpath("//label").length.should be 3
- xml.xpath("//label")[0].text.should =~ /Image 1/
- xml.xpath("//label")[1].text.should =~ /Image 2/
- xml.xpath("//label")[2].text.should =~ /Image 3/
- xml.xpath("//resource")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource")[1].attributes['type'].value.should == "image"
- xml.xpath("//resource")[2].attributes['type'].value.should == "image"
- xml.xpath("//resource/file")[0].attributes['publish'].value.should == "no" # specificially set in object
- xml.xpath("//resource/file")[0].attributes['preserve'].value.should == "no" # specificially set in object
- xml.xpath("//resource/file")[0].attributes['shelve'].value.should == "no" # specificially set in object
- xml.xpath("//resource/file")[1].attributes['publish'].value.should == "yes" # specificially set in object
- xml.xpath("//resource/file")[1].attributes['preserve'].value.should == "yes" # specificially set in object
- xml.xpath("//resource/file")[1].attributes['shelve'].value.should == "yes" # specificially set in object
- xml.xpath("//resource/file")[2].attributes['publish'].value.should == "yes" # defaults by mimetype
- xml.xpath("//resource/file")[2].attributes['preserve'].value.should == "no" # defaults by mimetype
- xml.xpath("//resource/file")[2].attributes['shelve'].value.should == "yes" # defaults by mimetype
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource").length).to be 3
+ expect(xml.xpath("//resource/file").length).to be 3
+ expect(xml.xpath("//resource/file/checksum").length).to be 0
+ expect(xml.xpath("//resource/file/imageData").length).to be 0
+ expect(xml.xpath("//label").length).to be 3
+ expect(xml.xpath("//label")[0].text).to match(/Image 1/)
+ expect(xml.xpath("//label")[1].text).to match(/Image 2/)
+ expect(xml.xpath("//label")[2].text).to match(/Image 3/)
+ expect(xml.xpath("//resource")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource")[1].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource")[2].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource/file")[0].attributes['publish'].value).to eq("no") # specificially set in object
+ expect(xml.xpath("//resource/file")[0].attributes['preserve'].value).to eq("no") # specificially set in object
+ expect(xml.xpath("//resource/file")[0].attributes['shelve'].value).to eq("no") # specificially set in object
+ expect(xml.xpath("//resource/file")[1].attributes['publish'].value).to eq("yes") # specificially set in object
+ expect(xml.xpath("//resource/file")[1].attributes['preserve'].value).to eq("yes") # specificially set in object
+ expect(xml.xpath("//resource/file")[1].attributes['shelve'].value).to eq("yes") # specificially set in object
+ expect(xml.xpath("//resource/file")[2].attributes['publish'].value).to eq("yes") # defaults by mimetype
+ expect(xml.xpath("//resource/file")[2].attributes['preserve'].value).to eq("no") # defaults by mimetype
+ expect(xml.xpath("//resource/file")[2].attributes['shelve'].value).to eq("yes") # defaults by mimetype
end
it "should generate valid content metadata with exif for a single tif and jp2 of style=simple_image overriding file labels" do
objects=[Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE,:label=>'Sample tif label!'),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE,:label=>'Sample jp2 label!')]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:add_exif=>true,:add_file_attributes=>true,:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource").length.should be 2
- xml.xpath("//resource/file").length.should be 2
- xml.xpath("//resource/file/checksum").length.should be 4
- xml.xpath("//resource/file/checksum")[0].text.should == "8d11fab63089a24c8b17063d29a4b0eac359fb41"
- xml.xpath("//resource/file/checksum")[1].text.should == "a2400500acf21e43f5440d93be894101"
- xml.xpath("//resource/file/checksum")[2].text.should == "b965b5787e0100ec2d43733144120feab327e88c"
- xml.xpath("//resource/file/checksum")[3].text.should == "4eb54050d374291ece622d45e84f014d"
- xml.xpath("//label").length.should be 2
- xml.xpath("//label")[0].text.should =~ /Sample tif label!/
- xml.xpath("//label")[1].text.should =~ /Sample jp2 label!/
- xml.xpath("//resource")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource")[1].attributes['type'].value.should == "image"
- xml.xpath("//resource/file")[0].attributes['size'].value.should == "63542"
- xml.xpath("//resource/file")[0].attributes['mimetype'].value.should == "image/tiff"
- xml.xpath("//resource/file")[0].attributes['publish'].value.should == "no"
- xml.xpath("//resource/file")[0].attributes['preserve'].value.should == "yes"
- xml.xpath("//resource/file")[0].attributes['shelve'].value.should == "no"
- xml.xpath("//resource/file/imageData")[0].attributes['width'].value.should == "100"
- xml.xpath("//resource/file/imageData")[0].attributes['height'].value.should == "100"
- xml.xpath("//resource/file")[1].attributes['size'].value.should == "306"
- xml.xpath("//resource/file")[1].attributes['mimetype'].value.should == "image/jp2"
- xml.xpath("//resource/file")[1].attributes['publish'].value.should == "yes"
- xml.xpath("//resource/file")[1].attributes['preserve'].value.should == "no"
- xml.xpath("//resource/file")[1].attributes['shelve'].value.should == "yes"
- xml.xpath("//resource/file/imageData")[1].attributes['width'].value.should == "100"
- xml.xpath("//resource/file/imageData")[1].attributes['height'].value.should == "100"
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource").length).to be 2
+ expect(xml.xpath("//resource/file").length).to be 2
+ expect(xml.xpath("//resource/file/checksum").length).to be 4
+ expect(xml.xpath("//resource/file/checksum")[0].text).to eq("8d11fab63089a24c8b17063d29a4b0eac359fb41")
+ expect(xml.xpath("//resource/file/checksum")[1].text).to eq("a2400500acf21e43f5440d93be894101")
+ expect(xml.xpath("//resource/file/checksum")[2].text).to eq("b965b5787e0100ec2d43733144120feab327e88c")
+ expect(xml.xpath("//resource/file/checksum")[3].text).to eq("4eb54050d374291ece622d45e84f014d")
+ expect(xml.xpath("//label").length).to be 2
+ expect(xml.xpath("//label")[0].text).to match(/Sample tif label!/)
+ expect(xml.xpath("//label")[1].text).to match(/Sample jp2 label!/)
+ expect(xml.xpath("//resource")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource")[1].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource/file")[0].attributes['size'].value).to eq("63542")
+ expect(xml.xpath("//resource/file")[0].attributes['mimetype'].value).to eq("image/tiff")
+ expect(xml.xpath("//resource/file")[0].attributes['publish'].value).to eq("no")
+ expect(xml.xpath("//resource/file")[0].attributes['preserve'].value).to eq("yes")
+ expect(xml.xpath("//resource/file")[0].attributes['shelve'].value).to eq("no")
+ expect(xml.xpath("//resource/file/imageData")[0].attributes['width'].value).to eq("100")
+ expect(xml.xpath("//resource/file/imageData")[0].attributes['height'].value).to eq("100")
+ expect(xml.xpath("//resource/file")[1].attributes['size'].value).to eq("306")
+ expect(xml.xpath("//resource/file")[1].attributes['mimetype'].value).to eq("image/jp2")
+ expect(xml.xpath("//resource/file")[1].attributes['publish'].value).to eq("yes")
+ expect(xml.xpath("//resource/file")[1].attributes['preserve'].value).to eq("no")
+ expect(xml.xpath("//resource/file")[1].attributes['shelve'].value).to eq("yes")
+ expect(xml.xpath("//resource/file/imageData")[1].attributes['width'].value).to eq("100")
+ expect(xml.xpath("//resource/file/imageData")[1].attributes['height'].value).to eq("100")
end
it "should generate valid content metadata with exif for a single tif and jp2 of style=simple_image overriding file labels for one, and skipping auto labels for the others or for where the label is set but is blank" do
objects=[Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE,:label=>'Sample tif label!'),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE,:label=>'')]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:auto_labels=>false,:add_file_attributes=>true,:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource").length.should be 3
- xml.xpath("//resource/file").length.should be 3
- xml.xpath("//label").length.should be 1
- xml.xpath("//label")[0].text.should =~ /Sample tif label!/
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource").length).to be 3
+ expect(xml.xpath("//resource/file").length).to be 3
+ expect(xml.xpath("//label").length).to be 1
+ expect(xml.xpath("//label")[0].text).to match(/Sample tif label!/)
end
it "should generate valid content metadata for a single tif and jp2 of style=simple_image with overriding file attributes and no exif data" do
objects=[Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE)]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:add_file_attributes=>true,:file_attributes=>{'image/tiff'=>{:publish=>'no',:preserve=>'no',:shelve=>'no'},'image/jp2'=>{:publish=>'yes',:preserve=>'yes',:shelve=>'yes'}},:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource").length.should be 2
- xml.xpath("//resource/file").length.should be 2
- xml.xpath("//label").length.should be 2
- xml.xpath("//resource/file/imageData").length.should be 0
- xml.xpath("//label")[0].text.should =~ /Image 1/
- xml.xpath("//label")[1].text.should =~ /Image 2/
- xml.xpath("//resource")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource")[1].attributes['type'].value.should == "image"
- xml.xpath("//resource/file")[0].attributes['size'].should be nil
- xml.xpath("//resource/file")[0].attributes['mimetype'].should be nil
- xml.xpath("//resource/file")[0].attributes['publish'].value.should == "no"
- xml.xpath("//resource/file")[0].attributes['preserve'].value.should == "no"
- xml.xpath("//resource/file")[0].attributes['shelve'].value.should == "no"
- xml.xpath("//resource/file")[1].attributes['size'].should be nil
- xml.xpath("//resource/file")[1].attributes['mimetype'].should be nil
- xml.xpath("//resource/file")[1].attributes['publish'].value.should == "yes"
- xml.xpath("//resource/file")[1].attributes['preserve'].value.should == "yes"
- xml.xpath("//resource/file")[1].attributes['shelve'].value.should == "yes"
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource").length).to be 2
+ expect(xml.xpath("//resource/file").length).to be 2
+ expect(xml.xpath("//label").length).to be 2
+ expect(xml.xpath("//resource/file/imageData").length).to be 0
+ expect(xml.xpath("//label")[0].text).to match(/Image 1/)
+ expect(xml.xpath("//label")[1].text).to match(/Image 2/)
+ expect(xml.xpath("//resource")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource")[1].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource/file")[0].attributes['size']).to be nil
+ expect(xml.xpath("//resource/file")[0].attributes['mimetype']).to be nil
+ expect(xml.xpath("//resource/file")[0].attributes['publish'].value).to eq("no")
+ expect(xml.xpath("//resource/file")[0].attributes['preserve'].value).to eq("no")
+ expect(xml.xpath("//resource/file")[0].attributes['shelve'].value).to eq("no")
+ expect(xml.xpath("//resource/file")[1].attributes['size']).to be nil
+ expect(xml.xpath("//resource/file")[1].attributes['mimetype']).to be nil
+ expect(xml.xpath("//resource/file")[1].attributes['publish'].value).to eq("yes")
+ expect(xml.xpath("//resource/file")[1].attributes['preserve'].value).to eq("yes")
+ expect(xml.xpath("//resource/file")[1].attributes['shelve'].value).to eq("yes")
end
it "should generate valid content metadata for a single tif and jp2 of style=simple_image with overriding file attributes, including a default value, and no exif data" do
objects=[Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE)]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:add_file_attributes=>true,:file_attributes=>{'default'=>{:publish=>'yes',:preserve=>'no',:shelve=>'no'},'image/jp2'=>{:publish=>'yes',:preserve=>'yes',:shelve=>'yes'}},:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource/file").length.should be 2
- xml.xpath("//resource/file")[0].attributes['mimetype'].should be nil
- xml.xpath("//resource/file")[0].attributes['publish'].value.should == "yes"
- xml.xpath("//resource/file")[0].attributes['preserve'].value.should == "no"
- xml.xpath("//resource/file")[0].attributes['shelve'].value.should == "no"
- xml.xpath("//resource/file")[1].attributes['mimetype'].should be nil
- xml.xpath("//resource/file")[1].attributes['publish'].value.should == "yes"
- xml.xpath("//resource/file")[1].attributes['preserve'].value.should == "yes"
- xml.xpath("//resource/file")[1].attributes['shelve'].value.should == "yes"
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource/file").length).to be 2
+ expect(xml.xpath("//resource/file")[0].attributes['mimetype']).to be nil
+ expect(xml.xpath("//resource/file")[0].attributes['publish'].value).to eq("yes")
+ expect(xml.xpath("//resource/file")[0].attributes['preserve'].value).to eq("no")
+ expect(xml.xpath("//resource/file")[0].attributes['shelve'].value).to eq("no")
+ expect(xml.xpath("//resource/file")[1].attributes['mimetype']).to be nil
+ expect(xml.xpath("//resource/file")[1].attributes['publish'].value).to eq("yes")
+ expect(xml.xpath("//resource/file")[1].attributes['preserve'].value).to eq("yes")
+ expect(xml.xpath("//resource/file")[1].attributes['shelve'].value).to eq("yes")
for i in 0..1 do
- xml.xpath("//resource[@sequence='#{i+1}']/file").length.should be 1
- xml.xpath("//label")[i].text.should == "Image #{i+1}"
- xml.xpath("//resource")[i].attributes['type'].value.should == "image"
+ expect(xml.xpath("//resource[@sequence='#{i+1}']/file").length).to be 1
+ expect(xml.xpath("//label")[i].text).to eq("Image #{i+1}")
+ expect(xml.xpath("//resource")[i].attributes['type'].value).to eq("image")
end
end
it "should generate valid content metadata for a single tif and jp2 of style=map with overriding file attributes, including a default value, and no exif data" do
objects=[Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE)]
result = Assembly::ContentMetadata.create_content_metadata(:style=>:map,:druid=>TEST_DRUID,:add_file_attributes=>true,:file_attributes=>{'default'=>{:publish=>'yes',:preserve=>'no',:shelve=>'no'},'image/jp2'=>{:publish=>'yes',:preserve=>'yes',:shelve=>'yes'}},:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "map"
- xml.xpath("//resource/file").length.should be 2
- xml.xpath("//resource/file")[0].attributes['mimetype'].should be nil
- xml.xpath("//resource/file")[0].attributes['publish'].value.should == "yes"
- xml.xpath("//resource/file")[0].attributes['preserve'].value.should == "no"
- xml.xpath("//resource/file")[0].attributes['shelve'].value.should == "no"
- xml.xpath("//resource/file")[1].attributes['mimetype'].should be nil
- xml.xpath("//resource/file")[1].attributes['publish'].value.should == "yes"
- xml.xpath("//resource/file")[1].attributes['preserve'].value.should == "yes"
- xml.xpath("//resource/file")[1].attributes['shelve'].value.should == "yes"
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("map")
+ expect(xml.xpath("//resource/file").length).to be 2
+ expect(xml.xpath("//resource/file")[0].attributes['mimetype']).to be nil
+ expect(xml.xpath("//resource/file")[0].attributes['publish'].value).to eq("yes")
+ expect(xml.xpath("//resource/file")[0].attributes['preserve'].value).to eq("no")
+ expect(xml.xpath("//resource/file")[0].attributes['shelve'].value).to eq("no")
+ expect(xml.xpath("//resource/file")[1].attributes['mimetype']).to be nil
+ expect(xml.xpath("//resource/file")[1].attributes['publish'].value).to eq("yes")
+ expect(xml.xpath("//resource/file")[1].attributes['preserve'].value).to eq("yes")
+ expect(xml.xpath("//resource/file")[1].attributes['shelve'].value).to eq("yes")
for i in 0..1 do
- xml.xpath("//resource[@sequence='#{i+1}']/file").length.should be 1
- xml.xpath("//label")[i].text.should == "Image #{i+1}"
- xml.xpath("//resource")[i].attributes['type'].value.should == "image"
+ expect(xml.xpath("//resource[@sequence='#{i+1}']/file").length).to be 1
+ expect(xml.xpath("//label")[i].text).to eq("Image #{i+1}")
+ expect(xml.xpath("//resource")[i].attributes['type'].value).to eq("image")
end
end
it "should generate valid content metadata for two tifs two associated jp2s of style=simple_image using bundle=filename and no exif data" do
objects=[Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE),Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE2),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE2)]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:bundle=>:filename,:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource").length.should be 2
- xml.xpath("//resource/file").length.should be 4
- xml.xpath("//resource[@sequence='1']/file")[0].attributes['id'].value.should == 'test.tif'
- xml.xpath("//resource[@sequence='1']/file")[1].attributes['id'].value.should == 'test.jp2'
- xml.xpath("//resource[@sequence='2']/file")[0].attributes['id'].value.should == 'test2.tif'
- xml.xpath("//resource[@sequence='2']/file")[1].attributes['id'].value.should == 'test2.jp2'
- xml.xpath("//label").length.should be 2
- xml.xpath("//resource/file/imageData").length.should be 0
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource").length).to be 2
+ expect(xml.xpath("//resource/file").length).to be 4
+ expect(xml.xpath("//resource[@sequence='1']/file")[0].attributes['id'].value).to eq('test.tif')
+ expect(xml.xpath("//resource[@sequence='1']/file")[1].attributes['id'].value).to eq('test.jp2')
+ expect(xml.xpath("//resource[@sequence='2']/file")[0].attributes['id'].value).to eq('test2.tif')
+ expect(xml.xpath("//resource[@sequence='2']/file")[1].attributes['id'].value).to eq('test2.jp2')
+ expect(xml.xpath("//label").length).to be 2
+ expect(xml.xpath("//resource/file/imageData").length).to be 0
for i in 0..1 do
- xml.xpath("//resource[@sequence='#{i+1}']/file").length.should be 2
- xml.xpath("//label")[i].text.should == "Image #{i+1}"
- xml.xpath("//resource")[i].attributes['type'].value.should == "image"
+ expect(xml.xpath("//resource[@sequence='#{i+1}']/file").length).to be 2
+ expect(xml.xpath("//label")[i].text).to eq("Image #{i+1}")
+ expect(xml.xpath("//resource")[i].attributes['type'].value).to eq("image")
end
end
it "should generate valid content metadata for two tifs two associated jp2s of style=simple_image using bundle=dpg and no exif data and no root xml node" do
objects=[Assembly::ObjectFile.new(TEST_DPG_TIF),Assembly::ObjectFile.new(TEST_DPG_JP),Assembly::ObjectFile.new(TEST_DPG_TIF2),Assembly::ObjectFile.new(TEST_DPG_JP2)]
test_druid="#{TEST_DRUID}"
result = Assembly::ContentMetadata.create_content_metadata(:druid=>test_druid,:bundle=>:dpg,:objects=>objects,:include_root_xml=>false)
- result.class.should be String
- result.include?('<?xml').should be false
+ expect(result.class).to be String
+ expect(result.include?('<?xml')).to be false
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "image"
- test_druid.should == TEST_DRUID
- xml.xpath("//contentMetadata")[0].attributes['objectId'].value.should == "#{TEST_DRUID}"
- xml.xpath("//resource").length.should be 2
- xml.xpath("//resource/file").length.should be 4
- xml.xpath("//resource[@sequence='1']/file")[0].attributes['id'].value.should == "00/oo000oo0001_00_001.tif"
- xml.xpath("//resource[@sequence='1']/file")[1].attributes['id'].value.should == "05/oo000oo0001_05_001.jp2"
- xml.xpath("//resource[@sequence='2']/file")[0].attributes['id'].value.should == "00/oo000oo0001_00_002.tif"
- xml.xpath("//resource[@sequence='2']/file")[1].attributes['id'].value.should == "05/oo000oo0001_05_002.jp2"
- xml.xpath("//label").length.should be 2
- xml.xpath("//resource/file/imageData").length.should be 0
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("image")
+ expect(test_druid).to eq(TEST_DRUID)
+ expect(xml.xpath("//contentMetadata")[0].attributes['objectId'].value).to eq("#{TEST_DRUID}")
+ expect(xml.xpath("//resource").length).to be 2
+ expect(xml.xpath("//resource/file").length).to be 4
+ expect(xml.xpath("//resource[@sequence='1']/file")[0].attributes['id'].value).to eq("00/oo000oo0001_00_001.tif")
+ expect(xml.xpath("//resource[@sequence='1']/file")[1].attributes['id'].value).to eq("05/oo000oo0001_05_001.jp2")
+ expect(xml.xpath("//resource[@sequence='2']/file")[0].attributes['id'].value).to eq("00/oo000oo0001_00_002.tif")
+ expect(xml.xpath("//resource[@sequence='2']/file")[1].attributes['id'].value).to eq("05/oo000oo0001_05_002.jp2")
+ expect(xml.xpath("//label").length).to be 2
+ expect(xml.xpath("//resource/file/imageData").length).to be 0
for i in 0..1 do
- xml.xpath("//resource[@sequence='#{i+1}']/file").length.should be 2
- xml.xpath("//label")[i].text.should == "Image #{i+1}"
- xml.xpath("//resource")[i].attributes['type'].value.should == "image"
+ expect(xml.xpath("//resource[@sequence='#{i+1}']/file").length).to be 2
+ expect(xml.xpath("//label")[i].text).to eq("Image #{i+1}")
+ expect(xml.xpath("//resource")[i].attributes['type'].value).to eq("image")
end
end
it "should generate valid content metadata for two tifs, two associated jp2s, one combined pdf and one special tif of style=simple_book using bundle=dpg and no exif data and no root xml node, flattening folder structure" do
objects=[Assembly::ObjectFile.new(TEST_DPG_SPECIAL_PDF2),Assembly::ObjectFile.new(TEST_DPG_SPECIAL_TIF),Assembly::ObjectFile.new(TEST_DPG_TIF),Assembly::ObjectFile.new(TEST_DPG_JP),Assembly::ObjectFile.new(TEST_DPG_TIF2),Assembly::ObjectFile.new(TEST_DPG_JP2)]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:style=>:simple_book,:bundle=>:dpg,:objects=>objects,:include_root_xml=>false,:flatten_folder_structure=>true)
- result.class.should be String
- result.include?('<?xml').should be false
+ expect(result.class).to be String
+ expect(result.include?('<?xml')).to be false
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "book"
- xml.xpath("//contentMetadata")[0].attributes['objectId'].value.should == "#{TEST_DRUID}"
- xml.xpath("//resource").length.should be 4
- xml.xpath("//resource/file").length.should be 6
- xml.xpath("//resource[@sequence='1']/file")[0].attributes['id'].value.should == "oo000oo0001_00_001.tif"
- xml.xpath("//resource[@sequence='1']/file")[1].attributes['id'].value.should == "oo000oo0001_05_001.jp2"
- xml.xpath("//resource[@sequence='2']/file")[0].attributes['id'].value.should == "oo000oo0001_00_002.tif"
- xml.xpath("//resource[@sequence='2']/file")[1].attributes['id'].value.should == "oo000oo0001_05_002.jp2"
- xml.xpath("//resource[@sequence='3']/file")[0].attributes['id'].value.should == "oo000oo0001_31_001.pdf"
- xml.xpath("//resource[@sequence='4']/file")[0].attributes['id'].value.should == "oo000oo0001_50_001.tif"
- xml.xpath("//label").length.should be 4
- xml.xpath("//resource/file/imageData").length.should be 0
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("book")
+ expect(xml.xpath("//contentMetadata")[0].attributes['objectId'].value).to eq("#{TEST_DRUID}")
+ expect(xml.xpath("//resource").length).to be 4
+ expect(xml.xpath("//resource/file").length).to be 6
+ expect(xml.xpath("//resource[@sequence='1']/file")[0].attributes['id'].value).to eq("oo000oo0001_00_001.tif")
+ expect(xml.xpath("//resource[@sequence='1']/file")[1].attributes['id'].value).to eq("oo000oo0001_05_001.jp2")
+ expect(xml.xpath("//resource[@sequence='2']/file")[0].attributes['id'].value).to eq("oo000oo0001_00_002.tif")
+ expect(xml.xpath("//resource[@sequence='2']/file")[1].attributes['id'].value).to eq("oo000oo0001_05_002.jp2")
+ expect(xml.xpath("//resource[@sequence='3']/file")[0].attributes['id'].value).to eq("oo000oo0001_31_001.pdf")
+ expect(xml.xpath("//resource[@sequence='4']/file")[0].attributes['id'].value).to eq("oo000oo0001_50_001.tif")
+ expect(xml.xpath("//label").length).to be 4
+ expect(xml.xpath("//resource/file/imageData").length).to be 0
for i in 0..1 do
- xml.xpath("//resource[@sequence='#{i+1}']/file").length.should be 2
- xml.xpath("//label")[i].text.should == "Page #{i+1}"
- xml.xpath("//resource")[i].attributes['type'].value.should == "page"
+ expect(xml.xpath("//resource[@sequence='#{i+1}']/file").length).to be 2
+ expect(xml.xpath("//label")[i].text).to eq("Page #{i+1}")
+ expect(xml.xpath("//resource")[i].attributes['type'].value).to eq("page")
end
- xml.xpath("//resource[@sequence='3']/file").length.should be 1
- xml.xpath("//label")[2].text.should == "Object 1"
- xml.xpath("//resource")[2].attributes['type'].value.should == "object"
- xml.xpath("//resource[@sequence='4']/file").length.should be 1
- xml.xpath("//label")[3].text.should == "Object 2"
- xml.xpath("//resource")[3].attributes['type'].value.should == "object"
+ expect(xml.xpath("//resource[@sequence='3']/file").length).to be 1
+ expect(xml.xpath("//label")[2].text).to eq("Object 1")
+ expect(xml.xpath("//resource")[2].attributes['type'].value).to eq("object")
+ expect(xml.xpath("//resource[@sequence='4']/file").length).to be 1
+ expect(xml.xpath("//label")[3].text).to eq("Object 2")
+ expect(xml.xpath("//resource")[3].attributes['type'].value).to eq("object")
end
it "should generate valid content metadata with item having a 'druid:' prefix for two tifs,two associated jp2s,two associated pdfs, and one lingering PDF of style=simple_book using bundle=dpg, flattening folder structure" do
objects=[Assembly::ObjectFile.new(TEST_DPG_TIF),Assembly::ObjectFile.new(TEST_DPG_JP),Assembly::ObjectFile.new(TEST_DPG_PDF),Assembly::ObjectFile.new(TEST_DPG_TIF2),Assembly::ObjectFile.new(TEST_DPG_JP2),Assembly::ObjectFile.new(TEST_DPG_PDF2),Assembly::ObjectFile.new(TEST_DPG_SPECIAL_PDF1)]
test_druid="druid:#{TEST_DRUID}"
result = Assembly::ContentMetadata.create_content_metadata(:druid=>test_druid,:bundle=>:dpg,:objects=>objects,:style=>:simple_book,:flatten_folder_structure=>true)
- result.class.should be String
- result.include?('<?xml').should be true
+ expect(result.class).to be String
+ expect(result.include?('<?xml')).to be true
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "book"
- xml.xpath("//contentMetadata")[0].attributes['objectId'].value.should == test_druid
- test_druid.should == "druid:#{TEST_DRUID}"
- xml.xpath("//resource").length.should be 3
- xml.xpath("//resource/file").length.should be 7
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("book")
+ expect(xml.xpath("//contentMetadata")[0].attributes['objectId'].value).to eq(test_druid)
+ expect(test_druid).to eq("druid:#{TEST_DRUID}")
+ expect(xml.xpath("//resource").length).to be 3
+ expect(xml.xpath("//resource/file").length).to be 7
- xml.xpath("//resource[@sequence='1']/file")[0].attributes['id'].value.should == "oo000oo0001_00_001.tif"
- xml.xpath("//resource[@sequence='1']/file")[1].attributes['id'].value.should == "oo000oo0001_05_001.jp2"
- xml.xpath("//resource[@sequence='1']/file")[2].attributes['id'].value.should == "oo000oo0001_15_001.pdf"
- xml.xpath("//resource[@sequence='2']/file")[0].attributes['id'].value.should == "oo000oo0001_00_002.tif"
- xml.xpath("//resource[@sequence='2']/file")[1].attributes['id'].value.should == "oo000oo0001_05_002.jp2"
- xml.xpath("//resource[@sequence='2']/file")[2].attributes['id'].value.should == "oo000oo0001_15_002.pdf"
- xml.xpath("//resource[@sequence='3']/file")[0].attributes['id'].value.should == "oo000oo0001_book.pdf"
- xml.xpath("//label").length.should be 3
- xml.xpath("//resource/file/imageData").length.should be 0
+ expect(xml.xpath("//resource[@sequence='1']/file")[0].attributes['id'].value).to eq("oo000oo0001_00_001.tif")
+ expect(xml.xpath("//resource[@sequence='1']/file")[1].attributes['id'].value).to eq("oo000oo0001_05_001.jp2")
+ expect(xml.xpath("//resource[@sequence='1']/file")[2].attributes['id'].value).to eq("oo000oo0001_15_001.pdf")
+ expect(xml.xpath("//resource[@sequence='2']/file")[0].attributes['id'].value).to eq("oo000oo0001_00_002.tif")
+ expect(xml.xpath("//resource[@sequence='2']/file")[1].attributes['id'].value).to eq("oo000oo0001_05_002.jp2")
+ expect(xml.xpath("//resource[@sequence='2']/file")[2].attributes['id'].value).to eq("oo000oo0001_15_002.pdf")
+ expect(xml.xpath("//resource[@sequence='3']/file")[0].attributes['id'].value).to eq("oo000oo0001_book.pdf")
+ expect(xml.xpath("//label").length).to be 3
+ expect(xml.xpath("//resource/file/imageData").length).to be 0
for i in 0..1 do
- xml.xpath("//resource[@sequence='#{i+1}']/file").length.should be 3
- xml.xpath("//label")[i].text.should == "Page #{i+1}"
- xml.xpath("//resource")[i].attributes['type'].value.should == "page"
+ expect(xml.xpath("//resource[@sequence='#{i+1}']/file").length).to be 3
+ expect(xml.xpath("//label")[i].text).to eq("Page #{i+1}")
+ expect(xml.xpath("//resource")[i].attributes['type'].value).to eq("page")
end
- xml.xpath("//resource[@sequence='3']/file").length.should be 1
- xml.xpath("//label")[2].text.should == "Object 1"
- xml.xpath("//resource")[2].attributes['type'].value.should == "object"
+ expect(xml.xpath("//resource[@sequence='3']/file").length).to be 1
+ expect(xml.xpath("//label")[2].text).to eq("Object 1")
+ expect(xml.xpath("//resource")[2].attributes['type'].value).to eq("object")
end
it "should generate valid content metadata for two tifs,two associated jp2s,two associated pdfs, and one lingering PDF of style=book_with_pdf using bundle=dpg" do
objects=[Assembly::ObjectFile.new(TEST_DPG_TIF),Assembly::ObjectFile.new(TEST_DPG_JP),Assembly::ObjectFile.new(TEST_DPG_PDF),Assembly::ObjectFile.new(TEST_DPG_TIF2),Assembly::ObjectFile.new(TEST_DPG_JP2),Assembly::ObjectFile.new(TEST_DPG_SPECIAL_PDF1)]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:bundle=>:dpg,:objects=>objects,:style=>:book_with_pdf)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "book"
- xml.xpath("//resource").length.should be 3
- xml.xpath("//resource/file").length.should be 6
- xml.xpath("//resource[@sequence='1']/file")[0].attributes['id'].value.should == "00/oo000oo0001_00_001.tif"
- xml.xpath("//resource[@sequence='1']/file")[1].attributes['id'].value.should == "05/oo000oo0001_05_001.jp2"
- xml.xpath("//resource[@sequence='1']/file")[2].attributes['id'].value.should == "15/oo000oo0001_15_001.pdf"
- xml.xpath("//resource[@sequence='2']/file")[0].attributes['id'].value.should == "00/oo000oo0001_00_002.tif"
- xml.xpath("//resource[@sequence='2']/file")[1].attributes['id'].value.should == "05/oo000oo0001_05_002.jp2"
- xml.xpath("//resource[@sequence='3']/file")[0].attributes['id'].value.should == "oo000oo0001_book.pdf"
- xml.xpath("//label").length.should be 3
- xml.xpath("//resource/file/imageData").length.should be 0
- xml.xpath("//resource[@sequence='1']/file").length.should be 3
- xml.xpath("//label")[0].text.should == "Object 1"
- xml.xpath("//resource")[0].attributes['type'].value.should == "object"
- xml.xpath("//resource[@sequence='2']/file").length.should be 2
- xml.xpath("//label")[1].text.should == "Page 1"
- xml.xpath("//resource")[1].attributes['type'].value.should == "page"
- xml.xpath("//resource[@sequence='3']/file").length.should be 1
- xml.xpath("//label")[2].text.should == "Object 2"
- xml.xpath("//resource")[2].attributes['type'].value.should == "object"
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("book")
+ expect(xml.xpath("//resource").length).to be 3
+ expect(xml.xpath("//resource/file").length).to be 6
+ expect(xml.xpath("//resource[@sequence='1']/file")[0].attributes['id'].value).to eq("00/oo000oo0001_00_001.tif")
+ expect(xml.xpath("//resource[@sequence='1']/file")[1].attributes['id'].value).to eq("05/oo000oo0001_05_001.jp2")
+ expect(xml.xpath("//resource[@sequence='1']/file")[2].attributes['id'].value).to eq("15/oo000oo0001_15_001.pdf")
+ expect(xml.xpath("//resource[@sequence='2']/file")[0].attributes['id'].value).to eq("00/oo000oo0001_00_002.tif")
+ expect(xml.xpath("//resource[@sequence='2']/file")[1].attributes['id'].value).to eq("05/oo000oo0001_05_002.jp2")
+ expect(xml.xpath("//resource[@sequence='3']/file")[0].attributes['id'].value).to eq("oo000oo0001_book.pdf")
+ expect(xml.xpath("//label").length).to be 3
+ expect(xml.xpath("//resource/file/imageData").length).to be 0
+ expect(xml.xpath("//resource[@sequence='1']/file").length).to be 3
+ expect(xml.xpath("//label")[0].text).to eq("Object 1")
+ expect(xml.xpath("//resource")[0].attributes['type'].value).to eq("object")
+ expect(xml.xpath("//resource[@sequence='2']/file").length).to be 2
+ expect(xml.xpath("//label")[1].text).to eq("Page 1")
+ expect(xml.xpath("//resource")[1].attributes['type'].value).to eq("page")
+ expect(xml.xpath("//resource[@sequence='3']/file").length).to be 1
+ expect(xml.xpath("//label")[2].text).to eq("Object 2")
+ expect(xml.xpath("//resource")[2].attributes['type'].value).to eq("object")
end
it "should generate valid content metadata for two tifs two associated jp2s of style=simple_image using bundle=default and no exif data" do
objects=[Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE),Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE2),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE2)]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:bundle=>:default,:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource").length.should be 4
- xml.xpath("//resource/file").length.should be 4
- xml.xpath("//resource/file")[0].attributes['id'].value.should == 'test.tif'
- xml.xpath("//resource/file")[1].attributes['id'].value.should == 'test.jp2'
- xml.xpath("//resource/file")[2].attributes['id'].value.should == 'test2.tif'
- xml.xpath("//resource/file")[3].attributes['id'].value.should == 'test2.jp2'
- xml.xpath("//label").length.should be 4
- xml.xpath("//resource/file/imageData").length.should be 0
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource").length).to be 4
+ expect(xml.xpath("//resource/file").length).to be 4
+ expect(xml.xpath("//resource/file")[0].attributes['id'].value).to eq('test.tif')
+ expect(xml.xpath("//resource/file")[1].attributes['id'].value).to eq('test.jp2')
+ expect(xml.xpath("//resource/file")[2].attributes['id'].value).to eq('test2.tif')
+ expect(xml.xpath("//resource/file")[3].attributes['id'].value).to eq('test2.jp2')
+ expect(xml.xpath("//label").length).to be 4
+ expect(xml.xpath("//resource/file/imageData").length).to be 0
for i in 0..3 do
- xml.xpath("//resource[@sequence='#{i+1}']/file").length.should be 1
- xml.xpath("//label")[i].text.should == "Image #{i+1}"
- xml.xpath("//resource")[i].attributes['type'].value.should == "image"
+ expect(xml.xpath("//resource[@sequence='#{i+1}']/file").length).to be 1
+ expect(xml.xpath("//label")[i].text).to eq("Image #{i+1}")
+ expect(xml.xpath("//resource")[i].attributes['type'].value).to eq("image")
end
end
it "should generate valid content metadata for two tifs two associated jp2s of style=simple_image using bundle=default and no exif data, preserving full paths" do
objects=[Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE),Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE2),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE2)]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:bundle=>:default,:objects=>objects,:preserve_common_paths=>true)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource").length.should be 4
- xml.xpath("//resource/file").length.should be 4
- xml.xpath("//resource[@sequence='1']/file")[0].attributes['id'].value.should == TEST_TIF_INPUT_FILE
- xml.xpath("//resource[@sequence='2']/file")[0].attributes['id'].value.should == TEST_JP2_INPUT_FILE
- xml.xpath("//resource[@sequence='3']/file")[0].attributes['id'].value.should == TEST_TIF_INPUT_FILE2
- xml.xpath("//resource[@sequence='4']/file")[0].attributes['id'].value.should == TEST_JP2_INPUT_FILE2
- xml.xpath("//label").length.should be 4
- xml.xpath("//resource/file/imageData").length.should be 0
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource").length).to be 4
+ expect(xml.xpath("//resource/file").length).to be 4
+ expect(xml.xpath("//resource[@sequence='1']/file")[0].attributes['id'].value).to eq(TEST_TIF_INPUT_FILE)
+ expect(xml.xpath("//resource[@sequence='2']/file")[0].attributes['id'].value).to eq(TEST_JP2_INPUT_FILE)
+ expect(xml.xpath("//resource[@sequence='3']/file")[0].attributes['id'].value).to eq(TEST_TIF_INPUT_FILE2)
+ expect(xml.xpath("//resource[@sequence='4']/file")[0].attributes['id'].value).to eq(TEST_JP2_INPUT_FILE2)
+ expect(xml.xpath("//label").length).to be 4
+ expect(xml.xpath("//resource/file/imageData").length).to be 0
for i in 0..3 do
- xml.xpath("//resource[@sequence='#{i+1}']/file").length.should be 1
- xml.xpath("//label")[i].text.should == "Image #{i+1}"
- xml.xpath("//resource")[i].attributes['type'].value.should == "image"
+ expect(xml.xpath("//resource[@sequence='#{i+1}']/file").length).to be 1
+ expect(xml.xpath("//label")[i].text).to eq("Image #{i+1}")
+ expect(xml.xpath("//resource")[i].attributes['type'].value).to eq("image")
end
end
it "should generate valid content metadata for two tifs two associated jp2s of style=file using specific content metadata paths" do
objects=[Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE),Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE2),Assembly::ObjectFile.new(TEST_JP2_INPUT_FILE2)]
objects[0].relative_path='input/test.tif'
objects[1].relative_path='input/test.jp2'
objects[2].relative_path='input/test2.tif'
objects[3].relative_path='input/test2.jp2'
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:style=>:file,:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "file"
- xml.xpath("//resource").length.should be 4
- xml.xpath("//resource/file").length.should be 4
- xml.xpath("//label").length.should be 4
- xml.xpath("//resource/file")[0].attributes['id'].value.should == 'input/test.tif'
- xml.xpath("//resource/file")[1].attributes['id'].value.should == 'input/test.jp2'
- xml.xpath("//resource/file")[2].attributes['id'].value.should == 'input/test2.tif'
- xml.xpath("//resource/file")[3].attributes['id'].value.should == 'input/test2.jp2'
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("file")
+ expect(xml.xpath("//resource").length).to be 4
+ expect(xml.xpath("//resource/file").length).to be 4
+ expect(xml.xpath("//label").length).to be 4
+ expect(xml.xpath("//resource/file")[0].attributes['id'].value).to eq('input/test.tif')
+ expect(xml.xpath("//resource/file")[1].attributes['id'].value).to eq('input/test.jp2')
+ expect(xml.xpath("//resource/file")[2].attributes['id'].value).to eq('input/test2.tif')
+ expect(xml.xpath("//resource/file")[3].attributes['id'].value).to eq('input/test2.jp2')
for i in 0..3 do
- xml.xpath("//resource[@sequence='#{i+1}']/file").length.should be 1
- xml.xpath("//label")[i].text.should == "File #{i+1}"
- xml.xpath("//resource")[i].attributes['type'].value.should == "file"
+ expect(xml.xpath("//resource[@sequence='#{i+1}']/file").length).to be 1
+ expect(xml.xpath("//label")[i].text).to eq("File #{i+1}")
+ expect(xml.xpath("//resource")[i].attributes['type'].value).to eq("file")
end
end
it "should generate valid content metadata for two tifs of style=simple_book" do
objects=[Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE),Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE2)]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:style=>:simple_book,:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "book"
- xml.xpath("//resource").length.should be 2
- xml.xpath("//resource/file").length.should be 2
- xml.xpath("//label").length.should be 2
- xml.xpath("//label")[0].text.should =~ /Page 1/
- xml.xpath("//label")[1].text.should =~ /Page 2/
- xml.xpath("//resource/file/imageData").length.should be 0
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("book")
+ expect(xml.xpath("//resource").length).to be 2
+ expect(xml.xpath("//resource/file").length).to be 2
+ expect(xml.xpath("//label").length).to be 2
+ expect(xml.xpath("//label")[0].text).to match(/Page 1/)
+ expect(xml.xpath("//label")[1].text).to match(/Page 2/)
+ expect(xml.xpath("//resource/file/imageData").length).to be 0
for i in 0..1 do
- xml.xpath("//resource/file")[i].attributes['size'].should be nil
- xml.xpath("//resource/file")[i].attributes['mimetype'].should be nil
- xml.xpath("//resource/file")[i].attributes['publish'].should be nil
- xml.xpath("//resource/file")[i].attributes['preserve'].should be nil
- xml.xpath("//resource/file")[i].attributes['shelve'].should be nil
+ expect(xml.xpath("//resource/file")[i].attributes['size']).to be nil
+ expect(xml.xpath("//resource/file")[i].attributes['mimetype']).to be nil
+ expect(xml.xpath("//resource/file")[i].attributes['publish']).to be nil
+ expect(xml.xpath("//resource/file")[i].attributes['preserve']).to be nil
+ expect(xml.xpath("//resource/file")[i].attributes['shelve']).to be nil
end
- xml.xpath("//resource")[0].attributes['type'].value.should == "page"
- xml.xpath("//resource")[1].attributes['type'].value.should == "page"
+ expect(xml.xpath("//resource")[0].attributes['type'].value).to eq("page")
+ expect(xml.xpath("//resource")[1].attributes['type'].value).to eq("page")
end
it "should generate valid content metadata for two tifs and one pdf of style=book_with_pdf" do
objects=[Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE),Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE2),Assembly::ObjectFile.new(TEST_PDF_FILE)]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:style=>:book_with_pdf,:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "book"
- xml.xpath("//resource").length.should be 3
- xml.xpath("//resource/file").length.should be 3
- xml.xpath("//label").length.should be 3
- xml.xpath("//label")[0].text.should =~ /Page 1/
- xml.xpath("//label")[1].text.should =~ /Page 2/
- xml.xpath("//label")[2].text.should =~ /Object 1/
- xml.xpath("//resource/file/imageData").length.should be 0
- xml.xpath("//resource")[0].attributes['type'].value.should == "page"
- xml.xpath("//resource")[1].attributes['type'].value.should == "page"
- xml.xpath("//resource")[2].attributes['type'].value.should == "object"
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("book")
+ expect(xml.xpath("//resource").length).to be 3
+ expect(xml.xpath("//resource/file").length).to be 3
+ expect(xml.xpath("//label").length).to be 3
+ expect(xml.xpath("//label")[0].text).to match(/Page 1/)
+ expect(xml.xpath("//label")[1].text).to match(/Page 2/)
+ expect(xml.xpath("//label")[2].text).to match(/Object 1/)
+ expect(xml.xpath("//resource/file/imageData").length).to be 0
+ expect(xml.xpath("//resource")[0].attributes['type'].value).to eq("page")
+ expect(xml.xpath("//resource")[1].attributes['type'].value).to eq("page")
+ expect(xml.xpath("//resource")[2].attributes['type'].value).to eq("object")
end
it "should generate valid content metadata for two tifs of style=book_as_image" do
objects=[Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE),Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE2)]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:style=>:book_as_image,:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "book"
- xml.xpath("//resource").length.should be 2
- xml.xpath("//resource/file").length.should be 2
- xml.xpath("//label").length.should be 2
- xml.xpath("//label")[0].text.should =~ /Image 1/
- xml.xpath("//label")[1].text.should =~ /Image 2/
- xml.xpath("//resource/file/imageData").length.should be 0
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("book")
+ expect(xml.xpath("//resource").length).to be 2
+ expect(xml.xpath("//resource/file").length).to be 2
+ expect(xml.xpath("//label").length).to be 2
+ expect(xml.xpath("//label")[0].text).to match(/Image 1/)
+ expect(xml.xpath("//label")[1].text).to match(/Image 2/)
+ expect(xml.xpath("//resource/file/imageData").length).to be 0
for i in 0..1 do
- xml.xpath("//resource/file")[i].attributes['size'].should be nil
- xml.xpath("//resource/file")[i].attributes['mimetype'].should be nil
- xml.xpath("//resource/file")[i].attributes['publish'].should be nil
- xml.xpath("//resource/file")[i].attributes['preserve'].should be nil
- xml.xpath("//resource/file")[i].attributes['shelve'].should be nil
+ expect(xml.xpath("//resource/file")[i].attributes['size']).to be nil
+ expect(xml.xpath("//resource/file")[i].attributes['mimetype']).to be nil
+ expect(xml.xpath("//resource/file")[i].attributes['publish']).to be nil
+ expect(xml.xpath("//resource/file")[i].attributes['preserve']).to be nil
+ expect(xml.xpath("//resource/file")[i].attributes['shelve']).to be nil
end
- xml.xpath("//resource")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource")[1].attributes['type'].value.should == "image"
+ expect(xml.xpath("//resource")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource")[1].attributes['type'].value).to eq("image")
end
it "should generate valid content metadata with no exif but with user supplied checksums for two tifs of style=simple_book" do
obj1=Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE)
obj1.provider_md5='123456789'
obj1.provider_sha1='abcdefgh'
obj2=Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE2)
obj2.provider_md5='qwerty'
objects=[obj1,obj2]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:style=>:simple_book,:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "book"
- xml.xpath("//resource").length.should be 2
- xml.xpath("//resource/file").length.should be 2
- xml.xpath("//resource/file/checksum").length.should be 3
- xml.xpath("//label").length.should be 2
- xml.xpath("//label")[0].text.should =~ /Page 1/
- xml.xpath("//label")[1].text.should =~ /Page 2/
- xml.xpath("//resource/file/imageData").length.should be 0
- xml.xpath("//resource/file/checksum")[0].text.should == "abcdefgh"
- xml.xpath("//resource/file/checksum")[1].text.should == "123456789"
- xml.xpath("//resource/file/checksum")[2].text.should == "qwerty"
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("book")
+ expect(xml.xpath("//resource").length).to be 2
+ expect(xml.xpath("//resource/file").length).to be 2
+ expect(xml.xpath("//resource/file/checksum").length).to be 3
+ expect(xml.xpath("//label").length).to be 2
+ expect(xml.xpath("//label")[0].text).to match(/Page 1/)
+ expect(xml.xpath("//label")[1].text).to match(/Page 2/)
+ expect(xml.xpath("//resource/file/imageData").length).to be 0
+ expect(xml.xpath("//resource/file/checksum")[0].text).to eq("abcdefgh")
+ expect(xml.xpath("//resource/file/checksum")[1].text).to eq("123456789")
+ expect(xml.xpath("//resource/file/checksum")[2].text).to eq("qwerty")
for i in 0..1 do
- xml.xpath("//resource/file")[i].attributes['size'].should be nil
- xml.xpath("//resource/file")[i].attributes['mimetype'].should be nil
- xml.xpath("//resource/file")[i].attributes['publish'].should be nil
- xml.xpath("//resource/file")[i].attributes['preserve'].should be nil
- xml.xpath("//resource/file")[i].attributes['shelve'].should be nil
+ expect(xml.xpath("//resource/file")[i].attributes['size']).to be nil
+ expect(xml.xpath("//resource/file")[i].attributes['mimetype']).to be nil
+ expect(xml.xpath("//resource/file")[i].attributes['publish']).to be nil
+ expect(xml.xpath("//resource/file")[i].attributes['preserve']).to be nil
+ expect(xml.xpath("//resource/file")[i].attributes['shelve']).to be nil
end
- xml.xpath("//resource")[0].attributes['type'].value.should == "page"
- xml.xpath("//resource")[1].attributes['type'].value.should == "page"
+ expect(xml.xpath("//resource")[0].attributes['type'].value).to eq("page")
+ expect(xml.xpath("//resource")[1].attributes['type'].value).to eq("page")
end
it "should not generate valid content metadata if not all input files exist" do
- File.exists?(TEST_TIF_INPUT_FILE).should be true
+ expect(File.exists?(TEST_TIF_INPUT_FILE)).to be true
junk_file='/tmp/flim_flam_floom.jp2'
- File.exists?(junk_file).should be false
+ expect(File.exists?(junk_file)).to be false
objects=[Assembly::ObjectFile.new(TEST_TIF_INPUT_FILE),Assembly::ObjectFile.new(junk_file)]
- lambda {Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:objects=>objects)}.should raise_error
+ expect {Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:objects=>objects)}.to raise_error(RuntimeError,"File '#{junk_file}' not found")
end
it "should generate valid content metadata for images and associated text files, of style=simple_image using bundle=prebundled, and no exif data" do
files=[[TEST_RES1_TIF1,TEST_RES1_JP1,TEST_RES1_TIF2,TEST_RES1_JP2,TEST_RES1_TEI,TEST_RES1_TEXT,TEST_RES1_PDF],[TEST_RES2_TIF1,TEST_RES2_JP1,TEST_RES2_TIF2,TEST_RES2_JP2,TEST_RES2_TEI,TEST_RES2_TEXT],[TEST_RES3_TIF1,TEST_RES3_JP1,TEST_RES3_TEI]]
objects=files.collect {|resource| resource.collect {|file| Assembly::ObjectFile.new(file)} }
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:bundle=>:prebundled,:style=>:simple_image,:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "image"
- xml.xpath("//resource").length.should be 3
- xml.xpath("//resource/file").length.should be 16
- xml.xpath("//resource[@sequence='1']/file")[0].attributes['id'].value.should == 'res1_image1.tif'
- xml.xpath("//resource[@sequence='1']/file")[1].attributes['id'].value.should == 'res1_image1.jp2'
- xml.xpath("//resource[@sequence='1']/file")[2].attributes['id'].value.should == 'res1_image2.tif'
- xml.xpath("//resource[@sequence='1']/file")[3].attributes['id'].value.should == 'res1_image2.jp2'
- xml.xpath("//resource[@sequence='1']/file")[4].attributes['id'].value.should == 'res1_teifile.txt'
- xml.xpath("//resource[@sequence='1']/file")[5].attributes['id'].value.should == 'res1_textfile.txt'
- xml.xpath("//resource[@sequence='1']/file")[6].attributes['id'].value.should == 'res1_transcript.pdf'
- xml.xpath("//resource[@sequence='1']/file").length.should be 7
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("image")
+ expect(xml.xpath("//resource").length).to be 3
+ expect(xml.xpath("//resource/file").length).to be 16
+ expect(xml.xpath("//resource[@sequence='1']/file")[0].attributes['id'].value).to eq('res1_image1.tif')
+ expect(xml.xpath("//resource[@sequence='1']/file")[1].attributes['id'].value).to eq('res1_image1.jp2')
+ expect(xml.xpath("//resource[@sequence='1']/file")[2].attributes['id'].value).to eq('res1_image2.tif')
+ expect(xml.xpath("//resource[@sequence='1']/file")[3].attributes['id'].value).to eq('res1_image2.jp2')
+ expect(xml.xpath("//resource[@sequence='1']/file")[4].attributes['id'].value).to eq('res1_teifile.txt')
+ expect(xml.xpath("//resource[@sequence='1']/file")[5].attributes['id'].value).to eq('res1_textfile.txt')
+ expect(xml.xpath("//resource[@sequence='1']/file")[6].attributes['id'].value).to eq('res1_transcript.pdf')
+ expect(xml.xpath("//resource[@sequence='1']/file").length).to be 7
- xml.xpath("//resource[@sequence='2']/file")[0].attributes['id'].value.should == 'res2_image1.tif'
- xml.xpath("//resource[@sequence='2']/file")[1].attributes['id'].value.should == 'res2_image1.jp2'
- xml.xpath("//resource[@sequence='2']/file")[2].attributes['id'].value.should == 'res2_image2.tif'
- xml.xpath("//resource[@sequence='2']/file")[3].attributes['id'].value.should == 'res2_image2.jp2'
- xml.xpath("//resource[@sequence='2']/file")[4].attributes['id'].value.should == 'res2_teifile.txt'
- xml.xpath("//resource[@sequence='2']/file")[5].attributes['id'].value.should == 'res2_textfile.txt'
- xml.xpath("//resource[@sequence='2']/file").length.should be 6
+ expect(xml.xpath("//resource[@sequence='2']/file")[0].attributes['id'].value).to eq('res2_image1.tif')
+ expect(xml.xpath("//resource[@sequence='2']/file")[1].attributes['id'].value).to eq('res2_image1.jp2')
+ expect(xml.xpath("//resource[@sequence='2']/file")[2].attributes['id'].value).to eq('res2_image2.tif')
+ expect(xml.xpath("//resource[@sequence='2']/file")[3].attributes['id'].value).to eq('res2_image2.jp2')
+ expect(xml.xpath("//resource[@sequence='2']/file")[4].attributes['id'].value).to eq('res2_teifile.txt')
+ expect(xml.xpath("//resource[@sequence='2']/file")[5].attributes['id'].value).to eq('res2_textfile.txt')
+ expect(xml.xpath("//resource[@sequence='2']/file").length).to be 6
- xml.xpath("//resource[@sequence='3']/file")[0].attributes['id'].value.should == 'res3_image1.tif'
- xml.xpath("//resource[@sequence='3']/file")[1].attributes['id'].value.should == 'res3_image1.jp2'
- xml.xpath("//resource[@sequence='3']/file")[2].attributes['id'].value.should == 'res3_teifile.txt'
- xml.xpath("//resource[@sequence='3']/file").length.should be 3
+ expect(xml.xpath("//resource[@sequence='3']/file")[0].attributes['id'].value).to eq('res3_image1.tif')
+ expect(xml.xpath("//resource[@sequence='3']/file")[1].attributes['id'].value).to eq('res3_image1.jp2')
+ expect(xml.xpath("//resource[@sequence='3']/file")[2].attributes['id'].value).to eq('res3_teifile.txt')
+ expect(xml.xpath("//resource[@sequence='3']/file").length).to be 3
- xml.xpath("//label").length.should be 3
- xml.xpath("//resource/file/imageData").length.should be 0
+ expect(xml.xpath("//label").length).to be 3
+ expect(xml.xpath("//resource/file/imageData").length).to be 0
for i in 0..2 do
- xml.xpath("//label")[i].text.should == "Image #{i+1}"
- xml.xpath("//resource")[i].attributes['type'].value.should == "image"
+ expect(xml.xpath("//label")[i].text).to eq("Image #{i+1}")
+ expect(xml.xpath("//resource")[i].attributes['type'].value).to eq("image")
end
end
it "should generate content metadata even when no objects are passed in" do
objects=[]
result = Assembly::ContentMetadata.create_content_metadata(:druid=>TEST_DRUID,:bundle=>:prebundled,:style=>:file,:objects=>objects)
- result.class.should be String
+ expect(result.class).to be String
xml = Nokogiri::XML(result)
- xml.errors.size.should be 0
- xml.xpath("//contentMetadata")[0].attributes['type'].value.should == "file"
- xml.xpath("//resource").length.should be 0
- xml.xpath("//resource/file").length.should be 0
+ expect(xml.errors.size).to be 0
+ expect(xml.xpath("//contentMetadata")[0].attributes['type'].value).to eq("file")
+ expect(xml.xpath("//resource").length).to be 0
+ expect(xml.xpath("//resource/file").length).to be 0
end
end