shoes-swt 4.0.0.pre2 → 4.0.0.pre3

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 (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,49 +0,0 @@
1
- require 'shoes/spec_helper'
2
-
3
- describe Shoes::Image do
4
- include_context "dsl app"
5
-
6
- describe "basic" do
7
- let(:left) { 10 }
8
- let(:top) { 20 }
9
- let(:width) { 100 }
10
- let(:height) { 200 }
11
-
12
- let(:filename) { File.expand_path "../../../static/shoes-icon.png", __FILE__ }
13
- let(:updated_filename) { File.expand_path "../../../static/shoes-icon-brown.png", __FILE__ }
14
-
15
- subject(:image) { Shoes::Image.new(app, parent, filename, left: left, top: top, width: width, height: height) }
16
-
17
- it { is_expected.to be_instance_of(Shoes::Image) }
18
-
19
- it "should update image path" do
20
- subject.path = updated_filename
21
- expect(subject.path).to eq(updated_filename)
22
- end
23
-
24
- it_behaves_like "movable object"
25
- it_behaves_like "object with dimensions"
26
-
27
- it_behaves_like "object with style" do
28
- let(:subject_without_style) { Shoes::Image.new(app, parent, filename) }
29
- let(:subject_with_style) { Shoes::Image.new(app, parent, filename, arg_styles) }
30
- end
31
-
32
- describe "relative dimensions from parent" do
33
- subject { Shoes::Image.new(app, parent, filename, relative_opts) }
34
- it_behaves_like "object with relative dimensions"
35
- end
36
-
37
- describe "negative dimensions" do
38
- subject { Shoes::Image.new(app, parent, filename, negative_opts) }
39
- it_behaves_like "object with negative dimensions"
40
- end
41
- end
42
-
43
- describe 'accepts web URL' do
44
- let(:filename) { "http://is.gd/GVAGF7" }
45
- subject { Shoes::Image.new(app, parent, filename, input_opts) }
46
-
47
- its(:file_path) { should eq("http://is.gd/GVAGF7") }
48
- end
49
- end
Binary file
@@ -1,80 +0,0 @@
1
- require 'shoes/spec_helper'
2
-
3
- describe Shoes::InputBox do
4
- include_context "dsl app"
5
- let(:input_opts) {{left: left, top: top, width: width, height: height}}
6
- let(:left) { 10 }
7
- let(:top) { 20 }
8
- let(:width) { 100 }
9
- let(:height) { 200 }
10
- let(:text) { "the text" }
11
-
12
- # EditBox is an InputBox but InputBox is never instantiated itself
13
- # And there are problems in the backend due to option settings
14
- subject { Shoes::EditBox.new(app, parent, text, input_opts, input_block) }
15
-
16
- it_behaves_like "object with dimensions"
17
-
18
- it_behaves_like "object with style" do
19
- let(:subject_without_style) { Shoes::EditBox.new(app, parent, text) }
20
- let(:subject_with_style) { Shoes::EditBox.new(app, parent, text, arg_styles) }
21
- end
22
-
23
- it_behaves_like "movable object"
24
- it_behaves_like "an element that can respond to change"
25
- it_behaves_like "object with state"
26
-
27
- it { is_expected.to respond_to :focus }
28
- it { is_expected.to respond_to :text }
29
- it { is_expected.to respond_to :text= }
30
-
31
- it 'forwards calls to highlight_text to the backend' do
32
- expect(subject.gui).to receive(:highlight_text).with(4, 20)
33
- subject.highlight_text 4, 20
34
- end
35
-
36
- it 'forwards calls to caret_to to the backend' do
37
- expect(subject.gui).to receive(:caret_to).with(42)
38
- subject.caret_to 42
39
- end
40
-
41
- describe 'non string text' do
42
- let(:text) {42}
43
-
44
- it 'is converted to a string (convenience + error in backend)' do
45
- expect(subject.text).to eq '42'
46
- end
47
- end
48
-
49
- describe "relative dimensions from parent" do
50
- subject { Shoes::EditBox.new(app, parent, text, relative_opts) }
51
- it_behaves_like "object with relative dimensions"
52
- end
53
-
54
- describe "negative dimensions" do
55
- subject { Shoes::EditBox.new(app, parent, text, negative_opts) }
56
- it_behaves_like "object with negative dimensions"
57
- end
58
-
59
- describe Shoes::EditLine do
60
- describe "secret" do
61
- subject { Shoes::EditLine.new(app, parent, text, secret: true) }
62
-
63
- it "gets initialized" do
64
- expect(subject.secret).to eq(true)
65
- expect(subject.secret?).to eq(true)
66
- end
67
-
68
- it "respects setting" do
69
- subject.secret = false
70
- expect(subject.secret).to eq(false)
71
- expect(subject.secret?).to eq(false)
72
- end
73
-
74
- it_behaves_like "object with style" do
75
- let(:subject_without_style) { Shoes::EditLine.new(app, parent, text) }
76
- let(:subject_with_style) { Shoes::EditLine.new(app, parent, text, arg_styles) }
77
- end
78
- end
79
- end
80
- end
@@ -1,20 +0,0 @@
1
- require 'spec_helper'
2
-
3
- # also for stuff that is hard/brittle to test in isolation
4
- describe 'Integration specs' do
5
- describe 'hover & leave' do
6
-
7
- # that #hover and #leave are called with @__app__.current_slot is hard to
8
- # test since therefore there needs to be a current slot which is only during
9
- # block execution, stubbing it seems fairly brittle and dependent on
10
- # internal structure, see #603
11
- it 'does not raise an error' do
12
- expect do
13
- Shoes.app do
14
- hover {}
15
- leave {}
16
- end
17
- end.not_to raise_error
18
- end
19
- end
20
- end
@@ -1,141 +0,0 @@
1
- require 'shoes/spec_helper'
2
-
3
- describe Shoes::InternalApp do
4
- include_context "dsl app"
5
-
6
- subject { app }
7
-
8
- describe "#initialize" do
9
- context "with defaults" do
10
- let(:defaults) { Shoes::InternalApp::DEFAULT_OPTIONS }
11
-
12
- it "sets title", :qt do
13
- expect(subject.app_title).to eq defaults[:title]
14
- end
15
-
16
- it "is resizable", :qt do
17
- expect(subject.resizable).to be_truthy
18
- end
19
-
20
- it "sets width" do
21
- expect(subject.width).to eq(defaults[:width])
22
- end
23
-
24
- it "sets height" do
25
- expect(subject.height).to eq(defaults[:height])
26
- end
27
-
28
- it "does not start as fullscreen" do
29
- expect(subject.start_as_fullscreen?).to be_falsey
30
- end
31
- end
32
-
33
- context "with custom opts" do
34
- let(:input_opts) { {:width => 150, :height => 2, :title => "Shoes::App Spec", :resizable => false} }
35
-
36
- it "sets title", :qt do
37
- expect(subject.app_title).to eq input_opts[:title]
38
- end
39
-
40
- it "sets resizable", :qt do
41
- expect(subject.resizable).to be_falsey
42
- end
43
-
44
- it "sets width" do
45
- expect(subject.width).to eq(input_opts[:width])
46
- end
47
-
48
- it "sets height" do
49
- expect(subject.height).to eq(input_opts[:height])
50
- end
51
- end
52
- end
53
-
54
- describe 'fullscreen' do
55
- let(:input_opts) { {:fullscreen => true} }
56
-
57
- it "sets fullscreen" do
58
- expect(subject.start_as_fullscreen?).to be_truthy
59
- end
60
- end
61
-
62
- describe '#contents' do
63
- it 'delegates to top_slot' do
64
- expect(subject.contents).to be(subject.top_slot.contents)
65
- end
66
- end
67
-
68
- describe '#clear' do
69
- context 'when called after the initial input block' do
70
- let(:input_block) {
71
- Proc.new do
72
- para "CONTENT"
73
- para "JUST FOR TESTING"
74
- end
75
- }
76
-
77
- before :each do
78
- expect(subject.contents.size).to eq(2)
79
- end
80
-
81
- it 'clears top_slot' do
82
- subject.clear
83
- expect(subject.contents).to be_empty
84
- end
85
- end
86
-
87
- context 'when called in the initial input_block' do
88
- let(:input_block) {
89
- Proc.new do
90
- para 'Hello there'
91
- clear do
92
- para 'see you'
93
- end
94
- end
95
- }
96
-
97
- it 'does not raise an error' do
98
- expect {subject}.not_to raise_error
99
- end
100
-
101
- context 'when called inside a slot' do
102
- let(:input_block) {
103
- Proc.new do
104
- button 'I am here'
105
- stack do
106
- button 'Hi there'
107
- button 'Another one'
108
- clear
109
- end
110
- end
111
- }
112
-
113
- it 'does not delete the slot, or an element outside the slot' do
114
- expect(subject.contents.size).to eq 2
115
- end
116
- end
117
- end
118
-
119
- context 'when called before a button in an initial input block' do
120
- let(:input_block) {
121
- Proc.new do
122
- clear
123
- button 'My Button'
124
- end
125
- }
126
-
127
- it 'allows a button to be created' do
128
- expect(subject.contents.size).to eq(1)
129
- end
130
-
131
- describe 'the button' do
132
- let(:button) { subject.contents.first }
133
-
134
- it 'has the top_slot as its parent' do
135
- expect(button.parent).to eq subject.top_slot
136
- end
137
- end
138
- end
139
-
140
- end
141
- end
@@ -1,11 +0,0 @@
1
- require 'shoes/spec_helper'
2
-
3
- describe Shoes::Keypress do
4
- include_context "dsl app"
5
-
6
- subject(:keypress) { Shoes::Keypress.new app, &input_block }
7
-
8
- it "should clear" do
9
- expect(keypress).to respond_to(:remove)
10
- end
11
- end
@@ -1,12 +0,0 @@
1
- require 'shoes/spec_helper'
2
-
3
- describe Shoes::Keyrelease do
4
- include_context "dsl app"
5
-
6
- subject(:keyrelease) { Shoes::Keyrelease.new app, &input_block }
7
-
8
- it "should clear" do
9
- expect(keyrelease).to respond_to(:remove)
10
- end
11
-
12
- end
@@ -1,49 +0,0 @@
1
- require 'shoes/spec_helper'
2
-
3
- describe Shoes::Line do
4
- include_context "dsl app"
5
-
6
- describe "basic" do
7
- let(:left) { 20 }
8
- let(:top) { 23 }
9
- let(:width) { 280 }
10
- let(:height) { 407 }
11
-
12
- subject { Shoes::Line.new(app, parent, Shoes::Point.new(left, top), Shoes::Point.new(300, 430), input_opts) }
13
- it_behaves_like "movable object"
14
- it_behaves_like "object with style" do
15
- let(:subject_without_style) { Shoes::Line.new(app, parent, Shoes::Point.new(left, top), Shoes::Point.new(300, 430)) }
16
- let(:subject_with_style) { Shoes::Line.new(app, parent, Shoes::Point.new(left, top), Shoes::Point.new(300, 430), arg_styles) }
17
- end
18
- it_behaves_like "object with dimensions"
19
- it_behaves_like 'object with parent'
20
- end
21
-
22
- shared_examples_for "basic line" do
23
- it { is_expected.to be_kind_of(Shoes::Line) }
24
- its(:top) { should eq(15) }
25
- its(:left) { should eq(10) }
26
- its(:width) { should eq(90) }
27
- its(:height) { should eq(45) }
28
- end
29
-
30
- context "created left-to-right, top-to-bottom" do
31
- subject { Shoes::Line.new(app, app, Shoes::Point.new(10, 15), Shoes::Point.new(100, 60), input_opts) }
32
- it_behaves_like "basic line"
33
- end
34
-
35
- context "specified right-to-left, top-to-bottom" do
36
- subject { Shoes::Line.new(app, app, Shoes::Point.new(100, 15), Shoes::Point.new(10, 60), input_opts) }
37
- it_behaves_like "basic line"
38
- end
39
-
40
- context "specified right-to-left, bottom-to-top" do
41
- subject { Shoes::Line.new(app, app, Shoes::Point.new(100, 60), Shoes::Point.new(10, 15), input_opts) }
42
- it_behaves_like "basic line"
43
- end
44
-
45
- context "specified left-to-right, bottom-to-top" do
46
- subject { Shoes::Line.new(app, app, Shoes::Point.new(10, 60), Shoes::Point.new(100, 15), input_opts) }
47
- it_behaves_like "basic line"
48
- end
49
- end
@@ -1,105 +0,0 @@
1
- require 'shoes/spec_helper'
2
-
3
- describe Shoes::Link do
4
- let(:gui) { double("gui").as_null_object }
5
- let(:app) { double("app", gui: gui, style: {}, element_styles: {}) }
6
- let(:internal_app) { double("internal app", app: app, gui: gui, style: {}, element_styles: {}) }
7
- let(:texts) { ["text", "goes", "first"] }
8
-
9
- subject { Shoes::Link.new(app, app, texts, {color: :blue}) }
10
-
11
- context "initialize" do
12
- it "should set up text" do
13
- expect(subject.texts).to eql(texts)
14
- expect(subject.to_s).to eql("textgoesfirst")
15
- end
16
-
17
- it "should set color" do
18
- expect(subject.color).to eql(:blue)
19
- end
20
-
21
- it "should default styles" do
22
- expect(subject.style[:underline]).to eql(true)
23
- expect(subject.style[:fill]).to eql(nil)
24
- expect(subject.style[:stroke]).to eql(Shoes::COLORS[:blue])
25
- end
26
-
27
- context "overriding styles" do
28
- subject { Shoes::Link.new(app, app, texts,
29
- underline: false, bg: Shoes::COLORS[:green]) }
30
-
31
- it "should include defaults" do
32
- expect(subject.style).to include(:stroke => Shoes::COLORS[:blue])
33
- end
34
-
35
- it "should override defaults" do
36
- expect(subject.style).to include(:underline => false)
37
- end
38
-
39
- it "should include other options" do
40
- expect(subject.style).to include(:bg => Shoes::COLORS[:green])
41
- end
42
- end
43
-
44
- context "with a block" do
45
- let(:callable) { double("callable") }
46
- subject { Shoes::Link.new(internal_app, nil, texts, {}, Proc.new { callable.call }) }
47
-
48
- it "sets up for the click" do
49
- expect(callable).to receive(:call)
50
- subject.blk.call
51
- end
52
- end
53
-
54
- context "with click option as text" do
55
- subject { Shoes::Link.new(internal_app, nil, texts, click: "/url") }
56
-
57
- it "should visit the url" do
58
- expect(app).to receive(:visit).with("/url")
59
- subject.blk.call
60
- end
61
- end
62
-
63
- context "with click option as Proc" do
64
- let(:callable) { double("callable", call: nil) }
65
- subject { Shoes::Link.new(internal_app, nil, texts, click: Proc.new { callable.call }) }
66
-
67
- it "calls the block" do
68
- expect(callable).to receive(:call)
69
- subject.blk.call
70
- end
71
- end
72
-
73
- context "calling click explicitly" do
74
- let(:original_block) { double("original") }
75
- let(:replacement_block) { double("replacement") }
76
- subject { Shoes::Link.new(internal_app, nil, texts) { original_block.call } }
77
-
78
- it "replaces original block" do
79
- expect(original_block).to_not receive(:call)
80
- expect(replacement_block).to receive(:call)
81
-
82
- subject.click { replacement_block.call }
83
- subject.blk.call
84
- end
85
- end
86
- end
87
-
88
- describe 'visibility' do
89
- let(:text_block) {double 'text block', visible?: true, hidden?: false}
90
-
91
- before :each do
92
- subject.text_block = text_block
93
- end
94
-
95
- it 'forwards visible? calls' do
96
- subject.visible?
97
- expect(text_block).to have_received :visible?
98
- end
99
-
100
- it 'forwards hidden? calls' do
101
- subject.hidden?
102
- expect(text_block).to have_received :hidden?
103
- end
104
- end
105
- end