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,338 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Frame do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :framePr, name: "frame"
7
+
8
+ for_attribute(:anchor_lock) do
9
+ with_value(true) do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:framePr w:anchorLock=\"true\"/>"
12
+ end
13
+
14
+ with_value(false) do
15
+ it_should_assign_successfully
16
+ it_should_output ""
17
+ end
18
+
19
+ with_value(:maybe) do
20
+ it_should_raise_an_exception
21
+ end
22
+ end
23
+
24
+ for_attribute(:drop_cap) do
25
+ with_value(:drop) do
26
+ it_should_assign_successfully
27
+ it_should_output "<w:framePr w:dropCap=\"drop\"/>"
28
+ end
29
+
30
+ with_value(:margin) do
31
+ it_should_assign_successfully
32
+ it_should_output "<w:framePr w:dropCap=\"margin\"/>"
33
+ end
34
+
35
+ with_value(:none) do
36
+ it_should_assign_successfully
37
+ it_should_output "<w:framePr w:dropCap=\"none\"/>"
38
+ end
39
+
40
+ with_value(:bad) do
41
+ it_should_raise_an_exception
42
+ end
43
+ end
44
+
45
+ for_attribute(:height) do
46
+ with_value(24) do
47
+ it_should_assign_successfully
48
+ it_should_output "<w:framePr w:h=\"24\"/>"
49
+ end
50
+
51
+ with_value(-24) do
52
+ it_should_raise_an_exception
53
+ end
54
+
55
+ with_value(:big) do
56
+ it_should_raise_an_exception
57
+ end
58
+ end
59
+
60
+ for_attribute(:horizontal_anchor) do
61
+ with_value(:margin) do
62
+ it_should_assign_successfully
63
+ it_should_output "<w:framePr w:hAnchor=\"margin\"/>"
64
+ end
65
+
66
+ with_value(:page) do
67
+ it_should_assign_successfully
68
+ it_should_output "<w:framePr w:hAnchor=\"page\"/>"
69
+ end
70
+
71
+ with_value(:text) do
72
+ it_should_assign_successfully
73
+ it_should_output "<w:framePr w:hAnchor=\"text\"/>"
74
+ end
75
+ end
76
+
77
+ for_attribute(:height_rule) do
78
+ with_value(:atLeast) do
79
+ it_should_assign_successfully
80
+ it_should_output "<w:framePr w:hRule=\"atLeast\"/>"
81
+ end
82
+
83
+ with_value(:auto) do
84
+ it_should_assign_successfully
85
+ it_should_output "<w:framePr w:hRule=\"auto\"/>"
86
+ end
87
+
88
+ with_value(:exact) do
89
+ it_should_assign_successfully
90
+ it_should_output "<w:framePr w:hRule=\"exact\"/>"
91
+ end
92
+
93
+ with_value(:something_bad) do
94
+ it_should_raise_an_exception
95
+ end
96
+ end
97
+
98
+ for_attribute(:horizontal_padding) do
99
+ with_value(24) do
100
+ it_should_assign_successfully
101
+ it_should_output "<w:framePr w:hSpace=\"24\"/>"
102
+ end
103
+
104
+ with_value(-23) do
105
+ it_should_raise_an_exception
106
+ end
107
+
108
+ with_value(19.4) do
109
+ it_should_raise_an_exception
110
+ end
111
+
112
+ with_value(:two) do
113
+ it_should_raise_an_exception
114
+ end
115
+ end
116
+
117
+ for_attribute(:lines) do
118
+ with_value(24) do
119
+ it_should_assign_successfully
120
+ it_should_output "<w:framePr w:lines=\"24\"/>"
121
+ end
122
+
123
+ with_value(-23) do
124
+ it_should_raise_an_exception
125
+ end
126
+
127
+ with_value(19.4) do
128
+ it_should_raise_an_exception
129
+ end
130
+
131
+ with_value(:two) do
132
+ it_should_raise_an_exception
133
+ end
134
+ end
135
+
136
+ for_attribute(:vertical_anchor) do
137
+ with_value(:margin) do
138
+ it_should_assign_successfully
139
+ it_should_output "<w:framePr w:vAnchor=\"margin\"/>"
140
+ end
141
+
142
+ with_value(:page) do
143
+ it_should_assign_successfully
144
+ it_should_output "<w:framePr w:vAnchor=\"page\"/>"
145
+ end
146
+
147
+ with_value(:text) do
148
+ it_should_assign_successfully
149
+ it_should_output "<w:framePr w:vAnchor=\"text\"/>"
150
+ end
151
+
152
+ with_value(:something_bad) do
153
+ it_should_raise_an_exception
154
+ end
155
+ end
156
+
157
+ for_attribute(:vertical_padding) do
158
+ with_value(24) do
159
+ it_should_assign_successfully
160
+ it_should_output "<w:framePr w:vSpace=\"24\"/>"
161
+ end
162
+
163
+ with_value(-23) do
164
+ it_should_raise_an_exception
165
+ end
166
+
167
+ with_value(19.4) do
168
+ it_should_raise_an_exception
169
+ end
170
+
171
+ with_value(:two) do
172
+ it_should_raise_an_exception
173
+ end
174
+ end
175
+
176
+ for_attribute(:width) do
177
+ with_value(24) do
178
+ it_should_assign_successfully
179
+ it_should_output "<w:framePr w:w=\"24\"/>"
180
+ end
181
+
182
+ with_value(-23) do
183
+ it_should_raise_an_exception
184
+ end
185
+
186
+ with_value(19.4) do
187
+ it_should_raise_an_exception
188
+ end
189
+
190
+ with_value(:two) do
191
+ it_should_raise_an_exception
192
+ end
193
+ end
194
+
195
+ for_attribute(:wrap) do
196
+ with_value(:around) do
197
+ it_should_assign_successfully
198
+ it_should_output "<w:framePr w:wrap=\"around\"/>"
199
+ end
200
+
201
+ with_value(:auto) do
202
+ it_should_assign_successfully
203
+ it_should_output "<w:framePr w:wrap=\"auto\"/>"
204
+ end
205
+
206
+ with_value(:none) do
207
+ it_should_assign_successfully
208
+ it_should_output "<w:framePr w:wrap=\"none\"/>"
209
+ end
210
+
211
+ with_value(:notBeside) do
212
+ it_should_assign_successfully
213
+ it_should_output "<w:framePr w:wrap=\"notBeside\"/>"
214
+ end
215
+
216
+ with_value(:through) do
217
+ it_should_assign_successfully
218
+ it_should_output "<w:framePr w:wrap=\"through\"/>"
219
+ end
220
+
221
+ with_value(:tight) do
222
+ it_should_assign_successfully
223
+ it_should_output "<w:framePr w:wrap=\"tight\"/>"
224
+ end
225
+
226
+ with_value(:something_bad) do
227
+ it_should_raise_an_exception
228
+ end
229
+ end
230
+
231
+ for_attribute(:horizontal_position) do
232
+ with_value(24) do
233
+ it_should_assign_successfully
234
+ it_should_output "<w:framePr w:x=\"24\"/>"
235
+ end
236
+
237
+ with_value(-23) do
238
+ it_should_assign_successfully
239
+ it_should_output "<w:framePr w:x=\"-23\"/>"
240
+ end
241
+
242
+ with_value(19.4) do
243
+ it_should_raise_an_exception
244
+ end
245
+
246
+ with_value(:two) do
247
+ it_should_raise_an_exception
248
+ end
249
+ end
250
+
251
+ for_attribute(:relative_horizontal_position) do
252
+ with_value(:center) do
253
+ it_should_assign_successfully
254
+ it_should_output "<w:framePr w:xAlign=\"center\"/>"
255
+ end
256
+
257
+ with_value(:inside) do
258
+ it_should_assign_successfully
259
+ it_should_output "<w:framePr w:xAlign=\"inside\"/>"
260
+ end
261
+
262
+ with_value(:left) do
263
+ it_should_assign_successfully
264
+ it_should_output "<w:framePr w:xAlign=\"left\"/>"
265
+ end
266
+
267
+ with_value(:outside) do
268
+ it_should_assign_successfully
269
+ it_should_output "<w:framePr w:xAlign=\"outside\"/>"
270
+ end
271
+
272
+ with_value(:right) do
273
+ it_should_assign_successfully
274
+ it_should_output "<w:framePr w:xAlign=\"right\"/>"
275
+ end
276
+
277
+ with_value(:something_bad) do
278
+ it_should_raise_an_exception
279
+ end
280
+ end
281
+
282
+ for_attribute(:vertical_position) do
283
+ with_value(24) do
284
+ it_should_assign_successfully
285
+ it_should_output "<w:framePr w:y=\"24\"/>"
286
+ end
287
+
288
+ with_value(-23) do
289
+ it_should_assign_successfully
290
+ it_should_output "<w:framePr w:y=\"-23\"/>"
291
+ end
292
+
293
+ with_value(19.4) do
294
+ it_should_raise_an_exception
295
+ end
296
+
297
+ with_value(:two) do
298
+ it_should_raise_an_exception
299
+ end
300
+ end
301
+
302
+ for_attribute(:relative_vertical_position) do
303
+ with_value(:bottom) do
304
+ it_should_assign_successfully
305
+ it_should_output "<w:framePr w:yAlign=\"bottom\"/>"
306
+ end
307
+
308
+ with_value(:center) do
309
+ it_should_assign_successfully
310
+ it_should_output "<w:framePr w:yAlign=\"center\"/>"
311
+ end
312
+
313
+ with_value(:inline) do
314
+ it_should_assign_successfully
315
+ it_should_output "<w:framePr w:yAlign=\"inline\"/>"
316
+ end
317
+
318
+ with_value(:inside) do
319
+ it_should_assign_successfully
320
+ it_should_output "<w:framePr w:yAlign=\"inside\"/>"
321
+ end
322
+
323
+ with_value(:outside) do
324
+ it_should_assign_successfully
325
+ it_should_output "<w:framePr w:yAlign=\"outside\"/>"
326
+ end
327
+
328
+ with_value(:top) do
329
+ it_should_assign_successfully
330
+ it_should_output "<w:framePr w:yAlign=\"top\"/>"
331
+ end
332
+
333
+ with_value(:something_bad) do
334
+ it_should_raise_an_exception
335
+ end
336
+ end
337
+
338
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::HiddenStyle do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :hidden, name: "hidden_style"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:hidden/>"
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::HiddenText do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :vanish, name: "hidden_text"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:vanish/>"
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,97 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Highlight do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :highlight, name: "highlight", value: :yellow
7
+
8
+ with_value(:black) do
9
+ it_should_work
10
+ it_should_output "<w:highlight w:val=\"black\"/>"
11
+ end
12
+
13
+ with_value(:blue) do
14
+ it_should_work
15
+ it_should_output "<w:highlight w:val=\"blue\"/>"
16
+ end
17
+
18
+ with_value(:cyan) do
19
+ it_should_work
20
+ it_should_output "<w:highlight w:val=\"cyan\"/>"
21
+ end
22
+
23
+ with_value(:darkCyan) do
24
+ it_should_work
25
+ it_should_output "<w:highlight w:val=\"darkCyan\"/>"
26
+ end
27
+
28
+ with_value(:darkBlue) do
29
+ it_should_work
30
+ it_should_output "<w:highlight w:val=\"darkBlue\"/>"
31
+ end
32
+
33
+ with_value(:darkGray) do
34
+ it_should_work
35
+ it_should_output "<w:highlight w:val=\"darkGray\"/>"
36
+ end
37
+
38
+ with_value(:darkGreen) do
39
+ it_should_work
40
+ it_should_output "<w:highlight w:val=\"darkGreen\"/>"
41
+ end
42
+
43
+ with_value(:darkMagenta) do
44
+ it_should_work
45
+ it_should_output "<w:highlight w:val=\"darkMagenta\"/>"
46
+ end
47
+
48
+ with_value(:darkRed) do
49
+ it_should_work
50
+ it_should_output "<w:highlight w:val=\"darkRed\"/>"
51
+ end
52
+
53
+ with_value(:darkYellow) do
54
+ it_should_work
55
+ it_should_output "<w:highlight w:val=\"darkYellow\"/>"
56
+ end
57
+
58
+ with_value(:green) do
59
+ it_should_work
60
+ it_should_output "<w:highlight w:val=\"green\"/>"
61
+ end
62
+
63
+ with_value(:lightGray) do
64
+ it_should_work
65
+ it_should_output "<w:highlight w:val=\"lightGray\"/>"
66
+ end
67
+
68
+ with_value(:magenta) do
69
+ it_should_work
70
+ it_should_output "<w:highlight w:val=\"magenta\"/>"
71
+ end
72
+
73
+ with_value(:none) do
74
+ it_should_work
75
+ it_should_output "<w:highlight w:val=\"none\"/>"
76
+ end
77
+
78
+ with_value(:red) do
79
+ it_should_work
80
+ it_should_output "<w:highlight w:val=\"red\"/>"
81
+ end
82
+
83
+ with_value(:white) do
84
+ it_should_work
85
+ it_should_output "<w:highlight w:val=\"white\"/>"
86
+ end
87
+
88
+ with_value(:yellow) do
89
+ it_should_work
90
+ it_should_output "<w:highlight w:val=\"yellow\"/>"
91
+ end
92
+
93
+ with_value(:purple) do
94
+ it_should_not_work
95
+ end
96
+
97
+ end