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,90 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::PageSize do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :pgSz, name: "page_size"
7
+
8
+ for_attribute(:code) do
9
+ with_value(1) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:pgSz w:code=\"1\"/>"
12
+ end
13
+
14
+ with_value(-10) do
15
+ it_should_assign_successfully
16
+ it_should_output "<w:pgSz w:code=\"-10\"/>"
17
+ end
18
+
19
+ with_value(122.2) do
20
+ it_should_raise_an_exception
21
+ end
22
+
23
+ with_value(:cool) do
24
+ it_should_raise_an_exception
25
+ end
26
+ end
27
+
28
+ for_attribute(:height) do
29
+ with_value(1) do
30
+ it_should_assign_successfully
31
+ it_should_output "<w:pgSz w:h=\"1\"/>"
32
+ end
33
+
34
+ with_value(-10) do
35
+ it_should_raise_an_exception
36
+ end
37
+
38
+ with_value(122.2) do
39
+ it_should_raise_an_exception
40
+ end
41
+
42
+ with_value(:cool) do
43
+ it_should_raise_an_exception
44
+ end
45
+ end
46
+
47
+ for_attribute(:orientation) do
48
+ with_value(:portrait) do
49
+ it_should_assign_successfully
50
+ it_should_output "<w:pgSz w:orient=\"portrait\"/>"
51
+ end
52
+
53
+ with_value(:landscape) do
54
+ it_should_assign_successfully
55
+ it_should_output "<w:pgSz w:orient=\"landscape\"/>"
56
+ end
57
+
58
+ with_value(:somethingWeird) do
59
+ it_should_raise_an_exception
60
+ end
61
+ end
62
+
63
+ for_attribute(:width) do
64
+ with_value(1) do
65
+ it_should_assign_successfully
66
+ it_should_output "<w:pgSz w:w=\"1\"/>"
67
+ end
68
+
69
+ with_value(-10) do
70
+ it_should_raise_an_exception
71
+ end
72
+
73
+ with_value(122.2) do
74
+ it_should_raise_an_exception
75
+ end
76
+
77
+ with_value(:cool) do
78
+ it_should_raise_an_exception
79
+ end
80
+ end
81
+
82
+ with_no_attributes_set do
83
+ it_should_output "", assign: false
84
+ end
85
+
86
+ with_these_attributes_set(width: 12240, height: 5000, orientation: :landscape) do
87
+ it_should_output "<w:pgSz w:h=\"5000\" w:orient=\"landscape\" w:w=\"12240\"/>", assign: false
88
+ end
89
+
90
+ end
@@ -0,0 +1,56 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::PaperSource do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :paperSrc, name: "paper_source"
7
+
8
+ for_attribute(:first) do
9
+ with_value(1) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:paperSrc w:first=\"1\"/>"
12
+ end
13
+
14
+ with_value(-1) do
15
+ it_should_assign_successfully
16
+ it_should_output "<w:paperSrc w:first=\"-1\"/>"
17
+ end
18
+
19
+ with_value(1234.4) do
20
+ it_should_raise_an_exception
21
+ end
22
+
23
+ with_value(:one_million) do
24
+ it_should_raise_an_exception
25
+ end
26
+ end
27
+
28
+ for_attribute(:other) do
29
+ with_value(1) do
30
+ it_should_assign_successfully
31
+ it_should_output "<w:paperSrc w:other=\"1\"/>"
32
+ end
33
+
34
+ with_value(-1) do
35
+ it_should_assign_successfully
36
+ it_should_output "<w:paperSrc w:other=\"-1\"/>"
37
+ end
38
+
39
+ with_value(1234.4) do
40
+ it_should_raise_an_exception
41
+ end
42
+
43
+ with_value(:one_million) do
44
+ it_should_raise_an_exception
45
+ end
46
+ end
47
+
48
+ with_no_attributes_set do
49
+ it_should_output "", assign: false
50
+ end
51
+
52
+ with_these_attributes_set(first: 1, other: 1) do
53
+ it_should_output "<w:paperSrc w:first=\"1\" w:other=\"1\"/>", assign: false
54
+ end
55
+
56
+ end
@@ -0,0 +1,66 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::ParagraphBorders do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :pBdr, name: "borders"
7
+
8
+ context "when setting values" do
9
+ before(:each) do
10
+ @instance = described_class.new
11
+ end
12
+
13
+ it "should allow modifying the left border" do
14
+ expect { instance.left.color = :auto }.to_not raise_error
15
+ end
16
+
17
+ it "should allow modifying the right border" do
18
+ expect { instance.right.size = 24 }.to_not raise_error
19
+ end
20
+
21
+ it "should allow modifying the top border" do
22
+ expect { instance.top.space = 1 }.to_not raise_error
23
+ end
24
+
25
+ it "should allow modifying the bottom border" do
26
+ expect { instance.bottom.type = :apples }.to_not raise_error
27
+ end
28
+
29
+ it "should allow modifying the between border" do
30
+ expect { instance.between.shadow = true }.to_not raise_error
31
+ end
32
+
33
+ it "should allow modifying the bar border" do
34
+ expect { instance.bar.theme_color = :accent2 }.to_not raise_error
35
+ end
36
+
37
+ end
38
+
39
+ context "with no values set" do
40
+ before(:each) do
41
+ @instance = described_class.new
42
+ end
43
+
44
+ it_should_output "", assign: false
45
+ end
46
+
47
+ context "when one border has at least one property set" do
48
+ before(:each) do
49
+ @instance = described_class.new
50
+ instance.left.type = :apples
51
+ end
52
+
53
+ it_should_output "<w:pBdr>\n <w:left w:val=\"apples\"/>\n </w:pBdr>", assign: false
54
+ end
55
+
56
+ context "when more than one border has at least one property set" do
57
+ before(:each) do
58
+ @instance = described_class.new
59
+ instance.left.color = "FF0000"
60
+ instance.right.type = :apples
61
+ end
62
+
63
+ it_should_output "<w:pBdr>\n <w:left w:color=\"FF0000\"/>\n <w:right w:val=\"apples\"/>\n </w:pBdr>", assign: false
64
+ end
65
+
66
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::ParagraphStyle do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :pStyle, name: "paragraph_style", value: "Nope"
7
+
8
+ with_value("Nope") do
9
+ it_should_work
10
+ it_should_output "<w:pStyle w:val=\"Nope\"/>"
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::ParentStyle do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :basedOn, name: "parent_style", value: "Something"
7
+
8
+ with_value("Something") do
9
+ it_should_work
10
+ it_should_output "<w:basedOn w:val=\"Something\"/>"
11
+ end
12
+
13
+ with_value(12.4) do
14
+ it_should_not_work
15
+ end
16
+
17
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::PersonalCompose do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :personalCompose, name: "personal_compose"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:personalCompose 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,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::PersonalReply do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :personalReply, name: "personal_reply"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:personalReply 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,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Personal do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :personal, name: "personal"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:personal 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,42 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::PhoneticGuideAlignment do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :rubyAlign, name: "alignment", value: :left
7
+
8
+ with_value(:center) do
9
+ it_should_work
10
+ it_should_output "<w:rubyAlign w:val=\"center\"/>"
11
+ end
12
+
13
+ with_value(:distributeLetter) do
14
+ it_should_work
15
+ it_should_output "<w:rubyAlign w:val=\"distributeLetter\"/>"
16
+ end
17
+
18
+ with_value(:distributeSpace) do
19
+ it_should_work
20
+ it_should_output "<w:rubyAlign w:val=\"distributeSpace\"/>"
21
+ end
22
+
23
+ with_value(:left) do
24
+ it_should_work
25
+ it_should_output "<w:rubyAlign w:val=\"left\"/>"
26
+ end
27
+
28
+ with_value(:right) do
29
+ it_should_work
30
+ it_should_output "<w:rubyAlign w:val=\"right\"/>"
31
+ end
32
+
33
+ with_value(:rightVertical) do
34
+ it_should_work
35
+ it_should_output "<w:rubyAlign w:val=\"rightVertical\"/>"
36
+ end
37
+
38
+ with_value(:nope) do
39
+ it_should_not_work
40
+ end
41
+
42
+ end
@@ -0,0 +1,25 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::PhoneticGuideBaseFontSize do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :hpsBaseText, name: "base_font_size", value: 1
7
+
8
+ with_value(24) do
9
+ it_should_work
10
+ it_should_output "<w:hpsBaseText w:val=\"24\"/>"
11
+ end
12
+
13
+ with_value(-24) do
14
+ it_should_not_work
15
+ end
16
+
17
+ with_value(:big) do
18
+ it_should_not_work
19
+ end
20
+
21
+ with_value(23.3) do
22
+ it_should_not_work
23
+ end
24
+
25
+ end
@@ -0,0 +1,25 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::PhoneticGuideFontSizeRaise do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :hpsRaise, name: "font_size_raise", value: 1
7
+
8
+ with_value(24) do
9
+ it_should_work
10
+ it_should_output "<w:hpsRaise w:val=\"24\"/>"
11
+ end
12
+
13
+ with_value(-24) do
14
+ it_should_not_work
15
+ end
16
+
17
+ with_value(:big) do
18
+ it_should_not_work
19
+ end
20
+
21
+ with_value(23.3) do
22
+ it_should_not_work
23
+ end
24
+
25
+ end
@@ -0,0 +1,25 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::PhoneticGuideFontSize do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :hps, name: "font_size", value: 1
7
+
8
+ with_value(24) do
9
+ it_should_work
10
+ it_should_output "<w:hps w:val=\"24\"/>"
11
+ end
12
+
13
+ with_value(-24) do
14
+ it_should_not_work
15
+ end
16
+
17
+ with_value(:big) do
18
+ it_should_not_work
19
+ end
20
+
21
+ with_value(23.3) do
22
+ it_should_not_work
23
+ end
24
+
25
+ end