rocx 0.5.7 → 0.5.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 (236) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Gemfile.lock +11 -7
  4. data/Rakefile +3 -8
  5. data/lib/rocx/elements/base_container.rb +8 -4
  6. data/lib/rocx/elements/paragraph.rb +4 -4
  7. data/lib/rocx/elements/run.rb +40 -1
  8. data/lib/rocx/properties.rb +5 -0
  9. data/lib/rocx/properties/alignment.rb +4 -19
  10. data/lib/rocx/properties/attribute_builder.rb +8 -2
  11. data/lib/rocx/properties/auto_adjust_right_indent.rb +3 -9
  12. data/lib/rocx/properties/auto_space_de.rb +1 -8
  13. data/lib/rocx/properties/auto_space_dn.rb +1 -8
  14. data/lib/rocx/properties/base_property.rb +20 -11
  15. data/lib/rocx/properties/bold.rb +1 -4
  16. data/lib/rocx/properties/boolean_property.rb +1 -1
  17. data/lib/rocx/properties/border.rb +5 -13
  18. data/lib/rocx/properties/borders.rb +2 -8
  19. data/lib/rocx/properties/caps.rb +6 -0
  20. data/lib/rocx/properties/character_spacing.rb +8 -0
  21. data/lib/rocx/properties/color.rb +13 -0
  22. data/lib/rocx/properties/complex_bold.rb +8 -0
  23. data/lib/rocx/properties/complex_font_size.rb +8 -0
  24. data/lib/rocx/properties/complex_italics.rb +8 -0
  25. data/lib/rocx/properties/complex_property.rb +16 -0
  26. data/lib/rocx/properties/complex_script_formatting.rb +8 -0
  27. data/lib/rocx/properties/compress_punctuation.rb +1 -4
  28. data/lib/rocx/properties/conditional_formatting.rb +17 -56
  29. data/lib/rocx/properties/div_id.rb +1 -18
  30. data/lib/rocx/properties/double_strikethrough.rb +8 -0
  31. data/lib/rocx/properties/east_asian_layout.rb +22 -0
  32. data/lib/rocx/properties/effect.rb +11 -0
  33. data/lib/rocx/properties/emboss.rb +6 -0
  34. data/lib/rocx/properties/emphasis.rb +12 -0
  35. data/lib/rocx/properties/expansion.rb +18 -0
  36. data/lib/rocx/properties/font.rb +34 -0
  37. data/lib/rocx/properties/font_size.rb +8 -0
  38. data/lib/rocx/properties/frame.rb +5 -16
  39. data/lib/rocx/properties/hidden_text.rb +8 -0
  40. data/lib/rocx/properties/highlight.rb +11 -0
  41. data/lib/rocx/properties/imprint.rb +6 -0
  42. data/lib/rocx/properties/indentation.rb +11 -24
  43. data/lib/rocx/properties/integer_property.rb +15 -0
  44. data/lib/rocx/properties/italics.rb +1 -4
  45. data/lib/rocx/properties/kerning.rb +8 -0
  46. data/lib/rocx/properties/language.rb +20 -0
  47. data/lib/rocx/properties/manual_width.rb +12 -0
  48. data/lib/rocx/properties/math.rb +8 -0
  49. data/lib/rocx/properties/no_proof.rb +6 -0
  50. data/lib/rocx/properties/numbering.rb +4 -10
  51. data/lib/rocx/properties/on_off_property.rb +1 -1
  52. data/lib/rocx/properties/outline.rb +6 -0
  53. data/lib/rocx/properties/outline_level.rb +2 -17
  54. data/lib/rocx/properties/overflow_punctuation.rb +1 -8
  55. data/lib/rocx/properties/paragraph_style.rb +8 -0
  56. data/lib/rocx/properties/position.rb +6 -0
  57. data/lib/rocx/properties/positive_integer_property.rb +15 -0
  58. data/lib/rocx/properties/right_to_left.rb +8 -0
  59. data/lib/rocx/properties/run_style.rb +8 -0
  60. data/lib/rocx/properties/shading.rb +9 -20
  61. data/lib/rocx/properties/shadow.rb +6 -0
  62. data/lib/rocx/properties/small_caps.rb +6 -0
  63. data/lib/rocx/properties/spacing.rb +4 -17
  64. data/lib/rocx/properties/spec_vanish.rb +6 -0
  65. data/lib/rocx/properties/strikethrough.rb +8 -0
  66. data/lib/rocx/properties/style.rb +15 -0
  67. data/lib/rocx/properties/tab.rb +1 -9
  68. data/lib/rocx/properties/tabs.rb +1 -9
  69. data/lib/rocx/properties/text_alignment.rb +11 -0
  70. data/lib/rocx/properties/text_direction.rb +1 -5
  71. data/lib/rocx/properties/textbox_tight_wrap.rb +1 -5
  72. data/lib/rocx/properties/toggle_property.rb +1 -1
  73. data/lib/rocx/properties/underline.rb +24 -0
  74. data/lib/rocx/properties/value_property.rb +29 -0
  75. data/lib/rocx/properties/vertical_alignment.rb +3 -10
  76. data/lib/rocx/properties/web_hidden.rb +6 -0
  77. data/lib/rocx/version.rb +1 -1
  78. data/rocx.gemspec +1 -2
  79. data/spec/elements/break_spec.rb +47 -0
  80. data/spec/elements/paragraph_spec.rb +31 -0
  81. data/spec/elements/run_spec.rb +15 -0
  82. data/spec/elements/symbol_spec.rb +24 -0
  83. data/spec/elements/text_spec.rb +23 -0
  84. data/spec/package_spec.rb +48 -0
  85. data/spec/parts/content_types_spec.rb +32 -0
  86. data/spec/parts/document_spec.rb +32 -0
  87. data/spec/parts/global_rels_spec.rb +13 -0
  88. data/spec/parts/rels_spec.rb +42 -0
  89. data/spec/parts/settings_spec.rb +13 -0
  90. data/spec/parts/styles_spec.rb +27 -0
  91. data/spec/properties/alignment_spec.rb +58 -0
  92. data/spec/properties/auto_adjust_right_indent_spec.rb +23 -0
  93. data/spec/properties/auto_space_de_spec.rb +23 -0
  94. data/spec/properties/auto_space_dn_spec.rb +23 -0
  95. data/spec/properties/bidi_spec.rb +23 -0
  96. data/spec/properties/bold_spec.rb +23 -0
  97. data/spec/properties/border_spec.rb +156 -0
  98. data/spec/properties/borders_spec.rb +66 -0
  99. data/spec/properties/caps_spec.rb +23 -0
  100. data/spec/properties/character_spacing_spec.rb +26 -0
  101. data/spec/properties/color_spec.rb +49 -0
  102. data/spec/properties/complex_bold_spec.rb +23 -0
  103. data/spec/properties/complex_font_size_spec.rb +24 -0
  104. data/spec/properties/complex_italics_spec.rb +23 -0
  105. data/spec/properties/complex_script_formatting_spec.rb +23 -0
  106. data/spec/properties/compress_punctuation_spec.rb +23 -0
  107. data/spec/properties/conditional_formatting_spec.rb +160 -0
  108. data/spec/properties/contextual_spacing_spec.rb +23 -0
  109. data/spec/properties/div_id_spec.rb +17 -0
  110. data/spec/properties/double_strikethrough_spec.rb +23 -0
  111. data/spec/properties/east_asian_layout_spec.rb +115 -0
  112. data/spec/properties/effect_spec.rb +43 -0
  113. data/spec/properties/emboss_spec.rb +23 -0
  114. data/spec/properties/emphasis_spec.rb +37 -0
  115. data/spec/properties/expansion_spec.rb +34 -0
  116. data/spec/properties/font_size_spec.rb +24 -0
  117. data/spec/properties/font_spec.rb +273 -0
  118. data/spec/properties/frame_spec.rb +338 -0
  119. data/spec/properties/hidden_text_spec.rb +23 -0
  120. data/spec/properties/highlight_spec.rb +97 -0
  121. data/spec/properties/imprint_spec.rb +23 -0
  122. data/spec/properties/indentation_spec.rb +176 -0
  123. data/spec/properties/italics_spec.rb +23 -0
  124. data/spec/properties/keep_lines_spec.rb +23 -0
  125. data/spec/properties/keep_next_spec.rb +23 -0
  126. data/spec/properties/kerning_spec.rb +24 -0
  127. data/spec/properties/kinsoku_spec.rb +23 -0
  128. data/spec/properties/language_spec.rb +29 -0
  129. data/spec/properties/manual_width_spec.rb +55 -0
  130. data/spec/properties/math_spec.rb +23 -0
  131. data/spec/properties/mirror_indent_spec.rb +23 -0
  132. data/spec/properties/no_proof_spec.rb +23 -0
  133. data/spec/properties/numbering_spec.rb +46 -0
  134. data/spec/properties/outline_level_spec.rb +20 -0
  135. data/spec/properties/outline_spec.rb +23 -0
  136. data/spec/properties/overflow_punctuation_spec.rb +23 -0
  137. data/spec/properties/page_break_before_spec.rb +23 -0
  138. data/spec/properties/paragraph_style_spec.rb +12 -0
  139. data/spec/properties/position_spec.rb +26 -0
  140. data/spec/properties/right_to_left_spec.rb +23 -0
  141. data/spec/properties/run_style_spec.rb +12 -0
  142. data/spec/properties/shading_spec.rb +135 -0
  143. data/spec/properties/shadow_property_spec.rb +23 -0
  144. data/spec/properties/small_caps_spec.rb +22 -0
  145. data/spec/properties/snap_to_grid_spec.rb +23 -0
  146. data/spec/properties/spacing_spec.rb +159 -0
  147. data/spec/properties/spec_vanish_spec.rb +23 -0
  148. data/spec/properties/strikethrough_spec.rb +23 -0
  149. data/spec/properties/supress_auto_hyphens_spec.rb +23 -0
  150. data/spec/properties/supress_line_numbers_spec.rb +23 -0
  151. data/spec/properties/supress_overlap_spec.rb +23 -0
  152. data/spec/properties/tab_spec.rb +45 -0
  153. data/spec/properties/tabs_spec.rb +39 -0
  154. data/spec/properties/text_alignment_spec.rb +33 -0
  155. data/spec/properties/text_direction_spec.rb +42 -0
  156. data/spec/properties/textbox_tight_wrap_spec.rb +33 -0
  157. data/spec/properties/underline_spec.rb +161 -0
  158. data/spec/properties/vertical_alignment_spec.rb +26 -0
  159. data/spec/properties/web_hidden_spec.rb +23 -0
  160. data/spec/properties/widow_control_spec.rb +23 -0
  161. data/spec/properties/word_wrap_spec.rb +23 -0
  162. data/spec/spec_helper.rb +14 -0
  163. data/spec/style_spec.rb +34 -0
  164. data/{test → spec/support}/data/elements/break_element.xml +0 -0
  165. data/{test → spec/support}/data/elements/break_with_attributes_element.xml +0 -0
  166. data/{test → spec/support}/data/elements/paragraph_element.xml +0 -0
  167. data/{test → spec/support}/data/elements/paragraph_with_runs_element.xml +1 -1
  168. data/{test → spec/support}/data/elements/run_element.xml +0 -0
  169. data/{test → spec/support}/data/elements/symbol_element.xml +0 -0
  170. data/{test → spec/support}/data/elements/text_element.xml +0 -0
  171. data/{test → spec/support}/data/parts/content_types_part.xml +0 -0
  172. data/{test → spec/support}/data/parts/document_with_children_part.xml +0 -0
  173. data/{test → spec/support}/data/parts/empty_document_part.xml +0 -0
  174. data/{test → spec/support}/data/parts/global_rels_part.xml +0 -0
  175. data/{test → spec/support}/data/parts/rels_part.xml +0 -0
  176. data/{test → spec/support}/data/parts/settings_part.xml +0 -0
  177. data/{test → spec/support}/data/parts/styles_part.xml +0 -0
  178. data/{test → spec/support}/data/parts/styles_with_custom_style_part.xml +0 -0
  179. data/{test → spec/support}/data/styles/character_styles.xml +0 -0
  180. data/{test → spec/support}/data/styles/paragraph_styles.xml +0 -0
  181. data/spec/support/element_test_macros.rb +33 -0
  182. data/spec/support/part_test_macros.rb +27 -0
  183. data/spec/support/property_test_macros.rb +116 -0
  184. data/spec/support/style_test_macros.rb +33 -0
  185. data/spec/support/value_property_test_macros.rb +69 -0
  186. metadata +151 -133
  187. data/lib/rocx/elements/style.rb +0 -19
  188. data/test/elements/break_test.rb +0 -54
  189. data/test/elements/paragraph_test.rb +0 -37
  190. data/test/elements/run_test.rb +0 -18
  191. data/test/elements/symbol_test.rb +0 -23
  192. data/test/elements/text_test.rb +0 -26
  193. data/test/package_test.rb +0 -48
  194. data/test/parts/content_types_test.rb +0 -37
  195. data/test/parts/document_test.rb +0 -31
  196. data/test/parts/global_rels_test.rb +0 -13
  197. data/test/parts/rels_test.rb +0 -48
  198. data/test/parts/settings_test.rb +0 -13
  199. data/test/parts/styles_test.rb +0 -29
  200. data/test/properties/auto_adjust_right_indent_test.rb +0 -50
  201. data/test/properties/auto_space_de_test.rb +0 -50
  202. data/test/properties/auto_space_dn_test.rb +0 -50
  203. data/test/properties/bidi_test.rb +0 -50
  204. data/test/properties/bold_test.rb +0 -50
  205. data/test/properties/border_test.rb +0 -216
  206. data/test/properties/borders_test.rb +0 -95
  207. data/test/properties/compress_punctuation_test.rb +0 -50
  208. data/test/properties/conditional_formatting_test.rb +0 -46
  209. data/test/properties/contextual_spacing_test.rb +0 -50
  210. data/test/properties/div_id_test.rb +0 -38
  211. data/test/properties/frame_test.rb +0 -497
  212. data/test/properties/italics_test.rb +0 -50
  213. data/test/properties/keep_lines_test.rb +0 -50
  214. data/test/properties/keep_next_test.rb +0 -50
  215. data/test/properties/kinsoku_test.rb +0 -50
  216. data/test/properties/mirror_indent_test.rb +0 -50
  217. data/test/properties/numbering_test.rb +0 -86
  218. data/test/properties/outline_level_test.rb +0 -46
  219. data/test/properties/overflow_punctuation_test.rb +0 -50
  220. data/test/properties/page_break_before_test.rb +0 -50
  221. data/test/properties/shading_test.rb +0 -225
  222. data/test/properties/snap_to_grid_test.rb +0 -50
  223. data/test/properties/spacing_test.rb +0 -248
  224. data/test/properties/style_test.rb +0 -30
  225. data/test/properties/supress_auto_hyphens_test.rb +0 -50
  226. data/test/properties/supress_line_numbers_test.rb +0 -50
  227. data/test/properties/supress_overlap_test.rb +0 -50
  228. data/test/properties/tab_test.rb +0 -63
  229. data/test/properties/tabs_test.rb +0 -54
  230. data/test/properties/text_direction_test.rb +0 -100
  231. data/test/properties/textbox_tight_wrap_test.rb +0 -88
  232. data/test/properties/vertical_alignment_test.rb +0 -88
  233. data/test/properties/widow_control_test.rb +0 -50
  234. data/test/properties/word_wrap_test.rb +0 -50
  235. data/test/style_test.rb +0 -54
  236. data/test/test_helper.rb +0 -52
@@ -1,50 +0,0 @@
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
@@ -1,46 +0,0 @@
1
- require "test_helper"
2
-
3
- class ConditionalFormattingTest < PropertyTest
4
- attr_reader :cnf_style
5
-
6
- context "always" do
7
- setup do
8
- @cnf_style = ConditionalFormatting.new
9
- end
10
-
11
- should "have the correct tag" do
12
- assert_equal :cnfStyle, cnf_style.tag
13
- end
14
-
15
- should "have the correct name" do
16
- assert_equal "conditional_formatting", cnf_style.name
17
- end
18
- end
19
-
20
- context "trying to set an invalid property" do
21
- should "raise an error" do
22
- assert_raises ArgumentError do
23
- @cnf_style = ConditionalFormatting.new(bad: true)
24
- end
25
- end
26
- end
27
-
28
- context "trying to set an invalid value to a valid property" do
29
- should "raise an error" do
30
- assert_raises ArgumentError do
31
- @cnf_style = ConditionalFormatting.new(even_v: :bad)
32
- end
33
- end
34
- end
35
-
36
- context "with valid properties and values, it" do
37
- setup do
38
- @cnf_style = ConditionalFormatting.new(first_row: true, first_column: true, first_row_first_column: true)
39
- end
40
-
41
- should "render the correct XML" do
42
- assert_equal "<w:cnfStyle w:first_column=\"true\" w:first_row=\"true\" w:first_row_first_column=\"true\"/>", xml(cnf_style)
43
- end
44
- end
45
-
46
- end
@@ -1,50 +0,0 @@
1
- require "test_helper"
2
-
3
- class ContextualSpacingTest < PropertyTest
4
- attr_reader :contextual_spacing
5
-
6
- context "always" do
7
- setup do
8
- @contextual_spacing = ContextualSpacing.new(false)
9
- end
10
-
11
- should "have the right tag" do
12
- assert_equal :contextualSpacing, contextual_spacing.tag
13
- end
14
-
15
- should "have the right name" do
16
- assert_equal "contextual_spacing", contextual_spacing.name
17
- end
18
- end
19
-
20
- context "when the value is true, it" do
21
- setup do
22
- @contextual_spacing = ContextualSpacing.new(true)
23
- end
24
-
25
- should "return XML" do
26
- assert_equal "<w:contextualSpacing/>", xml(contextual_spacing)
27
- end
28
- end
29
-
30
- context "when the value is false, it" do
31
- setup do
32
- @contextual_spacing = ContextualSpacing.new(false)
33
- end
34
-
35
- should "not return XML" do
36
- assert_equal "", xml(contextual_spacing)
37
- end
38
- end
39
-
40
- context "when the value is nil, it" do
41
- setup do
42
- @contextual_spacing = ContextualSpacing.new(nil)
43
- end
44
-
45
- should "not return XML" do
46
- assert_equal "", xml(contextual_spacing)
47
- end
48
- end
49
-
50
- end
@@ -1,38 +0,0 @@
1
- require "test_helper"
2
-
3
- class DivIdTest < PropertyTest
4
- attr_reader :div_id
5
-
6
- context "always" do
7
- setup do
8
- @div_id = DivId.new(0)
9
- end
10
-
11
- should "have the right tag" do
12
- assert_equal :divId, div_id.tag
13
- end
14
-
15
- should "have the right name" do
16
- assert_equal "div_id", div_id.name
17
- end
18
- end
19
-
20
- context "with non-integer values, it" do
21
- should "raise an error" do
22
- assert_raises ArgumentError do
23
- @div_id = DivId.new(:big)
24
- end
25
- end
26
- end
27
-
28
- context "with valid value, it" do
29
- setup do
30
- @div_id = DivId.new(2)
31
- end
32
-
33
- should "return the proper XML" do
34
- assert_equal "<w:divId w:val=\"2\"/>", xml(div_id)
35
- end
36
- end
37
-
38
- end
@@ -1,497 +0,0 @@
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