require "spec_helper"
def mods_display_description(mods)
ModsDisplay::Description.new(mods, ModsDisplay::Configuration::Base.new, double("controller"))
end
describe ModsDisplay::Description do
before(:all) do
@form = Stanford::Mods::Record.new.from_str("Description Note", false).physical_description
@display_label = Stanford::Mods::Record.new.from_str("Description Note", false).physical_description
@child_display_label = Stanford::Mods::Record.new.from_str("Description Note", false).physical_description
@mixed = Stanford::Mods::Record.new.from_str("Description NoteDigital Origin Note", false).physical_description
end
describe "labels" do
it "should use the displayLabel if one is provided" do
mods_display_description(@display_label).fields.first.label.should == "SpecialLabel"
end
it "should get the default label for a child element" do
mods_display_description(@form).fields.first.label.should == "Note"
end
it "should get multiple lables for mixed content" do
mods_display_description(@mixed).fields.map{|v| v.label }.should == ["Note", "Digital origin"]
end
it "should get the display label from child elements" do
mods_display_description(@child_display_label).fields.map{|f| f.label }.should == ["Note Label"]
end
end
describe "fields" do
it "should get the value from a field in physicalDescription" do
mods_display_description(@form).fields.first.values.should == ["Description Note"]
end
it "should get multiple values for mixed content" do
mods_display_description(@mixed).fields.map{|v| v.values }.should == [["Description Note"], ["Digital Origin Note"]]
end
end
end