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
@@ -0,0 +1,42 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::TextDirection do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :textDirection, name: "text_direction", value: :lr
7
+
8
+ with_value(:lr) do
9
+ it_should_work
10
+ it_should_output "<w:textDirection w:val=\"lr\"/>"
11
+ end
12
+
13
+ with_value(:lrV) do
14
+ it_should_work
15
+ it_should_output "<w:textDirection w:val=\"lrV\"/>"
16
+ end
17
+
18
+ with_value(:rl) do
19
+ it_should_work
20
+ it_should_output "<w:textDirection w:val=\"rl\"/>"
21
+ end
22
+
23
+ with_value(:rlV) do
24
+ it_should_work
25
+ it_should_output "<w:textDirection w:val=\"rlV\"/>"
26
+ end
27
+
28
+ with_value(:tb) do
29
+ it_should_work
30
+ it_should_output "<w:textDirection w:val=\"tb\"/>"
31
+ end
32
+
33
+ with_value(:tbV) do
34
+ it_should_work
35
+ it_should_output "<w:textDirection w:val=\"tbV\"/>"
36
+ end
37
+
38
+ with_value(:left_to_right) do
39
+ it_should_not_work
40
+ end
41
+
42
+ end
@@ -0,0 +1,33 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::TextboxTightWrap do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :textboxTightWrap, name: "textbox_tight_wrap", value: :none
7
+
8
+ with_value(:allLines) do
9
+ it_should_work
10
+ it_should_output "<w:textboxTightWrap w:val=\"allLines\"/>"
11
+ end
12
+
13
+ with_value(:firstAndLastLine) do
14
+ it_should_work
15
+ it_should_output "<w:textboxTightWrap w:val=\"firstAndLastLine\"/>"
16
+ end
17
+
18
+ with_value(:firstLineOnly) do
19
+ it_should_work
20
+ it_should_output "<w:textboxTightWrap w:val=\"firstLineOnly\"/>"
21
+ end
22
+
23
+ with_value(:lastLineOnly) do
24
+ it_should_work
25
+ it_should_output "<w:textboxTightWrap w:val=\"lastLineOnly\"/>"
26
+ end
27
+
28
+ with_value(:none) do
29
+ it_should_work
30
+ it_should_output "<w:textboxTightWrap w:val=\"none\"/>"
31
+ end
32
+
33
+ end
@@ -0,0 +1,161 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::Underline do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :u, name: "underline"
7
+
8
+ for_attribute(:color) do
9
+ with_value("FF34E1") do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:u w:color=\"FF34E1\"/>"
12
+ end
13
+
14
+ with_value(:auto) do
15
+ it_should_assign_successfully
16
+ it_should_output "<w:u w:color=\"auto\"/>"
17
+ end
18
+
19
+ with_value(:nope) do
20
+ it_should_raise_an_exception
21
+ end
22
+ end
23
+
24
+ for_attribute(:theme_color) do
25
+ with_value(:accent3) do
26
+ it_should_assign_successfully
27
+ it_should_output "<w:u w:themeColor=\"accent3\"/>"
28
+ end
29
+
30
+ with_value(:nope) do
31
+ it_should_raise_an_exception
32
+ end
33
+ end
34
+
35
+ for_attribute(:theme_shade) do
36
+ with_value("BF") do
37
+ it_should_assign_successfully
38
+ it_should_output "<w:u w:themeShade=\"BF\"/>"
39
+ end
40
+
41
+ with_value(:nope) do
42
+ it_should_raise_an_exception
43
+ end
44
+ end
45
+
46
+ for_attribute(:theme_tint) do
47
+ with_value("BF") do
48
+ it_should_assign_successfully
49
+ it_should_output "<w:u w:themeTint=\"BF\"/>"
50
+ end
51
+
52
+ with_value(:nope) do
53
+ it_should_raise_an_exception
54
+ end
55
+ end
56
+
57
+ for_attribute(:type) do
58
+ with_value(:dash) do
59
+ it_should_assign_successfully
60
+ it_should_output "<w:u w:val=\"dash\"/>"
61
+ end
62
+
63
+ with_value(:dashDotDotHeavy) do
64
+ it_should_assign_successfully
65
+ it_should_output "<w:u w:val=\"dashDotDotHeavy\"/>"
66
+ end
67
+
68
+ with_value(:dashDotHeavy) do
69
+ it_should_assign_successfully
70
+ it_should_output "<w:u w:val=\"dashDotHeavy\"/>"
71
+ end
72
+
73
+ with_value(:dashedHeavy) do
74
+ it_should_assign_successfully
75
+ it_should_output "<w:u w:val=\"dashedHeavy\"/>"
76
+ end
77
+
78
+ with_value(:dashLong) do
79
+ it_should_assign_successfully
80
+ it_should_output "<w:u w:val=\"dashLong\"/>"
81
+ end
82
+
83
+ with_value(:dashLongHeavy) do
84
+ it_should_assign_successfully
85
+ it_should_output "<w:u w:val=\"dashLongHeavy\"/>"
86
+ end
87
+
88
+ with_value(:dotDash) do
89
+ it_should_assign_successfully
90
+ it_should_output "<w:u w:val=\"dotDash\"/>"
91
+ end
92
+
93
+ with_value(:dotDotDash) do
94
+ it_should_assign_successfully
95
+ it_should_output "<w:u w:val=\"dotDotDash\"/>"
96
+ end
97
+
98
+ with_value(:dotted) do
99
+ it_should_assign_successfully
100
+ it_should_output "<w:u w:val=\"dotted\"/>"
101
+ end
102
+
103
+ with_value(:dottedHeavy) do
104
+ it_should_assign_successfully
105
+ it_should_output "<w:u w:val=\"dottedHeavy\"/>"
106
+ end
107
+
108
+ with_value(:double) do
109
+ it_should_assign_successfully
110
+ it_should_output "<w:u w:val=\"double\"/>"
111
+ end
112
+
113
+ with_value(:none) do
114
+ it_should_assign_successfully
115
+ it_should_output "<w:u w:val=\"none\"/>"
116
+ end
117
+
118
+ with_value(:single) do
119
+ it_should_assign_successfully
120
+ it_should_output "<w:u w:val=\"single\"/>"
121
+ end
122
+
123
+ with_value(:thick) do
124
+ it_should_assign_successfully
125
+ it_should_output "<w:u w:val=\"thick\"/>"
126
+ end
127
+
128
+ with_value(:wave) do
129
+ it_should_assign_successfully
130
+ it_should_output "<w:u w:val=\"wave\"/>"
131
+ end
132
+
133
+ with_value(:wavyDouble) do
134
+ it_should_assign_successfully
135
+ it_should_output "<w:u w:val=\"wavyDouble\"/>"
136
+ end
137
+
138
+ with_value(:wavyHeavy) do
139
+ it_should_assign_successfully
140
+ it_should_output "<w:u w:val=\"wavyHeavy\"/>"
141
+ end
142
+
143
+ with_value(:words) do
144
+ it_should_assign_successfully
145
+ it_should_output "<w:u w:val=\"words\"/>"
146
+ end
147
+
148
+ with_value(:triple) do
149
+ it_should_raise_an_exception
150
+ end
151
+ end
152
+
153
+ with_no_attributes_set do
154
+ it_should_output "", assign: false
155
+ end
156
+
157
+ with_these_attributes_set(color: "95B3D7", theme_color: :accent2, theme_tint: "99") do
158
+ it_should_output "<w:u w:color=\"95B3D7\" w:themeColor=\"accent2\" w:themeTint=\"99\"/>", assign: false
159
+ end
160
+
161
+ end
@@ -0,0 +1,26 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::VerticalAlignment do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :vertAlign, name: "vertical_alignment", value: :baseline
7
+
8
+ with_value(:baseline) do
9
+ it_should_work
10
+ it_should_output "<w:vertAlign w:val=\"baseline\"/>"
11
+ end
12
+
13
+ with_value(:subscript) do
14
+ it_should_work
15
+ it_should_output "<w:vertAlign w:val=\"subscript\"/>"
16
+ end
17
+
18
+ with_value(:superscript) do
19
+ it_should_work
20
+ it_should_output "<w:vertAlign w:val=\"superscript\"/>"
21
+ end
22
+
23
+ with_value(:megascript) do
24
+ it_should_not_work
25
+ end
26
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::WebHidden do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :webHidden, name: "web_hidden"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:webHidden/>"
11
+ end
12
+
13
+ with_value(false) do
14
+ it_should_work
15
+ it_should_output ""
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::WidowControl do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :widowControl, name: "widow_control"
7
+
8
+ with_value(:on) do
9
+ it_should_work
10
+ it_should_output "<w:widowControl w:val=\"on\"/>"
11
+ end
12
+
13
+ with_value(:off) do
14
+ it_should_work
15
+ it_should_output "<w:widowControl w:val=\"off\"/>"
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::WordWrap do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :wordWrap, name: "word_wrap"
7
+
8
+ with_value(:on) do
9
+ it_should_work
10
+ it_should_output "<w:wordWrap w:val=\"on\"/>"
11
+ end
12
+
13
+ with_value(:off) do
14
+ it_should_work
15
+ it_should_output "<w:wordWrap w:val=\"off\"/>"
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,14 @@
1
+ require "open_xml_package"
2
+ require "rr"
3
+ require "pry"
4
+ require "timecop"
5
+ require "support/element_test_macros"
6
+ require "support/part_test_macros"
7
+ require "support/property_test_macros"
8
+ require "support/style_test_macros"
9
+ require "support/value_property_test_macros"
10
+
11
+ require "simplecov"
12
+ SimpleCov.start
13
+
14
+ require "rocx"
@@ -0,0 +1,34 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Style do
4
+ include StyleTestMacros
5
+
6
+ context "when given paragraph styles" do
7
+ before(:each) do
8
+ paragraph_styles = {
9
+ "w:ind" => {"w:firstLine" => "0", "w:left" => "0", "w:right" => "0"},
10
+ "w:jc" => {"w:val" => "left"}
11
+ }
12
+ @style = described_class.new("coolStyle", "paragraph", {}, paragraph_styles)
13
+ end
14
+
15
+ it_should_output_correct_xml style_xml: "paragraph"
16
+ end
17
+
18
+ context "when given run styles" do
19
+ before(:each) do
20
+ run_styles = {
21
+ "w:rFonts" => {"w:ascii" => "Times New Roman", "w:cs" => "Times New Roman", "w:hAnsi" => "Times New Roman"},
22
+ "w:color" => {"w:val" => "FF0000"},
23
+ "w:sz" => {"w:val" => "20"},
24
+ "w:b" => {"w:val" => "0"},
25
+ "w:i" => {"w:val" => "0"},
26
+ "w:u" => {"w:val" => "none"}
27
+ }
28
+ @style = described_class.new("anotherCoolStyle", "character", run_styles)
29
+ end
30
+
31
+ it_should_output_correct_xml style_xml: "character"
32
+ end
33
+
34
+ end
@@ -2,7 +2,7 @@
2
2
  <root xmlns:w="http://wnamespace.org">
3
3
  <w:p>
4
4
  <w:pPr>
5
- <w:ind w:start="720" w:end="-1440"/>
5
+ <w:ind w:end="-1440" w:start="720"/>
6
6
  </w:pPr>
7
7
  <w:r>
8
8
  <w:t>Hey Run 1</w:t>
@@ -0,0 +1,33 @@
1
+ module ElementTestMacros
2
+
3
+ def xml(part)
4
+ File.read(File.join(File.dirname(__FILE__), "data", "elements", "#{part}_element.xml")).strip
5
+ end
6
+
7
+ def self.included(base)
8
+ attr_reader :node
9
+ base.extend ClassMethods
10
+ end
11
+
12
+ module ClassMethods
13
+
14
+ def it_should_output_correct_xml(node_xml: nil)
15
+ it "should be able to output the correct XML" do
16
+ if node_xml.nil?
17
+ node_xml = described_class.to_s.split(/::/).last
18
+ node_xml = node_xml.gsub(/(.)([A-Z])/, '\1_\2').downcase
19
+ end
20
+
21
+ generated_xml = Nokogiri::XML::Builder.new do |xml|
22
+ xml.root("xmlns:w" => "http://wnamespace.org") {
23
+ node.to_xml(xml)
24
+ }
25
+ end.to_xml
26
+
27
+ expect(generated_xml).to eq(xml(node_xml) + "\n")
28
+ end
29
+ end
30
+
31
+ end
32
+
33
+ end