openxml-docx 0.8.0.beta1

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 (331) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/.travis.yml +6 -0
  4. data/Gemfile +3 -0
  5. data/Gemfile.lock +56 -0
  6. data/LICENSE.txt +20 -0
  7. data/README.md +67 -0
  8. data/Rakefile +6 -0
  9. data/example +23 -0
  10. data/lib/openxml-docx.rb +1 -0
  11. data/lib/openxml/docx.rb +20 -0
  12. data/lib/openxml/docx/attribute_builder.rb +298 -0
  13. data/lib/openxml/docx/elements.rb +13 -0
  14. data/lib/openxml/docx/elements/absolute_position_tab.rb +31 -0
  15. data/lib/openxml/docx/elements/bidi_embed.rb +19 -0
  16. data/lib/openxml/docx/elements/bidi_override.rb +19 -0
  17. data/lib/openxml/docx/elements/break.rb +26 -0
  18. data/lib/openxml/docx/elements/carriage_return.rb +10 -0
  19. data/lib/openxml/docx/elements/container.rb +37 -0
  20. data/lib/openxml/docx/elements/content_part.rb +10 -0
  21. data/lib/openxml/docx/elements/control.rb +12 -0
  22. data/lib/openxml/docx/elements/deleted_text.rb +10 -0
  23. data/lib/openxml/docx/elements/dirty.rb +8 -0
  24. data/lib/openxml/docx/elements/element.rb +64 -0
  25. data/lib/openxml/docx/elements/last_rendered_page_break.rb +8 -0
  26. data/lib/openxml/docx/elements/long_day.rb +10 -0
  27. data/lib/openxml/docx/elements/long_month.rb +10 -0
  28. data/lib/openxml/docx/elements/long_year.rb +10 -0
  29. data/lib/openxml/docx/elements/nonbreaking_hyphen.rb +9 -0
  30. data/lib/openxml/docx/elements/optional_hyphen.rb +10 -0
  31. data/lib/openxml/docx/elements/page_number.rb +9 -0
  32. data/lib/openxml/docx/elements/paper_source.rb +13 -0
  33. data/lib/openxml/docx/elements/paragraph.rb +58 -0
  34. data/lib/openxml/docx/elements/ruby.rb +48 -0
  35. data/lib/openxml/docx/elements/run.rb +51 -0
  36. data/lib/openxml/docx/elements/short_day.rb +10 -0
  37. data/lib/openxml/docx/elements/short_month.rb +10 -0
  38. data/lib/openxml/docx/elements/short_year.rb +10 -0
  39. data/lib/openxml/docx/elements/symbol.rb +13 -0
  40. data/lib/openxml/docx/elements/tab.rb +8 -0
  41. data/lib/openxml/docx/elements/text.rb +30 -0
  42. data/lib/openxml/docx/package.rb +34 -0
  43. data/lib/openxml/docx/parts.rb +10 -0
  44. data/lib/openxml/docx/parts/document.rb +66 -0
  45. data/lib/openxml/docx/parts/settings.rb +22 -0
  46. data/lib/openxml/docx/parts/styles.rb +50 -0
  47. data/lib/openxml/docx/properties.rb +21 -0
  48. data/lib/openxml/docx/properties/alignment.rb +14 -0
  49. data/lib/openxml/docx/properties/auto_adjust_right_indent.rb +11 -0
  50. data/lib/openxml/docx/properties/auto_space_de.rb +10 -0
  51. data/lib/openxml/docx/properties/auto_space_dn.rb +10 -0
  52. data/lib/openxml/docx/properties/base_property.rb +50 -0
  53. data/lib/openxml/docx/properties/bidi.rb +8 -0
  54. data/lib/openxml/docx/properties/bold.rb +10 -0
  55. data/lib/openxml/docx/properties/boolean_property.rb +17 -0
  56. data/lib/openxml/docx/properties/border.rb +24 -0
  57. data/lib/openxml/docx/properties/caps.rb +8 -0
  58. data/lib/openxml/docx/properties/character_spacing.rb +10 -0
  59. data/lib/openxml/docx/properties/color.rb +13 -0
  60. data/lib/openxml/docx/properties/column.rb +18 -0
  61. data/lib/openxml/docx/properties/columns.rb +15 -0
  62. data/lib/openxml/docx/properties/complex_bold.rb +10 -0
  63. data/lib/openxml/docx/properties/complex_font_size.rb +10 -0
  64. data/lib/openxml/docx/properties/complex_italics.rb +10 -0
  65. data/lib/openxml/docx/properties/complex_property.rb +19 -0
  66. data/lib/openxml/docx/properties/complex_script_formatting.rb +10 -0
  67. data/lib/openxml/docx/properties/compress_punctuation.rb +10 -0
  68. data/lib/openxml/docx/properties/conditional_formatting.rb +23 -0
  69. data/lib/openxml/docx/properties/container_property.rb +65 -0
  70. data/lib/openxml/docx/properties/contextual_spacing.rb +8 -0
  71. data/lib/openxml/docx/properties/div_id.rb +8 -0
  72. data/lib/openxml/docx/properties/document_grid.rb +22 -0
  73. data/lib/openxml/docx/properties/double_strikethrough.rb +10 -0
  74. data/lib/openxml/docx/properties/east_asian_layout.rb +22 -0
  75. data/lib/openxml/docx/properties/effect.rb +13 -0
  76. data/lib/openxml/docx/properties/emboss.rb +8 -0
  77. data/lib/openxml/docx/properties/emphasis.rb +14 -0
  78. data/lib/openxml/docx/properties/expansion.rb +20 -0
  79. data/lib/openxml/docx/properties/font.rb +34 -0
  80. data/lib/openxml/docx/properties/font_size.rb +10 -0
  81. data/lib/openxml/docx/properties/form_protection.rb +9 -0
  82. data/lib/openxml/docx/properties/frame.rb +59 -0
  83. data/lib/openxml/docx/properties/hidden_style.rb +9 -0
  84. data/lib/openxml/docx/properties/hidden_text.rb +10 -0
  85. data/lib/openxml/docx/properties/highlight.rb +13 -0
  86. data/lib/openxml/docx/properties/imprint.rb +8 -0
  87. data/lib/openxml/docx/properties/indentation.rb +18 -0
  88. data/lib/openxml/docx/properties/integer_property.rb +17 -0
  89. data/lib/openxml/docx/properties/italics.rb +10 -0
  90. data/lib/openxml/docx/properties/keep_lines.rb +8 -0
  91. data/lib/openxml/docx/properties/keep_next.rb +8 -0
  92. data/lib/openxml/docx/properties/kerning.rb +10 -0
  93. data/lib/openxml/docx/properties/kinsoku.rb +8 -0
  94. data/lib/openxml/docx/properties/language.rb +21 -0
  95. data/lib/openxml/docx/properties/latent_styles.rb +23 -0
  96. data/lib/openxml/docx/properties/latent_styles_exception.rb +21 -0
  97. data/lib/openxml/docx/properties/line_numbering.rb +23 -0
  98. data/lib/openxml/docx/properties/linked_style.rb +18 -0
  99. data/lib/openxml/docx/properties/manual_width.rb +13 -0
  100. data/lib/openxml/docx/properties/math.rb +10 -0
  101. data/lib/openxml/docx/properties/mirror_indent.rb +8 -0
  102. data/lib/openxml/docx/properties/next_style.rb +17 -0
  103. data/lib/openxml/docx/properties/no_proof.rb +8 -0
  104. data/lib/openxml/docx/properties/numbering.rb +22 -0
  105. data/lib/openxml/docx/properties/on_off_property.rb +17 -0
  106. data/lib/openxml/docx/properties/outline.rb +8 -0
  107. data/lib/openxml/docx/properties/outline_level.rb +10 -0
  108. data/lib/openxml/docx/properties/overflow_punctuation.rb +10 -0
  109. data/lib/openxml/docx/properties/page_borders.rb +61 -0
  110. data/lib/openxml/docx/properties/page_break_before.rb +8 -0
  111. data/lib/openxml/docx/properties/page_margins.rb +17 -0
  112. data/lib/openxml/docx/properties/page_numbering.rb +89 -0
  113. data/lib/openxml/docx/properties/page_size.rb +23 -0
  114. data/lib/openxml/docx/properties/paragraph_borders.rb +45 -0
  115. data/lib/openxml/docx/properties/paragraph_style.rb +10 -0
  116. data/lib/openxml/docx/properties/parent_style.rb +17 -0
  117. data/lib/openxml/docx/properties/personal.rb +8 -0
  118. data/lib/openxml/docx/properties/personal_compose.rb +8 -0
  119. data/lib/openxml/docx/properties/personal_reply.rb +8 -0
  120. data/lib/openxml/docx/properties/phonetic_guide_alignment.rb +15 -0
  121. data/lib/openxml/docx/properties/phonetic_guide_base_font_size.rb +10 -0
  122. data/lib/openxml/docx/properties/phonetic_guide_font_size.rb +10 -0
  123. data/lib/openxml/docx/properties/phonetic_guide_font_size_raise.rb +10 -0
  124. data/lib/openxml/docx/properties/phonetic_guide_language.rb +19 -0
  125. data/lib/openxml/docx/properties/position.rb +8 -0
  126. data/lib/openxml/docx/properties/positive_integer_property.rb +17 -0
  127. data/lib/openxml/docx/properties/primary_style.rb +9 -0
  128. data/lib/openxml/docx/properties/right_to_left.rb +10 -0
  129. data/lib/openxml/docx/properties/rtl_gutter.rb +8 -0
  130. data/lib/openxml/docx/properties/run_style.rb +10 -0
  131. data/lib/openxml/docx/properties/section_type.rb +15 -0
  132. data/lib/openxml/docx/properties/semi_hidden.rb +8 -0
  133. data/lib/openxml/docx/properties/shading.rb +64 -0
  134. data/lib/openxml/docx/properties/shadow.rb +8 -0
  135. data/lib/openxml/docx/properties/small_caps.rb +8 -0
  136. data/lib/openxml/docx/properties/snap_to_grid.rb +8 -0
  137. data/lib/openxml/docx/properties/spacing.rb +25 -0
  138. data/lib/openxml/docx/properties/spec_vanish.rb +8 -0
  139. data/lib/openxml/docx/properties/strikethrough.rb +10 -0
  140. data/lib/openxml/docx/properties/string_property.rb +17 -0
  141. data/lib/openxml/docx/properties/style.rb +17 -0
  142. data/lib/openxml/docx/properties/style_aliases.rb +9 -0
  143. data/lib/openxml/docx/properties/style_auto_redefinition.rb +9 -0
  144. data/lib/openxml/docx/properties/style_lock.rb +9 -0
  145. data/lib/openxml/docx/properties/style_name.rb +10 -0
  146. data/lib/openxml/docx/properties/supress_auto_hyphens.rb +8 -0
  147. data/lib/openxml/docx/properties/supress_line_numbers.rb +8 -0
  148. data/lib/openxml/docx/properties/supress_overlap.rb +8 -0
  149. data/lib/openxml/docx/properties/tab.rb +71 -0
  150. data/lib/openxml/docx/properties/tabs.rb +10 -0
  151. data/lib/openxml/docx/properties/text_alignment.rb +13 -0
  152. data/lib/openxml/docx/properties/text_direction.rb +13 -0
  153. data/lib/openxml/docx/properties/textbox_tight_wrap.rb +13 -0
  154. data/lib/openxml/docx/properties/toggle_property.rb +17 -0
  155. data/lib/openxml/docx/properties/ui_priority.rb +8 -0
  156. data/lib/openxml/docx/properties/underline.rb +24 -0
  157. data/lib/openxml/docx/properties/unhide_when_used.rb +8 -0
  158. data/lib/openxml/docx/properties/value_property.rb +31 -0
  159. data/lib/openxml/docx/properties/vertical_alignment.rb +14 -0
  160. data/lib/openxml/docx/properties/vertical_text_alignment.rb +14 -0
  161. data/lib/openxml/docx/properties/web_hidden.rb +8 -0
  162. data/lib/openxml/docx/properties/widow_control.rb +8 -0
  163. data/lib/openxml/docx/properties/word_wrap.rb +8 -0
  164. data/lib/openxml/docx/property_builder.rb +74 -0
  165. data/lib/openxml/docx/section.rb +36 -0
  166. data/lib/openxml/docx/style.rb +84 -0
  167. data/lib/openxml/docx/version.rb +5 -0
  168. data/openxml-docx.gemspec +32 -0
  169. data/spec/elements/absolute_position_tab_spec.rb +84 -0
  170. data/spec/elements/bidi_embed_spec.rb +31 -0
  171. data/spec/elements/bidi_override_spec.rb +31 -0
  172. data/spec/elements/break_spec.rb +55 -0
  173. data/spec/elements/carriage_return_spec.rb +12 -0
  174. data/spec/elements/content_part_spec.rb +18 -0
  175. data/spec/elements/control_spec.rb +41 -0
  176. data/spec/elements/deleted_text_spec.rb +24 -0
  177. data/spec/elements/dirty_spec.rb +12 -0
  178. data/spec/elements/last_rendered_page_break_spec.rb +12 -0
  179. data/spec/elements/long_day_spec.rb +12 -0
  180. data/spec/elements/long_month_spec.rb +12 -0
  181. data/spec/elements/long_year_spec.rb +12 -0
  182. data/spec/elements/nonbreaking_hyphen_spec.rb +12 -0
  183. data/spec/elements/optional_hyphen_spec.rb +12 -0
  184. data/spec/elements/page_number_spec.rb +12 -0
  185. data/spec/elements/paragraph_spec.rb +33 -0
  186. data/spec/elements/ruby_spec.rb +66 -0
  187. data/spec/elements/run_spec.rb +15 -0
  188. data/spec/elements/short_day_spec.rb +12 -0
  189. data/spec/elements/short_month_spec.rb +12 -0
  190. data/spec/elements/short_year_spec.rb +12 -0
  191. data/spec/elements/symbol_spec.rb +34 -0
  192. data/spec/elements/tab_spec.rb +12 -0
  193. data/spec/elements/text_spec.rb +24 -0
  194. data/spec/package_spec.rb +36 -0
  195. data/spec/parts/document_spec.rb +95 -0
  196. data/spec/parts/settings_spec.rb +13 -0
  197. data/spec/parts/styles_spec.rb +27 -0
  198. data/spec/properties/alignment_spec.rb +58 -0
  199. data/spec/properties/auto_adjust_right_indent_spec.rb +23 -0
  200. data/spec/properties/auto_space_de_spec.rb +23 -0
  201. data/spec/properties/auto_space_dn_spec.rb +23 -0
  202. data/spec/properties/bidi_spec.rb +23 -0
  203. data/spec/properties/bold_spec.rb +23 -0
  204. data/spec/properties/border_spec.rb +156 -0
  205. data/spec/properties/caps_spec.rb +23 -0
  206. data/spec/properties/character_spacing_spec.rb +26 -0
  207. data/spec/properties/color_spec.rb +49 -0
  208. data/spec/properties/column_spec.rb +46 -0
  209. data/spec/properties/columns_spec.rb +174 -0
  210. data/spec/properties/complex_bold_spec.rb +23 -0
  211. data/spec/properties/complex_font_size_spec.rb +24 -0
  212. data/spec/properties/complex_italics_spec.rb +23 -0
  213. data/spec/properties/complex_script_formatting_spec.rb +23 -0
  214. data/spec/properties/compress_punctuation_spec.rb +23 -0
  215. data/spec/properties/conditional_formatting_spec.rb +160 -0
  216. data/spec/properties/contextual_spacing_spec.rb +23 -0
  217. data/spec/properties/div_id_spec.rb +17 -0
  218. data/spec/properties/document_grid_spec.rb +78 -0
  219. data/spec/properties/double_strikethrough_spec.rb +23 -0
  220. data/spec/properties/east_asian_layout_spec.rb +115 -0
  221. data/spec/properties/effect_spec.rb +43 -0
  222. data/spec/properties/emboss_spec.rb +23 -0
  223. data/spec/properties/emphasis_spec.rb +37 -0
  224. data/spec/properties/expansion_spec.rb +34 -0
  225. data/spec/properties/font_size_spec.rb +24 -0
  226. data/spec/properties/font_spec.rb +273 -0
  227. data/spec/properties/form_protection_spec.rb +23 -0
  228. data/spec/properties/frame_spec.rb +338 -0
  229. data/spec/properties/hidden_style_spec.rb +23 -0
  230. data/spec/properties/hidden_text_spec.rb +23 -0
  231. data/spec/properties/highlight_spec.rb +97 -0
  232. data/spec/properties/imprint_spec.rb +23 -0
  233. data/spec/properties/indentation_spec.rb +176 -0
  234. data/spec/properties/italics_spec.rb +23 -0
  235. data/spec/properties/keep_lines_spec.rb +23 -0
  236. data/spec/properties/keep_next_spec.rb +23 -0
  237. data/spec/properties/kerning_spec.rb +24 -0
  238. data/spec/properties/kinsoku_spec.rb +23 -0
  239. data/spec/properties/language_spec.rb +29 -0
  240. data/spec/properties/latent_styles_exception_spec.rb +83 -0
  241. data/spec/properties/latent_styles_spec.rb +336 -0
  242. data/spec/properties/line_numbering_spec.rb +96 -0
  243. data/spec/properties/linked_style_spec.rb +17 -0
  244. data/spec/properties/manual_width_spec.rb +55 -0
  245. data/spec/properties/math_spec.rb +23 -0
  246. data/spec/properties/mirror_indent_spec.rb +23 -0
  247. data/spec/properties/next_style_spec.rb +17 -0
  248. data/spec/properties/no_proof_spec.rb +23 -0
  249. data/spec/properties/numbering_spec.rb +46 -0
  250. data/spec/properties/outline_level_spec.rb +20 -0
  251. data/spec/properties/outline_spec.rb +23 -0
  252. data/spec/properties/overflow_punctuation_spec.rb +23 -0
  253. data/spec/properties/page_borders_spec.rb +129 -0
  254. data/spec/properties/page_break_before_spec.rb +23 -0
  255. data/spec/properties/page_margins_spec.rb +150 -0
  256. data/spec/properties/page_numbering_spec.rb +395 -0
  257. data/spec/properties/page_size_spec.rb +90 -0
  258. data/spec/properties/paper_source_spec.rb +56 -0
  259. data/spec/properties/paragraph_borders_spec.rb +66 -0
  260. data/spec/properties/paragraph_style_spec.rb +12 -0
  261. data/spec/properties/parent_style_spec.rb +17 -0
  262. data/spec/properties/personal_compose_spec.rb +23 -0
  263. data/spec/properties/personal_reply_spec.rb +23 -0
  264. data/spec/properties/personal_spec.rb +23 -0
  265. data/spec/properties/phonetic_guide_alignment_spec.rb +42 -0
  266. data/spec/properties/phonetic_guide_base_font_size_spec.rb +25 -0
  267. data/spec/properties/phonetic_guide_font_size_raise_spec.rb +25 -0
  268. data/spec/properties/phonetic_guide_font_size_spec.rb +25 -0
  269. data/spec/properties/phonetic_guide_language_spec.rb +12 -0
  270. data/spec/properties/position_spec.rb +26 -0
  271. data/spec/properties/primary_style_spec.rb +23 -0
  272. data/spec/properties/right_to_left_spec.rb +23 -0
  273. data/spec/properties/rtl_gutter_spec.rb +23 -0
  274. data/spec/properties/run_style_spec.rb +12 -0
  275. data/spec/properties/section_type_spec.rb +33 -0
  276. data/spec/properties/semi_hidden_spec.rb +23 -0
  277. data/spec/properties/shading_spec.rb +135 -0
  278. data/spec/properties/shadow_property_spec.rb +23 -0
  279. data/spec/properties/small_caps_spec.rb +22 -0
  280. data/spec/properties/snap_to_grid_spec.rb +23 -0
  281. data/spec/properties/spacing_spec.rb +159 -0
  282. data/spec/properties/spec_vanish_spec.rb +23 -0
  283. data/spec/properties/strikethrough_spec.rb +23 -0
  284. data/spec/properties/style_aliases_spec.rb +22 -0
  285. data/spec/properties/style_auto_redefinition_spec.rb +23 -0
  286. data/spec/properties/style_lock_spec.rb +23 -0
  287. data/spec/properties/style_name_spec.rb +17 -0
  288. data/spec/properties/supress_auto_hyphens_spec.rb +23 -0
  289. data/spec/properties/supress_line_numbers_spec.rb +23 -0
  290. data/spec/properties/supress_overlap_spec.rb +23 -0
  291. data/spec/properties/tab_spec.rb +45 -0
  292. data/spec/properties/tabs_spec.rb +39 -0
  293. data/spec/properties/text_alignment_spec.rb +33 -0
  294. data/spec/properties/text_direction_spec.rb +42 -0
  295. data/spec/properties/textbox_tight_wrap_spec.rb +33 -0
  296. data/spec/properties/ui_priority_spec.rb +22 -0
  297. data/spec/properties/underline_spec.rb +161 -0
  298. data/spec/properties/unhide_when_used_spec.rb +23 -0
  299. data/spec/properties/vertical_alignment_spec.rb +26 -0
  300. data/spec/properties/vertical_text_alignment_spec.rb +28 -0
  301. data/spec/properties/web_hidden_spec.rb +23 -0
  302. data/spec/properties/widow_control_spec.rb +23 -0
  303. data/spec/properties/word_wrap_spec.rb +23 -0
  304. data/spec/section_spec.rb +44 -0
  305. data/spec/spec_helper.rb +14 -0
  306. data/spec/style_spec.rb +108 -0
  307. data/spec/support/data/elements/break_element.xml +4 -0
  308. data/spec/support/data/elements/break_with_attributes_element.xml +4 -0
  309. data/spec/support/data/elements/paragraph_element.xml +8 -0
  310. data/spec/support/data/elements/paragraph_with_runs_element.xml +14 -0
  311. data/spec/support/data/elements/run_element.xml +8 -0
  312. data/spec/support/data/elements/symbol_element.xml +4 -0
  313. data/spec/support/data/elements/text_element.xml +4 -0
  314. data/spec/support/data/parts/content_types_part.xml +1 -0
  315. data/spec/support/data/parts/document_with_children_part.xml +1 -0
  316. data/spec/support/data/parts/document_with_multiple_sections_part.xml +24 -0
  317. data/spec/support/data/parts/document_with_one_section_part.xml +16 -0
  318. data/spec/support/data/parts/empty_document_part.xml +1 -0
  319. data/spec/support/data/parts/global_rels_part.xml +1 -0
  320. data/spec/support/data/parts/rels_part.xml +1 -0
  321. data/spec/support/data/parts/settings_part.xml +1 -0
  322. data/spec/support/data/parts/styles_part.xml +1 -0
  323. data/spec/support/data/parts/styles_with_custom_style_part.xml +20 -0
  324. data/spec/support/data/styles/character_styles.xml +15 -0
  325. data/spec/support/data/styles/paragraph_styles.xml +11 -0
  326. data/spec/support/element_test_macros.rb +193 -0
  327. data/spec/support/part_test_macros.rb +27 -0
  328. data/spec/support/property_test_macros.rb +116 -0
  329. data/spec/support/style_test_macros.rb +33 -0
  330. data/spec/support/value_property_test_macros.rb +69 -0
  331. metadata +486 -0
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::ComplexBold do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :bCs, name: "complex_bold"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:bCs/>"
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,24 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::ComplexFontSize do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :szCs, name: "complex_font_size", value: 22
7
+
8
+ with_value(20) do
9
+ it_should_work
10
+ it_should_output "<w:szCs w:val=\"20\"/>"
11
+ end
12
+
13
+ with_value(-20) do
14
+ it_should_not_work
15
+ end
16
+
17
+ with_value(23.1) do
18
+ it_should_not_work
19
+ end
20
+
21
+ with_value(:big) do
22
+ it_should_not_work
23
+ end
24
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::ComplexItalics do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :iCs, name: "complex_italics"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:iCs/>"
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 OpenXml::Docx::Properties::ComplexScriptFormatting do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :cs, name: "complex_script_formatting"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:cs/>"
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 OpenXml::Docx::Properties::CompressPunctuation do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :topLinePunct, name: "compress_punctuation"
7
+
8
+ with_value(:on) do
9
+ it_should_work
10
+ it_should_output "<w:topLinePunct w:val=\"on\"/>"
11
+ end
12
+
13
+ with_value(:off) do
14
+ it_should_work
15
+ it_should_output "<w:topLinePunct 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,160 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::ConditionalFormatting do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :cnfStyle, name: "conditional_formatting"
7
+
8
+ for_attribute(:even_horizontal_band) do
9
+ with_value(true) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:cnfStyle w:evenHBand=\"true\"/>"
12
+ end
13
+
14
+ with_value(false) do
15
+ it_should_assign_successfully
16
+ it_should_output ""
17
+ end
18
+ end
19
+
20
+ for_attribute(:even_vertical_band) do
21
+ with_value(true) do
22
+ it_should_assign_successfully
23
+ it_should_output "<w:cnfStyle w:evenVBand=\"true\"/>"
24
+ end
25
+
26
+ with_value(false) do
27
+ it_should_assign_successfully
28
+ it_should_output ""
29
+ end
30
+ end
31
+
32
+ for_attribute(:first_column) do
33
+ with_value(true) do
34
+ it_should_assign_successfully
35
+ it_should_output "<w:cnfStyle w:firstColumn=\"true\"/>"
36
+ end
37
+
38
+ with_value(false) do
39
+ it_should_assign_successfully
40
+ it_should_output ""
41
+ end
42
+ end
43
+
44
+ for_attribute(:first_row) do
45
+ with_value(true) do
46
+ it_should_assign_successfully
47
+ it_should_output "<w:cnfStyle w:firstRow=\"true\"/>"
48
+ end
49
+
50
+ with_value(false) do
51
+ it_should_assign_successfully
52
+ it_should_output ""
53
+ end
54
+ end
55
+
56
+ for_attribute(:first_row_first_column) do
57
+ with_value(true) do
58
+ it_should_assign_successfully
59
+ it_should_output "<w:cnfStyle w:firstRowFirstColumn=\"true\"/>"
60
+ end
61
+
62
+ with_value(false) do
63
+ it_should_assign_successfully
64
+ it_should_output ""
65
+ end
66
+ end
67
+
68
+ for_attribute(:first_row_last_column) do
69
+ with_value(true) do
70
+ it_should_assign_successfully
71
+ it_should_output "<w:cnfStyle w:firstRowLastColumn=\"true\"/>"
72
+ end
73
+
74
+ with_value(false) do
75
+ it_should_assign_successfully
76
+ it_should_output ""
77
+ end
78
+ end
79
+
80
+ for_attribute(:last_column) do
81
+ with_value(true) do
82
+ it_should_assign_successfully
83
+ it_should_output "<w:cnfStyle w:lastColumn=\"true\"/>"
84
+ end
85
+
86
+ with_value(false) do
87
+ it_should_assign_successfully
88
+ it_should_output ""
89
+ end
90
+ end
91
+
92
+ for_attribute(:last_row) do
93
+ with_value(true) do
94
+ it_should_assign_successfully
95
+ it_should_output "<w:cnfStyle w:lastRow=\"true\"/>"
96
+ end
97
+
98
+ with_value(false) do
99
+ it_should_assign_successfully
100
+ it_should_output ""
101
+ end
102
+ end
103
+
104
+ for_attribute(:last_row_first_column) do
105
+ with_value(true) do
106
+ it_should_assign_successfully
107
+ it_should_output "<w:cnfStyle w:lastRowFirstColumn=\"true\"/>"
108
+ end
109
+
110
+ with_value(false) do
111
+ it_should_assign_successfully
112
+ it_should_output ""
113
+ end
114
+ end
115
+
116
+ for_attribute(:last_row_last_column) do
117
+ with_value(true) do
118
+ it_should_assign_successfully
119
+ it_should_output "<w:cnfStyle w:lastRowLastColumn=\"true\"/>"
120
+ end
121
+
122
+ with_value(false) do
123
+ it_should_assign_successfully
124
+ it_should_output ""
125
+ end
126
+ end
127
+
128
+ for_attribute(:odd_horizontal_band) do
129
+ with_value(true) do
130
+ it_should_assign_successfully
131
+ it_should_output "<w:cnfStyle w:oddHBand=\"true\"/>"
132
+ end
133
+
134
+ with_value(false) do
135
+ it_should_assign_successfully
136
+ it_should_output ""
137
+ end
138
+ end
139
+
140
+ for_attribute(:odd_vertical_band) do
141
+ with_value(true) do
142
+ it_should_assign_successfully
143
+ it_should_output "<w:cnfStyle w:oddVBand=\"true\"/>"
144
+ end
145
+
146
+ with_value(false) do
147
+ it_should_assign_successfully
148
+ it_should_output ""
149
+ end
150
+ end
151
+
152
+ with_no_attributes_set do
153
+ it_should_output "", assign: false
154
+ end
155
+
156
+ with_these_attributes_set(last_row: true, last_column: true, last_row_last_column: true) do
157
+ it_should_output "<w:cnfStyle w:lastColumn=\"true\" w:lastRow=\"true\" w:lastRowLastColumn=\"true\"/>", assign: false
158
+ end
159
+
160
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::ContextualSpacing do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :contextualSpacing, name: "contextual_spacing"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:contextualSpacing/>"
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,17 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::DivId do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :divId, name: "div_id", value: 1
7
+
8
+ with_value(2) do
9
+ it_should_work
10
+ it_should_output "<w:divId w:val=\"2\"/>"
11
+ end
12
+
13
+ with_value(:big) do
14
+ it_should_not_work
15
+ end
16
+
17
+ end
@@ -0,0 +1,78 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::DocumentGrid do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :docGrid, name: "document_grid"
7
+
8
+ for_attribute(:char_space) do
9
+ with_value(40960) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:docGrid w:charSpace=\"40960\"/>"
12
+ end
13
+
14
+ with_value(:twelve) do
15
+ it_should_raise_an_exception
16
+ end
17
+
18
+ with_value(-12345) do
19
+ it_should_assign_successfully
20
+ it_should_output "<w:docGrid w:charSpace=\"-12345\"/>"
21
+ end
22
+
23
+ with_value(123.45) do
24
+ it_should_raise_an_exception
25
+ end
26
+ end
27
+
28
+ for_attribute(:line_pitch) do
29
+ with_value(40960) do
30
+ it_should_assign_successfully
31
+ it_should_output "<w:docGrid w:linePitch=\"40960\"/>"
32
+ end
33
+
34
+ with_value(:twelve) do
35
+ it_should_raise_an_exception
36
+ end
37
+
38
+ with_value(-12345) do
39
+ it_should_assign_successfully
40
+ it_should_output "<w:docGrid w:linePitch=\"-12345\"/>"
41
+ end
42
+
43
+ with_value(123.45) do
44
+ it_should_raise_an_exception
45
+ end
46
+ end
47
+
48
+ for_attribute(:type) do
49
+ with_value(:default) do
50
+ it_should_assign_successfully
51
+ it_should_output "<w:docGrid w:type=\"default\"/>"
52
+ end
53
+
54
+ with_value(:lines) do
55
+ it_should_assign_successfully
56
+ it_should_output "<w:docGrid w:type=\"lines\"/>"
57
+ end
58
+
59
+ with_value(:linesAndChars) do
60
+ it_should_assign_successfully
61
+ it_should_output "<w:docGrid w:type=\"linesAndChars\"/>"
62
+ end
63
+
64
+ with_value(:snapToChars) do
65
+ it_should_assign_successfully
66
+ it_should_output "<w:docGrid w:type=\"snapToChars\"/>"
67
+ end
68
+ end
69
+
70
+ with_no_attributes_set do
71
+ it_should_output "", assign: false
72
+ end
73
+
74
+ with_these_attributes_set(char_space: 40960, line_pitch: 40960, type: :default) do
75
+ it_should_output "<w:docGrid w:charSpace=\"40960\" w:linePitch=\"40960\" w:type=\"default\"/>", assign: false
76
+ end
77
+
78
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::DoubleStrikethrough do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :dstrike, name: "double_strikethrough"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:dstrike w:val=\"true\"/>"
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,115 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::EastAsianLayout do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :eastAsianLayout, name: "east_asian_layout"
7
+
8
+ for_attribute(:combine) do
9
+ with_value(:on) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:eastAsianLayout w:combine=\"on\"/>"
12
+ end
13
+
14
+ with_value(:off) do
15
+ it_should_assign_successfully
16
+ it_should_output "<w:eastAsianLayout w:combine=\"off\"/>"
17
+ end
18
+
19
+ with_value(:somethingElse) do
20
+ it_should_raise_an_exception
21
+ end
22
+ end
23
+
24
+ for_attribute(:combine_brackets) do
25
+ with_value(:angle) do
26
+ it_should_assign_successfully
27
+ it_should_output "<w:eastAsianLayout w:combineBrackets=\"angle\"/>"
28
+ end
29
+
30
+ with_value(:curly) do
31
+ it_should_assign_successfully
32
+ it_should_output "<w:eastAsianLayout w:combineBrackets=\"curly\"/>"
33
+ end
34
+
35
+ with_value(:none) do
36
+ it_should_assign_successfully
37
+ it_should_output "<w:eastAsianLayout w:combineBrackets=\"none\"/>"
38
+ end
39
+
40
+ with_value(:round) do
41
+ it_should_assign_successfully
42
+ it_should_output "<w:eastAsianLayout w:combineBrackets=\"round\"/>"
43
+ end
44
+
45
+ with_value(:square) do
46
+ it_should_assign_successfully
47
+ it_should_output "<w:eastAsianLayout w:combineBrackets=\"square\"/>"
48
+ end
49
+
50
+ with_value(:smileyFaces) do
51
+ it_should_raise_an_exception
52
+ end
53
+ end
54
+
55
+ for_attribute(:id) do
56
+ with_value(1) do
57
+ it_should_assign_successfully
58
+ it_should_output "<w:eastAsianLayout w:id=\"1\"/>"
59
+ end
60
+
61
+ with_value(-81238123) do
62
+ it_should_assign_successfully
63
+ it_should_output "<w:eastAsianLayout w:id=\"-81238123\"/>"
64
+ end
65
+
66
+ with_value(4.5) do
67
+ it_should_raise_an_exception
68
+ end
69
+
70
+ with_value(:number1234) do
71
+ it_should_raise_an_exception
72
+ end
73
+ end
74
+
75
+ for_attribute(:vertical) do
76
+ with_value(:on) do
77
+ it_should_assign_successfully
78
+ it_should_output "<w:eastAsianLayout w:vert=\"on\"/>"
79
+ end
80
+
81
+ with_value(:off) do
82
+ it_should_assign_successfully
83
+ it_should_output "<w:eastAsianLayout w:vert=\"off\"/>"
84
+ end
85
+
86
+ with_value(:sorta) do
87
+ it_should_raise_an_exception
88
+ end
89
+ end
90
+
91
+ for_attribute(:vertical_compress) do
92
+ with_value(:on) do
93
+ it_should_assign_successfully
94
+ it_should_output "<w:eastAsianLayout w:vertCompress=\"on\"/>"
95
+ end
96
+
97
+ with_value(:off) do
98
+ it_should_assign_successfully
99
+ it_should_output "<w:eastAsianLayout w:vertCompress=\"off\"/>"
100
+ end
101
+
102
+ with_value(:sorta) do
103
+ it_should_raise_an_exception
104
+ end
105
+ end
106
+
107
+ with_no_attributes_set do
108
+ it_should_output "", assign: false
109
+ end
110
+
111
+ with_these_attributes_set(id: 2, vertical: :on, vertical_compress: :on) do
112
+ it_should_output "<w:eastAsianLayout w:id=\"2\" w:vert=\"on\" w:vertCompress=\"on\"/>", assign: false
113
+ end
114
+
115
+ end