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::PageBreakBefore do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :pageBreakBefore, name: "page_break_before"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:pageBreakBefore/>"
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,150 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::PageMargins do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :pgMar, name: "page_margins"
7
+
8
+ for_attribute(:bottom) do
9
+ with_value(1440) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:pgMar w:bottom=\"1440\"/>"
12
+ end
13
+
14
+ with_value(-1440) do
15
+ it_should_assign_successfully
16
+ it_should_output "<w:pgMar w:bottom=\"-1440\"/>"
17
+ end
18
+
19
+ with_value(9832.1) do
20
+ it_should_raise_an_exception
21
+ end
22
+
23
+ with_value(:big) do
24
+ it_should_raise_an_exception
25
+ end
26
+ end
27
+
28
+ for_attribute(:footer) do
29
+ with_value(1440) do
30
+ it_should_assign_successfully
31
+ it_should_output "<w:pgMar w:footer=\"1440\"/>"
32
+ end
33
+
34
+ with_value(-1440) do
35
+ it_should_raise_an_exception
36
+ end
37
+
38
+ with_value(9832.1) do
39
+ it_should_raise_an_exception
40
+ end
41
+
42
+ with_value(:big) do
43
+ it_should_raise_an_exception
44
+ end
45
+ end
46
+
47
+ for_attribute(:gutter) do
48
+ with_value(1440) do
49
+ it_should_assign_successfully
50
+ it_should_output "<w:pgMar w:gutter=\"1440\"/>"
51
+ end
52
+
53
+ with_value(-1440) do
54
+ it_should_raise_an_exception
55
+ end
56
+
57
+ with_value(9832.1) do
58
+ it_should_raise_an_exception
59
+ end
60
+
61
+ with_value(:big) do
62
+ it_should_raise_an_exception
63
+ end
64
+ end
65
+
66
+ for_attribute(:header) do
67
+ with_value(1440) do
68
+ it_should_assign_successfully
69
+ it_should_output "<w:pgMar w:header=\"1440\"/>"
70
+ end
71
+
72
+ with_value(-1440) do
73
+ it_should_raise_an_exception
74
+ end
75
+
76
+ with_value(9832.1) do
77
+ it_should_raise_an_exception
78
+ end
79
+
80
+ with_value(:big) do
81
+ it_should_raise_an_exception
82
+ end
83
+ end
84
+
85
+ for_attribute(:left) do
86
+ with_value(1440) do
87
+ it_should_assign_successfully
88
+ it_should_output "<w:pgMar w:left=\"1440\"/>"
89
+ end
90
+
91
+ with_value(-1440) do
92
+ it_should_raise_an_exception
93
+ end
94
+
95
+ with_value(9832.1) do
96
+ it_should_raise_an_exception
97
+ end
98
+
99
+ with_value(:big) do
100
+ it_should_raise_an_exception
101
+ end
102
+ end
103
+
104
+ for_attribute(:right) do
105
+ with_value(1440) do
106
+ it_should_assign_successfully
107
+ it_should_output "<w:pgMar w:right=\"1440\"/>"
108
+ end
109
+
110
+ with_value(-1440) do
111
+ it_should_raise_an_exception
112
+ end
113
+
114
+ with_value(9832.1) do
115
+ it_should_raise_an_exception
116
+ end
117
+
118
+ with_value(:big) do
119
+ it_should_raise_an_exception
120
+ end
121
+ end
122
+
123
+ for_attribute(:top) do
124
+ with_value(1440) do
125
+ it_should_assign_successfully
126
+ it_should_output "<w:pgMar w:top=\"1440\"/>"
127
+ end
128
+
129
+ with_value(-1440) do
130
+ it_should_assign_successfully
131
+ it_should_output "<w:pgMar w:top=\"-1440\"/>"
132
+ end
133
+
134
+ with_value(9832.1) do
135
+ it_should_raise_an_exception
136
+ end
137
+
138
+ with_value(:big) do
139
+ it_should_raise_an_exception
140
+ end
141
+ end
142
+
143
+ with_no_attributes_set do
144
+ it_should_output "", assign: false
145
+ end
146
+
147
+ with_these_attributes_set(header: 720, bottom: 1440, top: 1440, right: 1440, left: 1440, footer: 720, gutter: 0) do
148
+ it_should_output "<w:pgMar w:bottom=\"1440\" w:footer=\"720\" w:gutter=\"0\" w:header=\"720\" w:left=\"1440\" w:right=\"1440\" w:top=\"1440\"/>", assign: false
149
+ end
150
+ end
@@ -0,0 +1,395 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::PageNumbering do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :pgNumType, name: "page_numbering"
7
+
8
+ for_attribute(:chapter_separator) do
9
+ with_value(:colon) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:pgNumType w:chapSep=\"colon\"/>"
12
+ end
13
+
14
+ with_value(:emDash) do
15
+ it_should_assign_successfully
16
+ it_should_output "<w:pgNumType w:chapSep=\"emDash\"/>"
17
+ end
18
+
19
+ with_value(:enDash) do
20
+ it_should_assign_successfully
21
+ it_should_output "<w:pgNumType w:chapSep=\"enDash\"/>"
22
+ end
23
+
24
+ with_value(:hyphen) do
25
+ it_should_assign_successfully
26
+ it_should_output "<w:pgNumType w:chapSep=\"hyphen\"/>"
27
+ end
28
+
29
+ with_value(:period) do
30
+ it_should_assign_successfully
31
+ it_should_output "<w:pgNumType w:chapSep=\"period\"/>"
32
+ end
33
+ end
34
+
35
+ for_attribute(:chapter_style) do
36
+ with_value(1) do
37
+ it_should_assign_successfully
38
+ it_should_output "<w:pgNumType w:chapStyle=\"1\"/>"
39
+ end
40
+
41
+ with_value(-10) do
42
+ it_should_assign_successfully
43
+ it_should_output "<w:pgNumType w:chapStyle=\"-10\"/>"
44
+ end
45
+
46
+ with_value(122.2) do
47
+ it_should_raise_an_exception
48
+ end
49
+
50
+ with_value(:cool) do
51
+ it_should_raise_an_exception
52
+ end
53
+ end
54
+
55
+ for_attribute(:format) do
56
+ with_value(:aiueo) do
57
+ it_should_assign_successfully
58
+ it_should_output "<w:pgNumType w:fmt=\"aiueo\"/>"
59
+ end
60
+
61
+ with_value(:aiueoFullWidth) do
62
+ it_should_assign_successfully
63
+ it_should_output "<w:pgNumType w:fmt=\"aiueoFullWidth\"/>"
64
+ end
65
+
66
+ with_value(:arabicAbjad) do
67
+ it_should_assign_successfully
68
+ it_should_output "<w:pgNumType w:fmt=\"arabicAbjad\"/>"
69
+ end
70
+
71
+ with_value(:arabicAlpha) do
72
+ it_should_assign_successfully
73
+ it_should_output "<w:pgNumType w:fmt=\"arabicAlpha\"/>"
74
+ end
75
+
76
+ with_value(:bahtText) do
77
+ it_should_assign_successfully
78
+ it_should_output "<w:pgNumType w:fmt=\"bahtText\"/>"
79
+ end
80
+
81
+ with_value(:bullet) do
82
+ it_should_assign_successfully
83
+ it_should_output "<w:pgNumType w:fmt=\"bullet\"/>"
84
+ end
85
+
86
+ with_value(:cardinalText) do
87
+ it_should_assign_successfully
88
+ it_should_output "<w:pgNumType w:fmt=\"cardinalText\"/>"
89
+ end
90
+
91
+ with_value(:chicago) do
92
+ it_should_assign_successfully
93
+ it_should_output "<w:pgNumType w:fmt=\"chicago\"/>"
94
+ end
95
+
96
+ with_value(:chineseCounting) do
97
+ it_should_assign_successfully
98
+ it_should_output "<w:pgNumType w:fmt=\"chineseCounting\"/>"
99
+ end
100
+
101
+ with_value(:chineseCountingThousand) do
102
+ it_should_assign_successfully
103
+ it_should_output "<w:pgNumType w:fmt=\"chineseCountingThousand\"/>"
104
+ end
105
+
106
+ with_value(:chineseLegalSimplified) do
107
+ it_should_assign_successfully
108
+ it_should_output "<w:pgNumType w:fmt=\"chineseLegalSimplified\"/>"
109
+ end
110
+
111
+ with_value(:chosung) do
112
+ it_should_assign_successfully
113
+ it_should_output "<w:pgNumType w:fmt=\"chosung\"/>"
114
+ end
115
+
116
+ with_value(:custom) do
117
+ it_should_assign_successfully
118
+ it_should_output "<w:pgNumType w:fmt=\"custom\"/>"
119
+ end
120
+
121
+ with_value(:decimal) do
122
+ it_should_assign_successfully
123
+ it_should_output "<w:pgNumType w:fmt=\"decimal\"/>"
124
+ end
125
+
126
+ with_value(:decimalEnclosedCircle) do
127
+ it_should_assign_successfully
128
+ it_should_output "<w:pgNumType w:fmt=\"decimalEnclosedCircle\"/>"
129
+ end
130
+
131
+ with_value(:decimalEnclosedCircleChinese) do
132
+ it_should_assign_successfully
133
+ it_should_output "<w:pgNumType w:fmt=\"decimalEnclosedCircleChinese\"/>"
134
+ end
135
+
136
+ with_value(:decimalEnclosedFullstop) do
137
+ it_should_assign_successfully
138
+ it_should_output "<w:pgNumType w:fmt=\"decimalEnclosedFullstop\"/>"
139
+ end
140
+
141
+ with_value(:decimalEnclosedParen) do
142
+ it_should_assign_successfully
143
+ it_should_output "<w:pgNumType w:fmt=\"decimalEnclosedParen\"/>"
144
+ end
145
+
146
+ with_value(:decimalFullWidth) do
147
+ it_should_assign_successfully
148
+ it_should_output "<w:pgNumType w:fmt=\"decimalFullWidth\"/>"
149
+ end
150
+
151
+ with_value(:decimalHalfWidth) do
152
+ it_should_assign_successfully
153
+ it_should_output "<w:pgNumType w:fmt=\"decimalHalfWidth\"/>"
154
+ end
155
+
156
+ with_value(:decimalZero) do
157
+ it_should_assign_successfully
158
+ it_should_output "<w:pgNumType w:fmt=\"decimalZero\"/>"
159
+ end
160
+
161
+ with_value(:dollarText) do
162
+ it_should_assign_successfully
163
+ it_should_output "<w:pgNumType w:fmt=\"dollarText\"/>"
164
+ end
165
+
166
+ with_value(:ganada) do
167
+ it_should_assign_successfully
168
+ it_should_output "<w:pgNumType w:fmt=\"ganada\"/>"
169
+ end
170
+
171
+ with_value(:hebrew1) do
172
+ it_should_assign_successfully
173
+ it_should_output "<w:pgNumType w:fmt=\"hebrew1\"/>"
174
+ end
175
+
176
+ with_value(:hebrew2) do
177
+ it_should_assign_successfully
178
+ it_should_output "<w:pgNumType w:fmt=\"hebrew2\"/>"
179
+ end
180
+
181
+ with_value(:hex) do
182
+ it_should_assign_successfully
183
+ it_should_output "<w:pgNumType w:fmt=\"hex\"/>"
184
+ end
185
+
186
+ with_value(:hindiConsonants) do
187
+ it_should_assign_successfully
188
+ it_should_output "<w:pgNumType w:fmt=\"hindiConsonants\"/>"
189
+ end
190
+
191
+ with_value(:hindiCounting) do
192
+ it_should_assign_successfully
193
+ it_should_output "<w:pgNumType w:fmt=\"hindiCounting\"/>"
194
+ end
195
+
196
+ with_value(:hindiNumbers) do
197
+ it_should_assign_successfully
198
+ it_should_output "<w:pgNumType w:fmt=\"hindiNumbers\"/>"
199
+ end
200
+
201
+ with_value(:hindiVowels) do
202
+ it_should_assign_successfully
203
+ it_should_output "<w:pgNumType w:fmt=\"hindiVowels\"/>"
204
+ end
205
+
206
+ with_value(:ideographDigital) do
207
+ it_should_assign_successfully
208
+ it_should_output "<w:pgNumType w:fmt=\"ideographDigital\"/>"
209
+ end
210
+
211
+ with_value(:ideographEnclosedCircle) do
212
+ it_should_assign_successfully
213
+ it_should_output "<w:pgNumType w:fmt=\"ideographEnclosedCircle\"/>"
214
+ end
215
+
216
+ with_value(:ideographLegalTraditional) do
217
+ it_should_assign_successfully
218
+ it_should_output "<w:pgNumType w:fmt=\"ideographLegalTraditional\"/>"
219
+ end
220
+
221
+ with_value(:ideographTraditional) do
222
+ it_should_assign_successfully
223
+ it_should_output "<w:pgNumType w:fmt=\"ideographTraditional\"/>"
224
+ end
225
+
226
+ with_value(:ideographZodiac) do
227
+ it_should_assign_successfully
228
+ it_should_output "<w:pgNumType w:fmt=\"ideographZodiac\"/>"
229
+ end
230
+
231
+ with_value(:ideographZodiacTraditional) do
232
+ it_should_assign_successfully
233
+ it_should_output "<w:pgNumType w:fmt=\"ideographZodiacTraditional\"/>"
234
+ end
235
+
236
+ with_value(:iroha) do
237
+ it_should_assign_successfully
238
+ it_should_output "<w:pgNumType w:fmt=\"iroha\"/>"
239
+ end
240
+
241
+ with_value(:irohaFullWidth) do
242
+ it_should_assign_successfully
243
+ it_should_output "<w:pgNumType w:fmt=\"irohaFullWidth\"/>"
244
+ end
245
+
246
+ with_value(:japaneseCounting) do
247
+ it_should_assign_successfully
248
+ it_should_output "<w:pgNumType w:fmt=\"japaneseCounting\"/>"
249
+ end
250
+
251
+ with_value(:japaneseDigitalTenThousand) do
252
+ it_should_assign_successfully
253
+ it_should_output "<w:pgNumType w:fmt=\"japaneseDigitalTenThousand\"/>"
254
+ end
255
+
256
+ with_value(:japaneseLegal) do
257
+ it_should_assign_successfully
258
+ it_should_output "<w:pgNumType w:fmt=\"japaneseLegal\"/>"
259
+ end
260
+
261
+ with_value(:koreanCounting) do
262
+ it_should_assign_successfully
263
+ it_should_output "<w:pgNumType w:fmt=\"koreanCounting\"/>"
264
+ end
265
+
266
+ with_value(:koreanDigital) do
267
+ it_should_assign_successfully
268
+ it_should_output "<w:pgNumType w:fmt=\"koreanDigital\"/>"
269
+ end
270
+
271
+ with_value(:koreanDigital2) do
272
+ it_should_assign_successfully
273
+ it_should_output "<w:pgNumType w:fmt=\"koreanDigital2\"/>"
274
+ end
275
+
276
+ with_value(:koreanLegal) do
277
+ it_should_assign_successfully
278
+ it_should_output "<w:pgNumType w:fmt=\"koreanLegal\"/>"
279
+ end
280
+
281
+ with_value(:lowerLetter) do
282
+ it_should_assign_successfully
283
+ it_should_output "<w:pgNumType w:fmt=\"lowerLetter\"/>"
284
+ end
285
+
286
+ with_value(:lowerRoman) do
287
+ it_should_assign_successfully
288
+ it_should_output "<w:pgNumType w:fmt=\"lowerRoman\"/>"
289
+ end
290
+
291
+ with_value(:none) do
292
+ it_should_assign_successfully
293
+ it_should_output "<w:pgNumType w:fmt=\"none\"/>"
294
+ end
295
+
296
+ with_value(:numberInDash) do
297
+ it_should_assign_successfully
298
+ it_should_output "<w:pgNumType w:fmt=\"numberInDash\"/>"
299
+ end
300
+
301
+ with_value(:ordinal) do
302
+ it_should_assign_successfully
303
+ it_should_output "<w:pgNumType w:fmt=\"ordinal\"/>"
304
+ end
305
+
306
+ with_value(:ordinalText) do
307
+ it_should_assign_successfully
308
+ it_should_output "<w:pgNumType w:fmt=\"ordinalText\"/>"
309
+ end
310
+
311
+ with_value(:russianLower) do
312
+ it_should_assign_successfully
313
+ it_should_output "<w:pgNumType w:fmt=\"russianLower\"/>"
314
+ end
315
+
316
+ with_value(:russianUpper) do
317
+ it_should_assign_successfully
318
+ it_should_output "<w:pgNumType w:fmt=\"russianUpper\"/>"
319
+ end
320
+
321
+ with_value(:taiwaneseCounting) do
322
+ it_should_assign_successfully
323
+ it_should_output "<w:pgNumType w:fmt=\"taiwaneseCounting\"/>"
324
+ end
325
+
326
+ with_value(:taiwaneseCountingThousand) do
327
+ it_should_assign_successfully
328
+ it_should_output "<w:pgNumType w:fmt=\"taiwaneseCountingThousand\"/>"
329
+ end
330
+
331
+ with_value(:taiwaneseDigital) do
332
+ it_should_assign_successfully
333
+ it_should_output "<w:pgNumType w:fmt=\"taiwaneseDigital\"/>"
334
+ end
335
+
336
+ with_value(:thaiCounting) do
337
+ it_should_assign_successfully
338
+ it_should_output "<w:pgNumType w:fmt=\"thaiCounting\"/>"
339
+ end
340
+
341
+ with_value(:thaiLetters) do
342
+ it_should_assign_successfully
343
+ it_should_output "<w:pgNumType w:fmt=\"thaiLetters\"/>"
344
+ end
345
+
346
+ with_value(:thaiNumbers) do
347
+ it_should_assign_successfully
348
+ it_should_output "<w:pgNumType w:fmt=\"thaiNumbers\"/>"
349
+ end
350
+
351
+ with_value(:upperLetter) do
352
+ it_should_assign_successfully
353
+ it_should_output "<w:pgNumType w:fmt=\"upperLetter\"/>"
354
+ end
355
+
356
+ with_value(:upperRoman) do
357
+ it_should_assign_successfully
358
+ it_should_output "<w:pgNumType w:fmt=\"upperRoman\"/>"
359
+ end
360
+
361
+ with_value(:vietnameseCounting) do
362
+ it_should_assign_successfully
363
+ it_should_output "<w:pgNumType w:fmt=\"vietnameseCounting\"/>"
364
+ end
365
+ end
366
+
367
+ for_attribute(:start) do
368
+ with_value(1) do
369
+ it_should_assign_successfully
370
+ it_should_output "<w:pgNumType w:start=\"1\"/>"
371
+ end
372
+
373
+ with_value(-10) do
374
+ it_should_assign_successfully
375
+ it_should_output "<w:pgNumType w:start=\"-10\"/>"
376
+ end
377
+
378
+ with_value(122.2) do
379
+ it_should_raise_an_exception
380
+ end
381
+
382
+ with_value(:cool) do
383
+ it_should_raise_an_exception
384
+ end
385
+ end
386
+
387
+ with_no_attributes_set do
388
+ it_should_output "", assign: false
389
+ end
390
+
391
+ with_these_attributes_set(chapter_separator: :colon, chapter_style: 1, format: :taiwaneseCountingThousand, start: 2) do
392
+ it_should_output "<w:pgNumType w:chapSep=\"colon\" w:chapStyle=\"1\" w:fmt=\"taiwaneseCountingThousand\" w:start=\"2\"/>", assign: false
393
+ end
394
+
395
+ end