milkode 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.
Files changed (70) hide show
  1. data/.document +5 -0
  2. data/Gemfile +12 -0
  3. data/Gemfile.lock +18 -0
  4. data/HISTORY.rdoc +5 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.rdoc +19 -0
  7. data/Rakefile +78 -0
  8. data/VERSION +1 -0
  9. data/bin/cdv +6 -0
  10. data/bin/cdview +10 -0
  11. data/bin/milk +10 -0
  12. data/lib/milkode/cdstk/cdstk.rb +508 -0
  13. data/lib/milkode/cdstk/cdstk_yaml.rb +106 -0
  14. data/lib/milkode/cdstk/cli_cdstk.rb +103 -0
  15. data/lib/milkode/cdstk/cli_cdstksub.rb +102 -0
  16. data/lib/milkode/cdview/cli_cdview.rb +43 -0
  17. data/lib/milkode/cdweb/app.rb +136 -0
  18. data/lib/milkode/cdweb/cli_cdweb.rb +111 -0
  19. data/lib/milkode/cdweb/config.ru +3 -0
  20. data/lib/milkode/cdweb/lib/coderay_wrapper.rb +94 -0
  21. data/lib/milkode/cdweb/lib/command.rb +67 -0
  22. data/lib/milkode/cdweb/lib/database.rb +260 -0
  23. data/lib/milkode/cdweb/lib/grep.rb +68 -0
  24. data/lib/milkode/cdweb/lib/mkurl.rb +56 -0
  25. data/lib/milkode/cdweb/lib/query.rb +81 -0
  26. data/lib/milkode/cdweb/lib/search_contents.rb +117 -0
  27. data/lib/milkode/cdweb/lib/search_files.rb +88 -0
  28. data/lib/milkode/cdweb/public/css/coderay.css +131 -0
  29. data/lib/milkode/cdweb/public/css/gren.css +75 -0
  30. data/lib/milkode/cdweb/public/images/directory.png +0 -0
  31. data/lib/milkode/cdweb/public/images/file.png +0 -0
  32. data/lib/milkode/cdweb/public/images/gren-icon-mini.png +0 -0
  33. data/lib/milkode/cdweb/public/images/gren-icon.png +0 -0
  34. data/lib/milkode/cdweb/views/filelist.haml +14 -0
  35. data/lib/milkode/cdweb/views/help.haml +16 -0
  36. data/lib/milkode/cdweb/views/index.haml +17 -0
  37. data/lib/milkode/cdweb/views/layout.haml +33 -0
  38. data/lib/milkode/cdweb/views/search.haml +12 -0
  39. data/lib/milkode/cdweb/views/view.haml +16 -0
  40. data/lib/milkode/common/dbdir.rb +39 -0
  41. data/lib/milkode/common/display_util.rb +62 -0
  42. data/lib/milkode/common/grenfiletest.rb +19 -0
  43. data/lib/milkode/common/grensnip.rb +37 -0
  44. data/lib/milkode/common/platform.rb +17 -0
  45. data/lib/milkode/common/string_snip.rb +61 -0
  46. data/lib/milkode/common/util.rb +144 -0
  47. data/lib/milkode/findgrep/findgrep.rb +408 -0
  48. data/lib/milkode/findgrep/result.rb +43 -0
  49. data/milkode.gemspec +159 -0
  50. data/test/data/abc.zip +0 -0
  51. data/test/data/nodir_abc.zip +0 -0
  52. data/test/data/nodir_abc_xpi.xpi +0 -0
  53. data/test/file_assert.rb +41 -0
  54. data/test/file_test_utils.rb +59 -0
  55. data/test/rake_test_loader.rb +7 -0
  56. data/test/runner.rb +11 -0
  57. data/test/test_bin_exec.rb +30 -0
  58. data/test/test_cdstk.rb +90 -0
  59. data/test/test_cdstk_yaml.rb +157 -0
  60. data/test/test_coderay_wrapper.rb +22 -0
  61. data/test/test_coderay_wrapper_data.rb +91 -0
  62. data/test/test_database.rb +78 -0
  63. data/test/test_dbdir.rb +60 -0
  64. data/test/test_gren_util.rb +34 -0
  65. data/test/test_helper.rb +2 -0
  66. data/test/test_mkurl.rb +30 -0
  67. data/test/test_query.rb +54 -0
  68. data/test/test_string_snip.rb +31 -0
  69. data/test/test_util.rb +40 -0
  70. metadata +300 -0
@@ -0,0 +1,22 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # @file
4
+ # @brief
5
+ # @author ongaeshi
6
+ # @date 2011/07/16
7
+
8
+ require 'test_helper'
9
+ require 'file_assert'
10
+ require 'test_coderay_wrapper_data'
11
+ require 'milkode/cdweb/lib/coderay_wrapper'
12
+
13
+ module Milkode
14
+ class TestCodeRayWrapper < Test::Unit::TestCase
15
+ def test_basic
16
+ assert_lines JS_SHORT_HTML, CodeRayWrapper.new(JS_SHORT_CODE, "console-dir.js").to_html
17
+ assert_lines JS_HTML , CodeRayWrapper.new(JS_CODE, "console-dir.js").to_html
18
+ end
19
+ end
20
+ end
21
+
22
+
@@ -0,0 +1,91 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # @file
4
+ # @brief
5
+ # @author ongaeshi
6
+ # @date 2011/07/16
7
+
8
+ module Milkode
9
+ JS_SHORT_CODE = <<EOF
10
+ console.dir_s = function (object, msg) {
11
+ var disp_properties = function (properties, indent, out) {
12
+ EOF
13
+
14
+ JS_SHORT_HTML = <<EOF
15
+ <table class="CodeRay"><tr>
16
+ <td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre>1<tt>
17
+ </tt>2<tt>
18
+ </tt></pre></td>
19
+ <td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"><span id="1">console.<span class="fu">dir_s</span> = <span class="kw">function</span> (object, msg) {</span><tt>
20
+ </tt><span id="2"> <span class="kw">var</span> <span class="fu">disp_properties</span> = <span class="kw">function</span> (properties, indent, out) {</span><tt>
21
+ </tt></pre></td>
22
+ </tr></table>
23
+ EOF
24
+
25
+ JS_CODE = <<EOF
26
+ console.dir_s = function (object, msg) {
27
+ var disp_properties = function (properties, indent, out) {
28
+ for (var i = 0; i < properties.length; ++i) {
29
+ var name = properties[i][0], value = properties[i][1];
30
+
31
+ if (typeof value == "string")
32
+ value = '"' + value + '"';
33
+
34
+ out.push(indent + name + ": " + value);
35
+ }
36
+ };
37
+
38
+ var disp_funcs = function (funcs, indent, out) {
39
+ for (var i = 0; i < funcs.length; ++i) {
40
+ var name = funcs[i][0], value = funcs[i][1];
41
+ out.push(indent + name + "()");
42
+ }
43
+ };
44
+ EOF
45
+
46
+ JS_HTML = <<EOF
47
+ <table class="CodeRay"><tr>
48
+ <td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre>1<tt>
49
+ </tt>2<tt>
50
+ </tt>3<tt>
51
+ </tt>4<tt>
52
+ </tt>5<tt>
53
+ </tt>6<tt>
54
+ </tt>7<tt>
55
+ </tt>8<tt>
56
+ </tt>9<tt>
57
+ </tt>10<tt>
58
+ </tt>11<tt>
59
+ </tt>12<tt>
60
+ </tt>13<tt>
61
+ </tt>14<tt>
62
+ </tt>15<tt>
63
+ </tt>16<tt>
64
+ </tt>17<tt>
65
+ </tt>18<tt>
66
+ </tt></pre></td>
67
+ <td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"><span id="1">console.<span class="fu">dir_s</span> = <span class="kw">function</span> (object, msg) {</span><tt>
68
+ </tt><span id="2"> <span class="kw">var</span> <span class="fu">disp_properties</span> = <span class="kw">function</span> (properties, indent, out) {</span><tt>
69
+ </tt><span id="3"> <span class="kw">for</span> (<span class="kw">var</span> i = <span class="i">0</span>; i &lt; properties.length; ++i) {</span><tt>
70
+ </tt><span id="4"> <span class="kw">var</span> name = properties[i][<span class="i">0</span>], value = properties[i][<span class="i">1</span>];</span><tt>
71
+ </tt><span id="5"></span><tt>
72
+ </tt><span id="6"> <span class="kw">if</span> (<span class="kw">typeof</span> value == <span class="s"><span class="dl">&quot;</span><span class="k">string</span><span class="dl">&quot;</span></span>)</span><tt>
73
+ </tt><span id="7"> value = <span class="s"><span class="dl">'</span><span class="k">&quot;</span><span class="dl">'</span></span> + value + <span class="s"><span class="dl">'</span><span class="k">&quot;</span><span class="dl">'</span></span>;</span><tt>
74
+ </tt><span id="8"></span><tt>
75
+ </tt><span id="9"> out.push(indent + name + <span class="s"><span class="dl">&quot;</span><span class="k">: </span><span class="dl">&quot;</span></span> + value);</span><tt>
76
+ </tt><span id="10"> }</span><tt>
77
+ </tt><span id="11"> };</span><tt>
78
+ </tt><span id="12"> </span><tt>
79
+ </tt><span id="13"> <span class="kw">var</span> <span class="fu">disp_funcs</span> = <span class="kw">function</span> (funcs, indent, out) {</span><tt>
80
+ </tt><span id="14"> <span class="kw">for</span> (<span class="kw">var</span> i = <span class="i">0</span>; i &lt; funcs.length; ++i) {</span><tt>
81
+ </tt><span id="15"> <span class="kw">var</span> name = funcs[i][<span class="i">0</span>], value = funcs[i][<span class="i">1</span>];</span><tt>
82
+ </tt><span id="16"> out.push(indent + name + <span class="s"><span class="dl">&quot;</span><span class="k">()</span><span class="dl">&quot;</span></span>);</span><tt>
83
+ </tt><span id="17"> }</span><tt>
84
+ </tt><span id="18"> };</span><tt>
85
+ </tt></pre></td>
86
+ </tr></table>
87
+ EOF
88
+
89
+ end
90
+
91
+
@@ -0,0 +1,78 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # @file
4
+ # @brief
5
+ # @author ongaeshi
6
+ # @date 2011/02/20
7
+
8
+ require 'rubygems'
9
+ require 'groonga'
10
+ require 'test_helper'
11
+ require 'file_test_utils'
12
+ require 'stringio'
13
+ require 'milkode/cdstk/cdstk'
14
+ require 'milkode/cdweb/lib/database'
15
+
16
+ module Milkode
17
+ class TestDatabase < Test::Unit::TestCase
18
+ include FileTestUtils
19
+
20
+ def setup_db
21
+ # データベース作成
22
+ io = StringIO.new
23
+ @obj = Cdstk.new(io)
24
+ @obj.init
25
+ @obj.add(['../../test'])
26
+ @obj.add(['../../lib'])
27
+
28
+ FileUtils.touch('notfound.file')
29
+ @obj.add(['notfound.file'])
30
+ FileUtils.rm('notfound.file')
31
+
32
+ # puts io.string
33
+
34
+ # データベースのセットアップ
35
+ Database.setup('.')
36
+ end
37
+
38
+ def test_database
39
+ setup_db
40
+ t_open
41
+ t_fileList
42
+ t_cleanup # 何故か 'rake test' で実行すると上手く動かないので、一旦テストから外す
43
+ t_remove
44
+ end
45
+
46
+ def t_open
47
+ Database.instance
48
+ end
49
+
50
+ def t_fileList
51
+ db = Database.instance
52
+ assert_equal [['test', false], ['lib', false], ["notfound.file", true]], db.fileList('')
53
+ assert db.fileList('test').include? ['test/test_database.rb', true]
54
+ assert_equal ['lib/milkode', false], db.fileList('lib')[0]
55
+ assert_equal ['lib/milkode/cdstk/cdstk.rb', true], db.fileList('lib/milkode/cdstk')[0]
56
+ assert_equal nil, db.fileList('lib/milkode/cdstk/cdstk.rb')[0]
57
+ end
58
+
59
+ def t_cleanup
60
+ db = Database.instance
61
+ db.cleanup
62
+ end
63
+
64
+ def t_remove
65
+ db = Database.instance
66
+ db.remove('test')
67
+ db.remove('lib')
68
+ assert_equal 0, db.totalRecords
69
+ end
70
+
71
+ def teardown
72
+ teardown_custom(true)
73
+ # teardown_custom(false)
74
+ end
75
+ end
76
+ end
77
+
78
+
@@ -0,0 +1,60 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # @file
4
+ # @brief
5
+ # @author ongaeshi
6
+ # @date 2011/03/08
7
+
8
+ require 'rubygems'
9
+ require 'test_helper'
10
+ require 'milkode/common/dbdir'
11
+ require 'file_test_utils'
12
+
13
+ class TestDbDir< Test::Unit::TestCase
14
+ include Milkode
15
+ include FileTestUtils
16
+
17
+ def test_default_dir
18
+ ENV['MILKODE_DEFAULT_DIR'] = nil
19
+ assert_equal File.expand_path('~/.milkode'), Dbdir.default_dir
20
+
21
+ ENV['MILKODE_DEFAULT_DIR'] = "~/DummyDir"
22
+ assert_equal File.expand_path("~/DummyDir"), Dbdir.default_dir
23
+
24
+ ENV['MILKODE_DEFAULT_DIR'] = nil
25
+ ENV['CODESTOCK_DEFAULT_DIRR'] = "~/DummyDir"
26
+ assert_equal File.expand_path('~/.milkode'), Dbdir.default_dir
27
+ end
28
+
29
+ def test_is_dbdir
30
+ assert_equal false, Dbdir.dbdir?
31
+
32
+ FileUtils.touch "milkode.yaml"
33
+ assert_equal true, Dbdir.dbdir?
34
+
35
+ FileUtils.mkdir_p 'damadame'
36
+ FileUtils.touch "damadame/milkode.yaml"
37
+ assert_equal true, Dbdir.dbdir?('damadame')
38
+ assert_equal false, Dbdir.dbdir?('damadameyo')
39
+ end
40
+
41
+ def test_groonga_path
42
+ assert_equal 'db/milkode.db', Dbdir.groonga_path
43
+ assert_equal '../db/milkode.db', Dbdir.groonga_path('..')
44
+ assert_equal '/Users/MrRuby/db/milkode.db', Dbdir.groonga_path('/Users/MrRuby')
45
+ end
46
+
47
+ def test_expand_groonga_path
48
+ assert_equal File.expand_path('./db/milkode.db'), Dbdir.expand_groonga_path
49
+ end
50
+
51
+ def test_yaml_path
52
+ assert_equal 'milkode.yaml', Dbdir.yaml_path
53
+ assert_equal '../milkode.yaml', Dbdir.yaml_path('..')
54
+ assert_equal '/Users/MrRuby/milkode.yaml', Dbdir.yaml_path('/Users/MrRuby')
55
+ end
56
+ end
57
+
58
+
59
+
60
+
@@ -0,0 +1,34 @@
1
+ require 'test_helper'
2
+ require 'milkode/common/util'
3
+ require 'milkode/common/grensnip'
4
+
5
+ class TestGrenSnip < Test::Unit::TestCase
6
+ def setup
7
+ end
8
+
9
+ def test_snip
10
+ str = "abcdefghijkmlnopqrstuvwxyz"
11
+ assert_equal(str, GrenSnip::snip(str, nil))
12
+
13
+ str = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789|123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789|12345678901234567890123456789012345678901234567890123456"
14
+ assert_equal(str, GrenSnip::snip(str, nil))
15
+
16
+ str = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789|123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789|123456789012345678901234567890123456789012345678901234561"
17
+ match_datas = []
18
+ match_datas << str.match(/123456789\|/)
19
+ assert_equal("12345678901234567890123456789012<<snip>>90123456789012345678901234567890123456789|123456789012345678901234567890123<<snip>>67890123456789012345678901234561", GrenSnip::snip(str, match_datas))
20
+
21
+ str = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789|123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789|123456789012345678901234567890123456789012345678901234561"
22
+ match_datas = []
23
+ match_datas << str.match(/123456789\|/)
24
+ match_datas << str.match(/34567/)
25
+ assert_equal("12345678901234567890123456789012<<snip>>90123456789012345678901234567890123456789|123456789012345678901234567890123<<snip>>67890123456789012345678901234561", GrenSnip::snip(str, match_datas))
26
+
27
+ str = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789|123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789|123456789012345678901234567890123456789012345678901234561"
28
+ match_datas = []
29
+ match_datas << str.match(/123456789\|/)
30
+ match_datas << str.match(/01234561/)
31
+ assert_equal("12345678901234567890123456789012<<snip>>90123456789012345678901234567890123456789|123456789012345678901234567890123<<snip>>8901234567890123456789012345678901234561", GrenSnip::snip(str, match_datas))
32
+
33
+ end
34
+ end
@@ -0,0 +1,2 @@
1
+ require 'stringio'
2
+ require 'test/unit'
@@ -0,0 +1,30 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # @file
4
+ # @brief
5
+ # @author ongaeshi
6
+ # @date 2010/10/21
7
+
8
+ require 'test_helper'
9
+ require 'milkode/cdweb/lib/mkurl'
10
+
11
+ module Milkode
12
+ class TestMkurl < Test::Unit::TestCase
13
+ def test_basic
14
+ p1 = {:query => 'test', :shead => 'package', :page => '2'}
15
+ p2 = {:query => 'test', :page => '2'}
16
+ p3 = {:page => '2'}
17
+
18
+ assert_equal '/home/foo/bar.hpp?query=test&shead=package', Mkurl.new('/home/foo/bar.hpp', p1).inherit_query_shead
19
+ assert_equal '.?query=test&shead=package', Mkurl.new('.', p1).inherit_query_shead
20
+ assert_equal '/home/foo/bar.hpp?query=test', Mkurl.new('/home/foo/bar.hpp', p2).inherit_query_shead
21
+ assert_equal '/home/foo/bar.hpp', Mkurl.new('/home/foo/bar.hpp', p3).inherit_query_shead
22
+
23
+ assert_equal '/home/foo/bar.hpp?shead=package', Mkurl.new('/home/foo/bar.hpp', p1).inherit_shead
24
+ assert_equal '.?shead=package', Mkurl.new('.', p1).inherit_shead
25
+ assert_equal '/home/foo/bar.hpp', Mkurl.new('/home/foo/bar.hpp', p2).inherit_shead
26
+ assert_equal '/home/foo/bar.hpp', Mkurl.new('/home/foo/bar.hpp', p3).inherit_shead
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,54 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # @file
4
+ # @brief
5
+ # @author ongaeshi
6
+ # @date 2010/10/21
7
+
8
+ require 'test_helper'
9
+ require 'milkode/cdweb/lib/query'
10
+
11
+ module Milkode
12
+ class TestQuery < Test::Unit::TestCase
13
+ def test_query
14
+ q = create_query("test fire beam")
15
+ assert_equal q.keywords, ['test', 'fire', 'beam']
16
+ assert_equal q.packages, []
17
+ assert_equal q.fpaths, []
18
+ assert_equal q.suffixs, []
19
+ assert_equal q.escape_html, 'test fire beam'
20
+
21
+ q = create_query("test fire beam f:testfile1")
22
+ assert_equal q.keywords, ['test', 'fire', 'beam']
23
+ assert_equal q.packages, []
24
+ assert_equal q.fpaths, ['testfile1']
25
+ assert_equal q.suffixs, []
26
+
27
+ q = create_query("test fire beam f:testfile1 filepath:dir32")
28
+ assert_equal q.keywords, ['test', 'fire', 'beam']
29
+ assert_equal q.packages, []
30
+ assert_equal q.fpaths, ['dir32', 'testfile1']
31
+ assert_equal q.suffixs, []
32
+
33
+ q = create_query("package:gren test fire beam f:testfile1 filepath:dir32 s:rb p:test suffix:pl")
34
+ assert_equal q.keywords, ['test', 'fire', 'beam']
35
+ assert_equal q.packages, ['gren', 'test']
36
+ assert_equal q.fpaths, ['dir32', 'testfile1']
37
+ assert_equal q.suffixs, ['pl', 'rb']
38
+
39
+ q = create_query("&p")
40
+ assert_equal "&p", q.query_string
41
+ assert_equal q.escape_html, '&amp;p'
42
+
43
+ q = create_query("int &p")
44
+ assert_equal q.escape_html, 'int &amp;p'
45
+
46
+ q = create_query('"def update"')
47
+ assert_equal q.keywords, ['def update']
48
+ end
49
+
50
+ def create_query(query)
51
+ Query.new(query)
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,31 @@
1
+ require 'test_helper'
2
+ require 'milkode/common/util.rb'
3
+ require 'milkode/common/grensnip.rb'
4
+
5
+ class TestStringSnip < Test::Unit::TestCase
6
+ def setup
7
+ end
8
+
9
+ def test_ranges_compound
10
+ ranges = [0..7, 8..232, 121..150, 248..255]
11
+ assert_equal(StringSnip.ranges_compound(ranges), [0..232, 248..255])
12
+
13
+ ranges = [10..20, 22..30, 33..40]
14
+ assert_equal(StringSnip.ranges_compound(ranges), [10..20, 22..30, 33..40])
15
+
16
+ ranges = [10..30, 20..30, 30..40]
17
+ assert_equal(StringSnip.ranges_compound(ranges), [10..40])
18
+ end
19
+
20
+ def test_string_snip
21
+ str = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789|123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789|12345678901234567890123456789012345678901234567890123456"
22
+
23
+ snipper = StringSnip.new
24
+ snip_str = snipper.snip(str, [0..7, -8..-1])
25
+ assert_equal(snip_str, str)
26
+
27
+ snipper = StringSnip.new(64)
28
+ snip_str = snipper.snip(str, [-8..-1, 10..20, 0..7])
29
+ assert_equal(snip_str, "12345678<<snip>>12345678901<<snip>>90123456")
30
+ end
31
+ end
@@ -0,0 +1,40 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # @file
4
+ # @brief
5
+ # @author ongaeshi
6
+ # @date 2011/02/20
7
+
8
+ require 'milkode/common/util'
9
+ require 'test/unit'
10
+ require 'file_test_utils'
11
+
12
+ class TestUtil < Test::Unit::TestCase
13
+ include FileTestUtils
14
+
15
+ def test_zip_extract
16
+ Milkode::Util::zip_extract('../data/abc.zip', '.')
17
+ assert File.exist?('abc')
18
+ assert File.exist?('abc/a.txt')
19
+ assert File.exist?('abc/b.txt')
20
+ assert File.exist?('abc/c.txt')
21
+
22
+ Milkode::Util::zip_extract('../data/nodir_abc.zip', '.')
23
+ assert File.exist?('nodir_abc')
24
+ assert File.exist?('nodir_abc/a.txt')
25
+ assert File.exist?('nodir_abc/b.txt')
26
+ assert File.exist?('nodir_abc/c.txt')
27
+ end
28
+
29
+ def test_root_entrylist
30
+ assert_equal ['abc/'], Milkode::Util::root_entrylist('../data/abc.zip')
31
+ assert_equal ['a.txt', 'b.txt', 'c.txt'], Milkode::Util::root_entrylist('../data/nodir_abc.zip')
32
+ end
33
+
34
+ def teardown
35
+ teardown_custom(true)
36
+ # teardown_custom(false)
37
+ end
38
+ end
39
+
40
+