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