shoes-swt 4.0.0.pre2 → 4.0.0.pre3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (227) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -200
  3. data/Rakefile +1 -0
  4. data/bin/shoes-swt +11 -0
  5. data/lib/shoes/swt.rb +5 -2
  6. data/lib/shoes/swt/animation.rb +2 -2
  7. data/lib/shoes/swt/app.rb +45 -50
  8. data/lib/shoes/swt/arc.rb +7 -7
  9. data/lib/shoes/swt/background.rb +1 -1
  10. data/lib/shoes/swt/border.rb +1 -2
  11. data/lib/shoes/swt/click_listener.rb +70 -0
  12. data/lib/shoes/swt/color.rb +5 -5
  13. data/lib/shoes/swt/common/clickable.rb +2 -53
  14. data/lib/shoes/swt/common/fill.rb +1 -1
  15. data/lib/shoes/swt/common/painter.rb +7 -7
  16. data/lib/shoes/swt/common/painter_updates_position.rb +2 -2
  17. data/lib/shoes/swt/common/remove.rb +2 -3
  18. data/lib/shoes/swt/common/resource.rb +1 -1
  19. data/lib/shoes/swt/common/selection_listener.rb +14 -14
  20. data/lib/shoes/swt/common/stroke.rb +1 -2
  21. data/lib/shoes/swt/common/update_position.rb +1 -1
  22. data/lib/shoes/swt/dialog.rb +3 -45
  23. data/lib/shoes/swt/disposed_protection.rb +1 -1
  24. data/lib/shoes/swt/download.rb +0 -1
  25. data/lib/shoes/swt/font.rb +4 -4
  26. data/lib/shoes/swt/generate-backend.rb +9 -0
  27. data/lib/shoes/swt/gradient.rb +17 -16
  28. data/lib/shoes/swt/image.rb +3 -5
  29. data/lib/shoes/swt/image_pattern.rb +2 -2
  30. data/lib/shoes/swt/input_box.rb +3 -3
  31. data/lib/shoes/swt/key_listener.rb +6 -6
  32. data/lib/shoes/swt/line.rb +4 -24
  33. data/lib/shoes/swt/link.rb +2 -2
  34. data/lib/shoes/swt/link_segment.rb +3 -3
  35. data/lib/shoes/swt/list_box.rb +4 -4
  36. data/lib/shoes/swt/mouse_move_listener.rb +6 -5
  37. data/lib/shoes/swt/oval.rb +2 -3
  38. data/lib/shoes/swt/packager.rb +82 -0
  39. data/lib/shoes/swt/progress.rb +2 -2
  40. data/lib/shoes/swt/radio.rb +0 -2
  41. data/lib/shoes/swt/radio_group.rb +54 -54
  42. data/lib/shoes/swt/rect_painter.rb +7 -7
  43. data/lib/shoes/swt/redrawing_aspect.rb +32 -34
  44. data/lib/shoes/swt/shape.rb +1 -1
  45. data/lib/shoes/swt/shoes_layout.rb +5 -2
  46. data/lib/shoes/swt/slot.rb +2 -3
  47. data/lib/shoes/swt/sound.rb +17 -22
  48. data/lib/shoes/swt/star.rb +30 -8
  49. data/lib/shoes/swt/swt_button.rb +3 -2
  50. data/lib/shoes/swt/text_block.rb +3 -3
  51. data/lib/shoes/swt/text_block/cursor_painter.rb +2 -2
  52. data/lib/shoes/swt/text_block/fitter.rb +5 -3
  53. data/lib/shoes/swt/text_block/painter.rb +9 -9
  54. data/lib/shoes/swt/text_block/text_font_factory.rb +3 -3
  55. data/lib/shoes/swt/text_block/text_segment.rb +9 -9
  56. data/lib/shoes/swt/text_block/text_segment_collection.rb +2 -0
  57. data/lib/shoes/swt/text_block/text_style_factory.rb +9 -3
  58. data/lib/shoes/swt/timer.rb +1 -1
  59. data/lib/shoes/swt/version.rb +1 -1
  60. data/shoes-swt.gemspec +7 -6
  61. data/spec/shoes/cli_spec.rb +2 -2
  62. data/spec/{swt_shoes → shoes/swt}/animation_spec.rb +1 -1
  63. data/spec/{swt_shoes → shoes/swt}/app_spec.rb +36 -3
  64. data/spec/{swt_shoes → shoes/swt}/arc_spec.rb +1 -1
  65. data/spec/{swt_shoes → shoes/swt}/background_spec.rb +1 -1
  66. data/spec/{swt_shoes → shoes/swt}/border_spec.rb +1 -1
  67. data/spec/{swt_shoes → shoes/swt}/button_spec.rb +1 -1
  68. data/spec/{swt_shoes → shoes/swt}/check_spec.rb +1 -1
  69. data/spec/shoes/swt/click_listener_spec.rb +162 -0
  70. data/spec/{swt_shoes → shoes/swt}/color_factory_spec.rb +1 -1
  71. data/spec/{swt_shoes → shoes/swt}/color_spec.rb +1 -1
  72. data/spec/{swt_shoes → shoes/swt}/common/painter_spec.rb +1 -1
  73. data/spec/{swt_shoes → shoes/swt}/common/remove_spec.rb +4 -11
  74. data/spec/{swt_shoes → shoes/swt}/configuration_spec.rb +1 -1
  75. data/spec/{swt_shoes → shoes/swt}/dialog_spec.rb +1 -7
  76. data/spec/{swt_shoes → shoes/swt}/disposed_protection_spec.rb +0 -0
  77. data/spec/{swt_shoes → shoes/swt}/flow_spec.rb +1 -1
  78. data/spec/{swt_shoes → shoes/swt}/font_spec.rb +1 -1
  79. data/spec/{swt_shoes → shoes/swt}/gradient_spec.rb +1 -1
  80. data/spec/{swt_shoes → shoes/swt}/image_pattern_spec.rb +1 -1
  81. data/spec/{swt_shoes → shoes/swt}/image_spec.rb +4 -3
  82. data/spec/{swt_shoes → shoes/swt}/input_box_spec.rb +1 -1
  83. data/spec/{swt_shoes → shoes/swt}/integration_spec.rb +1 -1
  84. data/spec/{swt_shoes → shoes/swt}/key_listener_spec.rb +1 -1
  85. data/spec/{swt_shoes → shoes/swt}/line_spec.rb +4 -8
  86. data/spec/{swt_shoes → shoes/swt}/link_segment_spec.rb +1 -1
  87. data/spec/{swt_shoes → shoes/swt}/link_spec.rb +3 -10
  88. data/spec/{swt_shoes → shoes/swt}/list_box_spec.rb +5 -3
  89. data/spec/{swt_shoes → shoes/swt}/minimal.png +0 -0
  90. data/spec/{swt_shoes → shoes/swt}/mouse_move_listener_spec.rb +1 -1
  91. data/spec/{swt_shoes → shoes/swt}/oval_spec.rb +1 -1
  92. data/spec/{swt_shoes → shoes/swt}/progress_spec.rb +1 -1
  93. data/spec/{swt_shoes → shoes/swt}/radio_group_spec.rb +1 -1
  94. data/spec/{swt_shoes → shoes/swt}/radio_spec.rb +1 -1
  95. data/spec/{swt_shoes → shoes/swt}/rect_painter_spec.rb +1 -1
  96. data/spec/{swt_shoes → shoes/swt}/rect_spec.rb +1 -1
  97. data/spec/{swt_shoes → shoes/swt}/shape_spec.rb +1 -1
  98. data/spec/{swt_shoes → shoes/swt}/shared_examples/button.rb +0 -0
  99. data/spec/shoes/swt/shared_examples/clickable.rb +13 -0
  100. data/spec/{swt_shoes → shoes/swt}/shared_examples/movable.rb +0 -0
  101. data/spec/{swt_shoes → shoes/swt}/shared_examples/paintable.rb +0 -0
  102. data/spec/{swt_shoes → shoes/swt}/shared_examples/painter.rb +0 -0
  103. data/spec/{swt_shoes → shoes/swt}/shared_examples/pattern.rb +0 -0
  104. data/spec/{swt_shoes → shoes/swt}/shared_examples/removable.rb +1 -3
  105. data/spec/{swt_shoes → shoes/swt}/shared_examples/swt_app_context.rb +11 -3
  106. data/spec/{swt_shoes → shoes/swt}/shared_examples/visibility.rb +0 -0
  107. data/spec/{swt_shoes → shoes/swt}/shell_control_listener_spec.rb +1 -1
  108. data/spec/{swt_shoes → shoes/swt}/slot_spec.rb +1 -1
  109. data/spec/{swt_shoes → shoes/swt}/spec_helper.rb +0 -1
  110. data/spec/{swt_shoes → shoes/swt}/star_spec.rb +1 -1
  111. data/spec/{swt_shoes → shoes/swt}/text_block/centered_text_segment_spec.rb +1 -1
  112. data/spec/{swt_shoes → shoes/swt}/text_block/cursor_painter_spec.rb +8 -4
  113. data/spec/{swt_shoes → shoes/swt}/text_block/fitter_spec.rb +5 -5
  114. data/spec/{swt_shoes → shoes/swt}/text_block/painter_spec.rb +1 -1
  115. data/spec/{swt_shoes → shoes/swt}/text_block/text_font_factory_spec.rb +1 -1
  116. data/spec/{swt_shoes → shoes/swt}/text_block/text_segment_collection_spec.rb +7 -2
  117. data/spec/{swt_shoes → shoes/swt}/text_block/text_segment_spec.rb +1 -1
  118. data/spec/{swt_shoes → shoes/swt}/text_block_spec.rb +2 -5
  119. data/spec/spec_helper.rb +7 -3
  120. metadata +132 -331
  121. data/CHANGELOG +0 -84
  122. data/Gemfile +0 -24
  123. data/Guardfile +0 -11
  124. data/manifests/common.rb +0 -34
  125. data/manifests/shoes-swt.rb +0 -29
  126. data/spec/code_coverage.rb +0 -14
  127. data/spec/shoes/animation_spec.rb +0 -65
  128. data/spec/shoes/app_spec.rb +0 -484
  129. data/spec/shoes/arc_spec.rb +0 -51
  130. data/spec/shoes/background_spec.rb +0 -53
  131. data/spec/shoes/border_spec.rb +0 -47
  132. data/spec/shoes/builtin_methods_spec.rb +0 -110
  133. data/spec/shoes/button_spec.rb +0 -44
  134. data/spec/shoes/check_spec.rb +0 -35
  135. data/spec/shoes/color_spec.rb +0 -408
  136. data/spec/shoes/common/inspect_spec.rb +0 -26
  137. data/spec/shoes/common/remove_spec.rb +0 -38
  138. data/spec/shoes/common/style_normalizer_spec.rb +0 -28
  139. data/spec/shoes/common/style_spec.rb +0 -147
  140. data/spec/shoes/configuration_spec.rb +0 -36
  141. data/spec/shoes/constants_spec.rb +0 -38
  142. data/spec/shoes/dialog_spec.rb +0 -163
  143. data/spec/shoes/dimension_spec.rb +0 -407
  144. data/spec/shoes/dimensions_spec.rb +0 -837
  145. data/spec/shoes/download_spec.rb +0 -142
  146. data/spec/shoes/flow_spec.rb +0 -133
  147. data/spec/shoes/font_spec.rb +0 -37
  148. data/spec/shoes/framework_learning_spec.rb +0 -30
  149. data/spec/shoes/gradient_spec.rb +0 -32
  150. data/spec/shoes/helpers/fake_element.rb +0 -17
  151. data/spec/shoes/helpers/inspect_helpers.rb +0 -5
  152. data/spec/shoes/helpers/sample17_helper.rb +0 -66
  153. data/spec/shoes/image_spec.rb +0 -49
  154. data/spec/shoes/images/shoe.jpg +0 -0
  155. data/spec/shoes/input_box_spec.rb +0 -80
  156. data/spec/shoes/integration_spec.rb +0 -20
  157. data/spec/shoes/internal_app_spec.rb +0 -141
  158. data/spec/shoes/keypress_spec.rb +0 -11
  159. data/spec/shoes/keyrelease_spec.rb +0 -12
  160. data/spec/shoes/line_spec.rb +0 -49
  161. data/spec/shoes/link_spec.rb +0 -105
  162. data/spec/shoes/list_box_spec.rb +0 -74
  163. data/spec/shoes/logger/ruby_spec.rb +0 -8
  164. data/spec/shoes/logger_spec.rb +0 -45
  165. data/spec/shoes/oval_spec.rb +0 -24
  166. data/spec/shoes/point_spec.rb +0 -71
  167. data/spec/shoes/progress_spec.rb +0 -54
  168. data/spec/shoes/radio_spec.rb +0 -32
  169. data/spec/shoes/rect_spec.rb +0 -39
  170. data/spec/shoes/renamed_delegate_spec.rb +0 -70
  171. data/spec/shoes/shape_spec.rb +0 -95
  172. data/spec/shoes/shared_examples/button.rb +0 -6
  173. data/spec/shoes/shared_examples/changeable.rb +0 -26
  174. data/spec/shoes/shared_examples/clickable.rb +0 -5
  175. data/spec/shoes/shared_examples/common_methods.rb +0 -35
  176. data/spec/shoes/shared_examples/dimensions.rb +0 -32
  177. data/spec/shoes/shared_examples/dsl.rb +0 -44
  178. data/spec/shoes/shared_examples/dsl/animate.rb +0 -29
  179. data/spec/shoes/shared_examples/dsl/arc.rb +0 -45
  180. data/spec/shoes/shared_examples/dsl/background.rb +0 -26
  181. data/spec/shoes/shared_examples/dsl/border.rb +0 -10
  182. data/spec/shoes/shared_examples/dsl/button.rb +0 -5
  183. data/spec/shoes/shared_examples/dsl/cap.rb +0 -6
  184. data/spec/shoes/shared_examples/dsl/check.rb +0 -11
  185. data/spec/shoes/shared_examples/dsl/edit_box.rb +0 -8
  186. data/spec/shoes/shared_examples/dsl/edit_line.rb +0 -8
  187. data/spec/shoes/shared_examples/dsl/editable_element.rb +0 -29
  188. data/spec/shoes/shared_examples/dsl/fill.rb +0 -27
  189. data/spec/shoes/shared_examples/dsl/flow.rb +0 -15
  190. data/spec/shoes/shared_examples/dsl/gradient.rb +0 -62
  191. data/spec/shoes/shared_examples/dsl/image.rb +0 -21
  192. data/spec/shoes/shared_examples/dsl/line.rb +0 -9
  193. data/spec/shoes/shared_examples/dsl/nofill.rb +0 -6
  194. data/spec/shoes/shared_examples/dsl/nostroke.rb +0 -6
  195. data/spec/shoes/shared_examples/dsl/oval.rb +0 -88
  196. data/spec/shoes/shared_examples/dsl/pattern.rb +0 -34
  197. data/spec/shoes/shared_examples/dsl/progress.rb +0 -7
  198. data/spec/shoes/shared_examples/dsl/rect.rb +0 -92
  199. data/spec/shoes/shared_examples/dsl/rgb.rb +0 -26
  200. data/spec/shoes/shared_examples/dsl/shape.rb +0 -21
  201. data/spec/shoes/shared_examples/dsl/star.rb +0 -48
  202. data/spec/shoes/shared_examples/dsl/stroke.rb +0 -30
  203. data/spec/shoes/shared_examples/dsl/strokewidth.rb +0 -19
  204. data/spec/shoes/shared_examples/dsl/style.rb +0 -32
  205. data/spec/shoes/shared_examples/dsl/text_elements.rb +0 -81
  206. data/spec/shoes/shared_examples/dsl/video.rb +0 -5
  207. data/spec/shoes/shared_examples/dsl_app_context.rb +0 -8
  208. data/spec/shoes/shared_examples/hover_leave.rb +0 -11
  209. data/spec/shoes/shared_examples/parent.rb +0 -6
  210. data/spec/shoes/shared_examples/scroll.rb +0 -41
  211. data/spec/shoes/shared_examples/shared_element_method.rb +0 -60
  212. data/spec/shoes/shared_examples/slot.rb +0 -331
  213. data/spec/shoes/shared_examples/state.rb +0 -19
  214. data/spec/shoes/shared_examples/style.rb +0 -82
  215. data/spec/shoes/slot_spec.rb +0 -130
  216. data/spec/shoes/sound_spec.rb +0 -15
  217. data/spec/shoes/span_spec.rb +0 -112
  218. data/spec/shoes/spec_helper.rb +0 -24
  219. data/spec/shoes/stack_spec.rb +0 -79
  220. data/spec/shoes/star_spec.rb +0 -31
  221. data/spec/shoes/text_block_dimensions_spec.rb +0 -75
  222. data/spec/shoes/text_block_spec.rb +0 -270
  223. data/spec/shoes/url_spec.rb +0 -68
  224. data/spec/shoes/widget_spec.rb +0 -70
  225. data/spec/shoes_spec.rb +0 -44
  226. data/spec/swt_shoes/shared_examples/clickable.rb +0 -85
  227. data/spec/swt_shoes/sound.rb +0 -10
@@ -1,6 +0,0 @@
1
- shared_examples "checkable" do
2
- it { is_expected.to respond_to :checked= }
3
- it { is_expected.to respond_to :checked? }
4
- it { is_expected.to respond_to :focus }
5
- it { is_expected.to respond_to :click }
6
- end
@@ -1,26 +0,0 @@
1
- shared_examples "an element that can respond to change" do
2
- describe "when passing a block to the constructor" do
3
- it "should notify the block of change events" do
4
- expect(input_block).to receive(:call).with(subject)
5
- subject.call_change_listeners
6
- end
7
- end
8
-
9
- describe "when setting up a callback with #change" do
10
- it "should notify the callback of change events" do
11
- called = false
12
- subject.change do |element|
13
- called = true
14
- end
15
- subject.call_change_listeners
16
- expect(called).to be_truthy
17
- end
18
-
19
- it "should pass the element itself to the callback" do
20
- subject.change do |element|
21
- expect(element).to eq(subject)
22
- end
23
- subject.call_change_listeners
24
- end
25
- end
26
- end
@@ -1,5 +0,0 @@
1
- shared_examples "clickable object" do
2
- it { is_expected.to respond_to :click }
3
- it { is_expected.to respond_to :release }
4
- it { is_expected.to respond_to :register_click }
5
- end
@@ -1,35 +0,0 @@
1
- shared_examples_for "movable object" do
2
- it "moves" do
3
- subject.instance_variable_set(:@app, app)
4
- expect(subject.move(300, 200)).to eq(subject)
5
- expect(subject.left).to eq(300)
6
- expect(subject.top).to eq(200)
7
- end
8
-
9
- describe "displacing" do
10
- it "displaces backend object" do
11
- expect(subject.gui).to receive(:update_position)
12
- subject.displace(300, 200)
13
- end
14
-
15
- it "does not change reported values of #left and #top" do
16
- # no error from calling set location with nil values due to unset values
17
- allow(subject.gui).to receive :update_position
18
- original_left = subject.left
19
- original_top = subject.top
20
- subject.displace(300, 200)
21
- expect(subject.left).to eq(original_left)
22
- expect(subject.top).to eq(original_top)
23
- end
24
- end
25
- end
26
-
27
- shared_examples_for "left, top as center" do | *params |
28
- let(:centered_object) { described_class.new(app, parent, left, top, width, height, *params, :center => true) }
29
- it "should now be located somewhere" do
30
- expect(centered_object.left).to eq(left-(width/2))
31
- expect(centered_object.top).to eq(top-(height/2))
32
- expect(centered_object.width).to eq(width)
33
- expect(centered_object.height).to eq(height)
34
- end
35
- end
@@ -1,32 +0,0 @@
1
- shared_examples_for "object with dimensions" do
2
- it "should initialize" do
3
- expect(subject.left).to eq(left)
4
- expect(subject.top).to eq(top)
5
- expect(subject.width).to eq(width)
6
- expect(subject.height).to eq(height)
7
- end
8
- end
9
-
10
- shared_examples_for "object with relative dimensions" do
11
- let(:relative_width) { 0.5 }
12
- let(:relative_height) { 0.5 }
13
- let(:relative_opts) { {left: left, top: top, width: relative_width, height: relative_height} }
14
-
15
- it "should initialize based on parent dimensions" do
16
- expect(subject.left).to eq left
17
- expect(subject.top).to eq top
18
- expect(subject.width).to be_within(1).of(parent.element_width / 2)
19
- expect(subject.height).to be_within(1).of(parent.element_height / 2)
20
- end
21
- end
22
-
23
- shared_examples_for "object with negative dimensions" do
24
- let(:negative_opts) { {left: left, top: top, width: -width, height: -height} }
25
-
26
- it "should initialize based on parent dimensions" do
27
- expect(subject.left).to eq(left)
28
- expect(subject.top).to eq(top)
29
- expect(subject.width).to eq(parent.element_width - width)
30
- expect(subject.height).to eq(parent.element_height - height)
31
- end
32
- end
@@ -1,44 +0,0 @@
1
- # Shared examples for Shoes::App and Shoes::Slot (flow and stack).
2
- # If DSL methods can be called with multiple number of arguments,
3
- # and if they set certain defaults, then that what needs to be tested
4
- # here.
5
- # There are individual specs for the different Shoes elements, so
6
- # we don't need to test how they work in details. Here we just test that
7
- # the DSL methods construct elements correctly.
8
- shared_examples "DSL container" do
9
- let(:dsl) { app }
10
-
11
- %w[
12
- animate
13
- arc
14
- background
15
- button
16
- border
17
- cap
18
- check
19
- edit_box
20
- edit_line
21
- fill
22
- flow
23
- gradient
24
- image
25
- line
26
- nofill
27
- nostroke
28
- oval
29
- pattern
30
- progress
31
- rect
32
- rgb
33
- shape
34
- star
35
- stroke
36
- strokewidth
37
- style
38
- video
39
- ].each do |method|
40
- include_examples "#{method} DSL method"
41
- end
42
-
43
- include_examples "text element DSL methods"
44
- end
@@ -1,29 +0,0 @@
1
- shared_examples_for "animate DSL method" do
2
- context "defaults" do
3
- let(:animation) { dsl.animate {} }
4
-
5
- it "is a Shoes::Animation" do
6
- expect(animation).to be_an_instance_of(Shoes::Animation)
7
- end
8
-
9
- it "framerate is 10" do
10
- expect(animation.framerate).to eq 10
11
- end
12
- end
13
-
14
- context "with numeric argument" do
15
- let(:animation) { dsl.animate(13) {} }
16
-
17
- it "sets framerate" do
18
- expect(animation.framerate).to eq(13)
19
- end
20
- end
21
-
22
- context "with hash argument" do
23
- let(:animation) { dsl.animate(:framerate => 17) {} }
24
-
25
- it "sets framerate" do
26
- expect(animation.framerate).to eq(17)
27
- end
28
- end
29
- end
@@ -1,45 +0,0 @@
1
- shared_context "style context" do
2
- let(:fill_color) { Shoes::COLORS.fetch(:tomato) }
3
- let(:stroke_color) { Shoes::COLORS.fetch(:chartreuse) }
4
-
5
- before :each do
6
- subject.fill fill_color
7
- subject.stroke stroke_color
8
- end
9
- end
10
-
11
- shared_examples_for "persistent stroke" do
12
- include_context "style context"
13
-
14
- it "passes to element" do
15
- expect(element.stroke).to eq(stroke_color)
16
- end
17
- end
18
-
19
- shared_examples_for "persistent fill" do
20
- include_context "style context"
21
-
22
- it "passes to element" do
23
- expect(element.fill).to eq(fill_color)
24
- end
25
- end
26
-
27
- shared_examples_for "arc DSL method" do
28
- let(:arc) { dsl.arc(13, 44, 200, 300, 0, Shoes::TWO_PI) }
29
-
30
- it "creates a Shoes::Arc" do
31
- expect(arc).to be_an_instance_of(Shoes::Arc)
32
- end
33
-
34
- it "raises an ArgumentError" do
35
- expect { dsl.arc(30) }.to raise_exception(ArgumentError)
36
- end
37
-
38
- it_behaves_like "persistent fill" do
39
- let(:element) { arc }
40
- end
41
-
42
- it_behaves_like "persistent stroke" do
43
- let(:element) { arc }
44
- end
45
- end
@@ -1,26 +0,0 @@
1
- shared_examples_for "background DSL method" do
2
- context "with a valid hex string" do
3
- it "sets color" do
4
- background = subject.background("#fff")
5
- expect(background.fill).to eq(Shoes::COLORS[:white])
6
- end
7
- end
8
-
9
- context "with an invalid hex string" do
10
- it 'raises an argument error' do
11
- expect{ subject.background('#ffq') }.to raise_error('Bad hex color: #ffq')
12
- end
13
- end
14
-
15
- context 'with no valid image' do
16
- it 'ignores the background' do
17
- expect{ subject.background('fake-shoes.jpg') }.not_to raise_error
18
- end
19
- end
20
-
21
- context 'with a valid image' do
22
- it 'creates a Shoes::Background' do
23
- expect(subject.background('static/shoes-icon.png')).to be_an_instance_of(Shoes::Background)
24
- end
25
- end
26
- end
@@ -1,10 +0,0 @@
1
- shared_examples_for "border DSL method" do
2
- context "with hex string" do
3
- let(:color) { "#ffffff" }
4
-
5
- it "sets color" do
6
- border = dsl.border(color)
7
- expect(border.stroke).to eq(Shoes::COLORS[:white])
8
- end
9
- end
10
- end
@@ -1,5 +0,0 @@
1
- shared_examples_for "button DSL method" do
2
- it "is created with a default text" do
3
- expect(dsl.button.text).to eq 'Button'
4
- end
5
- end
@@ -1,6 +0,0 @@
1
- shared_examples_for "cap DSL method" do
2
- it "sets the line cap" do
3
- dsl.cap :curve
4
- expect(dsl.style[:cap]).to eq(:curve)
5
- end
6
- end
@@ -1,11 +0,0 @@
1
- shared_examples_for 'check DSL method' do
2
- let(:checkbox) { dsl.check }
3
-
4
- it 'should be a checkbox' do
5
- expect(checkbox).to be_instance_of Shoes::Check
6
- end
7
-
8
- it 'should be unchecked by default' do
9
- expect(checkbox.checked?).to be_falsey
10
- end
11
- end
@@ -1,8 +0,0 @@
1
- shared_examples_for "edit_box DSL method" do
2
- context "edit_box" do
3
- include_examples "editable element" do
4
- let(:dsl_method) { :edit_box }
5
- let(:klazz) { Shoes::EditBox }
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- shared_examples_for "edit_line DSL method" do
2
- context "edit_line" do
3
- include_examples "editable element"
4
-
5
- let(:dsl_method) { :edit_line }
6
- let(:klazz) { Shoes::EditLine }
7
- end
8
- end
@@ -1,29 +0,0 @@
1
- shared_examples_for "editable element" do
2
- subject { super.public_send(dsl_method, *args) }
3
-
4
- describe "with no arguments" do
5
- let(:args) { [] }
6
- its(:text) { should == '' }
7
- its(:width) { should == klazz::STYLES[:width] }
8
- its(:height) { should == klazz::STYLES[:height] }
9
- end
10
-
11
- describe "with a single text argument" do
12
- let(:args) { ['Hello text here'] }
13
-
14
- its(:text) { should == 'Hello text here' }
15
- end
16
-
17
- describe "with a style hash" do
18
- let(:args) { [{width: 100, height: 50}] }
19
-
20
- its(:text) { should == '' }
21
- end
22
-
23
- describe "with a text argument and a style hash" do
24
- let(:args) { ['Hello text here', {width: 100, height: 50}] }
25
- its(:text) { should == 'Hello text here' }
26
- its(:width) { should == 100 }
27
- its(:height) { should == 50 }
28
- end
29
- end
@@ -1,27 +0,0 @@
1
- shared_examples_for "fill DSL method" do
2
- let(:color) { Shoes::COLORS.fetch :tomato }
3
-
4
- it "returns a color" do
5
- expect(dsl.fill(color).class).to eq(Shoes::Color)
6
- end
7
-
8
- # This works differently on a container than on a normal element
9
- it "sets on receiver" do
10
- dsl.fill color
11
- expect(dsl.style[:fill]).to eq(color)
12
- end
13
-
14
- it "applies to subsequently created objects" do
15
- dsl.fill color
16
- oval = dsl.oval(10, 10, 100, 100)
17
- expect(oval.fill).to eq(color)
18
- end
19
-
20
- context "with hex string" do
21
- let(:color) { "#fff" }
22
-
23
- it "sets the color" do
24
- expect(dsl.fill(color)).to eq(Shoes::COLORS[:white])
25
- end
26
- end
27
- end
@@ -1,15 +0,0 @@
1
- shared_examples_for "flow DSL method" do
2
- let(:flow) {dsl.flow}
3
-
4
- it "creates a Shoes::Flow" do
5
- expect(flow).to be_an_instance_of(Shoes::Flow)
6
- end
7
-
8
- it 'reports an instance of Shoes::App when asked for its app' do
9
- expect(flow.app.class).to eq Shoes::App
10
- end
11
-
12
- it 'reports an object that responds to stack when asked for its app' do
13
- expect(flow.app).to respond_to :stack
14
- end
15
- end
@@ -1,62 +0,0 @@
1
- shared_examples_for "creating gradient" do
2
- it "returns correct gradient according to #to_s" do
3
- expect(gradient.to_s).to eq("(Shoes::Gradient)")
4
- end
5
-
6
- it "returns correct gradient according to #inspect" do
7
- expect(gradient.inspect).to match("[(]Shoes::Gradient:#{shoes_object_id_pattern} rgb[(]255, 0, 0[)]->rgb[(]0, 0, 255[)][)]")
8
- end
9
- end
10
-
11
- shared_examples_for "gradient DSL method" do
12
- context "with colors" do
13
- include InspectHelpers
14
-
15
- let(:red) { Shoes::Color.new(255, 0, 0) }
16
- let(:blue) { Shoes::Color.new(0, 0, 255) }
17
-
18
- context "two separate" do
19
- it_behaves_like "creating gradient" do
20
- let(:gradient) { dsl.gradient(red, blue) }
21
- end
22
- end
23
-
24
- context "as range" do
25
- it_behaves_like "creating gradient" do
26
- let(:gradient) { dsl.gradient(red..blue) }
27
- end
28
- end
29
- end
30
-
31
- context "with strings" do
32
- include InspectHelpers
33
-
34
- let(:red) { "#f00" }
35
- let(:blue) { "#00f" }
36
-
37
- context "two separate" do
38
- it_behaves_like "creating gradient" do
39
- let(:gradient) { dsl.gradient(red, blue) }
40
- end
41
- end
42
-
43
- context "as range" do
44
- it_behaves_like "creating gradient" do
45
- let(:gradient) { dsl.gradient(red..blue) }
46
- end
47
- end
48
- end
49
-
50
- context "with gradient" do
51
- include InspectHelpers
52
-
53
- it_behaves_like "creating gradient" do
54
- let(:gradient_arg) { dsl.gradient("#f00", "#00f") }
55
- let(:gradient) { dsl.gradient(gradient_arg) }
56
- end
57
- end
58
-
59
- it "fails on bad input" do
60
- expect { dsl.gradient(100) }.to raise_error(ArgumentError)
61
- end
62
- end