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,43 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Effect do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :effect, name: "effect", value: :none
7
+
8
+ with_value(:antsBlack) do
9
+ it_should_work
10
+ it_should_output "<w:effect w:val=\"antsBlack\"/>"
11
+ end
12
+
13
+ with_value(:antsRed) do
14
+ it_should_work
15
+ it_should_output "<w:effect w:val=\"antsRed\"/>"
16
+ end
17
+
18
+ with_value(:blinkBackground) do
19
+ it_should_work
20
+ it_should_output "<w:effect w:val=\"blinkBackground\"/>"
21
+ end
22
+
23
+ with_value(:lights) do
24
+ it_should_work
25
+ it_should_output "<w:effect w:val=\"lights\"/>"
26
+ end
27
+
28
+ with_value(:none) do
29
+ it_should_work
30
+ it_should_output "<w:effect w:val=\"none\"/>"
31
+ end
32
+
33
+ with_value(:shimmer) do
34
+ it_should_work
35
+ it_should_output "<w:effect w:val=\"shimmer\"/>"
36
+ end
37
+
38
+ with_value(:sparkle) do
39
+ it_should_work
40
+ it_should_output "<w:effect w:val=\"sparkle\"/>"
41
+ end
42
+
43
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Emboss do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :emboss, name: "emboss"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:emboss/>"
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,37 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Emphasis do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :em, name: "emphasis", value: :circle
7
+
8
+ with_value(:circle) do
9
+ it_should_work
10
+ it_should_output "<w:em w:val=\"circle\"/>"
11
+ end
12
+
13
+ with_value(:comma) do
14
+ it_should_work
15
+ it_should_output "<w:em w:val=\"comma\"/>"
16
+ end
17
+
18
+ with_value(:dot) do
19
+ it_should_work
20
+ it_should_output "<w:em w:val=\"dot\"/>"
21
+ end
22
+
23
+ with_value(:none) do
24
+ it_should_work
25
+ it_should_output "<w:em w:val=\"none\"/>"
26
+ end
27
+
28
+ with_value(:underDot) do
29
+ it_should_work
30
+ it_should_output "<w:em w:val=\"underDot\"/>"
31
+ end
32
+
33
+ with_value(:somethingElse) do
34
+ it_should_not_work
35
+ end
36
+
37
+ end
@@ -0,0 +1,34 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Expansion do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :w, name: "expansion", value: "100%"
7
+
8
+ with_value("1%") do
9
+ it_should_work
10
+ it_should_output "<w:w w:val=\"1%\"/>"
11
+ end
12
+
13
+ with_value(1) do
14
+ it_should_not_work
15
+ end
16
+
17
+ with_value("0%") do
18
+ it_should_not_work
19
+ end
20
+
21
+ with_value(600) do
22
+ it_should_not_work
23
+ end
24
+
25
+ with_value("600%") do
26
+ it_should_work
27
+ it_should_output "<w:w w:val=\"600%\"/>"
28
+ end
29
+
30
+ with_value("601%") do
31
+ it_should_not_work
32
+ end
33
+
34
+ end
@@ -0,0 +1,24 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::FontSize do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :sz, name: "font_size", value: 22
7
+
8
+ with_value(20) do
9
+ it_should_work
10
+ it_should_output "<w:sz w:val=\"20\"/>"
11
+ end
12
+
13
+ with_value(-20) do
14
+ it_should_not_work
15
+ end
16
+
17
+ with_value(23.1) do
18
+ it_should_not_work
19
+ end
20
+
21
+ with_value(:big) do
22
+ it_should_not_work
23
+ end
24
+ end
@@ -0,0 +1,273 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::Font do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :rFonts, name: "font"
7
+
8
+ for_attribute(:ascii) do
9
+ with_value("Courier New") do
10
+ it_should_assign_successfully
11
+ it_should_output "<w:rFonts w:ascii=\"Courier New\"/>"
12
+ end
13
+
14
+ with_value(1) do
15
+ it_should_raise_an_exception
16
+ end
17
+
18
+ with_value(:monospace) do
19
+ it_should_raise_an_exception
20
+ end
21
+ end
22
+
23
+ for_attribute(:ascii_theme) do
24
+ with_value(:majorAscii) do
25
+ it_should_assign_successfully
26
+ it_should_output "<w:rFonts w:asciiTheme=\"majorAscii\"/>"
27
+ end
28
+
29
+ with_value(:majorBidi) do
30
+ it_should_assign_successfully
31
+ it_should_output "<w:rFonts w:asciiTheme=\"majorBidi\"/>"
32
+ end
33
+
34
+ with_value(:majorEastAsia) do
35
+ it_should_assign_successfully
36
+ it_should_output "<w:rFonts w:asciiTheme=\"majorEastAsia\"/>"
37
+ end
38
+
39
+ with_value(:majorHAnsi) do
40
+ it_should_assign_successfully
41
+ it_should_output "<w:rFonts w:asciiTheme=\"majorHAnsi\"/>"
42
+ end
43
+
44
+ with_value(:minorAscii) do
45
+ it_should_assign_successfully
46
+ it_should_output "<w:rFonts w:asciiTheme=\"minorAscii\"/>"
47
+ end
48
+
49
+ with_value(:minorBidi) do
50
+ it_should_assign_successfully
51
+ it_should_output "<w:rFonts w:asciiTheme=\"minorBidi\"/>"
52
+ end
53
+
54
+ with_value(:minorEastAsia) do
55
+ it_should_assign_successfully
56
+ it_should_output "<w:rFonts w:asciiTheme=\"minorEastAsia\"/>"
57
+ end
58
+
59
+ with_value(:minorHAnsi) do
60
+ it_should_assign_successfully
61
+ it_should_output "<w:rFonts w:asciiTheme=\"minorHAnsi\"/>"
62
+ end
63
+
64
+ with_value(:latin) do
65
+ it_should_raise_an_exception
66
+ end
67
+ end
68
+
69
+ for_attribute(:complex) do
70
+ with_value("Courier New") do
71
+ it_should_assign_successfully
72
+ it_should_output "<w:rFonts w:cs=\"Courier New\"/>"
73
+ end
74
+
75
+ with_value(1) do
76
+ it_should_raise_an_exception
77
+ end
78
+
79
+ with_value(:monospace) do
80
+ it_should_raise_an_exception
81
+ end
82
+ end
83
+
84
+ for_attribute(:complex_theme) do
85
+ with_value(:majorAscii) do
86
+ it_should_assign_successfully
87
+ it_should_output "<w:rFonts w:cstheme=\"majorAscii\"/>"
88
+ end
89
+
90
+ with_value(:majorBidi) do
91
+ it_should_assign_successfully
92
+ it_should_output "<w:rFonts w:cstheme=\"majorBidi\"/>"
93
+ end
94
+
95
+ with_value(:majorEastAsia) do
96
+ it_should_assign_successfully
97
+ it_should_output "<w:rFonts w:cstheme=\"majorEastAsia\"/>"
98
+ end
99
+
100
+ with_value(:majorHAnsi) do
101
+ it_should_assign_successfully
102
+ it_should_output "<w:rFonts w:cstheme=\"majorHAnsi\"/>"
103
+ end
104
+
105
+ with_value(:minorAscii) do
106
+ it_should_assign_successfully
107
+ it_should_output "<w:rFonts w:cstheme=\"minorAscii\"/>"
108
+ end
109
+
110
+ with_value(:minorBidi) do
111
+ it_should_assign_successfully
112
+ it_should_output "<w:rFonts w:cstheme=\"minorBidi\"/>"
113
+ end
114
+
115
+ with_value(:minorEastAsia) do
116
+ it_should_assign_successfully
117
+ it_should_output "<w:rFonts w:cstheme=\"minorEastAsia\"/>"
118
+ end
119
+
120
+ with_value(:minorHAnsi) do
121
+ it_should_assign_successfully
122
+ it_should_output "<w:rFonts w:cstheme=\"minorHAnsi\"/>"
123
+ end
124
+
125
+ with_value(:latin) do
126
+ it_should_raise_an_exception
127
+ end
128
+ end
129
+
130
+ for_attribute(:east_asia) do
131
+ with_value("Courier New") do
132
+ it_should_assign_successfully
133
+ it_should_output "<w:rFonts w:eastAsia=\"Courier New\"/>"
134
+ end
135
+
136
+ with_value(1) do
137
+ it_should_raise_an_exception
138
+ end
139
+
140
+ with_value(:monospace) do
141
+ it_should_raise_an_exception
142
+ end
143
+ end
144
+
145
+ for_attribute(:east_asia_theme) do
146
+ with_value(:majorAscii) do
147
+ it_should_assign_successfully
148
+ it_should_output "<w:rFonts w:eastAsiaTheme=\"majorAscii\"/>"
149
+ end
150
+
151
+ with_value(:majorBidi) do
152
+ it_should_assign_successfully
153
+ it_should_output "<w:rFonts w:eastAsiaTheme=\"majorBidi\"/>"
154
+ end
155
+
156
+ with_value(:majorEastAsia) do
157
+ it_should_assign_successfully
158
+ it_should_output "<w:rFonts w:eastAsiaTheme=\"majorEastAsia\"/>"
159
+ end
160
+
161
+ with_value(:majorHAnsi) do
162
+ it_should_assign_successfully
163
+ it_should_output "<w:rFonts w:eastAsiaTheme=\"majorHAnsi\"/>"
164
+ end
165
+
166
+ with_value(:minorAscii) do
167
+ it_should_assign_successfully
168
+ it_should_output "<w:rFonts w:eastAsiaTheme=\"minorAscii\"/>"
169
+ end
170
+
171
+ with_value(:minorBidi) do
172
+ it_should_assign_successfully
173
+ it_should_output "<w:rFonts w:eastAsiaTheme=\"minorBidi\"/>"
174
+ end
175
+
176
+ with_value(:minorEastAsia) do
177
+ it_should_assign_successfully
178
+ it_should_output "<w:rFonts w:eastAsiaTheme=\"minorEastAsia\"/>"
179
+ end
180
+
181
+ with_value(:minorHAnsi) do
182
+ it_should_assign_successfully
183
+ it_should_output "<w:rFonts w:eastAsiaTheme=\"minorHAnsi\"/>"
184
+ end
185
+
186
+ with_value(:latin) do
187
+ it_should_raise_an_exception
188
+ end
189
+ end
190
+
191
+ for_attribute(:high_ansi) do
192
+ with_value("Courier New") do
193
+ it_should_assign_successfully
194
+ it_should_output "<w:rFonts w:hAnsi=\"Courier New\"/>"
195
+ end
196
+
197
+ with_value(1) do
198
+ it_should_raise_an_exception
199
+ end
200
+
201
+ with_value(:monospace) do
202
+ it_should_raise_an_exception
203
+ end
204
+ end
205
+
206
+ for_attribute(:high_ansi_theme) do
207
+ with_value(:majorAscii) do
208
+ it_should_assign_successfully
209
+ it_should_output "<w:rFonts w:hAnsiTheme=\"majorAscii\"/>"
210
+ end
211
+
212
+ with_value(:majorBidi) do
213
+ it_should_assign_successfully
214
+ it_should_output "<w:rFonts w:hAnsiTheme=\"majorBidi\"/>"
215
+ end
216
+
217
+ with_value(:majorEastAsia) do
218
+ it_should_assign_successfully
219
+ it_should_output "<w:rFonts w:hAnsiTheme=\"majorEastAsia\"/>"
220
+ end
221
+
222
+ with_value(:majorHAnsi) do
223
+ it_should_assign_successfully
224
+ it_should_output "<w:rFonts w:hAnsiTheme=\"majorHAnsi\"/>"
225
+ end
226
+
227
+ with_value(:minorAscii) do
228
+ it_should_assign_successfully
229
+ it_should_output "<w:rFonts w:hAnsiTheme=\"minorAscii\"/>"
230
+ end
231
+
232
+ with_value(:minorBidi) do
233
+ it_should_assign_successfully
234
+ it_should_output "<w:rFonts w:hAnsiTheme=\"minorBidi\"/>"
235
+ end
236
+
237
+ with_value(:minorEastAsia) do
238
+ it_should_assign_successfully
239
+ it_should_output "<w:rFonts w:hAnsiTheme=\"minorEastAsia\"/>"
240
+ end
241
+
242
+ with_value(:minorHAnsi) do
243
+ it_should_assign_successfully
244
+ it_should_output "<w:rFonts w:hAnsiTheme=\"minorHAnsi\"/>"
245
+ end
246
+
247
+ with_value(:latin) do
248
+ it_should_raise_an_exception
249
+ end
250
+ end
251
+
252
+ for_attribute(:hint) do
253
+ with_value(:cs) do
254
+ it_should_assign_successfully
255
+ it_should_output "<w:rFonts w:hint=\"cs\"/>"
256
+ end
257
+
258
+ with_value(:default) do
259
+ it_should_assign_successfully
260
+ it_should_output "<w:rFonts w:hint=\"default\"/>"
261
+ end
262
+
263
+ with_value(:eastAsia) do
264
+ it_should_assign_successfully
265
+ it_should_output "<w:rFonts w:hint=\"eastAsia\"/>"
266
+ end
267
+
268
+ with_value(:ascii) do
269
+ it_should_raise_an_exception
270
+ end
271
+ end
272
+
273
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Properties::FormProtection do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :formProt, name: "form_protection"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:formProt/>"
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