rocx 0.5.6 → 0.5.7
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/.travis.yml +6 -0
- data/Gemfile.lock +1 -1
- data/lib/rocx.rb +1 -1
- data/lib/rocx/elements/base_container.rb +17 -2
- data/lib/rocx/elements/paragraph.rb +33 -21
- data/lib/rocx/elements/run.rb +2 -2
- data/lib/rocx/elements/style.rb +19 -0
- data/lib/rocx/parts/base_part.rb +4 -0
- data/lib/rocx/parts/content_types.rb +2 -6
- data/lib/rocx/parts/document.rb +2 -3
- data/lib/rocx/parts/global_rels.rb +2 -3
- data/lib/rocx/parts/rels.rb +2 -3
- data/lib/rocx/parts/settings.rb +2 -3
- data/lib/rocx/parts/styles.rb +2 -3
- data/lib/rocx/properties/alignment.rb +1 -1
- data/lib/rocx/properties/attribute_builder.rb +283 -0
- data/lib/rocx/properties/base_property.rb +4 -0
- data/lib/rocx/properties/border.rb +32 -0
- data/lib/rocx/properties/borders.rb +48 -0
- data/lib/rocx/properties/compress_punctuation.rb +11 -0
- data/lib/rocx/properties/frame.rb +70 -0
- data/lib/rocx/properties/indentation.rb +1 -1
- data/lib/rocx/properties/numbering.rb +28 -0
- data/lib/rocx/properties/shading.rb +75 -0
- data/lib/rocx/properties/spacing.rb +38 -0
- data/lib/rocx/properties/tab.rb +77 -0
- data/lib/rocx/properties/tabs.rb +55 -0
- data/lib/rocx/properties/text_direction.rb +15 -0
- data/lib/rocx/properties/textbox_tight_wrap.rb +15 -0
- data/lib/rocx/properties/vertical_alignment.rb +19 -0
- data/lib/rocx/version.rb +1 -1
- data/rocx.gemspec +1 -0
- data/test/package_test.rb +6 -6
- data/test/properties/auto_adjust_right_indent_test.rb +4 -4
- data/test/properties/auto_space_de_test.rb +4 -4
- data/test/properties/auto_space_dn_test.rb +4 -4
- data/test/properties/bidi_test.rb +4 -4
- data/test/properties/bold_test.rb +4 -4
- data/test/properties/border_test.rb +216 -0
- data/test/properties/borders_test.rb +95 -0
- data/test/properties/compress_punctuation_test.rb +50 -0
- data/test/properties/conditional_formatting_test.rb +4 -4
- data/test/properties/contextual_spacing_test.rb +4 -4
- data/test/properties/div_id_test.rb +3 -3
- data/test/properties/frame_test.rb +497 -0
- data/test/properties/italics_test.rb +4 -4
- data/test/properties/keep_lines_test.rb +4 -4
- data/test/properties/keep_next_test.rb +4 -4
- data/test/properties/kinsoku_test.rb +4 -4
- data/test/properties/mirror_indent_test.rb +4 -4
- data/test/properties/numbering_test.rb +86 -0
- data/test/properties/outline_level_test.rb +4 -4
- data/test/properties/overflow_punctuation_test.rb +4 -4
- data/test/properties/page_break_before_test.rb +4 -4
- data/test/properties/shading_test.rb +225 -0
- data/test/properties/snap_to_grid_test.rb +4 -4
- data/test/properties/spacing_test.rb +248 -0
- data/test/properties/style_test.rb +30 -0
- data/test/properties/supress_auto_hyphens_test.rb +4 -4
- data/test/properties/supress_line_numbers_test.rb +4 -4
- data/test/properties/supress_overlap_test.rb +4 -4
- data/test/properties/tab_test.rb +63 -0
- data/test/properties/tabs_test.rb +54 -0
- data/test/properties/text_direction_test.rb +100 -0
- data/test/properties/textbox_tight_wrap_test.rb +88 -0
- data/test/properties/vertical_alignment_test.rb +88 -0
- data/test/properties/widow_control_test.rb +4 -4
- data/test/properties/word_wrap_test.rb +4 -4
- data/test/test_helper.rb +2 -5
- metadata +45 -3
@@ -0,0 +1,95 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class BordersTest < PropertyTest
|
4
|
+
attr_reader :borders
|
5
|
+
|
6
|
+
context "always" do
|
7
|
+
setup do
|
8
|
+
@borders = Borders.new
|
9
|
+
end
|
10
|
+
|
11
|
+
should "set the right tag" do
|
12
|
+
assert_equal :pBdr, borders.tag
|
13
|
+
end
|
14
|
+
|
15
|
+
should "set the right name" do
|
16
|
+
assert_equal "borders", borders.name
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "when setting values, it" do
|
21
|
+
setup do
|
22
|
+
@borders = Borders.new
|
23
|
+
end
|
24
|
+
|
25
|
+
should "allow left borders" do
|
26
|
+
assert_nothing_raised do
|
27
|
+
borders.left.color = :auto
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
should "allow right borders" do
|
32
|
+
assert_nothing_raised do
|
33
|
+
borders.right.size = 24
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
should "allow top borders" do
|
38
|
+
assert_nothing_raised do
|
39
|
+
borders.top.space = 1
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
should "allow bottom borders" do
|
44
|
+
assert_nothing_raised do
|
45
|
+
borders.bottom.type = :apples
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
should "allow between borders" do
|
50
|
+
assert_nothing_raised do
|
51
|
+
borders.between.shadow = true
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
should "allow bar borders" do
|
56
|
+
assert_nothing_raised do
|
57
|
+
borders.bar.theme_color = :accent2
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context "with no values set, it" do
|
63
|
+
setup do
|
64
|
+
@borders = Borders.new
|
65
|
+
end
|
66
|
+
|
67
|
+
should "not return any XML" do
|
68
|
+
assert_equal "", xml(borders)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
context "when one border has at least one property set, it" do
|
73
|
+
setup do
|
74
|
+
@borders = Borders.new
|
75
|
+
borders.left.type = :apples
|
76
|
+
end
|
77
|
+
|
78
|
+
should "return the XML" do
|
79
|
+
assert_equal "<w:pBdr>\n <w:left w:val=\"apples\"/>\n </w:pBdr>", xml(borders)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
context "when more than one border has at least one property set, it" do
|
84
|
+
setup do
|
85
|
+
@borders = Borders.new
|
86
|
+
borders.left.color = "FF0000"
|
87
|
+
borders.right.type = :apples
|
88
|
+
end
|
89
|
+
|
90
|
+
should "return the correct XML" do
|
91
|
+
assert_equal "<w:pBdr>\n <w:left w:color=\"FF0000\"/>\n <w:right w:val=\"apples\"/>\n </w:pBdr>", xml(borders)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class CompressPunctuationTest < PropertyTest
|
4
|
+
attr_reader :compress_punctuation
|
5
|
+
|
6
|
+
context "always" do
|
7
|
+
setup do
|
8
|
+
@compress_punctuation = CompressPunctuation.new(:on)
|
9
|
+
end
|
10
|
+
|
11
|
+
should "have the right tag" do
|
12
|
+
assert_equal :topLinePunct, compress_punctuation.tag
|
13
|
+
end
|
14
|
+
|
15
|
+
should "have the right name" do
|
16
|
+
assert_equal "compress_punctuation", compress_punctuation.name
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "when the value is on, it" do
|
21
|
+
setup do
|
22
|
+
@compress_punctuation = CompressPunctuation.new(:on)
|
23
|
+
end
|
24
|
+
|
25
|
+
should "return XML to that effect" do
|
26
|
+
assert_equal "<w:topLinePunct w:val=\"on\"/>", xml(compress_punctuation)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context "when the value is off, it" do
|
31
|
+
setup do
|
32
|
+
@compress_punctuation = CompressPunctuation.new(:off)
|
33
|
+
end
|
34
|
+
|
35
|
+
should "return XML to that effect" do
|
36
|
+
assert_equal "<w:topLinePunct w:val=\"off\"/>", xml(compress_punctuation)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context "when the value is nil, it" do
|
41
|
+
setup do
|
42
|
+
@compress_punctuation = CompressPunctuation.new(nil)
|
43
|
+
end
|
44
|
+
|
45
|
+
should "not return XML" do
|
46
|
+
assert_equal "", xml(compress_punctuation)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -5,7 +5,7 @@ class ConditionalFormattingTest < PropertyTest
|
|
5
5
|
|
6
6
|
context "always" do
|
7
7
|
setup do
|
8
|
-
@cnf_style =
|
8
|
+
@cnf_style = ConditionalFormatting.new
|
9
9
|
end
|
10
10
|
|
11
11
|
should "have the correct tag" do
|
@@ -20,7 +20,7 @@ class ConditionalFormattingTest < PropertyTest
|
|
20
20
|
context "trying to set an invalid property" do
|
21
21
|
should "raise an error" do
|
22
22
|
assert_raises ArgumentError do
|
23
|
-
@cnf_style =
|
23
|
+
@cnf_style = ConditionalFormatting.new(bad: true)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -28,14 +28,14 @@ class ConditionalFormattingTest < PropertyTest
|
|
28
28
|
context "trying to set an invalid value to a valid property" do
|
29
29
|
should "raise an error" do
|
30
30
|
assert_raises ArgumentError do
|
31
|
-
@cnf_style =
|
31
|
+
@cnf_style = ConditionalFormatting.new(even_v: :bad)
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
36
|
context "with valid properties and values, it" do
|
37
37
|
setup do
|
38
|
-
@cnf_style =
|
38
|
+
@cnf_style = ConditionalFormatting.new(first_row: true, first_column: true, first_row_first_column: true)
|
39
39
|
end
|
40
40
|
|
41
41
|
should "render the correct XML" do
|
@@ -5,7 +5,7 @@ class ContextualSpacingTest < PropertyTest
|
|
5
5
|
|
6
6
|
context "always" do
|
7
7
|
setup do
|
8
|
-
@contextual_spacing =
|
8
|
+
@contextual_spacing = ContextualSpacing.new(false)
|
9
9
|
end
|
10
10
|
|
11
11
|
should "have the right tag" do
|
@@ -19,7 +19,7 @@ class ContextualSpacingTest < PropertyTest
|
|
19
19
|
|
20
20
|
context "when the value is true, it" do
|
21
21
|
setup do
|
22
|
-
@contextual_spacing =
|
22
|
+
@contextual_spacing = ContextualSpacing.new(true)
|
23
23
|
end
|
24
24
|
|
25
25
|
should "return XML" do
|
@@ -29,7 +29,7 @@ class ContextualSpacingTest < PropertyTest
|
|
29
29
|
|
30
30
|
context "when the value is false, it" do
|
31
31
|
setup do
|
32
|
-
@contextual_spacing =
|
32
|
+
@contextual_spacing = ContextualSpacing.new(false)
|
33
33
|
end
|
34
34
|
|
35
35
|
should "not return XML" do
|
@@ -39,7 +39,7 @@ class ContextualSpacingTest < PropertyTest
|
|
39
39
|
|
40
40
|
context "when the value is nil, it" do
|
41
41
|
setup do
|
42
|
-
@contextual_spacing =
|
42
|
+
@contextual_spacing = ContextualSpacing.new(nil)
|
43
43
|
end
|
44
44
|
|
45
45
|
should "not return XML" do
|
@@ -5,7 +5,7 @@ class DivIdTest < PropertyTest
|
|
5
5
|
|
6
6
|
context "always" do
|
7
7
|
setup do
|
8
|
-
@div_id =
|
8
|
+
@div_id = DivId.new(0)
|
9
9
|
end
|
10
10
|
|
11
11
|
should "have the right tag" do
|
@@ -20,14 +20,14 @@ class DivIdTest < PropertyTest
|
|
20
20
|
context "with non-integer values, it" do
|
21
21
|
should "raise an error" do
|
22
22
|
assert_raises ArgumentError do
|
23
|
-
@div_id =
|
23
|
+
@div_id = DivId.new(:big)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
context "with valid value, it" do
|
29
29
|
setup do
|
30
|
-
@div_id =
|
30
|
+
@div_id = DivId.new(2)
|
31
31
|
end
|
32
32
|
|
33
33
|
should "return the proper XML" do
|
@@ -0,0 +1,497 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class FrameTest < PropertyTest
|
4
|
+
attr_reader :frame
|
5
|
+
|
6
|
+
context "always" do
|
7
|
+
setup do
|
8
|
+
@frame = Frame.new
|
9
|
+
end
|
10
|
+
|
11
|
+
should "have the correct tag" do
|
12
|
+
assert_equal :framePr, frame.tag
|
13
|
+
end
|
14
|
+
|
15
|
+
should "have the correct name" do
|
16
|
+
assert_equal "frame", frame.name
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "for the anchor lock attribute" do
|
21
|
+
setup do
|
22
|
+
@frame = Frame.new
|
23
|
+
end
|
24
|
+
|
25
|
+
should "allow true or false" do
|
26
|
+
assert_nothing_raised do
|
27
|
+
frame.anchor_lock = true
|
28
|
+
end
|
29
|
+
|
30
|
+
assert_nothing_raised do
|
31
|
+
frame.anchor_lock = false
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
should "not allow anything else" do
|
36
|
+
assert_raises ArgumentError do
|
37
|
+
frame.anchor_lock = :maybe
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context "for the drop cap attribute" do
|
43
|
+
setup do
|
44
|
+
@frame = Frame.new
|
45
|
+
end
|
46
|
+
|
47
|
+
should "allow :drop" do
|
48
|
+
assert_nothing_raised do
|
49
|
+
frame.drop_cap = :drop
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
should "allow :margin" do
|
54
|
+
assert_nothing_raised do
|
55
|
+
frame.drop_cap = :margin
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
should "allow :none" do
|
60
|
+
assert_nothing_raised do
|
61
|
+
frame.drop_cap = :none
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
should "not allow anything else" do
|
66
|
+
assert_raises ArgumentError do
|
67
|
+
frame.drop_cap = :bad
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
context "for the height attribute" do
|
73
|
+
setup do
|
74
|
+
@frame = Frame.new
|
75
|
+
end
|
76
|
+
|
77
|
+
should "allow positive integers" do
|
78
|
+
assert_nothing_raised do
|
79
|
+
frame.height = 24
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
should "not allow anything else" do
|
84
|
+
assert_raises ArgumentError do
|
85
|
+
frame.height = -24
|
86
|
+
end
|
87
|
+
|
88
|
+
assert_raises ArgumentError do
|
89
|
+
frame.height = :big
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
context "for the horizonal anchor attribute" do
|
95
|
+
setup do
|
96
|
+
@frame = Frame.new
|
97
|
+
end
|
98
|
+
|
99
|
+
should "allow :margin" do
|
100
|
+
assert_nothing_raised do
|
101
|
+
frame.horizontal_anchor = :margin
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
should "allow :page" do
|
106
|
+
assert_nothing_raised do
|
107
|
+
frame.horizontal_anchor = :page
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
should "allow :text" do
|
112
|
+
assert_nothing_raised do
|
113
|
+
frame.horizontal_anchor = :text
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
should "not allow anything else" do
|
118
|
+
assert_raises ArgumentError do
|
119
|
+
frame.horizontal_anchor = :something_bad
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
context "for the height rule attribute" do
|
125
|
+
setup do
|
126
|
+
@frame = Frame.new
|
127
|
+
end
|
128
|
+
|
129
|
+
should "allow :atLeast" do
|
130
|
+
assert_nothing_raised do
|
131
|
+
frame.height_rule = :atLeast
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
should "allow :auto" do
|
136
|
+
assert_nothing_raised do
|
137
|
+
frame.height_rule = :auto
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
should "allow :exact" do
|
142
|
+
assert_nothing_raised do
|
143
|
+
frame.height_rule = :exact
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
should "not allow anything else" do
|
148
|
+
assert_raises ArgumentError do
|
149
|
+
frame.height_rule = :something_bad
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
context "for the horizontal padding attribute" do
|
155
|
+
setup do
|
156
|
+
@frame = Frame.new
|
157
|
+
end
|
158
|
+
|
159
|
+
should "allow positive integers" do
|
160
|
+
assert_nothing_raised do
|
161
|
+
frame.horizontal_padding = 24
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
should "not allow anything else" do
|
166
|
+
assert_raises ArgumentError do
|
167
|
+
frame.horizontal_padding = -23
|
168
|
+
end
|
169
|
+
|
170
|
+
assert_raises ArgumentError do
|
171
|
+
frame.horizontal_padding = 19.4
|
172
|
+
end
|
173
|
+
|
174
|
+
assert_raises ArgumentError do
|
175
|
+
frame.horizontal_padding = :two
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
context "for the lines attribute" do
|
181
|
+
setup do
|
182
|
+
@frame = Frame.new
|
183
|
+
end
|
184
|
+
|
185
|
+
should "allow positive integers" do
|
186
|
+
assert_nothing_raised do
|
187
|
+
frame.lines = 24
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
should "not allow anything else" do
|
192
|
+
assert_raises ArgumentError do
|
193
|
+
frame.lines = -23
|
194
|
+
end
|
195
|
+
|
196
|
+
assert_raises ArgumentError do
|
197
|
+
frame.lines = 19.4
|
198
|
+
end
|
199
|
+
|
200
|
+
assert_raises ArgumentError do
|
201
|
+
frame.lines = :two
|
202
|
+
end
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
206
|
+
context "for the vertical anchor attribute" do
|
207
|
+
setup do
|
208
|
+
@frame = Frame.new
|
209
|
+
end
|
210
|
+
|
211
|
+
should "allow :margin" do
|
212
|
+
assert_nothing_raised do
|
213
|
+
frame.vertical_anchor = :margin
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
217
|
+
should "allow :page" do
|
218
|
+
assert_nothing_raised do
|
219
|
+
frame.vertical_anchor = :page
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
should "allow :text" do
|
224
|
+
assert_nothing_raised do
|
225
|
+
frame.vertical_anchor = :text
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
should "not allow anything else" do
|
230
|
+
assert_raises ArgumentError do
|
231
|
+
frame.vertical_anchor = :something_bad
|
232
|
+
end
|
233
|
+
end
|
234
|
+
end
|
235
|
+
|
236
|
+
context "for the vertical padding attribute" do
|
237
|
+
setup do
|
238
|
+
@frame = Frame.new
|
239
|
+
end
|
240
|
+
|
241
|
+
should "allow positive integers" do
|
242
|
+
assert_nothing_raised do
|
243
|
+
frame.vertical_padding = 24
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
should "not allow anything else" do
|
248
|
+
assert_raises ArgumentError do
|
249
|
+
frame.vertical_padding = -23
|
250
|
+
end
|
251
|
+
|
252
|
+
assert_raises ArgumentError do
|
253
|
+
frame.vertical_padding = 19.4
|
254
|
+
end
|
255
|
+
|
256
|
+
assert_raises ArgumentError do
|
257
|
+
frame.vertical_padding = :two
|
258
|
+
end
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
context "for the width attribute" do
|
263
|
+
setup do
|
264
|
+
@frame = Frame.new
|
265
|
+
end
|
266
|
+
|
267
|
+
should "allow positive integers" do
|
268
|
+
assert_nothing_raised do
|
269
|
+
frame.width = 24
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
should "not allow anything else" do
|
274
|
+
assert_raises ArgumentError do
|
275
|
+
frame.width = -23
|
276
|
+
end
|
277
|
+
|
278
|
+
assert_raises ArgumentError do
|
279
|
+
frame.width = 19.4
|
280
|
+
end
|
281
|
+
|
282
|
+
assert_raises ArgumentError do
|
283
|
+
frame.width = :two
|
284
|
+
end
|
285
|
+
end
|
286
|
+
end
|
287
|
+
|
288
|
+
context "for the wrap attribute" do
|
289
|
+
setup do
|
290
|
+
@frame = Frame.new
|
291
|
+
end
|
292
|
+
|
293
|
+
should "allow :around" do
|
294
|
+
assert_nothing_raised do
|
295
|
+
frame.wrap = :around
|
296
|
+
end
|
297
|
+
end
|
298
|
+
|
299
|
+
should "allow :auto" do
|
300
|
+
assert_nothing_raised do
|
301
|
+
frame.wrap = :auto
|
302
|
+
end
|
303
|
+
end
|
304
|
+
|
305
|
+
should "allow :none" do
|
306
|
+
assert_nothing_raised do
|
307
|
+
frame.wrap = :none
|
308
|
+
end
|
309
|
+
end
|
310
|
+
|
311
|
+
should "allow :notBeside" do
|
312
|
+
assert_nothing_raised do
|
313
|
+
frame.wrap = :notBeside
|
314
|
+
end
|
315
|
+
end
|
316
|
+
|
317
|
+
should "allow :through" do
|
318
|
+
assert_nothing_raised do
|
319
|
+
frame.wrap = :through
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
should "allow :tight" do
|
324
|
+
assert_nothing_raised do
|
325
|
+
frame.wrap = :tight
|
326
|
+
end
|
327
|
+
end
|
328
|
+
|
329
|
+
should "not allow anything else" do
|
330
|
+
assert_raises ArgumentError do
|
331
|
+
frame.wrap = :something_bad
|
332
|
+
end
|
333
|
+
end
|
334
|
+
end
|
335
|
+
|
336
|
+
context "for the horizontal position attribute" do
|
337
|
+
setup do
|
338
|
+
@frame = Frame.new
|
339
|
+
end
|
340
|
+
|
341
|
+
should "allow integers" do
|
342
|
+
assert_nothing_raised do
|
343
|
+
frame.horizontal_position = 24
|
344
|
+
end
|
345
|
+
|
346
|
+
assert_nothing_raised do
|
347
|
+
frame.horizontal_position = -24
|
348
|
+
end
|
349
|
+
end
|
350
|
+
|
351
|
+
should "not allow anything else" do
|
352
|
+
assert_raises ArgumentError do
|
353
|
+
frame.horizontal_position = 19.4
|
354
|
+
end
|
355
|
+
|
356
|
+
assert_raises ArgumentError do
|
357
|
+
frame.horizontal_position = :two
|
358
|
+
end
|
359
|
+
end
|
360
|
+
end
|
361
|
+
|
362
|
+
context "for the relative horizontal position attribute" do
|
363
|
+
setup do
|
364
|
+
@frame = Frame.new
|
365
|
+
end
|
366
|
+
|
367
|
+
should "allow :center" do
|
368
|
+
assert_nothing_raised do
|
369
|
+
frame.relative_horizontal_position = :center
|
370
|
+
end
|
371
|
+
end
|
372
|
+
|
373
|
+
should "allow :inside" do
|
374
|
+
assert_nothing_raised do
|
375
|
+
frame.relative_horizontal_position = :inside
|
376
|
+
end
|
377
|
+
end
|
378
|
+
|
379
|
+
should "allow :left" do
|
380
|
+
assert_nothing_raised do
|
381
|
+
frame.relative_horizontal_position = :left
|
382
|
+
end
|
383
|
+
end
|
384
|
+
|
385
|
+
should "allow :outside" do
|
386
|
+
assert_nothing_raised do
|
387
|
+
frame.relative_horizontal_position = :outside
|
388
|
+
end
|
389
|
+
end
|
390
|
+
|
391
|
+
should "allow :right" do
|
392
|
+
assert_nothing_raised do
|
393
|
+
frame.relative_horizontal_position = :right
|
394
|
+
end
|
395
|
+
end
|
396
|
+
|
397
|
+
should "not allow anything else" do
|
398
|
+
assert_raises ArgumentError do
|
399
|
+
frame.relative_horizontal_position = :something_bad
|
400
|
+
end
|
401
|
+
end
|
402
|
+
end
|
403
|
+
|
404
|
+
context "for the vertical position attribute" do
|
405
|
+
setup do
|
406
|
+
@frame = Frame.new
|
407
|
+
end
|
408
|
+
|
409
|
+
should "allow integers" do
|
410
|
+
assert_nothing_raised do
|
411
|
+
frame.vertical_position = 24
|
412
|
+
end
|
413
|
+
|
414
|
+
assert_nothing_raised do
|
415
|
+
frame.vertical_position = -24
|
416
|
+
end
|
417
|
+
end
|
418
|
+
|
419
|
+
should "not allow anything else" do
|
420
|
+
assert_raises ArgumentError do
|
421
|
+
frame.vertical_position = 19.4
|
422
|
+
end
|
423
|
+
|
424
|
+
assert_raises ArgumentError do
|
425
|
+
frame.vertical_position = :two
|
426
|
+
end
|
427
|
+
end
|
428
|
+
end
|
429
|
+
|
430
|
+
context "for the relative vertical position attribute" do
|
431
|
+
setup do
|
432
|
+
@frame = Frame.new
|
433
|
+
end
|
434
|
+
|
435
|
+
should "allow :bottom" do
|
436
|
+
assert_nothing_raised do
|
437
|
+
frame.relative_vertical_position = :bottom
|
438
|
+
end
|
439
|
+
end
|
440
|
+
|
441
|
+
should "allow :center" do
|
442
|
+
assert_nothing_raised do
|
443
|
+
frame.relative_vertical_position = :center
|
444
|
+
end
|
445
|
+
end
|
446
|
+
|
447
|
+
should "allow :inline" do
|
448
|
+
assert_nothing_raised do
|
449
|
+
frame.relative_vertical_position = :inline
|
450
|
+
end
|
451
|
+
end
|
452
|
+
|
453
|
+
should "allow :inside" do
|
454
|
+
assert_nothing_raised do
|
455
|
+
frame.relative_vertical_position = :inside
|
456
|
+
end
|
457
|
+
end
|
458
|
+
|
459
|
+
should "allow :outside" do
|
460
|
+
assert_nothing_raised do
|
461
|
+
frame.relative_vertical_position = :outside
|
462
|
+
end
|
463
|
+
end
|
464
|
+
|
465
|
+
should "allow :top" do
|
466
|
+
assert_nothing_raised do
|
467
|
+
frame.relative_vertical_position = :top
|
468
|
+
end
|
469
|
+
end
|
470
|
+
|
471
|
+
should "not allow anything else" do
|
472
|
+
assert_raises ArgumentError do
|
473
|
+
frame.relative_horizontal_position = :something_bad
|
474
|
+
end
|
475
|
+
end
|
476
|
+
end
|
477
|
+
|
478
|
+
context "with proper attributes, it" do
|
479
|
+
setup do
|
480
|
+
@frame = Frame.new
|
481
|
+
frame.width = 2419
|
482
|
+
frame.height = 2189
|
483
|
+
frame.height_rule = :atLeast
|
484
|
+
frame.horizontal_padding = 187
|
485
|
+
frame.wrap = :around
|
486
|
+
frame.vertical_anchor = :text
|
487
|
+
frame.horizontal_anchor = :page
|
488
|
+
frame.horizontal_position = 1643
|
489
|
+
frame.vertical_position = 73
|
490
|
+
end
|
491
|
+
|
492
|
+
should "output the right XML" do
|
493
|
+
assert_equal "<w:framePr w:h=\"2189\" w:hRule=\"atLeast\" w:hAnchor=\"page\" w:hSpace=\"187\" w:x=\"1643\" w:vAnchor=\"text\" w:y=\"73\" w:w=\"2419\" w:wrap=\"around\"/>", xml(frame)
|
494
|
+
end
|
495
|
+
end
|
496
|
+
|
497
|
+
end
|