aozora2html 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,88 @@
1
+ # encoding: utf-8
2
+ require 'test_helper'
3
+ require 'aozora2html'
4
+ require 'fileutils'
5
+ require 'tmpdir'
6
+
7
+ class Aozora2HtmlTest < Test::Unit::TestCase
8
+ def setup
9
+ end
10
+
11
+ def test_aozora2html_new
12
+ Dir.mktmpdir do |dir|
13
+ input = File.join(dir,'dummy.txt')
14
+ output = File.join(dir,'dummy2.txt')
15
+ File.write(input, "テスト\r\n")
16
+ parser = Aozora2Html.new(input, output)
17
+
18
+ assert_equal Aozora2Html, parser.class
19
+ end
20
+ end
21
+
22
+ def test_scount
23
+ Dir.mktmpdir do |dir|
24
+ input = File.join(dir,'dummy.txt')
25
+ output = File.join(dir,'dummy2.txt')
26
+ File.write(input, "a\r\nb\r\nc\r\n")
27
+ parser = Aozora2Html.new(input, output)
28
+
29
+ assert_equal 0, parser.scount
30
+ ch = parser.read_char
31
+ assert_equal "a",ch
32
+ assert_equal 1, parser.scount
33
+ ch = parser.read_char
34
+ assert_equal "\r\n",ch
35
+ assert_equal 1, parser.scount
36
+ ch = parser.read_char
37
+ assert_equal "b",ch
38
+ assert_equal 2, parser.scount
39
+ ch = parser.read_char
40
+ assert_equal "\r\n",ch
41
+ assert_equal 2, parser.scount
42
+ ch = parser.read_char
43
+ assert_equal "c",ch
44
+ assert_equal 3, parser.scount
45
+ end
46
+ end
47
+
48
+ def test_read_line
49
+ Dir.mktmpdir do |dir|
50
+ input = File.join(dir,'dummy.txt')
51
+ output = File.join(dir,'dummy2.txt')
52
+ File.write(input, "ab\r\nc\r\n")
53
+ parser = Aozora2Html.new(input, output)
54
+
55
+ parsed = parser.read_line
56
+ assert_equal "ab", parsed
57
+ end
58
+ end
59
+
60
+ def test_char_type
61
+ Dir.mktmpdir do |dir|
62
+ input = File.join(dir,'dummy.txt')
63
+ output = File.join(dir,'dummy2.txt')
64
+ File.write(input, "ab\r\nc\r\n")
65
+ parser = Aozora2Html.new(input, output)
66
+
67
+ assert_equal :kanji, parser.char_type(Embed_Gaiji_tag.new(nil,"foo","1-2-3","name"))
68
+ assert_equal :kanji, parser.char_type(UnEmbed_Gaiji_tag.new(nil,"foo"))
69
+ assert_equal :hankaku, parser.char_type(Accent_tag.new(nil,123,"abc"))
70
+ assert_equal :else, parser.char_type(Okurigana_tag.new(nil,"abc"))
71
+ assert_equal :else, parser.char_type(Inline_keigakomi_tag.new(nil,"abc"))
72
+ assert_equal :katakana, parser.char_type(Dakuten_katakana_tag.new(nil,1,"abc"))
73
+
74
+ assert_equal :hiragana, parser.char_type("あ".encode("shift_jis"))
75
+ assert_equal :hiragana, parser.char_type("っ".encode("shift_jis"))
76
+ assert_equal :katakana, parser.char_type("ヴ".encode("shift_jis"))
77
+ assert_equal :katakana, parser.char_type("ー".encode("shift_jis"))
78
+ assert_equal :zenkaku, parser.char_type("w".encode("shift_jis"))
79
+ assert_equal :hankaku, parser.char_type("z".encode("shift_jis"))
80
+ assert_equal :kanji, parser.char_type("漢".encode("shift_jis"))
81
+ assert_equal :hankaku_terminate, parser.char_type("!".encode("shift_jis"))
82
+ assert_equal :else, parser.char_type("?".encode("shift_jis"))
83
+ end
84
+ end
85
+
86
+ def teardown
87
+ end
88
+ end
@@ -0,0 +1,20 @@
1
+ # encoding: utf-8
2
+ require 'test_helper'
3
+ require 'aozora2html'
4
+
5
+ class Aozora2HtmlTest < Test::Unit::TestCase
6
+ def setup
7
+ end
8
+
9
+ def test_new
10
+ str = "〔e'tiquette〕\r\n".encode("shift_jis")
11
+ strio = StringIO.new(str)
12
+ stream = Jstream.new(strio)
13
+ parsed = Aozora_accent_parser.new(stream,"〕".encode("shift_jis"),{},[]).process
14
+ expected = "〔<img src=\"../../../gaiji/1-09/1-09-63.png\" alt=\"※(アキュートアクセント付きE小文字)\" class=\"gaiji\" />tiquette"
15
+ assert_equal expected, parsed.to_s.encode("utf-8")
16
+ end
17
+
18
+ def teardown
19
+ end
20
+ end
@@ -0,0 +1,11 @@
1
+ require 'test_helper'
2
+ require 'aozora2html'
3
+
4
+ class CompatTest < Test::Unit::TestCase
5
+ def test_array_to_s
6
+ assert_equal "abc", ["a", "b", "c"].join
7
+ end
8
+ end
9
+
10
+
11
+
@@ -0,0 +1,26 @@
1
+ # encoding: utf-8
2
+ require 'test_helper'
3
+ require 'aozora2html'
4
+
5
+ class DakutenKatakanaTagTest < Test::Unit::TestCase
6
+ def setup
7
+ @orig_gaiji_dir = $gaiji_dir
8
+ $gaiji_dir = "g_dir"
9
+ stub(@parser).block_allowed_context?{true}
10
+ end
11
+
12
+ def test_dakuten_katakana_new
13
+ tag = Dakuten_katakana_tag.new(@parser,1,"ア".encode("shift_jis"))
14
+ assert_equal Dakuten_katakana_tag, tag.class
15
+ assert_equal true, tag.kind_of?(Inline_tag)
16
+ end
17
+
18
+ def test_to_s
19
+ tag = Dakuten_katakana_tag.new(@parser,1,"ア".encode("shift_jis"))
20
+ assert_equal "<img src=\"g_dir/1-07/1-07-81.png\" alt=\"※(濁点付き片仮名「ア」、1-07-81)\" class=\"gaiji\" />", tag.to_s.encode("utf-8")
21
+ end
22
+
23
+ def teardown
24
+ $gaiji_dir = @orig_gaiji_dir
25
+ end
26
+ end
@@ -0,0 +1,23 @@
1
+ # encoding: utf-8
2
+ require 'test_helper'
3
+ require 'aozora2html'
4
+
5
+ class DecorateTagTest < Test::Unit::TestCase
6
+ def setup
7
+ stub(@parser).block_allowed_context?{true}
8
+ end
9
+
10
+ def test_decorate_new
11
+ tag = Decorate_tag.new(@parser,"aa",1,:dai)
12
+ assert_equal Decorate_tag, tag.class
13
+ assert_equal true, tag.kind_of?(Inline_tag)
14
+ end
15
+
16
+ def test_to_s
17
+ tag = Decorate_tag.new(@parser,"テスト".encode("shift_jis"),"foo","span")
18
+ assert_equal "<span class=\"foo\">テスト</span>", tag.to_s.encode("utf-8")
19
+ end
20
+
21
+ def teardown
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ # encoding: utf-8
2
+ require 'test_helper'
3
+ require 'aozora2html'
4
+
5
+ class DirTagTest < Test::Unit::TestCase
6
+ def setup
7
+ stub(@parser).block_allowed_context?{true}
8
+ end
9
+
10
+ def test_dir_new
11
+ tag = Dir_tag.new(@parser,"テスト".encode("shift_jis"))
12
+ assert_equal Dir_tag, tag.class
13
+ assert_equal true, tag.kind_of?(Inline_tag)
14
+ end
15
+
16
+ def test_to_s
17
+ tag = Dir_tag.new(@parser,"テスト".encode("shift_jis"))
18
+ assert_equal "<span dir=\"ltr\">テスト</span>", tag.to_s.encode("utf-8")
19
+ end
20
+
21
+ def teardown
22
+ end
23
+ end
@@ -0,0 +1,22 @@
1
+ # encoding: utf-8
2
+ require 'test_helper'
3
+ require 'aozora2html'
4
+
5
+ class EditorNoteTagTest < Test::Unit::TestCase
6
+ def setup
7
+ end
8
+
9
+ def test_editor_note_new
10
+ tag = Editor_note_tag.new(nil,"注記のテスト".encode("shift_jis"))
11
+ assert_equal Editor_note_tag, tag.class
12
+ assert_equal true, tag.kind_of?(Inline_tag)
13
+ end
14
+
15
+ def test_to_s
16
+ tag = Editor_note_tag.new(nil,"注記のテスト".encode("shift_jis"))
17
+ assert_equal "<span class=\"notes\">[#注記のテスト]</span>", tag.to_s.encode("utf-8")
18
+ end
19
+
20
+ def teardown
21
+ end
22
+ end
@@ -0,0 +1,23 @@
1
+ # encoding: utf-8
2
+ require 'test_helper'
3
+ require 'aozora2html'
4
+
5
+ class ExceptionTest < Test::Unit::TestCase
6
+ def test_raise_aozora_exception
7
+ assert_raises(Aozora_Exception) do
8
+ raise Aozora_Exception, "error!"
9
+ end
10
+ end
11
+
12
+ def test_raise_aozora_error
13
+ error_msg = ""
14
+ begin
15
+ raise Aozora_Error, "sample error"
16
+ rescue Aozora_Error => msg
17
+ error_msg = msg.message(123)
18
+ end
19
+ assert_equal "エラー(123行目):sample error. \r\n処理を停止します",
20
+ error_msg.encode("utf-8")
21
+
22
+ end
23
+ end
@@ -0,0 +1,33 @@
1
+ require 'test_helper'
2
+ require 'aozora2html'
3
+
4
+ class FontSizeTagTest < Test::Unit::TestCase
5
+ def setup
6
+ stub(@parser).block_allowed_context?{true}
7
+ end
8
+
9
+ def test_font_size_new
10
+ tag = Font_size_tag.new(@parser,1,:dai)
11
+ assert_equal Font_size_tag, tag.class
12
+ assert_equal true, tag.kind_of?(Block_tag)
13
+ assert_equal true, tag.kind_of?(Multiline_tag)
14
+ end
15
+
16
+ def test_to_s
17
+ tag = Font_size_tag.new(@parser,1,:dai)
18
+ assert_equal "<div class=\"dai1\" style=\"font-size: large;\">", tag.to_s.encode("utf-8")
19
+ end
20
+
21
+ def test_to_s2
22
+ tag = Font_size_tag.new(@parser,2,:dai)
23
+ assert_equal "<div class=\"dai2\" style=\"font-size: x-large;\">", tag.to_s.encode("utf-8")
24
+ end
25
+
26
+ def test_to_s3
27
+ tag = Font_size_tag.new(@parser,3,:sho)
28
+ assert_equal "<div class=\"sho3\" style=\"font-size: xx-small;\">", tag.to_s.encode("utf-8")
29
+ end
30
+
31
+ def teardown
32
+ end
33
+ end
@@ -0,0 +1,35 @@
1
+ # encoding: utf-8
2
+ require 'test_helper'
3
+ require 'aozora2html'
4
+
5
+ class EmbedGaijiTagTest < Test::Unit::TestCase
6
+ def setup
7
+ @orig_gaiji_dir = $gaiji_dir
8
+ $gaiji_dir = "g_dir/"
9
+ end
10
+
11
+ def test_gaiji_new
12
+ egt = Embed_Gaiji_tag.new(nil,"foo","1-2-3","name")
13
+ assert_equal "<img src=\"g_dir/foo/1-2-3.png\" alt=\"※(name)\" class=\"gaiji\" />", egt.to_s.encode("utf-8")
14
+ end
15
+
16
+ def test_unembed_gaiji_new
17
+ egt = UnEmbed_Gaiji_tag.new(nil,"テストtest".encode("Shift_JIS"))
18
+ assert_equal "<span class=\"notes\">[テストtest]</span>", egt.to_s.encode("utf-8")
19
+ end
20
+
21
+ def test_espcaed?
22
+ egt = UnEmbed_Gaiji_tag.new(nil,"テストtest".encode("Shift_JIS"))
23
+ assert_equal false, egt.escaped?
24
+ end
25
+
26
+ def test_espcae!
27
+ egt = UnEmbed_Gaiji_tag.new(nil,"テストtest".encode("Shift_JIS"))
28
+ egt.escape!
29
+ assert_equal true, egt.escaped?
30
+ end
31
+
32
+ def teardown
33
+ $gaiji_dir = @orig_gaiji_dir
34
+ end
35
+ end
@@ -0,0 +1,5 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib/')
2
+ require 'test/unit'
3
+ require 'test/unit/rr'
4
+ require 'tmpdir'
5
+ # require 'test/unit/notify'
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+ require 'aozora2html'
3
+
4
+ class ImgTagTest < Test::Unit::TestCase
5
+ def setup
6
+ stub(@parser).block_allowed_context?{true}
7
+ end
8
+
9
+ def test_img_new
10
+ tag = Img_tag.new(@parser,"foo.png","img1","alt img1",40,50)
11
+ assert_equal Img_tag, tag.class
12
+ assert_equal true, tag.kind_of?(Inline_tag)
13
+ end
14
+
15
+ def test_to_s
16
+ tag = Img_tag.new(@parser,"foo.png","img1","alt img1",40,50)
17
+ assert_equal "<img class=\"img1\" width=\"40\" height=\"50\" src=\"foo.png\" alt=\"alt img1\" />", tag.to_s.encode("utf-8")
18
+ end
19
+
20
+ def teardown
21
+ end
22
+ end
@@ -0,0 +1,23 @@
1
+ # encoding: utf-8
2
+ require 'test_helper'
3
+ require 'aozora2html'
4
+
5
+ class InlineCaptionTagTest < Test::Unit::TestCase
6
+ def setup
7
+ stub(@parser).block_allowed_context?{true}
8
+ end
9
+
10
+ def test_caption_new
11
+ tag = Inline_caption_tag.new(@parser,"aaa")
12
+ assert_equal Inline_caption_tag, tag.class
13
+ assert_equal true, tag.kind_of?(Inline_tag)
14
+ end
15
+
16
+ def test_to_s
17
+ tag = Inline_caption_tag.new(@parser,"テスト".encode("shift_jis"))
18
+ assert_equal "<span class=\"caption\">テスト</span>", tag.to_s.encode("utf-8")
19
+ end
20
+
21
+ def teardown
22
+ end
23
+ end
@@ -0,0 +1,33 @@
1
+ # encoding: utf-8
2
+ require 'test_helper'
3
+ require 'aozora2html'
4
+
5
+ class InlineFontSizeTagTest < Test::Unit::TestCase
6
+ def setup
7
+ stub(@parser).block_allowed_context?{true}
8
+ end
9
+
10
+ def test_font_size_new
11
+ tag = Inline_font_size_tag.new(@parser,"aa",1,:dai)
12
+ assert_equal Inline_font_size_tag, tag.class
13
+ assert_equal true, tag.kind_of?(Inline_tag)
14
+ end
15
+
16
+ def test_to_s
17
+ tag = Inline_font_size_tag.new(@parser,"テスト".encode("shift_jis"),1,:dai)
18
+ assert_equal "<span class=\"dai1\" style=\"font-size: large;\">テスト</span>", tag.to_s.encode("utf-8")
19
+ end
20
+
21
+ def test_to_s2
22
+ tag = Inline_font_size_tag.new(@parser,"テスト".encode("shift_jis"),2,:sho)
23
+ assert_equal "<span class=\"sho2\" style=\"font-size: x-small;\">テスト</span>", tag.to_s.encode("utf-8")
24
+ end
25
+
26
+ def test_to_s3
27
+ tag = Inline_font_size_tag.new(@parser,"テスト".encode("shift_jis"),3,:sho)
28
+ assert_equal "<span class=\"sho3\" style=\"font-size: xx-small;\">テスト</span>", tag.to_s.encode("utf-8")
29
+ end
30
+
31
+ def teardown
32
+ end
33
+ end
@@ -0,0 +1,23 @@
1
+ # encoding: utf-8
2
+ require 'test_helper'
3
+ require 'aozora2html'
4
+
5
+ class InlineKeigakomiTagTest < Test::Unit::TestCase
6
+ def setup
7
+ stub(@parser).block_allowed_context?{true}
8
+ end
9
+
10
+ def test_keigakomi_new
11
+ tag = Inline_keigakomi_tag.new(@parser,"aaa")
12
+ assert_equal Inline_keigakomi_tag, tag.class
13
+ assert_equal true, tag.kind_of?(Inline_tag)
14
+ end
15
+
16
+ def test_to_s
17
+ tag = Inline_keigakomi_tag.new(@parser,"テスト".encode("shift_jis"))
18
+ assert_equal "<span class=\"keigakomi\">テスト</span>", tag.to_s.encode("utf-8")
19
+ end
20
+
21
+ def teardown
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ # encoding: utf-8
2
+ require 'test_helper'
3
+ require 'aozora2html'
4
+
5
+ class InlineYokogumiTagTest < Test::Unit::TestCase
6
+ def setup
7
+ stub(@parser).block_allowed_context?{true}
8
+ end
9
+
10
+ def test_yokogumi_new
11
+ tag = Inline_yokogumi_tag.new(@parser,"aaa")
12
+ assert_equal Inline_yokogumi_tag, tag.class
13
+ assert_equal true, tag.kind_of?(Inline_tag)
14
+ end
15
+
16
+ def test_to_s
17
+ tag = Inline_yokogumi_tag.new(@parser,"テスト".encode("shift_jis"))
18
+ assert_equal "<span class=\"yokogumi\">テスト</span>", tag.to_s.encode("utf-8")
19
+ end
20
+
21
+ def teardown
22
+ end
23
+ end