rocx 0.5.7 → 0.5.8

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 (236) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/Gemfile.lock +11 -7
  4. data/Rakefile +3 -8
  5. data/lib/rocx/elements/base_container.rb +8 -4
  6. data/lib/rocx/elements/paragraph.rb +4 -4
  7. data/lib/rocx/elements/run.rb +40 -1
  8. data/lib/rocx/properties.rb +5 -0
  9. data/lib/rocx/properties/alignment.rb +4 -19
  10. data/lib/rocx/properties/attribute_builder.rb +8 -2
  11. data/lib/rocx/properties/auto_adjust_right_indent.rb +3 -9
  12. data/lib/rocx/properties/auto_space_de.rb +1 -8
  13. data/lib/rocx/properties/auto_space_dn.rb +1 -8
  14. data/lib/rocx/properties/base_property.rb +20 -11
  15. data/lib/rocx/properties/bold.rb +1 -4
  16. data/lib/rocx/properties/boolean_property.rb +1 -1
  17. data/lib/rocx/properties/border.rb +5 -13
  18. data/lib/rocx/properties/borders.rb +2 -8
  19. data/lib/rocx/properties/caps.rb +6 -0
  20. data/lib/rocx/properties/character_spacing.rb +8 -0
  21. data/lib/rocx/properties/color.rb +13 -0
  22. data/lib/rocx/properties/complex_bold.rb +8 -0
  23. data/lib/rocx/properties/complex_font_size.rb +8 -0
  24. data/lib/rocx/properties/complex_italics.rb +8 -0
  25. data/lib/rocx/properties/complex_property.rb +16 -0
  26. data/lib/rocx/properties/complex_script_formatting.rb +8 -0
  27. data/lib/rocx/properties/compress_punctuation.rb +1 -4
  28. data/lib/rocx/properties/conditional_formatting.rb +17 -56
  29. data/lib/rocx/properties/div_id.rb +1 -18
  30. data/lib/rocx/properties/double_strikethrough.rb +8 -0
  31. data/lib/rocx/properties/east_asian_layout.rb +22 -0
  32. data/lib/rocx/properties/effect.rb +11 -0
  33. data/lib/rocx/properties/emboss.rb +6 -0
  34. data/lib/rocx/properties/emphasis.rb +12 -0
  35. data/lib/rocx/properties/expansion.rb +18 -0
  36. data/lib/rocx/properties/font.rb +34 -0
  37. data/lib/rocx/properties/font_size.rb +8 -0
  38. data/lib/rocx/properties/frame.rb +5 -16
  39. data/lib/rocx/properties/hidden_text.rb +8 -0
  40. data/lib/rocx/properties/highlight.rb +11 -0
  41. data/lib/rocx/properties/imprint.rb +6 -0
  42. data/lib/rocx/properties/indentation.rb +11 -24
  43. data/lib/rocx/properties/integer_property.rb +15 -0
  44. data/lib/rocx/properties/italics.rb +1 -4
  45. data/lib/rocx/properties/kerning.rb +8 -0
  46. data/lib/rocx/properties/language.rb +20 -0
  47. data/lib/rocx/properties/manual_width.rb +12 -0
  48. data/lib/rocx/properties/math.rb +8 -0
  49. data/lib/rocx/properties/no_proof.rb +6 -0
  50. data/lib/rocx/properties/numbering.rb +4 -10
  51. data/lib/rocx/properties/on_off_property.rb +1 -1
  52. data/lib/rocx/properties/outline.rb +6 -0
  53. data/lib/rocx/properties/outline_level.rb +2 -17
  54. data/lib/rocx/properties/overflow_punctuation.rb +1 -8
  55. data/lib/rocx/properties/paragraph_style.rb +8 -0
  56. data/lib/rocx/properties/position.rb +6 -0
  57. data/lib/rocx/properties/positive_integer_property.rb +15 -0
  58. data/lib/rocx/properties/right_to_left.rb +8 -0
  59. data/lib/rocx/properties/run_style.rb +8 -0
  60. data/lib/rocx/properties/shading.rb +9 -20
  61. data/lib/rocx/properties/shadow.rb +6 -0
  62. data/lib/rocx/properties/small_caps.rb +6 -0
  63. data/lib/rocx/properties/spacing.rb +4 -17
  64. data/lib/rocx/properties/spec_vanish.rb +6 -0
  65. data/lib/rocx/properties/strikethrough.rb +8 -0
  66. data/lib/rocx/properties/style.rb +15 -0
  67. data/lib/rocx/properties/tab.rb +1 -9
  68. data/lib/rocx/properties/tabs.rb +1 -9
  69. data/lib/rocx/properties/text_alignment.rb +11 -0
  70. data/lib/rocx/properties/text_direction.rb +1 -5
  71. data/lib/rocx/properties/textbox_tight_wrap.rb +1 -5
  72. data/lib/rocx/properties/toggle_property.rb +1 -1
  73. data/lib/rocx/properties/underline.rb +24 -0
  74. data/lib/rocx/properties/value_property.rb +29 -0
  75. data/lib/rocx/properties/vertical_alignment.rb +3 -10
  76. data/lib/rocx/properties/web_hidden.rb +6 -0
  77. data/lib/rocx/version.rb +1 -1
  78. data/rocx.gemspec +1 -2
  79. data/spec/elements/break_spec.rb +47 -0
  80. data/spec/elements/paragraph_spec.rb +31 -0
  81. data/spec/elements/run_spec.rb +15 -0
  82. data/spec/elements/symbol_spec.rb +24 -0
  83. data/spec/elements/text_spec.rb +23 -0
  84. data/spec/package_spec.rb +48 -0
  85. data/spec/parts/content_types_spec.rb +32 -0
  86. data/spec/parts/document_spec.rb +32 -0
  87. data/spec/parts/global_rels_spec.rb +13 -0
  88. data/spec/parts/rels_spec.rb +42 -0
  89. data/spec/parts/settings_spec.rb +13 -0
  90. data/spec/parts/styles_spec.rb +27 -0
  91. data/spec/properties/alignment_spec.rb +58 -0
  92. data/spec/properties/auto_adjust_right_indent_spec.rb +23 -0
  93. data/spec/properties/auto_space_de_spec.rb +23 -0
  94. data/spec/properties/auto_space_dn_spec.rb +23 -0
  95. data/spec/properties/bidi_spec.rb +23 -0
  96. data/spec/properties/bold_spec.rb +23 -0
  97. data/spec/properties/border_spec.rb +156 -0
  98. data/spec/properties/borders_spec.rb +66 -0
  99. data/spec/properties/caps_spec.rb +23 -0
  100. data/spec/properties/character_spacing_spec.rb +26 -0
  101. data/spec/properties/color_spec.rb +49 -0
  102. data/spec/properties/complex_bold_spec.rb +23 -0
  103. data/spec/properties/complex_font_size_spec.rb +24 -0
  104. data/spec/properties/complex_italics_spec.rb +23 -0
  105. data/spec/properties/complex_script_formatting_spec.rb +23 -0
  106. data/spec/properties/compress_punctuation_spec.rb +23 -0
  107. data/spec/properties/conditional_formatting_spec.rb +160 -0
  108. data/spec/properties/contextual_spacing_spec.rb +23 -0
  109. data/spec/properties/div_id_spec.rb +17 -0
  110. data/spec/properties/double_strikethrough_spec.rb +23 -0
  111. data/spec/properties/east_asian_layout_spec.rb +115 -0
  112. data/spec/properties/effect_spec.rb +43 -0
  113. data/spec/properties/emboss_spec.rb +23 -0
  114. data/spec/properties/emphasis_spec.rb +37 -0
  115. data/spec/properties/expansion_spec.rb +34 -0
  116. data/spec/properties/font_size_spec.rb +24 -0
  117. data/spec/properties/font_spec.rb +273 -0
  118. data/spec/properties/frame_spec.rb +338 -0
  119. data/spec/properties/hidden_text_spec.rb +23 -0
  120. data/spec/properties/highlight_spec.rb +97 -0
  121. data/spec/properties/imprint_spec.rb +23 -0
  122. data/spec/properties/indentation_spec.rb +176 -0
  123. data/spec/properties/italics_spec.rb +23 -0
  124. data/spec/properties/keep_lines_spec.rb +23 -0
  125. data/spec/properties/keep_next_spec.rb +23 -0
  126. data/spec/properties/kerning_spec.rb +24 -0
  127. data/spec/properties/kinsoku_spec.rb +23 -0
  128. data/spec/properties/language_spec.rb +29 -0
  129. data/spec/properties/manual_width_spec.rb +55 -0
  130. data/spec/properties/math_spec.rb +23 -0
  131. data/spec/properties/mirror_indent_spec.rb +23 -0
  132. data/spec/properties/no_proof_spec.rb +23 -0
  133. data/spec/properties/numbering_spec.rb +46 -0
  134. data/spec/properties/outline_level_spec.rb +20 -0
  135. data/spec/properties/outline_spec.rb +23 -0
  136. data/spec/properties/overflow_punctuation_spec.rb +23 -0
  137. data/spec/properties/page_break_before_spec.rb +23 -0
  138. data/spec/properties/paragraph_style_spec.rb +12 -0
  139. data/spec/properties/position_spec.rb +26 -0
  140. data/spec/properties/right_to_left_spec.rb +23 -0
  141. data/spec/properties/run_style_spec.rb +12 -0
  142. data/spec/properties/shading_spec.rb +135 -0
  143. data/spec/properties/shadow_property_spec.rb +23 -0
  144. data/spec/properties/small_caps_spec.rb +22 -0
  145. data/spec/properties/snap_to_grid_spec.rb +23 -0
  146. data/spec/properties/spacing_spec.rb +159 -0
  147. data/spec/properties/spec_vanish_spec.rb +23 -0
  148. data/spec/properties/strikethrough_spec.rb +23 -0
  149. data/spec/properties/supress_auto_hyphens_spec.rb +23 -0
  150. data/spec/properties/supress_line_numbers_spec.rb +23 -0
  151. data/spec/properties/supress_overlap_spec.rb +23 -0
  152. data/spec/properties/tab_spec.rb +45 -0
  153. data/spec/properties/tabs_spec.rb +39 -0
  154. data/spec/properties/text_alignment_spec.rb +33 -0
  155. data/spec/properties/text_direction_spec.rb +42 -0
  156. data/spec/properties/textbox_tight_wrap_spec.rb +33 -0
  157. data/spec/properties/underline_spec.rb +161 -0
  158. data/spec/properties/vertical_alignment_spec.rb +26 -0
  159. data/spec/properties/web_hidden_spec.rb +23 -0
  160. data/spec/properties/widow_control_spec.rb +23 -0
  161. data/spec/properties/word_wrap_spec.rb +23 -0
  162. data/spec/spec_helper.rb +14 -0
  163. data/spec/style_spec.rb +34 -0
  164. data/{test → spec/support}/data/elements/break_element.xml +0 -0
  165. data/{test → spec/support}/data/elements/break_with_attributes_element.xml +0 -0
  166. data/{test → spec/support}/data/elements/paragraph_element.xml +0 -0
  167. data/{test → spec/support}/data/elements/paragraph_with_runs_element.xml +1 -1
  168. data/{test → spec/support}/data/elements/run_element.xml +0 -0
  169. data/{test → spec/support}/data/elements/symbol_element.xml +0 -0
  170. data/{test → spec/support}/data/elements/text_element.xml +0 -0
  171. data/{test → spec/support}/data/parts/content_types_part.xml +0 -0
  172. data/{test → spec/support}/data/parts/document_with_children_part.xml +0 -0
  173. data/{test → spec/support}/data/parts/empty_document_part.xml +0 -0
  174. data/{test → spec/support}/data/parts/global_rels_part.xml +0 -0
  175. data/{test → spec/support}/data/parts/rels_part.xml +0 -0
  176. data/{test → spec/support}/data/parts/settings_part.xml +0 -0
  177. data/{test → spec/support}/data/parts/styles_part.xml +0 -0
  178. data/{test → spec/support}/data/parts/styles_with_custom_style_part.xml +0 -0
  179. data/{test → spec/support}/data/styles/character_styles.xml +0 -0
  180. data/{test → spec/support}/data/styles/paragraph_styles.xml +0 -0
  181. data/spec/support/element_test_macros.rb +33 -0
  182. data/spec/support/part_test_macros.rb +27 -0
  183. data/spec/support/property_test_macros.rb +116 -0
  184. data/spec/support/style_test_macros.rb +33 -0
  185. data/spec/support/value_property_test_macros.rb +69 -0
  186. metadata +151 -133
  187. data/lib/rocx/elements/style.rb +0 -19
  188. data/test/elements/break_test.rb +0 -54
  189. data/test/elements/paragraph_test.rb +0 -37
  190. data/test/elements/run_test.rb +0 -18
  191. data/test/elements/symbol_test.rb +0 -23
  192. data/test/elements/text_test.rb +0 -26
  193. data/test/package_test.rb +0 -48
  194. data/test/parts/content_types_test.rb +0 -37
  195. data/test/parts/document_test.rb +0 -31
  196. data/test/parts/global_rels_test.rb +0 -13
  197. data/test/parts/rels_test.rb +0 -48
  198. data/test/parts/settings_test.rb +0 -13
  199. data/test/parts/styles_test.rb +0 -29
  200. data/test/properties/auto_adjust_right_indent_test.rb +0 -50
  201. data/test/properties/auto_space_de_test.rb +0 -50
  202. data/test/properties/auto_space_dn_test.rb +0 -50
  203. data/test/properties/bidi_test.rb +0 -50
  204. data/test/properties/bold_test.rb +0 -50
  205. data/test/properties/border_test.rb +0 -216
  206. data/test/properties/borders_test.rb +0 -95
  207. data/test/properties/compress_punctuation_test.rb +0 -50
  208. data/test/properties/conditional_formatting_test.rb +0 -46
  209. data/test/properties/contextual_spacing_test.rb +0 -50
  210. data/test/properties/div_id_test.rb +0 -38
  211. data/test/properties/frame_test.rb +0 -497
  212. data/test/properties/italics_test.rb +0 -50
  213. data/test/properties/keep_lines_test.rb +0 -50
  214. data/test/properties/keep_next_test.rb +0 -50
  215. data/test/properties/kinsoku_test.rb +0 -50
  216. data/test/properties/mirror_indent_test.rb +0 -50
  217. data/test/properties/numbering_test.rb +0 -86
  218. data/test/properties/outline_level_test.rb +0 -46
  219. data/test/properties/overflow_punctuation_test.rb +0 -50
  220. data/test/properties/page_break_before_test.rb +0 -50
  221. data/test/properties/shading_test.rb +0 -225
  222. data/test/properties/snap_to_grid_test.rb +0 -50
  223. data/test/properties/spacing_test.rb +0 -248
  224. data/test/properties/style_test.rb +0 -30
  225. data/test/properties/supress_auto_hyphens_test.rb +0 -50
  226. data/test/properties/supress_line_numbers_test.rb +0 -50
  227. data/test/properties/supress_overlap_test.rb +0 -50
  228. data/test/properties/tab_test.rb +0 -63
  229. data/test/properties/tabs_test.rb +0 -54
  230. data/test/properties/text_direction_test.rb +0 -100
  231. data/test/properties/textbox_tight_wrap_test.rb +0 -88
  232. data/test/properties/vertical_alignment_test.rb +0 -88
  233. data/test/properties/widow_control_test.rb +0 -50
  234. data/test/properties/word_wrap_test.rb +0 -50
  235. data/test/style_test.rb +0 -54
  236. data/test/test_helper.rb +0 -52
@@ -0,0 +1,27 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Parts::Styles do
4
+ include PartTestMacros
5
+
6
+ context "when adding no additional styles" do
7
+ before(:each) do
8
+ @doc = described_class.new
9
+ end
10
+
11
+ it_should_output_correct_xml
12
+ end
13
+
14
+ context "after adding additional styles" do
15
+ before(:each) do
16
+ @doc = described_class.new
17
+ paragraph_styles = {
18
+ "w:ind" => {"w:firstLine" => "0", "w:left" => "0", "w:right" => "0"},
19
+ "w:jc" => {"w:val" => "left"}
20
+ }
21
+ style = Rocx::Style.new("coolStyle", "paragraph", {}, paragraph_styles)
22
+ doc << style
23
+ end
24
+
25
+ it_should_output_correct_xml part: "styles_with_custom_style"
26
+ end
27
+ end
@@ -0,0 +1,58 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::Alignment do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :jc, name: "alignment", value: :end
7
+
8
+ with_value(:both) do
9
+ it_should_work
10
+ it_should_output "<w:jc w:val=\"both\"/>"
11
+ end
12
+
13
+ with_value(:center) do
14
+ it_should_work
15
+ it_should_output "<w:jc w:val=\"center\"/>"
16
+ end
17
+
18
+ with_value(:distribute) do
19
+ it_should_work
20
+ it_should_output "<w:jc w:val=\"distribute\"/>"
21
+ end
22
+
23
+ with_value(:end) do
24
+ it_should_work
25
+ it_should_output "<w:jc w:val=\"end\"/>"
26
+ end
27
+
28
+ with_value(:highKashida) do
29
+ it_should_work
30
+ it_should_output "<w:jc w:val=\"highKashida\"/>"
31
+ end
32
+
33
+ with_value(:lowKashida) do
34
+ it_should_work
35
+ it_should_output "<w:jc w:val=\"lowKashida\"/>"
36
+ end
37
+
38
+ with_value(:mediumKashida) do
39
+ it_should_work
40
+ it_should_output "<w:jc w:val=\"mediumKashida\"/>"
41
+ end
42
+
43
+ with_value(:numTab) do
44
+ it_should_work
45
+ it_should_output "<w:jc w:val=\"numTab\"/>"
46
+ end
47
+
48
+ with_value(:start) do
49
+ it_should_work
50
+ it_should_output "<w:jc w:val=\"start\"/>"
51
+ end
52
+
53
+ with_value(:thaiDistribute) do
54
+ it_should_work
55
+ it_should_output "<w:jc w:val=\"thaiDistribute\"/>"
56
+ end
57
+
58
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::AutoAdjustRightIndent do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :adjustRightInd, name: "auto_adjust_right_ind"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:adjustRightInd w:val=\"true\"/>"
11
+ end
12
+
13
+ with_value(false) do
14
+ it_should_work
15
+ it_should_output ""
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::AutoSpaceDe do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :autoSpaceDE, name: "auto_space_de"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:autoSpaceDE w:val=\"true\"/>"
11
+ end
12
+
13
+ with_value(false) do
14
+ it_should_work
15
+ it_should_output ""
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::AutoSpaceDn do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :autoSpaceDN, name: "auto_space_dn"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:autoSpaceDN w:val=\"true\"/>"
11
+ end
12
+
13
+ with_value(false) do
14
+ it_should_work
15
+ it_should_output ""
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::Bidi do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :bidi, name: "bidi"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:bidi/>"
11
+ end
12
+
13
+ with_value(false) do
14
+ it_should_work
15
+ it_should_output ""
16
+ end
17
+
18
+ with_value(nil) do
19
+ it_should_work
20
+ it_should_output ""
21
+ end
22
+
23
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::Bold do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :b, name: "bold"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:b/>"
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,156 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::Border do
4
+ include PropertyTestMacros
5
+
6
+ context "always" do
7
+ before(:each) do
8
+ @instance = described_class.new(:left)
9
+ end
10
+
11
+ it "should have the right name" do
12
+ expect(instance.name).to eq("border")
13
+ end
14
+
15
+ it "should have its tag be equal to the argument passed on initialize" do
16
+ expect(instance.tag).to eq(:left)
17
+ end
18
+ end
19
+
20
+ context "when no tag is specified" do
21
+ before(:each) do
22
+ @instance = described_class.new
23
+ instance.color = "FF00FF"
24
+ instance.type = :crazyMaze
25
+ end
26
+
27
+ it "should have its tag be :bdr" do
28
+ expect(instance.tag).to eq(:bdr)
29
+ end
30
+
31
+ it_should_output "<w:bdr w:color=\"FF00FF\" w:val=\"crazyMaze\"/>", assign: false
32
+ end
33
+
34
+ for_attribute(:color) do
35
+ with_value("4F81BD") do
36
+ it_should_assign_successfully
37
+ it_should_output "<w:bdr w:color=\"4F81BD\"/>"
38
+ end
39
+
40
+ with_value(:auto) do
41
+ it_should_assign_successfully
42
+ it_should_output "<w:bdr w:color=\"auto\"/>"
43
+ end
44
+
45
+ with_value(:green) do
46
+ it_should_raise_an_exception
47
+ end
48
+ end
49
+
50
+ for_attribute(:frame) do
51
+ with_value(true) do
52
+ it_should_assign_successfully
53
+ it_should_output "<w:bdr w:frame=\"true\"/>"
54
+ end
55
+
56
+ with_value(false) do
57
+ it_should_assign_successfully
58
+ it_should_output ""
59
+ end
60
+
61
+ with_value(:yep) do
62
+ it_should_raise_an_exception
63
+ end
64
+ end
65
+
66
+ for_attribute(:shadow) do
67
+ with_value(true) do
68
+ it_should_assign_successfully
69
+ it_should_output "<w:bdr w:shadow=\"true\"/>"
70
+ end
71
+
72
+ with_value(false) do
73
+ it_should_assign_successfully
74
+ it_should_output ""
75
+ end
76
+
77
+ with_value(:yep) do
78
+ it_should_raise_an_exception
79
+ end
80
+ end
81
+
82
+ for_attribute(:size) do
83
+ with_value(24) do
84
+ it_should_assign_successfully
85
+ it_should_output "<w:bdr w:sz=\"24\"/>"
86
+ end
87
+
88
+ with_value(-24) do
89
+ it_should_raise_an_exception
90
+ end
91
+
92
+ with_value(:big) do
93
+ it_should_raise_an_exception
94
+ end
95
+ end
96
+
97
+ for_attribute(:space) do
98
+ with_value(24) do
99
+ it_should_assign_successfully
100
+ it_should_output "<w:bdr w:space=\"24\"/>"
101
+ end
102
+
103
+ with_value(-24) do
104
+ it_should_raise_an_exception
105
+ end
106
+
107
+ with_value(:big) do
108
+ it_should_raise_an_exception
109
+ end
110
+ end
111
+
112
+ for_attribute(:theme_color) do
113
+ with_value(:hyperlink) do
114
+ it_should_assign_successfully
115
+ it_should_output "<w:bdr w:themeColor=\"hyperlink\"/>"
116
+ end
117
+
118
+ with_value(:lens_flare) do
119
+ it_should_raise_an_exception
120
+ end
121
+ end
122
+
123
+ for_attribute(:theme_shade) do
124
+ with_value("BF") do
125
+ it_should_assign_successfully
126
+ it_should_output "<w:bdr w:themeShade=\"BF\"/>"
127
+ end
128
+
129
+ with_value(:dark) do
130
+ it_should_raise_an_exception
131
+ end
132
+ end
133
+
134
+ for_attribute(:theme_tint) do
135
+ with_value("BF") do
136
+ it_should_assign_successfully
137
+ it_should_output "<w:bdr w:themeTint=\"BF\"/>"
138
+ end
139
+
140
+ with_value(:pink) do
141
+ it_should_raise_an_exception
142
+ end
143
+ end
144
+
145
+ for_attribute(:type) do
146
+ with_value(:single) do
147
+ it_should_assign_successfully
148
+ it_should_output "<w:bdr w:val=\"single\"/>"
149
+ end
150
+
151
+ with_value(:programmers) do
152
+ it_should_raise_an_exception
153
+ end
154
+ end
155
+
156
+ end
@@ -0,0 +1,66 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::Borders do
4
+ include PropertyTestMacros
5
+
6
+ it_should_use tag: :pBdr, name: "borders"
7
+
8
+ context "when setting values" do
9
+ before(:each) do
10
+ @instance = described_class.new
11
+ end
12
+
13
+ it "should allow modifying the left border" do
14
+ expect { instance.left.color = :auto }.to_not raise_error
15
+ end
16
+
17
+ it "should allow modifying the right border" do
18
+ expect { instance.right.size = 24 }.to_not raise_error
19
+ end
20
+
21
+ it "should allow modifying the top border" do
22
+ expect { instance.top.space = 1 }.to_not raise_error
23
+ end
24
+
25
+ it "should allow modifying the bottom border" do
26
+ expect { instance.bottom.type = :apples }.to_not raise_error
27
+ end
28
+
29
+ it "should allow modifying the between border" do
30
+ expect { instance.between.shadow = true }.to_not raise_error
31
+ end
32
+
33
+ it "should allow modifying the bar border" do
34
+ expect { instance.bar.theme_color = :accent2 }.to_not raise_error
35
+ end
36
+
37
+ end
38
+
39
+ context "with no values set" do
40
+ before(:each) do
41
+ @instance = described_class.new
42
+ end
43
+
44
+ it_should_output "", assign: false
45
+ end
46
+
47
+ context "when one border has at least one property set" do
48
+ before(:each) do
49
+ @instance = described_class.new
50
+ instance.left.type = :apples
51
+ end
52
+
53
+ it_should_output "<w:pBdr>\n <w:left w:val=\"apples\"/>\n </w:pBdr>", assign: false
54
+ end
55
+
56
+ context "when more than one border has at least one property set" do
57
+ before(:each) do
58
+ @instance = described_class.new
59
+ instance.left.color = "FF0000"
60
+ instance.right.type = :apples
61
+ end
62
+
63
+ it_should_output "<w:pBdr>\n <w:left w:color=\"FF0000\"/>\n <w:right w:val=\"apples\"/>\n </w:pBdr>", assign: false
64
+ end
65
+
66
+ end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ describe Rocx::Properties::Caps do
4
+ include ValuePropertyTestMacros
5
+
6
+ it_should_use tag: :caps, name: "caps"
7
+
8
+ with_value(true) do
9
+ it_should_work
10
+ it_should_output "<w:caps/>"
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