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.
- data/.document +5 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +18 -0
- data/HISTORY.rdoc +5 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +19 -0
- data/Rakefile +78 -0
- data/VERSION +1 -0
- data/bin/cdv +6 -0
- data/bin/cdview +10 -0
- data/bin/milk +10 -0
- data/lib/milkode/cdstk/cdstk.rb +508 -0
- data/lib/milkode/cdstk/cdstk_yaml.rb +106 -0
- data/lib/milkode/cdstk/cli_cdstk.rb +103 -0
- data/lib/milkode/cdstk/cli_cdstksub.rb +102 -0
- data/lib/milkode/cdview/cli_cdview.rb +43 -0
- data/lib/milkode/cdweb/app.rb +136 -0
- data/lib/milkode/cdweb/cli_cdweb.rb +111 -0
- data/lib/milkode/cdweb/config.ru +3 -0
- data/lib/milkode/cdweb/lib/coderay_wrapper.rb +94 -0
- data/lib/milkode/cdweb/lib/command.rb +67 -0
- data/lib/milkode/cdweb/lib/database.rb +260 -0
- data/lib/milkode/cdweb/lib/grep.rb +68 -0
- data/lib/milkode/cdweb/lib/mkurl.rb +56 -0
- data/lib/milkode/cdweb/lib/query.rb +81 -0
- data/lib/milkode/cdweb/lib/search_contents.rb +117 -0
- data/lib/milkode/cdweb/lib/search_files.rb +88 -0
- data/lib/milkode/cdweb/public/css/coderay.css +131 -0
- data/lib/milkode/cdweb/public/css/gren.css +75 -0
- data/lib/milkode/cdweb/public/images/directory.png +0 -0
- data/lib/milkode/cdweb/public/images/file.png +0 -0
- data/lib/milkode/cdweb/public/images/gren-icon-mini.png +0 -0
- data/lib/milkode/cdweb/public/images/gren-icon.png +0 -0
- data/lib/milkode/cdweb/views/filelist.haml +14 -0
- data/lib/milkode/cdweb/views/help.haml +16 -0
- data/lib/milkode/cdweb/views/index.haml +17 -0
- data/lib/milkode/cdweb/views/layout.haml +33 -0
- data/lib/milkode/cdweb/views/search.haml +12 -0
- data/lib/milkode/cdweb/views/view.haml +16 -0
- data/lib/milkode/common/dbdir.rb +39 -0
- data/lib/milkode/common/display_util.rb +62 -0
- data/lib/milkode/common/grenfiletest.rb +19 -0
- data/lib/milkode/common/grensnip.rb +37 -0
- data/lib/milkode/common/platform.rb +17 -0
- data/lib/milkode/common/string_snip.rb +61 -0
- data/lib/milkode/common/util.rb +144 -0
- data/lib/milkode/findgrep/findgrep.rb +408 -0
- data/lib/milkode/findgrep/result.rb +43 -0
- data/milkode.gemspec +159 -0
- data/test/data/abc.zip +0 -0
- data/test/data/nodir_abc.zip +0 -0
- data/test/data/nodir_abc_xpi.xpi +0 -0
- data/test/file_assert.rb +41 -0
- data/test/file_test_utils.rb +59 -0
- data/test/rake_test_loader.rb +7 -0
- data/test/runner.rb +11 -0
- data/test/test_bin_exec.rb +30 -0
- data/test/test_cdstk.rb +90 -0
- data/test/test_cdstk_yaml.rb +157 -0
- data/test/test_coderay_wrapper.rb +22 -0
- data/test/test_coderay_wrapper_data.rb +91 -0
- data/test/test_database.rb +78 -0
- data/test/test_dbdir.rb +60 -0
- data/test/test_gren_util.rb +34 -0
- data/test/test_helper.rb +2 -0
- data/test/test_mkurl.rb +30 -0
- data/test/test_query.rb +54 -0
- data/test/test_string_snip.rb +31 -0
- data/test/test_util.rb +40 -0
- 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 < 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">"</span><span class="k">string</span><span class="dl">"</span></span>)</span><tt>
|
73
|
+
</tt><span id="7"> value = <span class="s"><span class="dl">'</span><span class="k">"</span><span class="dl">'</span></span> + value + <span class="s"><span class="dl">'</span><span class="k">"</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">"</span><span class="k">: </span><span class="dl">"</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 < 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">"</span><span class="k">()</span><span class="dl">"</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
|
+
|
data/test/test_dbdir.rb
ADDED
@@ -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
|
data/test/test_helper.rb
ADDED
data/test/test_mkurl.rb
ADDED
@@ -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
|
data/test/test_query.rb
ADDED
@@ -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, '&p'
|
42
|
+
|
43
|
+
q = create_query("int &p")
|
44
|
+
assert_equal q.escape_html, 'int &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
|
data/test/test_util.rb
ADDED
@@ -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
|
+
|