openxml-docx 0.9.0 → 0.10.0

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 (211) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +4 -4
  3. data/examples/drawing-ml +134 -0
  4. data/examples/table +28 -0
  5. data/lib/openxml/docx.rb +9 -0
  6. data/lib/openxml/docx/attribute_builder.rb +17 -4
  7. data/lib/openxml/docx/elements/absolute_position_tab.rb +4 -19
  8. data/lib/openxml/docx/elements/bidi_embed.rb +1 -10
  9. data/lib/openxml/docx/elements/bidi_override.rb +1 -9
  10. data/lib/openxml/docx/elements/break.rb +3 -14
  11. data/lib/openxml/docx/elements/control.rb +5 -2
  12. data/lib/openxml/docx/elements/deleted_text.rb +1 -1
  13. data/lib/openxml/docx/elements/drawing.rb +9 -0
  14. data/lib/openxml/docx/elements/element.rb +2 -1
  15. data/lib/openxml/docx/elements/embed_bold.rb +25 -0
  16. data/lib/openxml/docx/elements/embed_bold_italic.rb +25 -0
  17. data/lib/openxml/docx/elements/embed_italic.rb +25 -0
  18. data/lib/openxml/docx/elements/embed_regular.rb +25 -0
  19. data/lib/openxml/docx/elements/family.rb +22 -0
  20. data/lib/openxml/docx/elements/font.rb +14 -0
  21. data/lib/openxml/docx/elements/grid_column.rb +2 -2
  22. data/lib/openxml/docx/elements/group_shape.rb +10 -0
  23. data/lib/openxml/docx/elements/markup_compatibility_alternate_content.rb +10 -0
  24. data/lib/openxml/docx/elements/markup_compatibility_choice.rb +13 -0
  25. data/lib/openxml/docx/elements/markup_compatibility_fallback.rb +10 -0
  26. data/lib/openxml/docx/elements/paper_source.rb +4 -2
  27. data/lib/openxml/docx/elements/section_properties.rb +9 -0
  28. data/lib/openxml/docx/elements/symbol.rb +4 -2
  29. data/lib/openxml/docx/elements/table.rb +1 -1
  30. data/lib/openxml/docx/elements/table_cell.rb +2 -1
  31. data/lib/openxml/docx/elements/table_row.rb +7 -5
  32. data/lib/openxml/docx/elements/text.rb +1 -10
  33. data/lib/openxml/docx/elements/vml_container.rb +10 -0
  34. data/lib/openxml/docx/elements/word_processing_drawing_anchor.rb +23 -0
  35. data/lib/openxml/docx/elements/word_processing_drawing_effect_extent.rb +16 -0
  36. data/lib/openxml/docx/elements/word_processing_drawing_extent.rb +14 -0
  37. data/lib/openxml/docx/elements/word_processing_drawing_nv_graphic_frame_properties.rb +11 -0
  38. data/lib/openxml/docx/elements/word_processing_drawing_object_nv_properties.rb +17 -0
  39. data/lib/openxml/docx/elements/word_processing_drawing_position_h.rb +23 -0
  40. data/lib/openxml/docx/elements/word_processing_drawing_position_offset.rb +10 -0
  41. data/lib/openxml/docx/elements/word_processing_drawing_position_v.rb +23 -0
  42. data/lib/openxml/docx/elements/word_processing_drawing_simple_position.rb +13 -0
  43. data/lib/openxml/docx/elements/word_processing_drawing_wrap_none.rb +10 -0
  44. data/lib/openxml/docx/elements/word_processing_shapes_body_properties.rb +58 -0
  45. data/lib/openxml/docx/elements/word_processing_shapes_shape.rb +12 -0
  46. data/lib/openxml/docx/elements/word_processing_shapes_shape_properties.rb +23 -0
  47. data/lib/openxml/docx/package.rb +73 -1
  48. data/lib/openxml/docx/parts/document.rb +6 -24
  49. data/lib/openxml/docx/parts/fonts.rb +35 -0
  50. data/lib/openxml/docx/parts/footer.rb +32 -0
  51. data/lib/openxml/docx/parts/header.rb +32 -0
  52. data/lib/openxml/docx/parts/settings.rb +6 -2
  53. data/lib/openxml/docx/parts/styles.rb +5 -6
  54. data/lib/openxml/docx/properties.rb +0 -1
  55. data/lib/openxml/docx/properties/alignment.rb +1 -1
  56. data/lib/openxml/docx/properties/base_property.rb +13 -0
  57. data/lib/openxml/docx/properties/border.rb +11 -9
  58. data/lib/openxml/docx/properties/color.rb +6 -4
  59. data/lib/openxml/docx/properties/column.rb +4 -2
  60. data/lib/openxml/docx/properties/columns.rb +6 -4
  61. data/lib/openxml/docx/properties/complex_property.rb +1 -1
  62. data/lib/openxml/docx/properties/conditional_formatting.rb +14 -12
  63. data/lib/openxml/docx/properties/document_grid.rb +4 -10
  64. data/lib/openxml/docx/properties/east_asian_layout.rb +6 -11
  65. data/lib/openxml/docx/properties/font.rb +18 -22
  66. data/lib/openxml/docx/properties/footer_reference.rb +21 -0
  67. data/lib/openxml/docx/properties/frame.rb +16 -47
  68. data/lib/openxml/docx/properties/header_reference.rb +21 -0
  69. data/lib/openxml/docx/properties/indentation.rb +11 -8
  70. data/lib/openxml/docx/properties/language.rb +5 -3
  71. data/lib/openxml/docx/properties/latent_styles.rb +9 -6
  72. data/lib/openxml/docx/properties/latent_styles_exception.rb +9 -6
  73. data/lib/openxml/docx/properties/line_numbering.rb +5 -11
  74. data/lib/openxml/docx/properties/manual_width.rb +4 -2
  75. data/lib/openxml/docx/properties/numbering.rb +4 -2
  76. data/lib/openxml/docx/properties/page_borders.rb +6 -19
  77. data/lib/openxml/docx/properties/page_margins.rb +10 -7
  78. data/lib/openxml/docx/properties/page_numbering.rb +66 -74
  79. data/lib/openxml/docx/properties/page_size.rb +5 -12
  80. data/lib/openxml/docx/properties/shading.rb +46 -52
  81. data/lib/openxml/docx/properties/spacing.rb +9 -14
  82. data/lib/openxml/docx/properties/table_border.rb +12 -10
  83. data/lib/openxml/docx/properties/table_cell_border.rb +12 -10
  84. data/lib/openxml/docx/properties/table_cell_margin.rb +6 -4
  85. data/lib/openxml/docx/properties/table_cell_spacing.rb +5 -3
  86. data/lib/openxml/docx/properties/table_cell_width.rb +5 -3
  87. data/lib/openxml/docx/properties/table_indent.rb +5 -3
  88. data/lib/openxml/docx/properties/table_layout.rb +2 -4
  89. data/lib/openxml/docx/properties/table_look.rb +8 -6
  90. data/lib/openxml/docx/properties/table_p_pr.rb +11 -30
  91. data/lib/openxml/docx/properties/table_row_height.rb +13 -0
  92. data/lib/openxml/docx/properties/table_width.rb +5 -3
  93. data/lib/openxml/docx/properties/underline.rb +13 -12
  94. data/lib/openxml/docx/properties/wafter.rb +5 -3
  95. data/lib/openxml/docx/properties/wbefore.rb +5 -3
  96. data/lib/openxml/docx/root_namespaces.rb +74 -0
  97. data/lib/openxml/docx/section.rb +2 -0
  98. data/lib/openxml/docx/style.rb +4 -4
  99. data/lib/openxml/docx/version.rb +1 -1
  100. data/lib/openxml/drawingml.rb +17 -0
  101. data/lib/openxml/drawingml/elements.rb +13 -0
  102. data/lib/openxml/drawingml/elements/adjust_values_list.rb +11 -0
  103. data/lib/openxml/drawingml/elements/blip_fill.rb +14 -0
  104. data/lib/openxml/drawingml/elements/extension.rb +13 -0
  105. data/lib/openxml/drawingml/elements/extension_list.rb +11 -0
  106. data/lib/openxml/drawingml/elements/extents.rb +14 -0
  107. data/lib/openxml/drawingml/elements/graphic.rb +10 -0
  108. data/lib/openxml/drawingml/elements/graphic_data.rb +12 -0
  109. data/lib/openxml/drawingml/elements/graphic_frame_locks.rb +17 -0
  110. data/lib/openxml/drawingml/elements/head_end.rb +28 -0
  111. data/lib/openxml/drawingml/elements/no_fill.rb +10 -0
  112. data/lib/openxml/drawingml/elements/non_visual_drawing_properties.rb +17 -0
  113. data/lib/openxml/drawingml/elements/non_visual_picture_drawing_properties.rb +12 -0
  114. data/lib/openxml/drawingml/elements/non_visual_picture_properties.rb +10 -0
  115. data/lib/openxml/drawingml/elements/offset.rb +14 -0
  116. data/lib/openxml/drawingml/elements/outline.rb +36 -0
  117. data/lib/openxml/drawingml/elements/picture.rb +10 -0
  118. data/lib/openxml/drawingml/elements/preset_geometry.rb +210 -0
  119. data/lib/openxml/drawingml/elements/round.rb +10 -0
  120. data/lib/openxml/drawingml/elements/shape_guide.rb +40 -0
  121. data/lib/openxml/drawingml/elements/solid_fill.rb +10 -0
  122. data/lib/openxml/drawingml/elements/srgb_color.rb +14 -0
  123. data/lib/openxml/drawingml/elements/tail_end.rb +28 -0
  124. data/lib/openxml/drawingml/elements/transform_effect.rb +18 -0
  125. data/lib/openxml/drawingml/elements/wordprocessing_shape_group.rb +11 -0
  126. data/lib/openxml/vml.rb +17 -0
  127. data/lib/openxml/vml/elements.rb +13 -0
  128. data/lib/openxml/vml/elements/group.rb +88 -0
  129. data/lib/openxml/vml/elements/rectangle.rb +115 -0
  130. data/lib/openxml/vml/elements/rounded_rectangle.rb +121 -0
  131. data/openxml-docx.gemspec +1 -1
  132. data/spec/elements/absolute_position_tab_spec.rb +15 -47
  133. data/spec/elements/bidi_embed_spec.rb +4 -8
  134. data/spec/elements/bidi_override_spec.rb +4 -8
  135. data/spec/elements/break_spec.rb +8 -31
  136. data/spec/elements/content_part_spec.rb +2 -2
  137. data/spec/elements/control_spec.rb +6 -6
  138. data/spec/elements/deleted_text_spec.rb +2 -2
  139. data/spec/elements/drawing_spec.rb +11 -0
  140. data/spec/elements/drawingml/adjust_values_list_spec.rb +8 -0
  141. data/spec/elements/drawingml/blip_fill_spec.rb +34 -0
  142. data/spec/elements/drawingml/extension_list_spec.rb +8 -0
  143. data/spec/elements/drawingml/extension_spec.rb +19 -0
  144. data/spec/elements/drawingml/extents_spec.rb +33 -0
  145. data/spec/elements/drawingml/graphic_data_spec.rb +19 -0
  146. data/spec/elements/drawingml/graphic_frame_locks_spec.rb +78 -0
  147. data/spec/elements/drawingml/graphic_spec.rb +8 -0
  148. data/spec/elements/drawingml/head_end_spec.rb +45 -0
  149. data/spec/elements/drawingml/no_fill_spec.rb +8 -0
  150. data/spec/elements/drawingml/non_visual_drawing_properties_spec.rb +63 -0
  151. data/spec/elements/drawingml/non_visual_picture_drawing_properties_spec.rb +18 -0
  152. data/spec/elements/drawingml/non_visual_picture_properties_spec.rb +8 -0
  153. data/spec/elements/drawingml/offset_spec.rb +32 -0
  154. data/spec/elements/drawingml/outline_spec.rb +58 -0
  155. data/spec/elements/drawingml/picture_spec.rb +8 -0
  156. data/spec/elements/drawingml/preset_geometry_spec.rb +19 -0
  157. data/spec/elements/drawingml/round_spec.rb +8 -0
  158. data/spec/elements/drawingml/shape_guide_spec.rb +49 -0
  159. data/spec/elements/drawingml/solid_fill_spec.rb +8 -0
  160. data/spec/elements/drawingml/srgb_color_spec.rb +20 -0
  161. data/spec/elements/drawingml/tail_end_spec.rb +44 -0
  162. data/spec/elements/drawingml/transform_effect_spec.rb +80 -0
  163. data/spec/elements/drawingml/wordprocessing_shape_group_spec.rb +12 -0
  164. data/spec/elements/group_shape_spec.rb +11 -0
  165. data/spec/elements/markup_compatibility_alternate_content_spec.rb +11 -0
  166. data/spec/elements/markup_compatibility_choice_spec.rb +22 -0
  167. data/spec/elements/markup_compatibility_fallback_spec.rb +11 -0
  168. data/spec/elements/section_properties_spec.rb +12 -0
  169. data/spec/elements/symbol_spec.rb +4 -7
  170. data/spec/elements/text_spec.rb +2 -2
  171. data/spec/elements/vml/group_spec.rb +542 -0
  172. data/spec/elements/vml/rectangle_spec.rb +739 -0
  173. data/spec/elements/vml/rounded_rectangle_spec.rb +656 -0
  174. data/spec/elements/vml_container_spec.rb +11 -0
  175. data/spec/elements/word_processing_drawing_anchor_spec.rb +40 -0
  176. data/spec/elements/word_processing_drawing_effect_extent_spec.rb +57 -0
  177. data/spec/elements/word_processing_drawing_extent_spec.rb +34 -0
  178. data/spec/elements/word_processing_drawing_nv_graphic_frame_properties_spec.rb +11 -0
  179. data/spec/elements/word_processing_drawing_object_nv_properties_spec.rb +67 -0
  180. data/spec/elements/word_processing_drawing_position_h_spec.rb +21 -0
  181. data/spec/elements/word_processing_drawing_position_v_spec.rb +21 -0
  182. data/spec/elements/word_processing_drawing_simple_position_spec.rb +34 -0
  183. data/spec/elements/word_processing_drawing_wrap_none_spec.rb +12 -0
  184. data/spec/elements/word_processing_shapes_body_properties_spec.rb +223 -0
  185. data/spec/elements/word_processing_shapes_shape_properties_spec.rb +21 -0
  186. data/spec/elements/word_processing_shapes_shape_spec.rb +23 -0
  187. data/spec/parts/footer_spec.rb +33 -0
  188. data/spec/parts/header_spec.rb +33 -0
  189. data/spec/properties/footer_reference_spec.rb +32 -0
  190. data/spec/properties/header_reference_spec.rb +32 -0
  191. data/spec/properties/page_numbering_spec.rb +1 -1
  192. data/spec/properties/{table_cell_fit_text.rb → table_cell_fit_text_spec.rb} +0 -0
  193. data/spec/properties/{table_cell_width.rb → table_cell_width_spec.rb} +0 -0
  194. data/spec/properties/table_layout_spec.rb +14 -12
  195. data/spec/properties/{table_row_height.rb → table_row_height_spec.rb} +0 -0
  196. data/spec/section_spec.rb +2 -0
  197. data/spec/spec_helper.rb +2 -0
  198. data/spec/support/data/elements/grid_column_element.xml +1 -1
  199. data/spec/support/data/elements/table_grid_element.xml +1 -1
  200. data/spec/support/data/parts/document_with_children_part.xml +2 -1
  201. data/spec/support/data/parts/document_with_multiple_sections_part.xml +1 -1
  202. data/spec/support/data/parts/document_with_one_section_part.xml +1 -1
  203. data/spec/support/data/parts/empty_document_part.xml +1 -1
  204. data/spec/support/data/parts/empty_footer_part.xml +1 -0
  205. data/spec/support/data/parts/empty_header_part.xml +1 -0
  206. data/spec/support/data/parts/footer_with_children_part.xml +1 -0
  207. data/spec/support/data/parts/header_with_children_part.xml +1 -0
  208. data/spec/support/element_test_macros.rb +58 -9
  209. metadata +126 -9
  210. data/lib/openxml/docx/properties/tr_height.rb +0 -19
  211. data/lib/openxml/docx/properties/width_property.rb +0 -17
@@ -0,0 +1,11 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::VmlContainer do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :pict, name: "vml_container"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<w:pict/>", assign: false
10
+ end
11
+ end
@@ -0,0 +1,40 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::WordProcessingDrawingAnchor do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :anchor, name: "word_processing_drawing_anchor"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<wp:anchor/>", assign: false
10
+ end
11
+
12
+ true_false_attributes = %i(allowOverlap behindDoc hidden layoutInCell locked)
13
+ true_false_attributes.each do |attr|
14
+ for_attribute(attr) do
15
+ with_value(true) do
16
+ it_should_assign_successfully
17
+ it_should_output_regular_xml
18
+ end
19
+
20
+ with_value("") do
21
+ it_should_raise_an_exception
22
+ end
23
+ end
24
+ end
25
+
26
+ positive_integer_attributes = %i(distB distL distR distT relativeHeight)
27
+ positive_integer_attributes.each do |attr|
28
+ for_attribute(attr) do
29
+ with_value(1234)do
30
+ it_should_assign_successfully
31
+ it_should_output_regular_xml
32
+ end
33
+
34
+ with_value(-1234) do
35
+ it_should_raise_an_exception
36
+ end
37
+ end
38
+ end
39
+
40
+ end
@@ -0,0 +1,57 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::WordProcessingDrawingEffectExtent do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :effectExtent, name: "word_processing_drawing_effect_extent"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<wp:effectExtent/>", assign: false
10
+ end
11
+
12
+
13
+ for_attribute(:bottom_edge, displays_as: :b) do
14
+ with_values([1234, -1234])do
15
+ it_should_assign_successfully
16
+ it_should_output_regular_xml
17
+ end
18
+
19
+ with_value("wrong") do
20
+ it_should_raise_an_exception
21
+ end
22
+ end
23
+
24
+ for_attribute(:left_edge, displays_as: :l) do
25
+ with_values([1234, -1234])do
26
+ it_should_assign_successfully
27
+ it_should_output_regular_xml
28
+ end
29
+
30
+ with_value("wrong") do
31
+ it_should_raise_an_exception
32
+ end
33
+ end
34
+
35
+ for_attribute(:right_edge, displays_as: :r) do
36
+ with_value([1234, -1234])do
37
+ it_should_assign_successfully
38
+ it_should_output_regular_xml
39
+ end
40
+
41
+ with_value("wrong") do
42
+ it_should_raise_an_exception
43
+ end
44
+ end
45
+
46
+ for_attribute(:top_edge, displays_as: :t) do
47
+ with_value([1234, -1234])do
48
+ it_should_assign_successfully
49
+ it_should_output_regular_xml
50
+ end
51
+
52
+ with_value("wrong") do
53
+ it_should_raise_an_exception
54
+ end
55
+ end
56
+
57
+ end
@@ -0,0 +1,34 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::WordProcessingDrawingExtent do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :extent, name: "word_processing_drawing_extent"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<wp:extent/>", assign: false
10
+ end
11
+
12
+ for_attribute(:extent_length, displays_as: :cx) do
13
+ with_value(1234)do
14
+ it_should_assign_successfully
15
+ it_should_output_regular_xml
16
+ end
17
+
18
+ with_value(-1234) do
19
+ it_should_raise_an_exception
20
+ end
21
+ end
22
+
23
+ for_attribute(:extent_width, displays_as: :cy) do
24
+ with_value(1234)do
25
+ it_should_assign_successfully
26
+ it_should_output_regular_xml
27
+ end
28
+
29
+ with_value(-1234) do
30
+ it_should_raise_an_exception
31
+ end
32
+ end
33
+
34
+ end
@@ -0,0 +1,11 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::WordProcessingDrawingNvGraphicFrameProperties do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :cNvGraphicFramePr, name: "word_processing_drawing_nv_graphic_frame_properties"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<wp:cNvGraphicFramePr/>", assign: false
10
+ end
11
+ end
@@ -0,0 +1,67 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::WordProcessingDrawingObjectNvProperties do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :docPr, name: "word_processing_drawing_object_nv_properties"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<wp:docPr/>", assign: false
10
+ end
11
+
12
+ for_attribute(:description, displays_as: :descr) do
13
+ with_value("valid value")do
14
+ it_should_assign_successfully
15
+ it_should_output_regular_xml
16
+ end
17
+
18
+ with_value(1234) do
19
+ it_should_raise_an_exception
20
+ end
21
+ end
22
+
23
+ for_attribute(:hidden) do
24
+ with_value(true)do
25
+ it_should_assign_successfully
26
+ it_should_output_regular_xml
27
+ end
28
+
29
+ with_value(1234) do
30
+ it_should_raise_an_exception
31
+ end
32
+ end
33
+
34
+ for_attribute(:id) do
35
+ with_value(1)do
36
+ it_should_assign_successfully
37
+ it_should_output_regular_xml
38
+ end
39
+
40
+ with_value("invalid") do
41
+ it_should_raise_an_exception
42
+ end
43
+ end
44
+
45
+ for_attribute(:property_name, displays_as: :name) do
46
+ with_value("valid")do
47
+ it_should_assign_successfully
48
+ it_should_output_regular_xml
49
+ end
50
+
51
+ with_value(1234) do
52
+ it_should_raise_an_exception
53
+ end
54
+ end
55
+
56
+ for_attribute(:title) do
57
+ with_value("valid")do
58
+ it_should_assign_successfully
59
+ it_should_output_regular_xml
60
+ end
61
+
62
+ with_value(1234) do
63
+ it_should_raise_an_exception
64
+ end
65
+ end
66
+
67
+ end
@@ -0,0 +1,21 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::WordProcessingDrawingPositionH do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :positionH, name: "word_processing_drawing_position_h"
7
+
8
+ for_attribute(:relativeFrom) do
9
+ allowed = %i(character column insideMargin leftMargin margin outsideMargin page rightMargin)
10
+ with_values(allowed) do
11
+ it_should_assign_successfully
12
+ it_should_output_regular_xml
13
+ end
14
+
15
+ with_value(:notRight) do
16
+ it_should_raise_an_exception
17
+ end
18
+ end
19
+
20
+
21
+ end
@@ -0,0 +1,21 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::WordProcessingDrawingPositionV do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :positionV, name: "word_processing_drawing_position_v"
7
+
8
+ for_attribute(:relativeFrom) do
9
+ allowed = %i(bottomMargin insideMargin line margin outsideMargin page paragraph topMargin)
10
+ with_values(allowed) do
11
+ it_should_assign_successfully
12
+ it_should_output_regular_xml
13
+ end
14
+
15
+ with_value(:notRight) do
16
+ it_should_raise_an_exception
17
+ end
18
+ end
19
+
20
+
21
+ end
@@ -0,0 +1,34 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::WordProcessingDrawingSimplePosition do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :simplePos, name: "word_processing_drawing_simple_position"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<wp:simplePos/>", assign: false
10
+ end
11
+
12
+ for_attribute(:x) do
13
+ with_value([1234, -1234])do
14
+ it_should_assign_successfully
15
+ it_should_output_regular_xml
16
+ end
17
+
18
+ with_value("hey") do
19
+ it_should_raise_an_exception
20
+ end
21
+ end
22
+
23
+ for_attribute(:y) do
24
+ with_value([1234, -1234])do
25
+ it_should_assign_successfully
26
+ it_should_output_regular_xml
27
+ end
28
+
29
+ with_value("hey") do
30
+ it_should_raise_an_exception
31
+ end
32
+ end
33
+
34
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::WordProcessingDrawingWrapNone do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :wrapNone, name: "word_processing_drawing_wrap_none"
7
+
8
+ with_no_attributes_set do
9
+ it_should_output "<wp:wrapNone/>", assign: false
10
+ end
11
+
12
+ end
@@ -0,0 +1,223 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::WordProcessingShapesBodyProperties do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :bodyPr, name: "word_processing_shapes_body_properties"
7
+
8
+ for_attribute(:anchor)do
9
+ allowed = %i(b ctr dist just t)
10
+ with_values(allowed) do
11
+ it_should_assign_successfully
12
+ it_should_output_regular_xml
13
+ end
14
+
15
+ with_value(:notRight) do
16
+ it_should_raise_an_exception
17
+ end
18
+ end
19
+
20
+ for_attribute(:anchorCtr)do
21
+ with_value(true) do
22
+ it_should_assign_successfully
23
+ it_should_output_regular_xml
24
+ end
25
+
26
+ with_value(1234) do
27
+ it_should_raise_an_exception
28
+ end
29
+ end
30
+
31
+ for_attribute(:bottom_inset, displays_as: :bIns)do
32
+ with_value(1234) do
33
+ it_should_assign_successfully
34
+ it_should_output_regular_xml
35
+ end
36
+
37
+ with_value(-1234) do
38
+ it_should_raise_an_exception
39
+ end
40
+ end
41
+
42
+ for_attribute(:compatible_line_spacing, displays_as: :compatLnSpc)do
43
+ with_value(true) do
44
+ it_should_assign_successfully
45
+ it_should_output_regular_xml
46
+ end
47
+
48
+ with_value(1234) do
49
+ it_should_raise_an_exception
50
+ end
51
+ end
52
+
53
+ for_attribute(:force_anti_alias, displays_as: :forceAA)do
54
+ with_value(true) do
55
+ it_should_assign_successfully
56
+ it_should_output_regular_xml
57
+ end
58
+
59
+ with_value(1234) do
60
+ it_should_raise_an_exception
61
+ end
62
+ end
63
+
64
+ for_attribute(:fromWordArt)do
65
+ with_value(true) do
66
+ it_should_assign_successfully
67
+ it_should_output_regular_xml
68
+ end
69
+
70
+ with_value(1234) do
71
+ it_should_raise_an_exception
72
+ end
73
+ end
74
+
75
+ for_attribute(:horzOverflow)do
76
+ allowed = %i(clip overflow)
77
+ with_values(allowed) do
78
+ it_should_assign_successfully
79
+ it_should_output_regular_xml
80
+ end
81
+
82
+ with_value(:notRight) do
83
+ it_should_raise_an_exception
84
+ end
85
+ end
86
+
87
+ for_attribute(:left_inset, displays_as: :lIns)do
88
+ with_value(1234) do
89
+ it_should_assign_successfully
90
+ it_should_output_regular_xml
91
+ end
92
+
93
+ with_value(-1234) do
94
+ it_should_raise_an_exception
95
+ end
96
+ end
97
+
98
+ for_attribute(:numCol)do
99
+ allowed = (1..16).to_a
100
+ with_values(allowed) do
101
+ it_should_assign_successfully
102
+ it_should_output_regular_xml
103
+ end
104
+
105
+ with_value(:notRight) do
106
+ it_should_raise_an_exception
107
+ end
108
+ end
109
+
110
+ for_attribute(:right_inset, displays_as: :rIns)do
111
+ with_value(1234) do
112
+ it_should_assign_successfully
113
+ it_should_output_regular_xml
114
+ end
115
+
116
+ with_value(-1234) do
117
+ it_should_raise_an_exception
118
+ end
119
+ end
120
+
121
+ for_attribute(:rotation, displays_as: :rot)do
122
+ with_values([1234, -1234]) do
123
+ it_should_assign_successfully
124
+ it_should_output_regular_xml
125
+ end
126
+
127
+ with_value("not valid") do
128
+ it_should_raise_an_exception
129
+ end
130
+ end
131
+
132
+ for_attribute(:right_to_left_columns, displays_as: :rtlCol)do
133
+ with_value(true) do
134
+ it_should_assign_successfully
135
+ it_should_output_regular_xml
136
+ end
137
+
138
+ with_value(1234) do
139
+ it_should_raise_an_exception
140
+ end
141
+ end
142
+
143
+ for_attribute(:space_between_columns, displays_as: :spcCol)do
144
+ with_value(1234) do
145
+ it_should_assign_successfully
146
+ it_should_output_regular_xml
147
+ end
148
+
149
+ with_value(-1234) do
150
+ it_should_raise_an_exception
151
+ end
152
+ end
153
+
154
+ for_attribute(:paragraph_spacing, displays_as: :spcFirstLastPara)do
155
+ with_value(true) do
156
+ it_should_assign_successfully
157
+ it_should_output_regular_xml
158
+ end
159
+
160
+ with_value(1234) do
161
+ it_should_raise_an_exception
162
+ end
163
+ end
164
+
165
+ for_attribute(:top_inset, displays_as: :tIns)do
166
+ with_value(1234) do
167
+ it_should_assign_successfully
168
+ it_should_output_regular_xml
169
+ end
170
+
171
+ with_value(-1234) do
172
+ it_should_raise_an_exception
173
+ end
174
+ end
175
+
176
+ for_attribute(:upright)do
177
+ with_value(true) do
178
+ it_should_assign_successfully
179
+ it_should_output_regular_xml
180
+ end
181
+
182
+ with_value(1234) do
183
+ it_should_raise_an_exception
184
+ end
185
+ end
186
+
187
+ for_attribute(:vert)do
188
+ allowed = %i(eaVert horz mongolianVert vert vert270 wordArt Vert wordArtVertRtl)
189
+ with_values(allowed) do
190
+ it_should_assign_successfully
191
+ it_should_output_regular_xml
192
+ end
193
+
194
+ with_value(:notRight) do
195
+ it_should_raise_an_exception
196
+ end
197
+ end
198
+
199
+ for_attribute(:vertOverflow)do
200
+ allowed = %i(clip ellipsis overflow)
201
+ with_values(allowed) do
202
+ it_should_assign_successfully
203
+ it_should_output_regular_xml
204
+ end
205
+
206
+ with_value(:notRight) do
207
+ it_should_raise_an_exception
208
+ end
209
+ end
210
+
211
+ for_attribute(:wrap)do
212
+ allowed = %i(none square)
213
+ with_values(allowed) do
214
+ it_should_assign_successfully
215
+ it_should_output_regular_xml
216
+ end
217
+
218
+ with_value(:notRight) do
219
+ it_should_raise_an_exception
220
+ end
221
+ end
222
+
223
+ end