ruby-debian 0.3.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/Makefile +47 -0
  2. data/README +55 -0
  3. data/TODO +29 -0
  4. data/bin/dpkg-checkdeps +163 -0
  5. data/bin/dpkg-ruby +148 -0
  6. data/debian/changelog +310 -0
  7. data/debian/compat +1 -0
  8. data/debian/control +56 -0
  9. data/debian/copyright +26 -0
  10. data/debian/dirs +2 -0
  11. data/debian/manpages +0 -0
  12. data/debian/ruby-debian.docs +3 -0
  13. data/debian/ruby-debian.examples +1 -0
  14. data/debian/ruby-debian.manpages +2 -0
  15. data/debian/rules +15 -0
  16. data/debian/source/format +1 -0
  17. data/examples/ONE_LINER +39 -0
  18. data/examples/dpkg.rb +95 -0
  19. data/examples/list_packages.rb +38 -0
  20. data/examples/unmet_packages.rb +39 -0
  21. data/ext/debian_version/Version.cpp +43 -0
  22. data/ext/debian_version/extconf.rb +7 -0
  23. data/lib/debian.rb +1063 -0
  24. data/lib/debian/ar.rb +159 -0
  25. data/lib/debian/utils.rb +111 -0
  26. data/man/dpkg-checkdeps.1 +102 -0
  27. data/man/dpkg-ruby.1 +99 -0
  28. data/t/d/available +492 -0
  29. data/t/d/non-US_sid_Sources +32 -0
  30. data/t/d/non-US_sid_i386_Packages +50 -0
  31. data/t/d/sid_Sources +287 -0
  32. data/t/d/sid_i386_Packages +456 -0
  33. data/t/d/status +324 -0
  34. data/t/d/w3m-ssl_0.2.1-1.f +24 -0
  35. data/t/d/w3m-ssl_0.2.1-2.dsc +12 -0
  36. data/t/d/w3m-ssl_0.2.1-2.f +24 -0
  37. data/t/d/w3m_0.2.1-1.dsc +12 -0
  38. data/t/d/w3m_0.2.1-1.f +21 -0
  39. data/t/d/w3m_0.2.1-2.dsc +12 -0
  40. data/t/d/w3m_0.2.1-2.f +21 -0
  41. data/t/d/w3m_met_list +83 -0
  42. data/t/testall.rb +50 -0
  43. data/t/testar.rb +59 -0
  44. data/t/testarchives.rb +277 -0
  45. data/t/testdeb.rb +239 -0
  46. data/t/testdep.rb +70 -0
  47. data/t/testdepterm.rb +140 -0
  48. data/t/testdepunmet.rb +71 -0
  49. data/t/testdpkg.rb +197 -0
  50. data/t/testdpkgdeb.rb +83 -0
  51. data/t/testdsc.rb +49 -0
  52. data/t/testfield.rb +155 -0
  53. data/t/testpackages.rb +138 -0
  54. data/t/testsources.rb +44 -0
  55. data/t/teststatus.rb +38 -0
  56. metadata +133 -0
@@ -0,0 +1,71 @@
1
+ require 'runit/testcase'
2
+ require 'runit/cui/testrunner'
3
+
4
+ $:.unshift("../lib")
5
+ require '../lib/debian.rb'
6
+
7
+ class TestDebian__Dep__Unmet < RUNIT::TestCase
8
+
9
+ def setup
10
+ dep = Debian::Dep::Term.new('w3m')
11
+ assert_not_nil(dep)
12
+ deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join(""))
13
+ assert_not_nil(deb)
14
+ @unmet = Debian::Dep::Unmet.new(dep, deb)
15
+ end
16
+ def test_deb
17
+ deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join(""))
18
+ assert_equals(deb, @unmet.deb)
19
+ end
20
+
21
+ def test_dep
22
+ assert_equals(Debian::Dep::Term.new('w3m'), @unmet.dep)
23
+ end
24
+
25
+ def test_package
26
+ assert_nil(@unmet.package)
27
+ end
28
+
29
+ def test_package=
30
+ @unmet.package = 'w3m-el'
31
+ assert_equals('w3m-el', @unmet.package)
32
+ assert_exception(Debian::DepError) { @unmet.package = 'w3m' }
33
+ end
34
+
35
+ def test_relation
36
+ assert_nil(@unmet.relation)
37
+ end
38
+
39
+ def test_relation=
40
+ @unmet.relation = 'depends'
41
+ assert_equals('depends', @unmet.relation)
42
+ assert_exception(Debian::DepError) { @unmet.relation = 'recommends' }
43
+ end
44
+
45
+ def test_to_s
46
+ assert_equals('w3m unmet w3m-ssl 0.2.1-1 (provides w3m)', @unmet.to_s)
47
+ @unmet.package = 'w3m-ssl'
48
+ assert_equals('w3m-ssl w3m unmet w3m-ssl 0.2.1-1 (provides w3m)',
49
+ @unmet.to_s)
50
+ @unmet.relation = 'depends'
51
+ assert_equals('w3m-ssl depends w3m unmet w3m-ssl 0.2.1-1 (provides w3m)',
52
+ @unmet.to_s)
53
+ end
54
+
55
+ # def test_s_new
56
+ # ???
57
+ # end
58
+
59
+ end
60
+
61
+ if $0 == __FILE__
62
+ if ARGV.size == 0
63
+ suite = TestDebian__Dep__Unmet.suite
64
+ else
65
+ suite = RUNIT::TestSuite.new
66
+ ARGV.each do |testmethod|
67
+ suite.add_test(TestDebian__Dep__Unmet.new(testmethod))
68
+ end
69
+ end
70
+ RUNIT::CUI::TestRunner.run(suite)
71
+ end
@@ -0,0 +1,197 @@
1
+ # c2t.rb -na Debian::Dpkg ../lib/debian.rb > testdpkg.rb
2
+ #
3
+ require 'runit/testcase'
4
+ require 'runit/cui/testrunner'
5
+
6
+ $:.unshift("../lib")
7
+ require '../lib/debian.rb'
8
+
9
+ class TestDebian__Dpkg < RUNIT::TestCase
10
+
11
+ def test_s_architecture
12
+ arch = %x{dpkg --print-architecture}.chomp!
13
+ assert_equals(arch, Debian::Dpkg.architecture())
14
+ end
15
+ def test_s_gnu_build_architecture
16
+ arch = %x{dpkg --print-gnu-build-architecture}.chomp!
17
+ assert_equals(arch, Debian::Dpkg.gnu_build_architecture())
18
+ end
19
+
20
+ def test_s_installation_architecture
21
+ arch = %x{dpkg --print-installation-architecture}.chomp!
22
+ assert_equals(arch, Debian::Dpkg.installation_architecture())
23
+ end
24
+
25
+ def test_s_compare_versions
26
+ assert(Debian::Dpkg.compare_versions('1.0','<','1.1'))
27
+ assert(Debian::Dpkg.compare_versions('1.0','<=','1.1'))
28
+ assert(Debian::Dpkg.compare_versions('1.0','<=','1.0'))
29
+ assert(Debian::Dpkg.compare_versions('1.0','=','1.0'))
30
+ assert(Debian::Dpkg.compare_versions('1.0','>=','1.0'))
31
+ assert(Debian::Dpkg.compare_versions('1.1','>','1.0'))
32
+ end
33
+
34
+ def test_s_field
35
+ ruby = Dir["/var/cache/apt/archives/ruby_1.6*.deb"]
36
+ if ruby.empty?
37
+ assert_fail("no ruby package in /var/cache/apt/archives")
38
+ end
39
+ ruby.each {|deb|
40
+ d = Debian::Dpkg.field(deb)
41
+ assert_equals("ruby", d.package)
42
+ assert_matches(d.version, /1.6/)
43
+ assert_equals("akira yamada <akira@debian.org>", d['maintainer'])
44
+ assert_equals("interpreters", d['section'])
45
+ assert_equals("optional", d['priority'])
46
+ # request field only
47
+ assert_equals(["ruby"], Debian::Dpkg.field(deb, ["package"]))
48
+ assert_equals(["akira yamada <akira@debian.org>"],
49
+ Debian::Dpkg.field(deb, ["maintainer"]))
50
+ assert_equals(["interpreters"], Debian::Dpkg.field(deb, ["section"]))
51
+ assert_equals(["optional"], Debian::Dpkg.field(deb, ["priority"]))
52
+ assert_equals(["ruby","interpreters","optional"],
53
+ Debian::Dpkg.field(deb, ["package","section","priority"]))
54
+ }
55
+ end
56
+
57
+ LIST_SELECTION = Debian::Deb::SELECTION_ID.invert
58
+ LIST_STATUS = Debian::Deb::STATUS_ID.invert
59
+
60
+ def dpkg_l_parse(line)
61
+ if /^(.)(.)(.)\s+(\S+)\s+(\S+)\s+(.*)/ =~ line
62
+ {'selection' => $1,
63
+ 'status' => $2,
64
+ 'err?' => $3,
65
+ 'package' => $4,
66
+ 'version' => $5,
67
+ 'description' => $6
68
+ }
69
+ else
70
+ assert_fail("parse failed dpkg -l #{line}")
71
+ end
72
+ end
73
+ def test_s_status
74
+ dpkg_l = ''
75
+ ENV['COLUMNS']="256"
76
+ IO.popen("dpkg --list dpkg") {|f|
77
+ f.each {|line|
78
+ break if /^\+/ =~ line
79
+ }
80
+ dpkg_l = dpkg_l_parse(f.readlines[0])
81
+ }
82
+ dpkg_tl = Debian::Dpkg.status(['dpkg'])
83
+ assert_not_nil(dpkg_tl['dpkg'])
84
+ assert_equals('dpkg', dpkg_tl['dpkg'].package)
85
+ assert_equals(LIST_SELECTION[dpkg_l['selection']],
86
+ dpkg_tl['dpkg'].selection)
87
+ assert_equals(LIST_STATUS[dpkg_l['status']],
88
+ dpkg_tl['dpkg'].status)
89
+ assert_equals(dpkg_l['version'],
90
+ dpkg_tl['dpkg'].version.slice(0,dpkg_l['version'].length))
91
+ assert_equals('Package maintenance system for Debian',
92
+ dpkg_tl['dpkg'].description.slice(0,'Package maintenance system for Debian'.length))
93
+
94
+ ol = {}
95
+ IO.popen("dpkg --list") {|f|
96
+ f.each {|line|
97
+ break if /^\+/ =~ line
98
+
99
+ }
100
+ f.each {|line|
101
+ l = dpkg_l_parse(line)
102
+ next if ol.include?(l['package'])
103
+ ol[l['package']] = l
104
+ }
105
+ }
106
+ tl = Debian::Dpkg.status
107
+ ol.each {|op,ol|
108
+ tp = nil
109
+ dupped = false
110
+ tl.each_key {|t|
111
+ if t == op
112
+ tp = tl[t]
113
+ break
114
+ end
115
+ if t.slice(0,14) == op
116
+ if tp
117
+ dupped = true
118
+ break
119
+ end
120
+ tp = tl[t]
121
+ end
122
+ }
123
+ next if dupped
124
+ assert_not_nil(tp, "#{op}")
125
+ assert_equals(op, tp.package.slice(0,op.length),
126
+ "#{op}/#{tp.package}")
127
+ assert_equals(ol['package'], tp.package.slice(0,ol['package'].length),
128
+ "#{ol['pacakge']}/#{tp.package}")
129
+ assert_equals(LIST_SELECTION[ol['selection']], tp.selection, tp.package)
130
+ assert_equals(LIST_STATUS[ol['status']], tp.status, tp.package)
131
+ assert_equals(ol['version'], tp.version.gsub(/^\d+:/,"").slice(0,ol['version'].length), tp.package)
132
+ assert_equals(ol['description'], tp.description.slice(0,ol['description'].length), tp.package)
133
+ }
134
+ end
135
+
136
+ def test_s_selections
137
+ # dpkg --get-selections ...
138
+ sl = {}
139
+ IO.popen("dpkg --get-selections") {|f|
140
+ f.each {|line|
141
+ p,sel = line.split
142
+ sl[p] = sel
143
+ }
144
+ }
145
+ tsl = Debian::Dpkg.selections
146
+ sl.each {|p,sel|
147
+ assert_equals(sel, tsl[p].selection)
148
+ }
149
+ end
150
+ # def test_s_selections=
151
+ # # dpkg --set-selections
152
+ # end
153
+ def test_s_avail
154
+ # dpkg --print-avail ...
155
+ a = IO.popen("dpkg --print-avail w3m") {|f|
156
+ Debian::Deb.new(f.readlines.join(""))
157
+ }
158
+ ta = Debian::Dpkg.avail(['w3m'])
159
+ assert_equals(a, ta['w3m'])
160
+ end
161
+ def test_s_listfiles
162
+ # dpkg --listfiles ...
163
+ l = IO.popen("dpkg --listfiles dpkg gzip").readlines("\n\n").collect {|l|
164
+ l.split("\n")
165
+ }
166
+ tl = Debian::Dpkg.listfiles(['dpkg', 'gzip'])
167
+ assert_equals(l, tl)
168
+ end
169
+ def test_s_search
170
+ # dpkg --search
171
+ s = IO.popen("dpkg --search dpkg-deb").readlines.collect {|l|
172
+ l.chomp!
173
+ /^(\S+):\s*(\S+)/ =~ l
174
+ [$1, $2]
175
+ }.sort {|a,b| (a[0] + a[1]) <=> (b[0] + b[1]) }
176
+ ts = Debian::Dpkg.search(['dpkg-deb']).sort {|a,b|
177
+ (a[0] + a[1]) <=> (b[0] + b[1])
178
+ }
179
+ assert_equals(s, ts)
180
+ end
181
+ # def test_s_audit
182
+ # # dpkg --audit
183
+ # end
184
+
185
+ end
186
+
187
+ if $0 == __FILE__
188
+ if ARGV.size == 0
189
+ suite = TestDebian__Dpkg.suite
190
+ else
191
+ suite = RUNIT::TestSuite.new
192
+ ARGV.each do |testmethod|
193
+ suite.add_test(TestDebian__Dpkg.new(testmethod))
194
+ end
195
+ end
196
+ RUNIT::CUI::TestRunner.run(suite)
197
+ end
@@ -0,0 +1,83 @@
1
+ require 'runit/testcase'
2
+ require 'runit/cui/testrunner'
3
+
4
+ $:.unshift("../lib")
5
+ require '../lib/debian.rb'
6
+
7
+ class TestDebian__DpkgDeb < RUNIT::TestCase
8
+
9
+ def setup
10
+ @ruby = Dir["/var/cache/apt/archives/ruby_1.6*.deb"]
11
+ if @ruby.empty?
12
+ assert_fail("no ruby package in /var/cache/apt/archives")
13
+ end
14
+ @libs = Dir["/usr/lib/libc.*"]
15
+ if @libs.empty?
16
+ assert_fail("no libc in /usr/lib")
17
+ end
18
+ end
19
+ def test_deb?
20
+ @ruby.each {|deb|
21
+ assert(Debian::DpkgDeb.deb?(deb))
22
+ }
23
+ @libs.each {|lib|
24
+ assert(! Debian::DpkgDeb.deb?(lib))
25
+ }
26
+ end
27
+ def test_assert_deb?
28
+ @ruby.each {|deb|
29
+ assert_no_exception(Debian::Error) {Debian::DpkgDeb.assert_deb?(deb)}
30
+ }
31
+ @libs.each {|lib|
32
+ assert_exception(Debian::Error) {! Debian::DpkgDeb.assert_deb?(lib)}
33
+ }
34
+ end
35
+
36
+ def test_control
37
+ ENV["LANG"] = 'C'
38
+ @ruby.each {|deb|
39
+ c = []
40
+ IO.popen("dpkg -I #{deb}") {|fp|
41
+ fp.each {|line|
42
+ line.chomp!
43
+ if /^\s+\d+\sbytes,\s+\d+\s+lines\s+\*?\s*(\S+).*/ =~ line
44
+ c.push($1)
45
+ end
46
+ }
47
+ }
48
+ assert_equals(c.sort, Debian::DpkgDeb.control(deb).sort)
49
+ }
50
+ end
51
+ def test_data
52
+ @ruby.each {|deb|
53
+ d = []
54
+ IO.popen("dpkg --fsys-tarfile #{deb}|tar tf -") {|fp|
55
+ fp.each {|line|
56
+ line.chomp!
57
+ d.push(line)
58
+ }
59
+ }
60
+ assert_equals(d, Debian::DpkgDeb.data(deb))
61
+ }
62
+ end
63
+
64
+ def test_load
65
+ @ruby.each {|deb|
66
+ de = Debian::DpkgDeb.load(deb)
67
+ assert_equals(deb, de.filename)
68
+ }
69
+ end
70
+
71
+ end
72
+
73
+ if $0 == __FILE__
74
+ if ARGV.size == 0
75
+ suite = TestDebian__DpkgDeb.suite
76
+ else
77
+ suite = RUNIT::TestSuite.new
78
+ ARGV.each do |testmethod|
79
+ suite.add_test(TestDebian__DpkgDeb.new(testmethod))
80
+ end
81
+ end
82
+ RUNIT::CUI::TestRunner.run(suite)
83
+ end
@@ -0,0 +1,49 @@
1
+ require 'runit/testcase'
2
+ require 'runit/cui/testrunner'
3
+
4
+ $:.unshift("../lib")
5
+ require '../lib/debian.rb'
6
+
7
+ class TestDebian__Dsc < RUNIT::TestCase
8
+
9
+ def setup
10
+ @dsc = [Debian::Dsc.new(IO.readlines("d/w3m_0.2.1-1.dsc").join("")),
11
+ Debian::Dsc.new(IO.readlines("d/w3m_0.2.1-2.dsc").join("")),
12
+ Debian::Dsc.new(IO.readlines("d/w3m-ssl_0.2.1-2.dsc").join(""))]
13
+ end
14
+
15
+ def test_binary
16
+ assert_equals(["w3m"], @dsc[0].binary)
17
+ assert_equals(["w3m"], @dsc[1].binary)
18
+ assert_equals(["w3m-ssl"], @dsc[2].binary)
19
+ end
20
+
21
+ def test_package
22
+ assert_equals("w3m", @dsc[0].package)
23
+ assert_equals("w3m", @dsc[1].package)
24
+ assert_equals("w3m-ssl", @dsc[2].package)
25
+ end
26
+
27
+ def test_version
28
+ assert_equals("0.2.1-1", @dsc[0].version)
29
+ assert_equals("0.2.1-2", @dsc[1].version)
30
+ assert_equals("0.2.1-2", @dsc[2].version)
31
+ end
32
+
33
+ # def test_s_new
34
+ #
35
+ # end
36
+
37
+ end
38
+
39
+ if $0 == __FILE__
40
+ if ARGV.size == 0
41
+ suite = TestDebian__Dsc.suite
42
+ else
43
+ suite = RUNIT::TestSuite.new
44
+ ARGV.each do |testmethod|
45
+ suite.add_test(TestDebian__Dsc.new(testmethod))
46
+ end
47
+ end
48
+ RUNIT::CUI::TestRunner.run(suite)
49
+ end
@@ -0,0 +1,155 @@
1
+ require 'runit/testcase'
2
+ require 'runit/cui/testrunner'
3
+
4
+ $:.unshift("../lib")
5
+ require '../lib/debian.rb'
6
+
7
+ class ClassDebianField
8
+ include Debian::Field
9
+ def initialize(c, rf=[])
10
+ parseFields(c, rf)
11
+ end
12
+ end
13
+
14
+ class TestDebian__Field < RUNIT::TestCase
15
+
16
+ def setup
17
+ @ff = {}
18
+ Dir["d/*.f"].each {|ff|
19
+ dc = ClassDebianField.new(IO.readlines(ff).join(""), [])
20
+ @ff["#{dc['package']}_#{dc['version']}"] = dc
21
+ }
22
+ end
23
+
24
+ def test_AREF # '[]'
25
+ assert_equals("w3m", @ff['w3m_0.2.1-1']['package'])
26
+ assert_equals("w3m-ssl", @ff['w3m-ssl_0.2.1-1']['package'])
27
+ assert_equals("0.2.1-1", @ff['w3m_0.2.1-1']['version'])
28
+ end
29
+
30
+ def test_EQUAL # '=='
31
+ dc2 = ClassDebianField.new(IO.readlines("d/w3m_0.2.1-1.f").join(""), [])
32
+ assert(dc2 == @ff['w3m_0.2.1-1'])
33
+ assert(!(dc2 == @ff['w3m_0.2.1-2']))
34
+ assert(!(dc2 == @ff['w3m-ssl_0.2.1-1']))
35
+ end
36
+
37
+ def test_GE # '>='
38
+ assert(@ff['w3m_0.2.1-2'] >= @ff['w3m_0.2.1-1'])
39
+ assert(@ff['w3m_0.2.1-1'] >= @ff['w3m_0.2.1-1'])
40
+ assert(!(@ff['w3m_0.2.1-1'] >= @ff['w3m_0.2.1-2']))
41
+ assert(!(@ff['w3m-ssl_0.2.1-2'] >= @ff['w3m_0.2.1-1']))
42
+ assert(!(@ff['w3m-ssl_0.2.1-1'] >= @ff['w3m_0.2.1-1']))
43
+ assert(!(@ff['w3m-ssl_0.2.1-1'] >= @ff['w3m_0.2.1-2']))
44
+ end
45
+
46
+ def test_GT # '>'
47
+ assert(@ff['w3m_0.2.1-2'] > @ff['w3m_0.2.1-1'])
48
+ assert(!(@ff['w3m_0.2.1-1'] > @ff['w3m_0.2.1-1']))
49
+ assert(!(@ff['w3m_0.2.1-1'] > @ff['w3m_0.2.1-2']))
50
+ assert(!(@ff['w3m-ssl_0.2.1-2'] > @ff['w3m_0.2.1-1']))
51
+ assert(!(@ff['w3m-ssl_0.2.1-1'] > @ff['w3m_0.2.1-1']))
52
+ assert(!(@ff['w3m-ssl_0.2.1-1'] > @ff['w3m_0.2.1-2']))
53
+ end
54
+
55
+ def test_LE # '<='
56
+ assert(@ff['w3m_0.2.1-1'] <= @ff['w3m_0.2.1-1'])
57
+ assert(@ff['w3m_0.2.1-1'] <= @ff['w3m_0.2.1-2'])
58
+ assert(!(@ff['w3m_0.2.1-2'] <= @ff['w3m_0.2.1-1']))
59
+ assert(!(@ff['w3m-ssl_0.2.1-2'] <= @ff['w3m_0.2.1-1']))
60
+ assert(!(@ff['w3m-ssl_0.2.1-1'] <= @ff['w3m_0.2.1-1']))
61
+ assert(!(@ff['w3m-ssl_0.2.1-1'] <= @ff['w3m_0.2.1-2']))
62
+ end
63
+
64
+ def test_LT # '<'
65
+ assert(@ff['w3m_0.2.1-1'] < @ff['w3m_0.2.1-2'])
66
+ assert(!(@ff['w3m_0.2.1-1'] < @ff['w3m_0.2.1-1']))
67
+ assert(!(@ff['w3m_0.2.1-2'] < @ff['w3m_0.2.1-1']))
68
+ assert(!(@ff['w3m-ssl_0.2.1-2'] > @ff['w3m_0.2.1-1']))
69
+ assert(!(@ff['w3m-ssl_0.2.1-1'] > @ff['w3m_0.2.1-1']))
70
+ assert(!(@ff['w3m-ssl_0.2.1-1'] > @ff['w3m_0.2.1-2']))
71
+ end
72
+
73
+ def test_VERY_EQUAL # '==='
74
+ assert(@ff['w3m_0.2.1-1'] === @ff['w3m_0.2.1-1'])
75
+ assert(@ff['w3m_0.2.1-1'] === @ff['w3m_0.2.1-2'])
76
+ assert(@ff['w3m_0.2.1-2'] === @ff['w3m_0.2.1-1'])
77
+ assert(!(@ff['w3m_0.2.1-1'] === @ff['w3m-ssl_0.2.1-1']))
78
+ assert(!(@ff['w3m_0.2.1-1'] === @ff['w3m-ssl_0.2.1-2']))
79
+ end
80
+
81
+ def test_info_s
82
+ c = IO.readlines("d/w3m_0.2.1-1.f").join("")
83
+ assert_equals(c, @ff['w3m_0.2.1-1'].info_s)
84
+ end
85
+
86
+ def test_fields
87
+ assert_equals(['Package', 'Version', 'Section', 'Priority',
88
+ 'Architecture', 'Depends', 'Suggests',
89
+ 'Provides', 'Installed-size', 'Maintainer',
90
+ 'Description'], @ff['w3m_0.2.1-1'].fields)
91
+ end
92
+
93
+ def test_info
94
+ assert_equals({'Package' => 'w3m',
95
+ 'Version' => '0.2.1-1',
96
+ 'Section' => 'text',
97
+ 'Priority' => 'optional',
98
+ 'Architecture' => 'i386',
99
+ 'Depends' => 'libc6 (>= 2.2.1-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1)',
100
+ 'Suggests' => 'w3m-ssl (>= 0.2.1-1), mime-support, menu (>> 1.5), w3m-el',
101
+ 'Provides' => 'www-browser',
102
+ 'Installed-size' => '1300',
103
+ 'Maintainer' => 'Fumitoshi UKAI <ukai@debian.or.jp>',
104
+ 'Description' => 'WWW browsable pager with excellent tables/frames support
105
+ w3m is a text-based World Wide Web browser with IPv6 support.
106
+ It features excellent support for tables and frames. It can be used
107
+ as a standalone file pager, too.
108
+ .
109
+ * You can follow links and/or view images in HTML.
110
+ * Internet message prewview mode, you can browse HTML mail.
111
+ * You can follow links in plain text if it includes URL forms.
112
+ .
113
+ For more information,
114
+ see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html'},
115
+ @ff['w3m_0.2.1-1'].info)
116
+ end
117
+
118
+ def test_package
119
+ assert_equals('w3m', @ff['w3m_0.2.1-1'].package)
120
+ assert_equals('w3m-ssl', @ff['w3m-ssl_0.2.1-2'].package)
121
+ end
122
+
123
+ def test_version
124
+ assert_equals('0.2.1-1', @ff['w3m_0.2.1-1'].version)
125
+ assert_equals('0.2.1-2', @ff['w3m-ssl_0.2.1-2'].version)
126
+ end
127
+
128
+ def test_maintainer
129
+ assert_equals('Fumitoshi UKAI <ukai@debian.or.jp>', @ff['w3m_0.2.1-1'].maintainer)
130
+ end
131
+
132
+ # def test_parseFields
133
+ # how to test?
134
+ # end
135
+
136
+ def test_to_s
137
+ assert_equals("w3m 0.2.1-1", @ff['w3m_0.2.1-1'].to_s)
138
+ assert_equals("w3m 0.2.1-2", @ff['w3m_0.2.1-2'].to_s)
139
+ assert_equals("w3m-ssl 0.2.1-1", @ff['w3m-ssl_0.2.1-1'].to_s)
140
+ assert_equals("w3m-ssl 0.2.1-2", @ff['w3m-ssl_0.2.1-2'].to_s)
141
+ end
142
+
143
+ end
144
+
145
+ if $0 == __FILE__
146
+ if ARGV.size == 0
147
+ suite = TestDebian__Field.suite
148
+ else
149
+ suite = RUNIT::TestSuite.new
150
+ ARGV.each do |testmethod|
151
+ suite.add_test(TestDebian__Control.new(testmethod))
152
+ end
153
+ end
154
+ RUNIT::CUI::TestRunner.run(suite)
155
+ end