barby 0.6.8 → 0.7.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.
- checksums.yaml +4 -4
- data/CHANGELOG +9 -0
- data/README.md +2 -1
- data/barby.gemspec +17 -17
- data/lib/barby/barcode/data_matrix.rb +42 -7
- data/lib/barby/outputter/rmagick_outputter.rb +1 -1
- data/lib/barby/version.rb +2 -2
- data/test/bookland_test.rb +10 -8
- data/test/codabar_test.rb +7 -4
- data/test/code_128_test.rb +134 -128
- data/test/code_25_iata_test.rb +2 -2
- data/test/code_25_interleaved_test.rb +24 -18
- data/test/code_25_test.rb +36 -26
- data/test/code_39_test.rb +35 -32
- data/test/code_93_test.rb +31 -28
- data/test/data_matrix_test.rb +19 -8
- data/test/ean13_test.rb +31 -28
- data/test/ean8_test.rb +10 -10
- data/test/outputter/cairo_outputter_test.rb +31 -29
- data/test/outputter/html_outputter_test.rb +1 -2
- data/test/outputter/pdfwriter_outputter_test.rb +7 -7
- data/test/outputter/png_outputter_test.rb +9 -9
- data/test/outputter/prawn_outputter_test.rb +22 -22
- data/test/outputter/rmagick_outputter_test.rb +22 -22
- data/test/outputter/svg_outputter_test.rb +32 -31
- data/test/outputter_test.rb +30 -32
- data/test/pdf_417_test.rb +23 -23
- data/test/qr_code_test.rb +42 -37
- data/test/test_helper.rb +1 -1
- data/test/upc_supplemental_test.rb +39 -39
- metadata +26 -49
data/test/ean13_test.rb
CHANGED
@@ -29,7 +29,9 @@ class EAN13Test < Barby::TestCase
|
|
29
29
|
end
|
30
30
|
|
31
31
|
it "should raise an exception when data is invalid" do
|
32
|
-
|
32
|
+
assert_raises ArgumentError do
|
33
|
+
EAN13.new('123')
|
34
|
+
end
|
33
35
|
end
|
34
36
|
|
35
37
|
end
|
@@ -42,40 +44,41 @@ class EAN13Test < Barby::TestCase
|
|
42
44
|
end
|
43
45
|
|
44
46
|
it "should have the same data as was passed to it" do
|
45
|
-
@
|
47
|
+
assert_equal @data, @code.data
|
46
48
|
end
|
47
49
|
|
48
50
|
it "should have the expected characters" do
|
49
|
-
|
51
|
+
assert_equal @data.split(//), @code.characters
|
50
52
|
end
|
51
53
|
|
52
54
|
it "should have the expected numbers" do
|
53
|
-
|
55
|
+
assert_equal @data.split(//).map{|s| s.to_i }, @code.numbers
|
54
56
|
end
|
55
57
|
|
56
58
|
it "should have the expected odd_and_even_numbers" do
|
57
|
-
|
59
|
+
assert_equal [[2,4,1,7,5,0], [1,6,8,6,7,0]], @code.odd_and_even_numbers
|
58
60
|
end
|
59
61
|
|
60
62
|
it "should have the expected left_numbers" do
|
61
|
-
|
62
|
-
|
63
|
+
# 0=second number in number system code
|
64
|
+
assert_equal [0,7,5,6,7,8], @code.left_numbers
|
63
65
|
end
|
64
66
|
|
65
67
|
it "should have the expected right_numbers" do
|
66
|
-
|
68
|
+
# 5=checksum
|
69
|
+
assert_equal [1,6,4,1,2,5], @code.right_numbers
|
67
70
|
end
|
68
71
|
|
69
72
|
it "should have the expected numbers_with_checksum" do
|
70
|
-
|
73
|
+
assert_equal @data.split(//).map{|s| s.to_i } + [5], @code.numbers_with_checksum
|
71
74
|
end
|
72
75
|
|
73
76
|
it "should have the expected data_with_checksum" do
|
74
|
-
|
77
|
+
assert_equal @data+'5', @code.data_with_checksum
|
75
78
|
end
|
76
79
|
|
77
80
|
it "should return all digits and the checksum on to_s" do
|
78
|
-
@code.to_s
|
81
|
+
assert_equal '0075678164125', @code.to_s
|
79
82
|
end
|
80
83
|
|
81
84
|
end
|
@@ -87,19 +90,19 @@ class EAN13Test < Barby::TestCase
|
|
87
90
|
end
|
88
91
|
|
89
92
|
it "should have the expected weighted_sum" do
|
90
|
-
@code.weighted_sum
|
93
|
+
assert_equal 85, @code.weighted_sum
|
91
94
|
@code.data = '007567816413'
|
92
|
-
@code.weighted_sum
|
95
|
+
assert_equal 88, @code.weighted_sum
|
93
96
|
end
|
94
97
|
|
95
98
|
it "should have the correct checksum" do
|
96
|
-
@code.checksum
|
99
|
+
assert_equal 5, @code.checksum
|
97
100
|
@code.data = '007567816413'
|
98
|
-
@code.checksum
|
101
|
+
assert_equal 2, @code.checksum
|
99
102
|
end
|
100
103
|
|
101
104
|
it "should have the correct checksum_encoding" do
|
102
|
-
@code.checksum_encoding
|
105
|
+
assert_equal '1001110', @code.checksum_encoding
|
103
106
|
end
|
104
107
|
|
105
108
|
end
|
@@ -111,36 +114,36 @@ class EAN13Test < Barby::TestCase
|
|
111
114
|
end
|
112
115
|
|
113
116
|
it "should have the expected checksum" do
|
114
|
-
@code.checksum
|
117
|
+
assert_equal 9, @code.checksum
|
115
118
|
end
|
116
119
|
|
117
120
|
it "should have the expected checksum_encoding" do
|
118
|
-
@code.checksum_encoding
|
121
|
+
assert_equal '1110100', @code.checksum_encoding
|
119
122
|
end
|
120
123
|
|
121
124
|
it "should have the expected left_parity_map" do
|
122
|
-
|
125
|
+
assert_equal [:odd, :even, :odd, :even, :odd, :even], @code.left_parity_map
|
123
126
|
end
|
124
127
|
|
125
128
|
it "should have the expected left_encodings" do
|
126
|
-
|
129
|
+
assert_equal %w(0110001 0100111 0011001 0100111 0111101 0110011), @code.left_encodings
|
127
130
|
end
|
128
131
|
|
129
132
|
it "should have the expected right_encodings" do
|
130
|
-
|
133
|
+
assert_equal %w(1000010 1100110 1100110 1000010 1110010 1110100), @code.right_encodings
|
131
134
|
end
|
132
135
|
|
133
136
|
it "should have the expected left_encoding" do
|
134
|
-
@code.left_encoding
|
137
|
+
assert_equal '011000101001110011001010011101111010110011', @code.left_encoding
|
135
138
|
end
|
136
139
|
|
137
140
|
it "should have the expected right_encoding" do
|
138
|
-
@code.right_encoding
|
141
|
+
assert_equal '100001011001101100110100001011100101110100', @code.right_encoding
|
139
142
|
end
|
140
143
|
|
141
144
|
it "should have the expected encoding" do
|
142
|
-
|
143
|
-
|
145
|
+
# Start Left Center Right Stop
|
146
|
+
assert_equal '101' + '011000101001110011001010011101111010110011' + '01010' + '100001011001101100110100001011100101110100' + '101', @code.encoding
|
144
147
|
end
|
145
148
|
|
146
149
|
end
|
@@ -152,15 +155,15 @@ class EAN13Test < Barby::TestCase
|
|
152
155
|
end
|
153
156
|
|
154
157
|
it "should have the expected start_encoding" do
|
155
|
-
@code.start_encoding
|
158
|
+
assert_equal '101', @code.start_encoding
|
156
159
|
end
|
157
160
|
|
158
161
|
it "should have the expected stop_encoding" do
|
159
|
-
@code.stop_encoding
|
162
|
+
assert_equal '101', @code.stop_encoding
|
160
163
|
end
|
161
164
|
|
162
165
|
it "should have the expected center_encoding" do
|
163
|
-
@code.center_encoding
|
166
|
+
assert_equal '01010', @code.center_encoding
|
164
167
|
end
|
165
168
|
|
166
169
|
end
|
data/test/ean8_test.rb
CHANGED
@@ -37,11 +37,11 @@ class EAN8Test < Barby::TestCase
|
|
37
37
|
end
|
38
38
|
|
39
39
|
it "should have the expected weighted_sum" do
|
40
|
-
@code.weighted_sum
|
40
|
+
assert_equal 53, @code.weighted_sum
|
41
41
|
end
|
42
42
|
|
43
43
|
it "should have the expected checksum" do
|
44
|
-
@code.checksum
|
44
|
+
assert_equal 7, @code.checksum
|
45
45
|
end
|
46
46
|
|
47
47
|
end
|
@@ -54,24 +54,24 @@ class EAN8Test < Barby::TestCase
|
|
54
54
|
end
|
55
55
|
|
56
56
|
it "should have the expected data" do
|
57
|
-
@
|
57
|
+
assert_equal @data, @code.data
|
58
58
|
end
|
59
59
|
|
60
60
|
it "should have the expected odd_and_even_numbers" do
|
61
|
-
|
61
|
+
assert_equal [[5,3,1,5],[4,2,5]], @code.odd_and_even_numbers
|
62
62
|
end
|
63
63
|
|
64
64
|
it "should have the expected left_numbers" do
|
65
65
|
#EAN-8 includes the first character in the left-hand encoding, unlike EAN-13
|
66
|
-
|
66
|
+
assert_equal [5,5,1,2], @code.left_numbers
|
67
67
|
end
|
68
68
|
|
69
69
|
it "should have the expected right_numbers" do
|
70
|
-
|
70
|
+
assert_equal [3,4,5,7], @code.right_numbers
|
71
71
|
end
|
72
72
|
|
73
73
|
it "should return the data with checksum on to_s" do
|
74
|
-
@code.to_s
|
74
|
+
assert_equal '55123457', @code.to_s
|
75
75
|
end
|
76
76
|
|
77
77
|
end
|
@@ -83,15 +83,15 @@ class EAN8Test < Barby::TestCase
|
|
83
83
|
end
|
84
84
|
|
85
85
|
it "should have the expected left_parity_map" do
|
86
|
-
|
86
|
+
assert_equal [:odd, :odd, :odd, :odd], @code.left_parity_map
|
87
87
|
end
|
88
88
|
|
89
89
|
it "should have the expected left_encoding" do
|
90
|
-
@code.left_encoding
|
90
|
+
assert_equal '0110001011000100110010010011', @code.left_encoding
|
91
91
|
end
|
92
92
|
|
93
93
|
it "should have the expected right_encoding" do
|
94
|
-
@code.right_encoding
|
94
|
+
assert_equal '1000010101110010011101000100', @code.right_encoding
|
95
95
|
end
|
96
96
|
|
97
97
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
3
|
class CairoOutputterTest < Barby::TestCase
|
4
|
-
|
4
|
+
|
5
5
|
def ps_available?
|
6
6
|
Cairo.const_defined?(:PSSurface)
|
7
7
|
end
|
@@ -29,62 +29,62 @@ class CairoOutputterTest < Barby::TestCase
|
|
29
29
|
end
|
30
30
|
|
31
31
|
it "should have defined the render_to_cairo_context method" do
|
32
|
-
@outputters.
|
32
|
+
assert @outputters.include?(:render_to_cairo_context)
|
33
33
|
end
|
34
34
|
|
35
35
|
it "should have defined the to_png method" do
|
36
|
-
@outputters.
|
36
|
+
assert @outputters.include?(:to_png)
|
37
37
|
end
|
38
38
|
|
39
39
|
it "should have defined the to_ps and to_eps method if available" do
|
40
40
|
if ps_available?
|
41
|
-
@outputters.
|
41
|
+
assert @outputters.include?(:to_ps)
|
42
42
|
if eps_available?
|
43
|
-
@outputters.
|
43
|
+
assert @outputters.include?(:to_eps)
|
44
44
|
else
|
45
|
-
@outputters.
|
45
|
+
refute @outputters.include?(:to_eps)
|
46
46
|
end
|
47
47
|
else
|
48
|
-
@outputters.
|
49
|
-
@outputters.
|
48
|
+
refute @outputters.include?(:to_ps)
|
49
|
+
refute @outputters.include?(:to_eps)
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
53
|
it "should have defined the to_pdf method if available" do
|
54
54
|
if pdf_available?
|
55
|
-
@outputters.
|
55
|
+
assert @outputters.include?(:to_pdf)
|
56
56
|
else
|
57
|
-
@outputters.
|
57
|
+
refute @outputters.include?(:to_pdf)
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
61
61
|
it "should have defined the to_svg method if available" do
|
62
62
|
if svg_available?
|
63
|
-
@outputters.
|
63
|
+
assert @outputters.include?(:to_svg)
|
64
64
|
else
|
65
|
-
@outputters.
|
65
|
+
refute @outputters.include?(:to_svg)
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
69
|
it "should return the cairo context object it was given in render_to_cairo_context" do
|
70
|
-
@barcode.render_to_cairo_context(@context).object_id
|
70
|
+
assert_equal @context.object_id, @barcode.render_to_cairo_context(@context).object_id
|
71
71
|
end
|
72
72
|
|
73
73
|
it "should return PNG image by the to_png method" do
|
74
74
|
png = @barcode.to_png
|
75
75
|
data = ruby_19_or_greater? ? png.force_encoding('BINARY') : png
|
76
|
-
|
76
|
+
assert_match /\A\x89PNG/n, data
|
77
77
|
end
|
78
78
|
|
79
79
|
it "should return PS document by the to_ps method" do
|
80
80
|
if ps_available?
|
81
|
-
|
81
|
+
assert_match /\A%!PS-Adobe-[\d.]/, @barcode.to_ps
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
85
|
it "should return EPS document by the to_eps method" do
|
86
86
|
if eps_available?
|
87
|
-
|
87
|
+
assert_match /\A%!PS-Adobe-[\d.]+ EPSF-[\d.]+/, @barcode.to_eps
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
@@ -92,38 +92,40 @@ class CairoOutputterTest < Barby::TestCase
|
|
92
92
|
if pdf_available?
|
93
93
|
pdf = @barcode.to_pdf
|
94
94
|
data = ruby_19_or_greater? ? pdf.force_encoding('BINARY') : pdf
|
95
|
-
|
95
|
+
assert_match /\A%PDF-[\d.]+/n, data
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
99
99
|
it "should return SVG document by the to_svg method" do
|
100
100
|
if svg_available?
|
101
|
-
|
101
|
+
assert_match /<\/svg>\s*\Z/m, @barcode.to_svg
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
105
|
it "should have x, y, width, height, full_width, full_height, xdim and margin attributes" do
|
106
|
-
@outputter.
|
107
|
-
@outputter.
|
108
|
-
@outputter.
|
109
|
-
@outputter.
|
110
|
-
@outputter.
|
111
|
-
@outputter.
|
112
|
-
@outputter.
|
113
|
-
@outputter.
|
106
|
+
assert @outputter.respond_to?(:x)
|
107
|
+
assert @outputter.respond_to?(:y)
|
108
|
+
assert @outputter.respond_to?(:width)
|
109
|
+
assert @outputter.respond_to?(:height)
|
110
|
+
assert @outputter.respond_to?(:full_width)
|
111
|
+
assert @outputter.respond_to?(:full_height)
|
112
|
+
assert @outputter.respond_to?(:xdim)
|
113
|
+
assert @outputter.respond_to?(:margin)
|
114
114
|
end
|
115
115
|
|
116
116
|
it "should not change attributes when given an options hash to render" do
|
117
117
|
%w(x y height xdim).each do |m|
|
118
118
|
@outputter.send("#{m}=", 10)
|
119
|
-
@outputter.send(m)
|
119
|
+
assert_equal 10, @outputter.send(m)
|
120
120
|
end
|
121
121
|
@outputter.render_to_cairo_context(@context,
|
122
122
|
:x => 20,
|
123
123
|
:y => 20,
|
124
124
|
:height => 20,
|
125
125
|
:xdim => 20)
|
126
|
-
%w(x y height xdim).each
|
126
|
+
%w(x y height xdim).each do |m|
|
127
|
+
assert_equal 10, @outputter.send(m)
|
128
|
+
end
|
127
129
|
end
|
128
|
-
|
130
|
+
|
129
131
|
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
require 'barby/barcode/code_128'
|
3
|
-
#require 'barby/outputter/html_outputter'
|
4
3
|
|
5
4
|
class HtmlOutputterTest < Barby::TestCase
|
6
5
|
|
@@ -21,7 +20,7 @@ class HtmlOutputterTest < Barby::TestCase
|
|
21
20
|
end
|
22
21
|
|
23
22
|
it "should register to_html" do
|
24
|
-
Barcode.outputters.
|
23
|
+
assert Barcode.outputters.include?(:to_html)
|
25
24
|
end
|
26
25
|
|
27
26
|
it 'should have the expected start HTML' do
|
@@ -14,22 +14,22 @@ unless RUBY_VERSION >= '1.9'
|
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should have registered annotate_pdf" do
|
17
|
-
Barcode.outputters.
|
17
|
+
assert Barcode.outputters.include?(:annotate_pdf)
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should have defined the annotate_pdf method" do
|
21
|
-
@outputter.
|
21
|
+
assert @outputter.respond_to?(:annotate_pdf)
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should return the pdf object it was given in annotate_pdf" do
|
25
|
-
@barcode.annotate_pdf(@pdf).object_id
|
25
|
+
assert_equal @pdf.object_id, @barcode.annotate_pdf(@pdf).object_id
|
26
26
|
end
|
27
27
|
|
28
28
|
it "should have x, y, height and xdim attributes" do
|
29
|
-
@outputter.
|
30
|
-
@outputter.
|
31
|
-
@outputter.
|
32
|
-
@outputter.
|
29
|
+
assert @outputter.respond_to?(:x)
|
30
|
+
assert @outputter.respond_to?(:y)
|
31
|
+
assert @outputter.respond_to?(:height)
|
32
|
+
assert @outputter.respond_to?(:xdim)
|
33
33
|
end
|
34
34
|
|
35
35
|
end
|
@@ -16,34 +16,34 @@ class PngOutputterTest < Barby::TestCase
|
|
16
16
|
@barcode = PngTestBarcode.new('10110011100011110000')
|
17
17
|
@outputter = PngOutputter.new(@barcode)
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
it "should register to_png and to_image" do
|
21
|
-
Barcode.outputters.
|
22
|
-
Barcode.outputters.
|
21
|
+
assert Barcode.outputters.include?(:to_png)
|
22
|
+
assert Barcode.outputters.include?(:to_image)
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should return a ChunkyPNG::Datastream on to_datastream" do
|
26
|
-
@barcode.to_datastream.
|
26
|
+
assert @barcode.to_datastream.is_a?(ChunkyPNG::Datastream)
|
27
27
|
end
|
28
28
|
|
29
29
|
it "should return a string on to_png" do
|
30
|
-
@barcode.to_png.
|
30
|
+
assert @barcode.to_png.is_a?(String)
|
31
31
|
end
|
32
32
|
|
33
33
|
it "should return a ChunkyPNG::Image on to_canvas" do
|
34
|
-
@barcode.to_image.
|
34
|
+
assert @barcode.to_image.is_a?(ChunkyPNG::Image)
|
35
35
|
end
|
36
36
|
|
37
37
|
it "should have a width equal to Xdim * barcode_string.length" do
|
38
|
-
|
38
|
+
assert_equal @outputter.barcode.encoding.length * @outputter.xdim, @outputter.width
|
39
39
|
end
|
40
40
|
|
41
41
|
it "should have a full_width which is the sum of width + (margin*2)" do
|
42
|
-
@outputter.
|
42
|
+
assert_equal(@outputter.width + (@outputter.margin*2), @outputter.full_width)
|
43
43
|
end
|
44
44
|
|
45
45
|
it "should have a full_height which is the sum of height + (margin*2)" do
|
46
|
-
@outputter.
|
46
|
+
assert_equal(@outputter.height + (@outputter.margin*2), @outputter.full_height)
|
47
47
|
end
|
48
48
|
|
49
49
|
end
|
@@ -10,70 +10,70 @@ class PrawnOutputterTest < Barby::TestCase
|
|
10
10
|
end
|
11
11
|
|
12
12
|
it "should register to_pdf and annotate_pdf" do
|
13
|
-
Barcode.outputters.
|
14
|
-
Barcode.outputters.
|
13
|
+
assert Barcode.outputters.include?(:to_pdf)
|
14
|
+
assert Barcode.outputters.include?(:annotate_pdf)
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should have a to_pdf method" do
|
18
|
-
@outputter.
|
18
|
+
assert @outputter.respond_to?(:to_pdf)
|
19
19
|
end
|
20
20
|
|
21
21
|
it "should return a PDF document in a string on to_pdf" do
|
22
|
-
@barcode.to_pdf.
|
22
|
+
assert @barcode.to_pdf.is_a?(String)
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should return the same Prawn::Document on annotate_pdf" do
|
26
26
|
doc = Prawn::Document.new
|
27
|
-
@barcode.annotate_pdf(doc).object_id
|
27
|
+
assert_equal doc.object_id, @barcode.annotate_pdf(doc).object_id
|
28
28
|
end
|
29
29
|
|
30
30
|
it "should default x and y to margin value" do
|
31
31
|
@outputter.margin = 123
|
32
|
-
@outputter.x
|
33
|
-
@outputter.y
|
32
|
+
assert_equal 123, @outputter.x
|
33
|
+
assert_equal 123, @outputter.y
|
34
34
|
end
|
35
35
|
|
36
36
|
it "should default ydim to xdim value" do
|
37
37
|
@outputter.xdim = 321
|
38
|
-
@outputter.ydim
|
38
|
+
assert_equal 321, @outputter.ydim
|
39
39
|
end
|
40
40
|
|
41
41
|
it "should be able to calculate width required" do
|
42
|
-
|
42
|
+
assert_equal @barcode.encoding.length, @outputter.width
|
43
43
|
@outputter.xdim = 2
|
44
|
-
|
45
|
-
|
44
|
+
assert_equal @barcode.encoding.length * 2, @outputter.width
|
45
|
+
assert_equal @barcode.encoding.length * 2, @outputter.full_width
|
46
46
|
@outputter.margin = 5
|
47
|
-
|
47
|
+
assert_equal((@barcode.encoding.length * 2) + 10, @outputter.full_width)
|
48
48
|
|
49
49
|
#2D
|
50
50
|
barcode = Barcode2D.new
|
51
51
|
def barcode.encoding; ['111', '000', '111'] end
|
52
52
|
outputter = PrawnOutputter.new(barcode)
|
53
|
-
outputter.width
|
53
|
+
assert_equal 3, outputter.width
|
54
54
|
outputter.xdim = 2
|
55
55
|
outputter.margin = 5
|
56
|
-
outputter.width
|
57
|
-
outputter.full_width
|
56
|
+
assert_equal 6, outputter.width
|
57
|
+
assert_equal 16, outputter.full_width
|
58
58
|
end
|
59
59
|
|
60
60
|
it "should be able to calculate height required" do
|
61
|
-
@outputter.
|
61
|
+
assert_equal @outputter.height, @outputter.full_height
|
62
62
|
@outputter.margin = 5
|
63
|
-
|
63
|
+
assert_equal @outputter.height + 10, @outputter.full_height
|
64
64
|
|
65
65
|
#2D
|
66
66
|
barcode = Barcode2D.new
|
67
67
|
def barcode.encoding; ['111', '000', '111'] end
|
68
68
|
outputter = PrawnOutputter.new(barcode)
|
69
|
-
outputter.height
|
69
|
+
assert_equal 3, outputter.height
|
70
70
|
outputter.xdim = 2 #ydim defaults to xdim
|
71
71
|
outputter.margin = 5
|
72
|
-
outputter.height
|
73
|
-
outputter.full_height
|
72
|
+
assert_equal 6, outputter.height
|
73
|
+
assert_equal 16, outputter.full_height
|
74
74
|
outputter.ydim = 3 #ydim overrides xdim when set
|
75
|
-
outputter.height
|
76
|
-
outputter.full_height
|
75
|
+
assert_equal 9, outputter.height
|
76
|
+
assert_equal 19, outputter.full_height
|
77
77
|
end
|
78
78
|
|
79
79
|
end
|
@@ -18,49 +18,49 @@ class RmagickOutputterTest < Barby::TestCase
|
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should register to_png, to_gif, to_jpg, to_image" do
|
21
|
-
Barcode.outputters.
|
22
|
-
Barcode.outputters.
|
23
|
-
Barcode.outputters.
|
24
|
-
Barcode.outputters.
|
21
|
+
assert Barcode.outputters.include?(:to_png)
|
22
|
+
assert Barcode.outputters.include?(:to_gif)
|
23
|
+
assert Barcode.outputters.include?(:to_jpg)
|
24
|
+
assert Barcode.outputters.include?(:to_image)
|
25
25
|
end
|
26
26
|
|
27
27
|
it "should have defined to_png, to_gif, to_jpg, to_image" do
|
28
|
-
@outputter.
|
29
|
-
@outputter.
|
30
|
-
@outputter.
|
31
|
-
@outputter.
|
28
|
+
assert @outputter.respond_to?(:to_png)
|
29
|
+
assert @outputter.respond_to?(:to_gif)
|
30
|
+
assert @outputter.respond_to?(:to_jpg)
|
31
|
+
assert @outputter.respond_to?(:to_image)
|
32
32
|
end
|
33
33
|
|
34
34
|
it "should return a string on to_png and to_gif" do
|
35
|
-
@outputter.to_png.
|
36
|
-
@outputter.to_gif.
|
35
|
+
assert @outputter.to_png.is_a?(String)
|
36
|
+
assert @outputter.to_gif.is_a?(String)
|
37
37
|
end
|
38
38
|
|
39
39
|
it "should return a Magick::Image instance on to_image" do
|
40
|
-
@outputter.to_image.
|
40
|
+
assert @outputter.to_image.is_a?(Magick::Image)
|
41
41
|
end
|
42
42
|
|
43
43
|
it "should have a width equal to the length of the barcode encoding string * x dimension" do
|
44
|
-
@outputter.xdim
|
45
|
-
|
44
|
+
assert_equal 1, @outputter.xdim #Default
|
45
|
+
assert_equal @outputter.barcode.encoding.length, @outputter.width
|
46
46
|
@outputter.xdim = 2
|
47
|
-
|
47
|
+
assert_equal @outputter.barcode.encoding.length * 2, @outputter.width
|
48
48
|
end
|
49
49
|
|
50
50
|
it "should have a full_width equal to the width + left and right margins" do
|
51
|
-
@outputter.xdim
|
52
|
-
@outputter.margin
|
53
|
-
|
51
|
+
assert_equal 1, @outputter.xdim
|
52
|
+
assert_equal 10, @outputter.margin
|
53
|
+
assert_equal((@outputter.width + 10 + 10), @outputter.full_width)
|
54
54
|
end
|
55
55
|
|
56
56
|
it "should have a default height of 100" do
|
57
|
-
@outputter.height
|
57
|
+
assert_equal 100, @outputter.height
|
58
58
|
@outputter.height = 200
|
59
|
-
@outputter.height
|
59
|
+
assert_equal 200, @outputter.height
|
60
60
|
end
|
61
61
|
|
62
62
|
it "should have a full_height equal to the height + top and bottom margins" do
|
63
|
-
@outputter.
|
63
|
+
assert_equal(@outputter.height + (@outputter.margin * 2), @outputter.full_height)
|
64
64
|
end
|
65
65
|
|
66
66
|
describe "#to_image" do
|
@@ -72,8 +72,8 @@ class RmagickOutputterTest < Barby::TestCase
|
|
72
72
|
end
|
73
73
|
|
74
74
|
it "should have a width and height equal to the outputter's full_width and full_height" do
|
75
|
-
@
|
76
|
-
@
|
75
|
+
assert_equal @outputter.full_width, @image.columns
|
76
|
+
assert_equal @outputter.full_height, @image.rows
|
77
77
|
end
|
78
78
|
|
79
79
|
end
|