test/test_publication.rb in epub-parser-0.1.5 vs test/test_publication.rb in epub-parser-0.1.6

- old
+ new

@@ -132,10 +132,55 @@ meta = Package::Metadata::Meta.new meta.refines = title assert_true meta.subexpression? end + + class TestIdentifier < self + def setup + @identifier = Package::Metadata::Identifier.new + end + + def test_is_isbn_when_refined_by_onix_scheme + meta = Package::Metadata::Meta.new + meta.property = 'identifier-type' + meta.scheme = 'onix:codelist5' + meta.content = '02' + meta.refines = @identifier + + assert_true @identifier.isbn? + end + + def test_is_isbn_when_qualified_by_attribute + @identifier.content = '0000000000' + @identifier.scheme = 'ISBN' + + assert_true @identifier.isbn? + end + + def test_is_isbn_when_content_is_isbn_urn + @identifier.content = 'urn:isbn:0000000000' + + assert_true @identifier.isbn? + end + + def test_is_not_isbn_when_no_refiner_nor_scheme + assert_false @identifier.isbn? + end + + def test_refiner_take_precedence_over_scheme_for_isbn + @identifier.content = '0000000000000' + @identifier.scheme = 'something' + meta = Package::Metadata::Meta.new + meta.property = 'identifier-type' + meta.scheme = 'onix:codelist5' + meta.content = '15' + meta.refines = @identifier + + assert_true @identifier.isbn? + end + end end class TestManifest < TestPublication include EPUB::Publication @@ -176,9 +221,24 @@ def test_xhtml_returns_false_when_not_xhtml item = Package::Manifest::Item.new item.media_type = 'text/css' assert_false item.xhtml? + end + + def test_find_item_by_relative_iri_returns_item_which_has_resolved_iri_as_href + manifest = Package::Manifest.new + manifest << xhtml_item = Package::Manifest::Item.new.tap {|item| item.href = Addressable::URI.parse('text/01.xhtml')} + manifest << image_item = Package::Manifest::Item.new.tap {|item| item.href = Addressable::URI.parse('image/01.png')} + + assert_equal image_item, xhtml_item.find_item_by_relative_iri(Addressable::URI.parse('../image/01.png')) + end + + def test_find_item_by_relative_iri_returns_nil_when_no_item_found + manifest = Package::Manifest.new + manifest << xhtml_item = Package::Manifest::Item.new.tap {|item| item.href = Addressable::URI.parse('text/01.xhtml')} + + assert_nil xhtml_item.find_item_by_relative_iri(Addressable::URI.parse('../image/01.png')) end end end class TestSpine < TestPublication