chupa-text-decomposer-abiword 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/test/run-test.rb ADDED
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Copyright (C) 2019 Sutou Kouhei <kou@clear-code.com>
4
+ #
5
+ # This library is free software; you can redistribute it and/or
6
+ # modify it under the terms of the GNU Lesser General Public
7
+ # License as published by the Free Software Foundation; either
8
+ # version 2.1 of the License, or (at your option) any later version.
9
+ #
10
+ # This library is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ # Lesser General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU Lesser General Public
16
+ # License along with this library; if not, write to the Free Software
17
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
+
19
+ $VERBOSE = true
20
+
21
+ require "bundler/setup"
22
+
23
+ require "test-unit"
24
+
25
+ require "chupa-text"
26
+
27
+ ChupaText::Decomposers.load
28
+
29
+ require_relative "helper"
30
+
31
+ exit(Test::Unit::AutoRunner.run(true))
data/test/test-abw.rb ADDED
@@ -0,0 +1,84 @@
1
+ # Copyright (C) 2019 Sutou Kouhei <kou@clear-code.com>
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ class TestAbw < Test::Unit::TestCase
18
+ include FixtureHelper
19
+
20
+ def setup
21
+ @decomposer = ChupaText::Decomposers::AbiWord.new({})
22
+ end
23
+
24
+ def fixture_path(*components)
25
+ super("abw", *components)
26
+ end
27
+
28
+ sub_test_case("target?") do
29
+ sub_test_case("extension") do
30
+ def create_data(uri)
31
+ data = ChupaText::Data.new
32
+ data.body = ""
33
+ data.uri = uri
34
+ data
35
+ end
36
+
37
+ def test_doc
38
+ assert_true(@decomposer.target?(create_data("document.abw")))
39
+ end
40
+ end
41
+
42
+ sub_test_case("mime-type") do
43
+ def create_data(mime_type)
44
+ data = ChupaText::Data.new
45
+ data.mime_type = mime_type
46
+ data
47
+ end
48
+
49
+ def test_abiword
50
+ mime_type = "application/x-abiword"
51
+ assert_true(@decomposer.target?(create_data(mime_type)))
52
+ end
53
+ end
54
+ end
55
+
56
+ sub_test_case("decompose") do
57
+ include DecomposeHelper
58
+
59
+ sub_test_case("one page") do
60
+ def test_body
61
+ assert_equal(["Page1\n"], decompose.collect(&:body))
62
+ end
63
+
64
+ private
65
+ def decompose
66
+ super(fixture_path("one-page.abw"))
67
+ end
68
+ end
69
+
70
+ sub_test_case("multi pages") do
71
+ def test_body
72
+ assert_equal([<<-BODY], decompose.collect(&:body))
73
+ Page1
74
+ Page2
75
+ BODY
76
+ end
77
+
78
+ private
79
+ def decompose
80
+ super(fixture_path("multi-pages.abw"))
81
+ end
82
+ end
83
+ end
84
+ end
data/test/test-doc.rb ADDED
@@ -0,0 +1,84 @@
1
+ # Copyright (C) 2019 Sutou Kouhei <kou@clear-code.com>
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ class TestDoc < Test::Unit::TestCase
18
+ include FixtureHelper
19
+
20
+ def setup
21
+ @decomposer = ChupaText::Decomposers::AbiWord.new({})
22
+ end
23
+
24
+ def fixture_path(*components)
25
+ super("doc", *components)
26
+ end
27
+
28
+ sub_test_case("target?") do
29
+ sub_test_case("extension") do
30
+ def create_data(uri)
31
+ data = ChupaText::Data.new
32
+ data.body = ""
33
+ data.uri = uri
34
+ data
35
+ end
36
+
37
+ def test_doc
38
+ assert_true(@decomposer.target?(create_data("document.doc")))
39
+ end
40
+ end
41
+
42
+ sub_test_case("mime-type") do
43
+ def create_data(mime_type)
44
+ data = ChupaText::Data.new
45
+ data.mime_type = mime_type
46
+ data
47
+ end
48
+
49
+ def test_ms_word
50
+ mime_type = "application/msword"
51
+ assert_true(@decomposer.target?(create_data(mime_type)))
52
+ end
53
+ end
54
+ end
55
+
56
+ sub_test_case("decompose") do
57
+ include DecomposeHelper
58
+
59
+ sub_test_case("one page") do
60
+ def test_body
61
+ assert_equal(["Page1\n"], decompose.collect(&:body))
62
+ end
63
+
64
+ private
65
+ def decompose
66
+ super(fixture_path("one-page.doc"))
67
+ end
68
+ end
69
+
70
+ sub_test_case("multi pages") do
71
+ def test_body
72
+ assert_equal([<<-BODY], decompose.collect(&:body))
73
+ Page1
74
+ Page2
75
+ BODY
76
+ end
77
+
78
+ private
79
+ def decompose
80
+ super(fixture_path("multi-pages.doc"))
81
+ end
82
+ end
83
+ end
84
+ end
data/test/test-docx.rb ADDED
@@ -0,0 +1,84 @@
1
+ # Copyright (C) 2019 Sutou Kouhei <kou@clear-code.com>
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ class TestDocx < Test::Unit::TestCase
18
+ include FixtureHelper
19
+
20
+ def setup
21
+ @decomposer = ChupaText::Decomposers::AbiWord.new({})
22
+ end
23
+
24
+ def fixture_path(*components)
25
+ super("docx", *components)
26
+ end
27
+
28
+ sub_test_case("target?") do
29
+ sub_test_case("extension") do
30
+ def create_data(uri)
31
+ data = ChupaText::Data.new
32
+ data.body = ""
33
+ data.uri = uri
34
+ data
35
+ end
36
+
37
+ def test_doc
38
+ assert_true(@decomposer.target?(create_data("document.docx")))
39
+ end
40
+ end
41
+
42
+ sub_test_case("mime-type") do
43
+ def create_data(mime_type)
44
+ data = ChupaText::Data.new
45
+ data.mime_type = mime_type
46
+ data
47
+ end
48
+
49
+ def test_openxml_document
50
+ mime_type = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
51
+ assert_true(@decomposer.target?(create_data(mime_type)))
52
+ end
53
+ end
54
+ end
55
+
56
+ sub_test_case("decompose") do
57
+ include DecomposeHelper
58
+
59
+ sub_test_case("one page") do
60
+ def test_body
61
+ assert_equal(["Page1\n"], decompose.collect(&:body))
62
+ end
63
+
64
+ private
65
+ def decompose
66
+ super(fixture_path("one-page.docx"))
67
+ end
68
+ end
69
+
70
+ sub_test_case("multi pages") do
71
+ def test_body
72
+ assert_equal([<<-BODY], decompose.collect(&:body))
73
+ Page1
74
+ Page2
75
+ BODY
76
+ end
77
+
78
+ private
79
+ def decompose
80
+ super(fixture_path("multi-pages.docx"))
81
+ end
82
+ end
83
+ end
84
+ end
data/test/test-odt.rb ADDED
@@ -0,0 +1,84 @@
1
+ # Copyright (C) 2019 Sutou Kouhei <kou@clear-code.com>
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ class TestOdt < Test::Unit::TestCase
18
+ include FixtureHelper
19
+
20
+ def setup
21
+ @decomposer = ChupaText::Decomposers::AbiWord.new({})
22
+ end
23
+
24
+ def fixture_path(*components)
25
+ super("odt", *components)
26
+ end
27
+
28
+ sub_test_case("target?") do
29
+ sub_test_case("extension") do
30
+ def create_data(uri)
31
+ data = ChupaText::Data.new
32
+ data.body = ""
33
+ data.uri = uri
34
+ data
35
+ end
36
+
37
+ def test_doc
38
+ assert_true(@decomposer.target?(create_data("document.odt")))
39
+ end
40
+ end
41
+
42
+ sub_test_case("mime-type") do
43
+ def create_data(mime_type)
44
+ data = ChupaText::Data.new
45
+ data.mime_type = mime_type
46
+ data
47
+ end
48
+
49
+ def test_opendocument_text
50
+ mime_type = "application/vnd.oasis.opendocument.text"
51
+ assert_true(@decomposer.target?(create_data(mime_type)))
52
+ end
53
+ end
54
+ end
55
+
56
+ sub_test_case("decompose") do
57
+ include DecomposeHelper
58
+
59
+ sub_test_case("one page") do
60
+ def test_body
61
+ assert_equal(["Page1\n"], decompose.collect(&:body))
62
+ end
63
+
64
+ private
65
+ def decompose
66
+ super(fixture_path("one-page.odt"))
67
+ end
68
+ end
69
+
70
+ sub_test_case("multi pages") do
71
+ def test_body
72
+ assert_equal([<<-BODY], decompose.collect(&:body))
73
+ Page1
74
+ Page2
75
+ BODY
76
+ end
77
+
78
+ private
79
+ def decompose
80
+ super(fixture_path("multi-pages.odt"))
81
+ end
82
+ end
83
+ end
84
+ end
data/test/test-rtf.rb ADDED
@@ -0,0 +1,84 @@
1
+ # Copyright (C) 2019 Sutou Kouhei <kou@clear-code.com>
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+
17
+ class TestRtf < Test::Unit::TestCase
18
+ include FixtureHelper
19
+
20
+ def setup
21
+ @decomposer = ChupaText::Decomposers::AbiWord.new({})
22
+ end
23
+
24
+ def fixture_path(*components)
25
+ super("rtf", *components)
26
+ end
27
+
28
+ sub_test_case("target?") do
29
+ sub_test_case("extension") do
30
+ def create_data(uri)
31
+ data = ChupaText::Data.new
32
+ data.body = ""
33
+ data.uri = uri
34
+ data
35
+ end
36
+
37
+ def test_doc
38
+ assert_true(@decomposer.target?(create_data("document.rtf")))
39
+ end
40
+ end
41
+
42
+ sub_test_case("mime-type") do
43
+ def create_data(mime_type)
44
+ data = ChupaText::Data.new
45
+ data.mime_type = mime_type
46
+ data
47
+ end
48
+
49
+ def test_rich_text_format
50
+ mime_type = "application/rtf"
51
+ assert_true(@decomposer.target?(create_data(mime_type)))
52
+ end
53
+ end
54
+ end
55
+
56
+ sub_test_case("decompose") do
57
+ include DecomposeHelper
58
+
59
+ sub_test_case("one page") do
60
+ def test_body
61
+ assert_equal(["Page1\n"], decompose.collect(&:body))
62
+ end
63
+
64
+ private
65
+ def decompose
66
+ super(fixture_path("one-page.rtf"))
67
+ end
68
+ end
69
+
70
+ sub_test_case("multi pages") do
71
+ def test_body
72
+ assert_equal([<<-BODY], decompose.collect(&:body))
73
+ Page1
74
+ Page2
75
+ BODY
76
+ end
77
+
78
+ private
79
+ def decompose
80
+ super(fixture_path("multi-pages.rtf"))
81
+ end
82
+ end
83
+ end
84
+ end