spec/fields/title_spec.rb in mods_display-0.2.1 vs spec/fields/title_spec.rb in mods_display-0.2.2
- old
+ new
@@ -9,10 +9,11 @@
@title = Stanford::Mods::Record.new.from_str("<mods><titleInfo><title>Title</title></titleInfo></mods>", false).title_info
@title_parts = Stanford::Mods::Record.new.from_str("<mods><titleInfo><nonSort>The</nonSort><title>Title</title><subTitle>For</subTitle><partName>Something</partName><partNumber>Part 62</partNumber></titleInfo></mods>", false).title_info
@reverse_title_parts = Stanford::Mods::Record.new.from_str("<mods><titleInfo><nonSort>The</nonSort><title>Title</title><subTitle>For</subTitle><partNumber>Part 62</partNumber><partName>Something</partName></titleInfo></mods>", false).title_info
@display_label = Stanford::Mods::Record.new.from_str("<mods><titleInfo displayLabel='MyTitle'><title>Title</title></titleInfo></mods>", false).title_info
@display_form = Stanford::Mods::Record.new.from_str("<mods><titleInfo><title>Title</title><displayForm>The Title of This Item</displayForm></titleInfo></mods>", false).title_info
+ @multi_label = Stanford::Mods::Record.new.from_str("<mods><titleInfo><title>Main Title</title></titleInfo><titleInfo type='alternative'><title>Alt Title</title></titleInfo><titleInfo type='uniform'><title>Uniform Title</title></titleInfo><titleInfo type='alternative'><title>Another Alt Title</title></titleInfo><titleInfo type='alternative'><title>Yet Another Alt Title</title></titleInfo></mods>", false).title_info
@alt_title = Stanford::Mods::Record.new.from_str("<mods><titleInfo type='alternative'><title>Title</title></titleInfo></mods>", false).title_info
end
describe "labels" do
it "should return a default label of Title if nothing else is available" do
mods_display_title(@title).fields.first.label.should == "Title"
@@ -20,9 +21,18 @@
it "should return an appropriate label from the type attribute" do
mods_display_title(@alt_title).fields.first.label.should == "Alternative title"
end
it "should return the label held in the displayLabel attribute of the titleInfo element when available" do
mods_display_title(@display_label).fields.first.label.should == "MyTitle"
+ end
+ it "should collapse adjacent identical labels" do
+ fields = mods_display_title(@multi_label).fields
+ fields.length.should == 4
+ fields[0].label.should == "Title"
+ fields[1].label.should == "Alternative title"
+ fields[2].label.should == "Uniform title"
+ fields[3].label.should == "Alternative title"
+ fields[3].values.should == ["Another Alt Title", "Yet Another Alt Title"]
end
end
describe "fields" do
it "should return an array of label/value objects" do
values = mods_display_title(@display_label).fields
\ No newline at end of file