openxml-docx 0.10.1 → 0.10.2

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 (120) hide show
  1. data/Gemfile.lock +1 -1
  2. data/examples/booklet-printing +55 -0
  3. data/lib/openxml/docx/attribute_builder.rb +11 -5
  4. data/lib/openxml/docx/elements/absolute_position_tab.rb +1 -1
  5. data/lib/openxml/docx/elements/background.rb +16 -0
  6. data/lib/openxml/docx/elements/book_fold_printing.rb +1 -1
  7. data/lib/openxml/docx/elements/book_fold_reverse_printing.rb +1 -1
  8. data/lib/openxml/docx/elements/compatibility_setting.rb +10 -0
  9. data/lib/openxml/docx/elements/compatibility_settings.rb +15 -0
  10. data/lib/openxml/docx/elements/embed_bold.rb +2 -10
  11. data/lib/openxml/docx/elements/embed_bold_italic.rb +2 -10
  12. data/lib/openxml/docx/elements/embed_italic.rb +2 -10
  13. data/lib/openxml/docx/elements/embed_regular.rb +3 -3
  14. data/lib/openxml/docx/elements/embed_system_fonts.rb +1 -1
  15. data/lib/openxml/docx/elements/embed_true_type_fonts.rb +1 -1
  16. data/lib/openxml/docx/elements/even_and_odd_headers.rb +11 -0
  17. data/lib/openxml/docx/elements/family.rb +1 -1
  18. data/lib/openxml/docx/elements/markup_compatibility_choice.rb +1 -1
  19. data/lib/openxml/docx/elements/paragraph.rb +1 -0
  20. data/lib/openxml/docx/elements/save_subset_fonts.rb +1 -1
  21. data/lib/openxml/docx/elements/table_cell.rb +1 -0
  22. data/lib/openxml/docx/elements/textbox_content.rb +9 -0
  23. data/lib/openxml/docx/elements/word_processing_drawing_anchor.rb +6 -6
  24. data/lib/openxml/docx/elements/word_processing_drawing_inline.rb +16 -0
  25. data/lib/openxml/docx/elements/word_processing_drawing_object_nv_properties.rb +1 -1
  26. data/lib/openxml/docx/elements/word_processing_drawing_wrap_polygon.rb +1 -1
  27. data/lib/openxml/docx/elements/word_processing_shapes_body_properties.rb +12 -12
  28. data/lib/openxml/docx/elements/word_processing_shapes_nv_drawing_properties.rb +1 -1
  29. data/lib/openxml/docx/elements/word_processing_shapes_shape.rb +1 -2
  30. data/lib/openxml/docx/elements/word_processing_shapes_shape_properties.rb +1 -11
  31. data/lib/openxml/docx/elements/word_processing_shapes_textual_contents.rb +13 -0
  32. data/lib/openxml/{drawingml → docx}/elements/wordprocessing_shape_group.rb +1 -1
  33. data/lib/openxml/docx/package.rb +4 -3
  34. data/lib/openxml/docx/parts/document.rb +5 -0
  35. data/lib/openxml/docx/parts/header.rb +1 -1
  36. data/lib/openxml/docx/properties.rb +1 -0
  37. data/lib/openxml/docx/properties/border.rb +2 -2
  38. data/lib/openxml/docx/properties/columns.rb +8 -2
  39. data/lib/openxml/docx/properties/conditional_formatting.rb +12 -12
  40. data/lib/openxml/docx/properties/container_property.rb +10 -10
  41. data/lib/openxml/docx/properties/footer_references.rb +12 -0
  42. data/lib/openxml/docx/properties/frame.rb +1 -1
  43. data/lib/openxml/docx/properties/header_references.rb +12 -0
  44. data/lib/openxml/docx/properties/indentation.rb +5 -1
  45. data/lib/openxml/docx/properties/latent_styles.rb +4 -4
  46. data/lib/openxml/docx/properties/latent_styles_exception.rb +4 -4
  47. data/lib/openxml/docx/properties/section.rb +15 -0
  48. data/lib/openxml/docx/properties/table_border.rb +2 -2
  49. data/lib/openxml/docx/properties/table_cell_border.rb +2 -2
  50. data/lib/openxml/docx/properties/table_look.rb +7 -6
  51. data/lib/openxml/docx/properties/text_direction.rb +1 -1
  52. data/lib/openxml/docx/properties/transparent_container_property.rb +14 -0
  53. data/lib/openxml/docx/properties/vertical_merge.rb +14 -0
  54. data/lib/openxml/docx/section.rb +2 -0
  55. data/lib/openxml/docx/style.rb +18 -6
  56. data/lib/openxml/docx/version.rb +1 -1
  57. data/lib/openxml/drawingml/elements/blip_fill.rb +1 -1
  58. data/lib/openxml/drawingml/elements/children_extents.rb +14 -0
  59. data/lib/openxml/drawingml/elements/children_offset.rb +14 -0
  60. data/lib/openxml/drawingml/elements/graphic_frame_locks.rb +6 -6
  61. data/lib/openxml/drawingml/elements/no_autofit.rb +10 -0
  62. data/lib/openxml/drawingml/elements/no_fill.rb +1 -1
  63. data/lib/openxml/drawingml/elements/non_visual_drawing_properties.rb +1 -1
  64. data/lib/openxml/drawingml/elements/non_visual_picture_drawing_properties.rb +1 -1
  65. data/lib/openxml/drawingml/elements/non_visual_shape_drawing_properties.rb +12 -0
  66. data/lib/openxml/drawingml/elements/picture_locks.rb +11 -11
  67. data/lib/openxml/drawingml/elements/preset_text_warp.rb +25 -0
  68. data/lib/openxml/vml/elements/group.rb +17 -37
  69. data/lib/openxml/vml/elements/rectangle.rb +29 -62
  70. data/lib/openxml/vml/elements/rounded_rectangle.rb +29 -61
  71. data/spec/elements/absolute_position_tab_spec.rb +21 -15
  72. data/spec/elements/background_spec.rb +52 -0
  73. data/spec/elements/bidi_embed_spec.rb +12 -4
  74. data/spec/elements/bidi_override_spec.rb +12 -4
  75. data/spec/elements/break_spec.rb +12 -10
  76. data/spec/elements/compatibility_setting_spec.rb +41 -0
  77. data/spec/elements/compatibility_settings_spec.rb +8 -0
  78. data/spec/elements/content_part_spec.rb +2 -2
  79. data/spec/elements/control_spec.rb +5 -5
  80. data/spec/elements/deleted_text_spec.rb +2 -2
  81. data/spec/elements/drawingml/blip_fill_spec.rb +8 -3
  82. data/spec/elements/drawingml/extents_spec.rb +4 -4
  83. data/spec/elements/drawingml/head_end_spec.rb +16 -13
  84. data/spec/elements/drawingml/no_autofit_spec.rb +8 -0
  85. data/spec/elements/drawingml/non_visual_drawing_properties_spec.rb +6 -6
  86. data/spec/elements/drawingml/non_visual_shape_drawing_properties_spec.rb +24 -0
  87. data/spec/elements/drawingml/offset_spec.rb +14 -4
  88. data/spec/elements/drawingml/outline_spec.rb +20 -14
  89. data/spec/elements/drawingml/preset_geometry_spec.rb +1 -1
  90. data/spec/elements/drawingml/preset_text_warp_spec.rb +36 -0
  91. data/spec/elements/drawingml/shape_guide_spec.rb +7 -3
  92. data/spec/elements/drawingml/srgb_color_spec.rb +3 -4
  93. data/spec/elements/drawingml/tail_end_spec.rb +17 -14
  94. data/spec/elements/drawingml/transform_effect_spec.rb +48 -26
  95. data/spec/elements/markup_compatibility_choice_spec.rb +2 -2
  96. data/spec/elements/paragraph_spec.rb +25 -0
  97. data/spec/elements/symbol_spec.rb +4 -4
  98. data/spec/elements/text_spec.rb +1 -1
  99. data/spec/elements/textbox_content_spec.rb +8 -0
  100. data/spec/elements/vml/group_spec.rb +367 -375
  101. data/spec/elements/vml/rectangle_spec.rb +503 -513
  102. data/spec/elements/vml/rounded_rectangle_spec.rb +591 -463
  103. data/spec/elements/word_processing_drawing_effect_extent_spec.rb +32 -12
  104. data/spec/elements/word_processing_drawing_extent_spec.rb +4 -4
  105. data/spec/elements/word_processing_drawing_object_nv_properties_spec.rb +6 -6
  106. data/spec/elements/word_processing_drawing_simple_position_spec.rb +16 -6
  107. data/spec/elements/word_processing_shapes_body_properties_spec.rb +53 -44
  108. data/spec/elements/word_processing_shapes_shape_properties_spec.rb +6 -5
  109. data/spec/elements/word_processing_shapes_shape_spec.rb +2 -2
  110. data/spec/elements/word_processing_shapes_textual_content_spec.rb +23 -0
  111. data/spec/elements/{drawingml/wordprocessing_shape_group_spec.rb → wordprocessing_shape_group_spec.rb} +1 -1
  112. data/spec/properties/indentation_spec.rb +28 -0
  113. data/spec/properties/table_look_spec.rb +5 -0
  114. data/spec/properties/text_direction_spec.rb +5 -0
  115. data/spec/properties/vertical_merge_spec.rb +22 -0
  116. data/spec/support/data/elements/paragraph_with_section_properties_element.xml +12 -0
  117. data/spec/support/data/parts/empty_header_part.xml +1 -1
  118. data/spec/support/data/parts/header_with_children_part.xml +1 -1
  119. metadata +76 -27
  120. checksums.yaml +0 -7
@@ -13,7 +13,7 @@ describe OpenXml::Docx::Elements::Text do
13
13
 
14
14
  with_value(:preserve) do
15
15
  it_should_assign_successfully
16
- it_should_output_regular_xml
16
+ it_should_output "<w:t xml:space=\"preserve\"/>"
17
17
  end
18
18
 
19
19
  with_value(:the_final_frontier) do
@@ -0,0 +1,8 @@
1
+ require "spec_helper"
2
+
3
+ describe OpenXml::Docx::Elements::TextboxContent do
4
+ include ElementTestMacros
5
+
6
+ it_should_use tag: :txbxContent, name: "textbox_content"
7
+
8
+ end
@@ -6,537 +6,529 @@ describe OpenXml::Vml::Elements::Group do
6
6
  it_should_use tag: :group, name: "group"
7
7
 
8
8
 
9
- # HR Align Attribute
10
-
11
- for_attribute(:hr_align, displays_as: :hralign, with_namespace: :o) do
12
- %i(center left right).each do |value|
13
- with_value(value) do
14
- it_should_assign_successfully
15
- it_should_output "<v:group o:hralign=\"#{value}\"/>"
9
+ describe "HR Align Attribute" do
10
+ for_attribute(:hr_align, displays_as: :hralign, with_namespace: :o) do
11
+ %i(center left right).each do |value|
12
+ with_value(value) do
13
+ it_should_assign_successfully
14
+ it_should_output "<v:group o:hralign=\"#{value}\"/>"
15
+ end
16
16
  end
17
- end
18
17
 
19
- with_values([:justified, 4, "overThere"]) do
20
- it_should_raise_an_exception
18
+ with_values([:justified, 4, "overThere"]) do
19
+ it_should_raise_an_exception
20
+ end
21
21
  end
22
22
  end
23
23
 
24
+ describe "Inset Mode Attribute" do
25
+ for_attribute(:inset_mode, displays_as: :insetmode, with_namespace: :o) do
26
+ with_value(:auto) do
27
+ it_should_assign_successfully
28
+ it_should_output "<v:group o:insetmode=\"auto\"/>"
29
+ end
24
30
 
25
- # Inset Mode Attribute
26
-
27
- for_attribute(:inset_mode, displays_as: :insetmode, with_namespace: :o) do
28
- with_value(:auto) do
29
- it_should_assign_successfully
30
- it_should_output "<v:group o:insetmode=\"auto\"/>"
31
- end
32
-
33
- with_value(:custom) do
34
- it_should_assign_successfully
35
- it_should_output "<v:group o:insetmode=\"custom\"/>"
36
- end
31
+ with_value(:custom) do
32
+ it_should_assign_successfully
33
+ it_should_output "<v:group o:insetmode=\"custom\"/>"
34
+ end
37
35
 
38
- with_values([:left, "right", 0]) do
39
- it_should_raise_an_exception
36
+ with_values([:left, "right", 0]) do
37
+ it_should_raise_an_exception
38
+ end
40
39
  end
41
40
  end
42
41
 
43
-
44
- # Edit As Attribute
45
-
46
- for_attribute(:edit_as, displays_as: :editas) do
47
- %i(bullseye canvas cycle orgchart radial stacked venn).each do |value|
48
- with_value(value) do
49
- it_should_assign_successfully
50
- it_should_output "<v:group editas=\"#{value}\"/>"
42
+ describe "Edit As Attribute" do
43
+ for_attribute(:edit_as, displays_as: :editas) do
44
+ %i(bullseye canvas cycle orgchart radial stacked venn).each do |value|
45
+ with_value(value) do
46
+ it_should_assign_successfully
47
+ it_should_output "<v:group editas=\"#{value}\"/>"
48
+ end
51
49
  end
52
- end
53
50
 
54
- with_values([:piechart, 4, "amazingGraph"]) do
55
- it_should_raise_an_exception
51
+ with_values([:piechart, 4, "amazingGraph"]) do
52
+ it_should_raise_an_exception
53
+ end
56
54
  end
57
55
  end
58
56
 
57
+ describe "Coordinate-based Attributes" do
58
+ good_coord_values = [ "100,100", "-100,-100", "100,-100", "100, 100", "-100, -100", "100, -100" ]
59
+ bad_coord_values = [ "100 100", "x:10,y:10", :over_there ]
59
60
 
60
- # Coordinate-based Attributes
61
-
62
- good_coord_values = [ "100,100", "-100,-100", "100,-100", "100, 100", "-100, -100", "100, -100" ]
63
- bad_coord_values = [ "100 100", "x:10,y:10", :over_there ]
64
-
65
- for_attribute(:coordinate_origin, displays_as: :coordorigin) do
66
- good_coord_values.each do |good_value|
67
- with_value(good_value) do
68
- it_should_assign_successfully
69
- it_should_output "<v:group coordorigin=\"#{good_value}\"/>"
61
+ for_attribute(:coordinate_origin, displays_as: :coordorigin) do
62
+ good_coord_values.each do |good_value|
63
+ with_value(good_value) do
64
+ it_should_assign_successfully
65
+ it_should_output "<v:group coordorigin=\"#{good_value}\"/>"
66
+ end
70
67
  end
71
- end
72
68
 
73
- with_values(bad_coord_values) do
74
- it_should_raise_an_exception
69
+ with_values(bad_coord_values) do
70
+ it_should_raise_an_exception
71
+ end
75
72
  end
76
- end
77
73
 
78
- for_attribute(:coordinate_size, displays_as: :coordsize) do
79
- good_coord_values.each do |good_value|
80
- with_value(good_value) do
81
- it_should_assign_successfully
82
- it_should_output "<v:group coordsize=\"#{good_value}\"/>"
74
+ for_attribute(:coordinate_size, displays_as: :coordsize) do
75
+ good_coord_values.each do |good_value|
76
+ with_value(good_value) do
77
+ it_should_assign_successfully
78
+ it_should_output "<v:group coordsize=\"#{good_value}\"/>"
79
+ end
83
80
  end
84
- end
85
81
 
86
- with_values(bad_coord_values) do
87
- it_should_raise_an_exception
82
+ with_values(bad_coord_values) do
83
+ it_should_raise_an_exception
84
+ end
88
85
  end
89
86
  end
90
87
 
88
+ describe "Color-based Attributes" do
89
+ good_color_values = [ "#FFFFFF", :red, "palateEntry [0]", "palateEntry" ]
90
+ bad_color_values = [ 54, 0 ]
91
91
 
92
- # Color-based Attributes
93
-
94
- good_color_values = [ "#FFFFFF", :red, "palateEntry [0]", "palateEntry" ]
95
- bad_color_values = [ 54, 0 ]
96
-
97
- for_attribute(:fill_color, displays_as: :fillcolor) do
98
- good_color_values.each do |good_value|
99
- with_value(good_value) do
100
- it_should_assign_successfully
101
- it_should_output "<v:group fillcolor=\"#{good_value}\"/>"
92
+ for_attribute(:fill_color, displays_as: :fillcolor) do
93
+ good_color_values.each do |good_value|
94
+ with_value(good_value) do
95
+ it_should_assign_successfully
96
+ it_should_output "<v:group fillcolor=\"#{good_value}\"/>"
97
+ end
102
98
  end
103
- end
104
99
 
105
- with_values(bad_color_values) do
106
- it_should_raise_an_exception
100
+ with_values(bad_color_values) do
101
+ it_should_raise_an_exception
102
+ end
107
103
  end
108
104
  end
109
105
 
106
+ describe "Diagram Layout-based Attributes" do
107
+ good_diagram_layout_values = (0..3)
108
+ bad_diagram_layout_values = [ -1, 4, "Five is Right Out" ]
110
109
 
111
- # Diagram Layout-based Attributes
112
-
113
- good_diagram_layout_values = (0..3)
114
- bad_diagram_layout_values = [ -1, 4, "Five is Right Out" ]
115
-
116
- for_attribute(:diagram_node_layout, displays_as: :dgmlayout, with_namespace: :o) do
117
- good_diagram_layout_values.each do |good_value|
118
- with_value(good_value) do
119
- it_should_assign_successfully
120
- it_should_output "<v:group o:dgmlayout=\"#{good_value}\"/>"
110
+ for_attribute(:diagram_node_layout, displays_as: :dgmlayout, with_namespace: :o) do
111
+ good_diagram_layout_values.each do |good_value|
112
+ with_value(good_value) do
113
+ it_should_assign_successfully
114
+ it_should_output "<v:group o:dgmlayout=\"#{good_value}\"/>"
115
+ end
121
116
  end
122
- end
123
117
 
124
- with_values(bad_diagram_layout_values) do
125
- it_should_raise_an_exception
118
+ with_values(bad_diagram_layout_values) do
119
+ it_should_raise_an_exception
120
+ end
126
121
  end
127
- end
128
122
 
129
- for_attribute(:diagram_node_recent_layout, displays_as: :dgmlayoutmru, with_namespace: :o) do
130
- good_diagram_layout_values.each do |good_value|
131
- with_value(good_value) do
132
- it_should_assign_successfully
133
- it_should_output "<v:group o:dgmlayoutmru=\"#{good_value}\"/>"
123
+ for_attribute(:diagram_node_recent_layout, displays_as: :dgmlayoutmru, with_namespace: :o) do
124
+ good_diagram_layout_values.each do |good_value|
125
+ with_value(good_value) do
126
+ it_should_assign_successfully
127
+ it_should_output "<v:group o:dgmlayoutmru=\"#{good_value}\"/>"
128
+ end
134
129
  end
135
- end
136
130
 
137
- with_values(bad_diagram_layout_values) do
138
- it_should_raise_an_exception
131
+ with_values(bad_diagram_layout_values) do
132
+ it_should_raise_an_exception
133
+ end
139
134
  end
140
135
  end
141
136
 
137
+ describe "Integer-based Attributes" do
138
+ good_integer_values = [1, -1, 0]
139
+ bad_integer_values = [2.5, :five, "five"]
142
140
 
143
- # Integer-based Attributes
144
-
145
- good_integer_values = [1, -1, 0]
146
- bad_integer_values = [2.5, :five, "five"]
147
-
148
- for_attribute(:diagram_node_kind, displays_as: :dgmnodekind, with_namespace: :o) do
149
- good_integer_values.each do |good_value|
150
- with_value(good_value) do
151
- it_should_assign_successfully
152
- it_should_output "<v:group o:dgmnodekind=\"#{good_value}\"/>"
141
+ for_attribute(:diagram_node_kind, displays_as: :dgmnodekind, with_namespace: :o) do
142
+ good_integer_values.each do |good_value|
143
+ with_value(good_value) do
144
+ it_should_assign_successfully
145
+ it_should_output "<v:group o:dgmnodekind=\"#{good_value}\"/>"
146
+ end
153
147
  end
154
- end
155
148
 
156
- with_values(bad_integer_values) do
157
- it_should_raise_an_exception
149
+ with_values(bad_integer_values) do
150
+ it_should_raise_an_exception
151
+ end
158
152
  end
159
- end
160
153
 
161
- for_attribute(:hr_percent, displays_as: :hrpct, with_namespace: :o) do
162
- good_integer_values.each do |good_value|
163
- with_value(good_value) do
164
- it_should_assign_successfully
165
- it_should_output "<v:group o:hrpct=\"#{good_value}\"/>"
154
+ for_attribute(:hr_percent, displays_as: :hrpct, with_namespace: :o) do
155
+ good_integer_values.each do |good_value|
156
+ with_value(good_value) do
157
+ it_should_assign_successfully
158
+ it_should_output "<v:group o:hrpct=\"#{good_value}\"/>"
159
+ end
166
160
  end
167
- end
168
161
 
169
- with_values(bad_integer_values) do
170
- it_should_raise_an_exception
162
+ with_values(bad_integer_values) do
163
+ it_should_raise_an_exception
164
+ end
171
165
  end
172
- end
173
166
 
174
- for_attribute(:regroup_id, displays_as: :regroupid, with_namespace: :o) do
175
- good_integer_values.each do |good_value|
176
- with_value(good_value) do
177
- it_should_assign_successfully
178
- it_should_output "<v:group o:regroupid=\"#{good_value}\"/>"
167
+ for_attribute(:regroup_id, displays_as: :regroupid, with_namespace: :o) do
168
+ good_integer_values.each do |good_value|
169
+ with_value(good_value) do
170
+ it_should_assign_successfully
171
+ it_should_output "<v:group o:regroupid=\"#{good_value}\"/>"
172
+ end
179
173
  end
180
- end
181
174
 
182
- with_values(bad_integer_values) do
183
- it_should_raise_an_exception
175
+ with_values(bad_integer_values) do
176
+ it_should_raise_an_exception
177
+ end
184
178
  end
185
179
  end
186
180
 
181
+ describe "String-based Attributes" do
182
+ bad_string_values = [0, :nope, false]
187
183
 
188
- # String-based Attributes
189
-
190
- bad_string_values = [0, :nope, false]
191
-
192
- for_attribute(:alt) do
193
- with_value("String") do
194
- it_should_assign_successfully
195
- it_should_output "<v:group alt=\"String\"/>"
196
- end
184
+ for_attribute(:alt) do
185
+ with_value("String") do
186
+ it_should_assign_successfully
187
+ it_should_output "<v:group alt=\"String\"/>"
188
+ end
197
189
 
198
- with_value("000001f") do
199
- it_should_assign_successfully
200
- it_should_output "<v:group alt=\"000001f\"/>"
201
- end
190
+ with_value("000001f") do
191
+ it_should_assign_successfully
192
+ it_should_output "<v:group alt=\"000001f\"/>"
193
+ end
202
194
 
203
195
 
204
- with_values(bad_string_values) do
205
- it_should_raise_an_exception
196
+ with_values(bad_string_values) do
197
+ it_should_raise_an_exception
198
+ end
206
199
  end
207
- end
208
200
 
209
- for_attribute(:css_class, displays_as: :class) do
210
- with_value("String") do
211
- it_should_assign_successfully
212
- it_should_output "<v:group class=\"String\"/>"
213
- end
201
+ for_attribute(:css_class, displays_as: :class) do
202
+ with_value("String") do
203
+ it_should_assign_successfully
204
+ it_should_output "<v:group class=\"String\"/>"
205
+ end
214
206
 
215
- with_values(bad_string_values) do
216
- it_should_raise_an_exception
207
+ with_values(bad_string_values) do
208
+ it_should_raise_an_exception
209
+ end
217
210
  end
218
- end
219
211
 
220
- for_attribute(:href) do
221
- with_value("http://something.com") do
222
- it_should_assign_successfully
223
- it_should_output "<v:group href=\"http://something.com\"/>"
224
- end
212
+ for_attribute(:href) do
213
+ with_value("http://something.com") do
214
+ it_should_assign_successfully
215
+ it_should_output "<v:group href=\"http://something.com\"/>"
216
+ end
225
217
 
226
- with_values(bad_string_values) do
227
- it_should_raise_an_exception
218
+ with_values(bad_string_values) do
219
+ it_should_raise_an_exception
220
+ end
228
221
  end
229
- end
230
222
 
231
- for_attribute(:id) do
232
- with_value("String") do
233
- it_should_assign_successfully
234
- it_should_output "<v:group id=\"String\"/>"
235
- end
223
+ for_attribute(:id) do
224
+ with_value("String") do
225
+ it_should_assign_successfully
226
+ it_should_output "<v:group id=\"String\"/>"
227
+ end
236
228
 
237
- with_values(bad_string_values) do
238
- it_should_raise_an_exception
229
+ with_values(bad_string_values) do
230
+ it_should_raise_an_exception
231
+ end
239
232
  end
240
- end
241
233
 
242
- for_attribute(:style) do
243
- with_value("String") do
244
- it_should_assign_successfully
245
- it_should_output "<v:group style=\"String\"/>"
246
- end
234
+ for_attribute(:style) do
235
+ with_value("String") do
236
+ it_should_assign_successfully
237
+ it_should_output "<v:group style=\"String\"/>"
238
+ end
247
239
 
248
- with_values(bad_string_values) do
249
- it_should_raise_an_exception
240
+ with_values(bad_string_values) do
241
+ it_should_raise_an_exception
242
+ end
250
243
  end
251
- end
252
244
 
253
- for_attribute(:target) do
254
- with_value("String") do
255
- it_should_assign_successfully
256
- it_should_output "<v:group target=\"String\"/>"
257
- end
245
+ for_attribute(:target) do
246
+ with_value("String") do
247
+ it_should_assign_successfully
248
+ it_should_output "<v:group target=\"String\"/>"
249
+ end
258
250
 
259
- with_values(bad_string_values) do
260
- it_should_raise_an_exception
251
+ with_values(bad_string_values) do
252
+ it_should_raise_an_exception
253
+ end
261
254
  end
262
- end
263
255
 
264
- for_attribute(:title) do
265
- with_value("String") do
266
- it_should_assign_successfully
267
- it_should_output "<v:group title=\"String\"/>"
268
- end
256
+ for_attribute(:title) do
257
+ with_value("String") do
258
+ it_should_assign_successfully
259
+ it_should_output "<v:group title=\"String\"/>"
260
+ end
269
261
 
270
- with_values(bad_string_values) do
271
- it_should_raise_an_exception
262
+ with_values(bad_string_values) do
263
+ it_should_raise_an_exception
264
+ end
272
265
  end
273
- end
274
266
 
275
- for_attribute(:wrap_coordinates, displays_as: :wrapcoords) do
276
- with_value("String") do
277
- it_should_assign_successfully
278
- it_should_output "<v:group wrapcoords=\"String\"/>"
279
- end
267
+ for_attribute(:wrap_coordinates, displays_as: :wrapcoords) do
268
+ with_value("String") do
269
+ it_should_assign_successfully
270
+ it_should_output "<v:group wrapcoords=\"String\"/>"
271
+ end
280
272
 
281
- with_value("0,0,100,100") do
282
- it_should_assign_successfully
283
- it_should_output "<v:group wrapcoords=\"0,0,100,100\"/>"
284
- end
273
+ with_value("0,0,100,100") do
274
+ it_should_assign_successfully
275
+ it_should_output "<v:group wrapcoords=\"0,0,100,100\"/>"
276
+ end
285
277
 
286
- with_values(bad_string_values) do
287
- it_should_raise_an_exception
278
+ with_values(bad_string_values) do
279
+ it_should_raise_an_exception
280
+ end
288
281
  end
289
- end
290
282
 
291
- for_attribute(:border_bottom_color, displays_as: :borderbottomcolor, with_namespace: :o) do
292
- with_value("String") do
293
- it_should_assign_successfully
294
- it_should_output "<v:group o:borderbottomcolor=\"String\"/>"
295
- end
283
+ for_attribute(:border_bottom_color, displays_as: :borderbottomcolor, with_namespace: :o) do
284
+ with_value("String") do
285
+ it_should_assign_successfully
286
+ it_should_output "<v:group o:borderbottomcolor=\"String\"/>"
287
+ end
296
288
 
297
- with_values(bad_string_values) do
298
- it_should_raise_an_exception
289
+ with_values(bad_string_values) do
290
+ it_should_raise_an_exception
291
+ end
299
292
  end
300
- end
301
293
 
302
- for_attribute(:border_left_color, displays_as: :borderleftcolor, with_namespace: :o) do
303
- with_value("String") do
304
- it_should_assign_successfully
305
- it_should_output "<v:group o:borderleftcolor=\"String\"/>"
306
- end
294
+ for_attribute(:border_left_color, displays_as: :borderleftcolor, with_namespace: :o) do
295
+ with_value("String") do
296
+ it_should_assign_successfully
297
+ it_should_output "<v:group o:borderleftcolor=\"String\"/>"
298
+ end
307
299
 
308
- with_values(bad_string_values) do
309
- it_should_raise_an_exception
300
+ with_values(bad_string_values) do
301
+ it_should_raise_an_exception
302
+ end
310
303
  end
311
- end
312
304
 
313
- for_attribute(:border_right_color, displays_as: :borderrightcolor, with_namespace: :o) do
314
- with_value("String") do
315
- it_should_assign_successfully
316
- it_should_output "<v:group o:borderrightcolor=\"String\"/>"
317
- end
305
+ for_attribute(:border_right_color, displays_as: :borderrightcolor, with_namespace: :o) do
306
+ with_value("String") do
307
+ it_should_assign_successfully
308
+ it_should_output "<v:group o:borderrightcolor=\"String\"/>"
309
+ end
318
310
 
319
- with_values(bad_string_values) do
320
- it_should_raise_an_exception
311
+ with_values(bad_string_values) do
312
+ it_should_raise_an_exception
313
+ end
321
314
  end
322
- end
323
315
 
324
- for_attribute(:border_top_color, displays_as: :bordertopcolor, with_namespace: :o) do
325
- with_value("String") do
326
- it_should_assign_successfully
327
- it_should_output "<v:group o:bordertopcolor=\"String\"/>"
328
- end
316
+ for_attribute(:border_top_color, displays_as: :bordertopcolor, with_namespace: :o) do
317
+ with_value("String") do
318
+ it_should_assign_successfully
319
+ it_should_output "<v:group o:bordertopcolor=\"String\"/>"
320
+ end
329
321
 
330
- with_values(bad_string_values) do
331
- it_should_raise_an_exception
322
+ with_values(bad_string_values) do
323
+ it_should_raise_an_exception
324
+ end
332
325
  end
333
- end
334
326
 
335
- for_attribute(:optional_string, displays_as: :spid, with_namespace: :o) do
336
- with_value("String") do
337
- it_should_assign_successfully
338
- it_should_output "<v:group o:spid=\"String\"/>"
339
- end
327
+ for_attribute(:optional_string, displays_as: :spid, with_namespace: :o) do
328
+ with_value("String") do
329
+ it_should_assign_successfully
330
+ it_should_output "<v:group o:spid=\"String\"/>"
331
+ end
340
332
 
341
- with_values(bad_string_values) do
342
- it_should_raise_an_exception
333
+ with_values(bad_string_values) do
334
+ it_should_raise_an_exception
335
+ end
343
336
  end
344
- end
345
337
 
346
- for_attribute(:table_limits, displays_as: :tablelimits, with_namespace: :o) do
347
- with_value("String") do
348
- it_should_assign_successfully
349
- it_should_output "<v:group o:tablelimits=\"String\"/>"
350
- end
338
+ for_attribute(:table_limits, displays_as: :tablelimits, with_namespace: :o) do
339
+ with_value("String") do
340
+ it_should_assign_successfully
341
+ it_should_output "<v:group o:tablelimits=\"String\"/>"
342
+ end
351
343
 
352
- with_values(bad_string_values) do
353
- it_should_raise_an_exception
344
+ with_values(bad_string_values) do
345
+ it_should_raise_an_exception
346
+ end
354
347
  end
355
- end
356
348
 
357
- for_attribute(:table_properties, displays_as: :tableproperties, with_namespace: :o) do
358
- with_value("String") do
359
- it_should_assign_successfully
360
- it_should_output "<v:group o:tableproperties=\"String\"/>"
361
- end
349
+ for_attribute(:table_properties, displays_as: :tableproperties, with_namespace: :o) do
350
+ with_value("String") do
351
+ it_should_assign_successfully
352
+ it_should_output "<v:group o:tableproperties=\"String\"/>"
353
+ end
362
354
 
363
- with_values(bad_string_values) do
364
- it_should_raise_an_exception
355
+ with_values(bad_string_values) do
356
+ it_should_raise_an_exception
357
+ end
365
358
  end
366
359
  end
367
360
 
368
- # (Explicitly) True/False-based Attributes
369
-
370
- good_tf_values = %w(0 1 t f true false)
371
- bad_tf_values = ["yes", "no", "on", "off", 5]
361
+ describe "(Explicitly) True/False-based Attributes" do
362
+ good_tf_values = [true, false]
363
+ bad_tf_values = ["yes", "no", "on", "off", 5]
372
364
 
373
- for_attribute(:filled) do
374
- good_tf_values.each do |good_value|
375
- with_value(good_value) do
376
- it_should_assign_successfully
377
- it_should_output "<v:group filled=\"#{good_value}\"/>"
365
+ for_attribute(:filled) do
366
+ good_tf_values.each do |good_value|
367
+ with_value(good_value) do
368
+ it_should_assign_successfully
369
+ it_should_output "<v:group filled=\"#{good_value}\"/>"
370
+ end
378
371
  end
379
- end
380
372
 
381
- with_values(bad_tf_values) do
382
- it_should_raise_an_exception
373
+ with_values(bad_tf_values) do
374
+ it_should_raise_an_exception
375
+ end
383
376
  end
384
- end
385
377
 
386
- for_attribute(:print) do
387
- good_tf_values.each do |good_value|
388
- with_value(good_value) do
389
- it_should_assign_successfully
390
- it_should_output "<v:group print=\"#{good_value}\"/>"
378
+ for_attribute(:print) do
379
+ good_tf_values.each do |good_value|
380
+ with_value(good_value) do
381
+ it_should_assign_successfully
382
+ it_should_output "<v:group print=\"#{good_value}\"/>"
383
+ end
391
384
  end
392
- end
393
385
 
394
- with_values(bad_tf_values) do
395
- it_should_raise_an_exception
386
+ with_values(bad_tf_values) do
387
+ it_should_raise_an_exception
388
+ end
396
389
  end
397
- end
398
390
 
399
- for_attribute(:allow_in_cell, displays_as: :allowincell, with_namespace: :o) do
400
- good_tf_values.each do |good_value|
401
- with_value(good_value) do
402
- it_should_assign_successfully
403
- it_should_output "<v:group o:allowincell=\"#{good_value}\"/>"
391
+ for_attribute(:allow_in_cell, displays_as: :allowincell, with_namespace: :o) do
392
+ good_tf_values.each do |good_value|
393
+ with_value(good_value) do
394
+ it_should_assign_successfully
395
+ it_should_output "<v:group o:allowincell=\"#{good_value}\"/>"
396
+ end
397
+ end
398
+ with_values(bad_tf_values) do
399
+ it_should_raise_an_exception
404
400
  end
405
401
  end
406
- with_values(bad_tf_values) do
407
- it_should_raise_an_exception
408
- end
409
- end
410
402
 
411
- for_attribute(:allow_overlap, displays_as: :allowoverlap, with_namespace: :o) do
412
- good_tf_values.each do |good_value|
413
- with_value(good_value) do
414
- it_should_assign_successfully
415
- it_should_output "<v:group o:allowoverlap=\"#{good_value}\"/>"
403
+ for_attribute(:allow_overlap, displays_as: :allowoverlap, with_namespace: :o) do
404
+ good_tf_values.each do |good_value|
405
+ with_value(good_value) do
406
+ it_should_assign_successfully
407
+ it_should_output "<v:group o:allowoverlap=\"#{good_value}\"/>"
408
+ end
416
409
  end
417
- end
418
410
 
419
- with_values(bad_tf_values) do
420
- it_should_raise_an_exception
411
+ with_values(bad_tf_values) do
412
+ it_should_raise_an_exception
413
+ end
421
414
  end
422
- end
423
415
 
424
- for_attribute(:bullet, with_namespace: :o) do
425
- good_tf_values.each do |good_value|
426
- with_value(good_value) do
427
- it_should_assign_successfully
428
- it_should_output "<v:group o:bullet=\"#{good_value}\"/>"
416
+ for_attribute(:bullet, with_namespace: :o) do
417
+ good_tf_values.each do |good_value|
418
+ with_value(good_value) do
419
+ it_should_assign_successfully
420
+ it_should_output "<v:group o:bullet=\"#{good_value}\"/>"
421
+ end
429
422
  end
430
- end
431
423
 
432
- with_values(bad_tf_values) do
433
- it_should_raise_an_exception
424
+ with_values(bad_tf_values) do
425
+ it_should_raise_an_exception
426
+ end
434
427
  end
435
- end
436
428
 
437
- for_attribute(:button, with_namespace: :o) do
438
- good_tf_values.each do |good_value|
439
- with_value(good_value) do
440
- it_should_assign_successfully
441
- it_should_output "<v:group o:button=\"#{good_value}\"/>"
429
+ for_attribute(:button, with_namespace: :o) do
430
+ good_tf_values.each do |good_value|
431
+ with_value(good_value) do
432
+ it_should_assign_successfully
433
+ it_should_output "<v:group o:button=\"#{good_value}\"/>"
434
+ end
442
435
  end
443
- end
444
436
 
445
- with_values(bad_tf_values) do
446
- it_should_raise_an_exception
437
+ with_values(bad_tf_values) do
438
+ it_should_raise_an_exception
439
+ end
447
440
  end
448
- end
449
441
 
450
- for_attribute(:double_click_notify, displays_as: :doubleclicknotify, with_namespace: :o) do
451
- good_tf_values.each do |good_value|
452
- with_value(good_value) do
453
- it_should_assign_successfully
454
- it_should_output "<v:group o:doubleclicknotify=\"#{good_value}\"/>"
442
+ for_attribute(:double_click_notify, displays_as: :doubleclicknotify, with_namespace: :o) do
443
+ good_tf_values.each do |good_value|
444
+ with_value(good_value) do
445
+ it_should_assign_successfully
446
+ it_should_output "<v:group o:doubleclicknotify=\"#{good_value}\"/>"
447
+ end
455
448
  end
456
- end
457
449
 
458
- with_values(bad_tf_values) do
459
- it_should_raise_an_exception
450
+ with_values(bad_tf_values) do
451
+ it_should_raise_an_exception
452
+ end
460
453
  end
461
- end
462
454
 
463
- for_attribute(:hr, with_namespace: :o) do
464
- good_tf_values.each do |good_value|
465
- with_value(good_value) do
466
- it_should_assign_successfully
467
- it_should_output "<v:group o:hr=\"#{good_value}\"/>"
455
+ for_attribute(:hr, with_namespace: :o) do
456
+ good_tf_values.each do |good_value|
457
+ with_value(good_value) do
458
+ it_should_assign_successfully
459
+ it_should_output "<v:group o:hr=\"#{good_value}\"/>"
460
+ end
468
461
  end
469
- end
470
462
 
471
- with_values(bad_tf_values) do
472
- it_should_raise_an_exception
463
+ with_values(bad_tf_values) do
464
+ it_should_raise_an_exception
465
+ end
473
466
  end
474
- end
475
467
 
476
- for_attribute(:hr_no_shade, displays_as: :hrnoshade, with_namespace: :o) do
477
- good_tf_values.each do |good_value|
478
- with_value(good_value) do
479
- it_should_assign_successfully
480
- it_should_output "<v:group o:hrnoshade=\"#{good_value}\"/>"
468
+ for_attribute(:hr_no_shade, displays_as: :hrnoshade, with_namespace: :o) do
469
+ good_tf_values.each do |good_value|
470
+ with_value(good_value) do
471
+ it_should_assign_successfully
472
+ it_should_output "<v:group o:hrnoshade=\"#{good_value}\"/>"
473
+ end
481
474
  end
482
- end
483
475
 
484
- with_values(bad_tf_values) do
485
- it_should_raise_an_exception
476
+ with_values(bad_tf_values) do
477
+ it_should_raise_an_exception
478
+ end
486
479
  end
487
- end
488
480
 
489
- for_attribute(:hr_standard, displays_as: :hrstd, with_namespace: :o) do
490
- good_tf_values.each do |good_value|
491
- with_value(good_value) do
492
- it_should_assign_successfully
493
- it_should_output "<v:group o:hrstd=\"#{good_value}\"/>"
481
+ for_attribute(:hr_standard, displays_as: :hrstd, with_namespace: :o) do
482
+ good_tf_values.each do |good_value|
483
+ with_value(good_value) do
484
+ it_should_assign_successfully
485
+ it_should_output "<v:group o:hrstd=\"#{good_value}\"/>"
486
+ end
494
487
  end
495
- end
496
488
 
497
- with_values(bad_tf_values) do
498
- it_should_raise_an_exception
489
+ with_values(bad_tf_values) do
490
+ it_should_raise_an_exception
491
+ end
499
492
  end
500
- end
501
493
 
502
- for_attribute(:hide_extra_handles, displays_as: :oned, with_namespace: :o) do
503
- good_tf_values.each do |good_value|
504
- with_value(good_value) do
505
- it_should_assign_successfully
506
- it_should_output "<v:group o:oned=\"#{good_value}\"/>"
494
+ for_attribute(:hide_extra_handles, displays_as: :oned, with_namespace: :o) do
495
+ good_tf_values.each do |good_value|
496
+ with_value(good_value) do
497
+ it_should_assign_successfully
498
+ it_should_output "<v:group o:oned=\"#{good_value}\"/>"
499
+ end
507
500
  end
508
- end
509
501
 
510
- with_values(bad_tf_values) do
511
- it_should_raise_an_exception
502
+ with_values(bad_tf_values) do
503
+ it_should_raise_an_exception
504
+ end
512
505
  end
513
- end
514
506
 
515
- for_attribute(:user_drawn, displays_as: :userdrawn, with_namespace: :o) do
516
- good_tf_values.each do |good_value|
517
- with_value(good_value) do
518
- it_should_assign_successfully
519
- it_should_output "<v:group o:userdrawn=\"#{good_value}\"/>"
507
+ for_attribute(:user_drawn, displays_as: :userdrawn, with_namespace: :o) do
508
+ good_tf_values.each do |good_value|
509
+ with_value(good_value) do
510
+ it_should_assign_successfully
511
+ it_should_output "<v:group o:userdrawn=\"#{good_value}\"/>"
512
+ end
520
513
  end
521
- end
522
514
 
523
- with_values(bad_tf_values) do
524
- it_should_raise_an_exception
515
+ with_values(bad_tf_values) do
516
+ it_should_raise_an_exception
517
+ end
525
518
  end
526
- end
527
519
 
528
- for_attribute(:user_hidden, displays_as: :userhidden, with_namespace: :o) do
529
- good_tf_values.each do |good_value|
530
- with_value(good_value) do
531
- it_should_assign_successfully
532
- it_should_output "<v:group o:userhidden=\"#{good_value}\"/>"
520
+ for_attribute(:user_hidden, displays_as: :userhidden, with_namespace: :o) do
521
+ good_tf_values.each do |good_value|
522
+ with_value(good_value) do
523
+ it_should_assign_successfully
524
+ it_should_output "<v:group o:userhidden=\"#{good_value}\"/>"
525
+ end
533
526
  end
534
- end
535
527
 
536
- with_values(bad_tf_values) do
537
- it_should_raise_an_exception
528
+ with_values(bad_tf_values) do
529
+ it_should_raise_an_exception
530
+ end
538
531
  end
539
532
  end
540
533
 
541
-
542
534
  end