epub-parser 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,16 @@
1
+ require_relative 'helper'
2
+ require 'epub/parser'
3
+
4
+ class TestParserFixedLayout < Test::Unit::TestCase
5
+ def test_using_fixed_layout_is_true_when_rendition_property_in_package_prefix
6
+ parser = EPUB::Parser::Publication.new(<<OPF, 'dummy/rootfile.opf')
7
+ <package version="3.0"
8
+ unique-identifier="pub-id"
9
+ xmlns="http://www.idpf.org/2007/opf"
10
+ prefix="rendition: http://www.idpf.org/vocab/rendition/#">
11
+ </package>
12
+ OPF
13
+ package = parser.parse_package
14
+ assert_true package.using_fixed_layout
15
+ end
16
+ end
@@ -2,6 +2,8 @@ require_relative 'helper'
2
2
  require 'epub/publication'
3
3
 
4
4
  class TestPublication < Test::Unit::TestCase
5
+ include EPUB::Publication
6
+
5
7
  def test_package_clear_package_attribute_of_submodules_when_attribute_writer_called
6
8
  metadata = EPUB::Publication::Package::Metadata.new
7
9
  another_metadata = EPUB::Publication::Package::Metadata.new
@@ -16,21 +18,55 @@ class TestPublication < Test::Unit::TestCase
16
18
 
17
19
  class TestMetadata < TestPublication
18
20
  def test_meta_refines_setter_connect_refinee_to_the_meta
19
- refiner = EPUB::Publication::Package::Metadata::Meta.new
20
- refinee = EPUB::Publication::Package::Metadata::Meta.new
21
+ refiner = Package::Metadata::Meta.new
22
+ refinee = Package::Metadata::Meta.new
21
23
  refiner.refines = refinee
22
24
  assert_same refinee.refiners.first, refiner
23
25
  end
24
26
 
25
27
  def test_link_refines_setter_connect_refinee_to_the_link
26
- refiner = EPUB::Publication::Package::Metadata::Link.new
27
- refinee = EPUB::Publication::Package::Metadata::Meta.new
28
+ refiner = Package::Metadata::Link.new
29
+ refinee = Package::Metadata::Meta.new
28
30
  refiner.refines = refinee
29
31
  assert_same refinee.refiners.first, refiner
30
32
  end
33
+
34
+ def test_title_returns_extended_title_when_it_exists
35
+ extended_title = Package::Metadata::Title.new
36
+ extended_title.id = 'extended-title'
37
+ extended_title.content = 'Extended Title'
38
+ extended_refiner = Package::Metadata::Meta.new
39
+ extended_refiner.property = 'title-type'
40
+ extended_refiner.content = 'extended'
41
+ extended_refiner.refines = extended_title
42
+ extended_order = Package::Metadata::Meta.new
43
+ extended_order.property = 'display-seq'
44
+ extended_order.content = 2
45
+ extended_order.refines = extended_title
46
+
47
+ main_title = Package::Metadata::Title.new
48
+ main_title.id = 'main-title'
49
+ main_title.content = 'Main Title'
50
+ main_refiner = Package::Metadata::Meta.new
51
+ main_refiner.property = 'title-type'
52
+ main_refiner.content = 'main'
53
+ main_refiner.refines = main_title
54
+ main_order = Package::Metadata::Meta.new
55
+ main_order.property = 'display-seq'
56
+ main_order.content = 1
57
+ main_order.refines = main_title
58
+
59
+ package = Package::Metadata.new
60
+ package.titles << main_title
61
+ package.titles << extended_title
62
+
63
+ assert_equal 'Extended Title', package.title
64
+ end
31
65
  end
32
66
 
33
67
  class TestManifest < TestPublication
68
+ include EPUB::Publication
69
+
34
70
  class TestItem < TestManifest
35
71
  def test_content_document_returns_nil_when_not_xhtml_nor_svg
36
72
  item = EPUB::Publication::Package::Manifest::Item.new
@@ -47,6 +83,61 @@ class TestPublication < Test::Unit::TestCase
47
83
 
48
84
  assert_instance_of EPUB::ContentDocument::Navigation, item.content_document
49
85
  end
86
+
87
+ def test_can_refer_itemref_which_refers_self
88
+ itemref = stub!
89
+ stub(itemref).idref {'item'}
90
+ item = Package::Manifest::Item.new
91
+ item.id = 'item'
92
+ stub(item).manifest.stub!.package.stub!.spine.stub!.itemrefs {[itemref]}
93
+
94
+ assert_same itemref, item.itemref
95
+ end
96
+ end
97
+ end
98
+
99
+ class TestSpine < TestPublication
100
+ class TestItemref < TestSpine
101
+ def setup
102
+ super
103
+ @itemref = Package::Spine::Itemref.new
104
+ end
105
+
106
+ def test_default_page_spread_is_nil
107
+ assert_nil @itemref.page_spread
108
+ end
109
+
110
+ def test_can_set_page_spread
111
+ @itemref.page_spread = 'left'
112
+
113
+ assert_equal 'left', @itemref.page_spread
114
+ assert_include @itemref.properties, 'page-spread-left'
115
+ end
116
+
117
+ def test_page_spread_is_exclusive
118
+ @itemref.page_spread = 'left'
119
+ @itemref.page_spread = 'right'
120
+
121
+ assert_not_include @itemref.properties, 'page-spread-left'
122
+ end
123
+
124
+ def test_can_set_item
125
+ package = Package.new
126
+ item = Package::Manifest::Item.new
127
+ item.id = 'item'
128
+ manifest = Package::Manifest.new
129
+ spine = Package::Spine.new
130
+ manifest << item
131
+ spine << @itemref
132
+ package.manifest = manifest
133
+ package.spine = spine
134
+
135
+ @itemref.item = item
136
+
137
+ assert_equal 'item', @itemref.idref
138
+ assert_include spine.items, item
139
+ assert_same item, @itemref.item
140
+ end
50
141
  end
51
142
  end
52
143
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epub-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - KITAITI Makoto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-20 00:00:00.000000000 Z
11
+ date: 2013-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rubygems-test
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - '>='
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - '>='
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rake
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -240,14 +226,14 @@ dependencies:
240
226
  requirements:
241
227
  - - '='
242
228
  - !ruby/object:Gem::Version
243
- version: 1.5.8
229
+ version: 1.5.9
244
230
  type: :runtime
245
231
  prerelease: false
246
232
  version_requirements: !ruby/object:Gem::Requirement
247
233
  requirements:
248
234
  - - '='
249
235
  - !ruby/object:Gem::Version
250
- version: 1.5.8
236
+ version: 1.5.9
251
237
  - !ruby/object:Gem::Dependency
252
238
  name: addressable
253
239
  requirement: !ruby/object:Gem::Requirement
@@ -276,12 +262,16 @@ files:
276
262
  - .gitmodules
277
263
  - .travis.yml
278
264
  - .yardopts
265
+ - CHANGELOG.markdown
279
266
  - Gemfile
280
267
  - MIT-LICENSE
281
268
  - README.markdown
282
269
  - Rakefile
283
270
  - bin/epub-open
284
271
  - bin/epubinfo
272
+ - docs/FixedLayout.markdown
273
+ - docs/Home.markdown
274
+ - docs/Item.markdown
285
275
  - epub-parser.gemspec
286
276
  - features/epubinfo.feature
287
277
  - features/step_definitions/epubinfo_steps.rb
@@ -306,6 +296,7 @@ files:
306
296
  - lib/epub/parser/utils.rb
307
297
  - lib/epub/parser/version.rb
308
298
  - lib/epub/publication.rb
299
+ - lib/epub/publication/fixed_layout.rb
309
300
  - lib/epub/publication/package.rb
310
301
  - lib/epub/publication/package/bindings.rb
311
302
  - lib/epub/publication/package/guide.rb
@@ -319,23 +310,23 @@ files:
319
310
  - schemas/ocf-container-30.rnc
320
311
  - test/fixtures/book/META-INF/container.xml
321
312
  - test/fixtures/book/OPS/%E6%97%A5%E6%9C%AC%E8%AA%9E.xhtml
322
- - test/fixtures/book/OPS/CASE-SENSITIVE.xhtml
323
313
  - test/fixtures/book/OPS/case-sensitive.xhtml
324
314
  - test/fixtures/book/OPS/containing space.xhtml
325
315
  - test/fixtures/book/OPS/containing%20space.xhtml
326
316
  - test/fixtures/book/OPS/nav.xhtml
327
317
  - test/fixtures/book/mimetype
328
318
  - test/helper.rb
319
+ - test/test_content_document.rb
329
320
  - test/test_epub.rb
321
+ - test/test_fixed_layout.rb
330
322
  - test/test_parser.rb
331
323
  - test/test_parser_content_document.rb
324
+ - test/test_parser_fixed_layout.rb
332
325
  - test/test_parser_ocf.rb
333
326
  - test/test_parser_publication.rb
334
327
  - test/test_publication.rb
335
328
  - test/fixtures/book/OPS/ルートファイル.opf
336
329
  - test/fixtures/book/OPS/日本語.xhtml
337
- - wiki/Home.md
338
- - wiki/Item.md
339
330
  homepage: https://github.com/KitaitiMakoto/epub-parser
340
331
  licenses:
341
332
  - MIT
@@ -365,9 +356,12 @@ test_files:
365
356
  - features/step_definitions/epubinfo_steps.rb
366
357
  - features/support/env.rb
367
358
  - test/helper.rb
359
+ - test/test_content_document.rb
368
360
  - test/test_epub.rb
361
+ - test/test_fixed_layout.rb
369
362
  - test/test_parser.rb
370
363
  - test/test_parser_content_document.rb
364
+ - test/test_parser_fixed_layout.rb
371
365
  - test/test_parser_ocf.rb
372
366
  - test/test_parser_publication.rb
373
367
  - test/test_publication.rb
@@ -1,9 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE html>
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
4
- <head>
5
- <title>LARGE FILE NAME</title>
6
- </head>
7
- <body>
8
- </body>
9
- </html>