ruby-debian 0.3.8

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 (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