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,26 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "Shoes::Common::Inspect" do
4
- let(:test_class) {
5
- Class.new {
6
- include Shoes::Common::Inspect
7
- def self.name
8
- "Shoes::InspectableObject"
9
- end
10
- }
11
- }
12
-
13
- describe "when included" do
14
- include InspectHelpers
15
-
16
- subject(:object) { test_class.new }
17
-
18
- it "gives a #to_s like (Shoes::Klass)" do
19
- expect(object.to_s).to eq("(Shoes::InspectableObject)")
20
- end
21
-
22
- it "gives an #inspect like (Shoes::Klass:0x000049e8)" do
23
- expect(object.inspect).to match(/^[(]Shoes::InspectableObject:#{shoes_object_id_pattern}[)]$/)
24
- end
25
- end
26
- end
@@ -1,38 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Shoes::Common::Remove do
4
-
5
- let(:parent) {double 'parent', add_child: true, remove_child: true}
6
- let(:gui) {double 'gui', remove: true}
7
- let(:test_class) {Class.new {include Shoes::Common::Remove}}
8
-
9
- subject {test_class.new}
10
-
11
- before :each do
12
- allow(subject).to receive_messages parent: parent, gui: gui
13
- end
14
-
15
- describe '#remove' do
16
- before :each do
17
- subject.remove
18
- end
19
-
20
- it 'calls removes itself from the parent' do
21
- expect(parent).to have_received(:remove_child).with(subject)
22
- end
23
-
24
- it 'calls remove on the gui' do
25
- expect(gui).to have_received(:remove)
26
- end
27
-
28
- describe 'if the gui does not respond to clear' do
29
- # need to stub clear and respond_to because we get a non stubbed method
30
- # otherwise on our spies when verifying...
31
- let(:gui) {double 'no clear gui', clear: true, respond_to?: false}
32
-
33
- it 'does not call clear on the gui' do
34
- expect(gui).not_to have_received(:clear)
35
- end
36
- end
37
- end
38
- end
@@ -1,28 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Shoes::Common::StyleNormalizer do
4
- subject {Shoes::Common::StyleNormalizer.new}
5
-
6
- it 'does not modify a simple hash' do
7
- input = {left: 100, width: 233}
8
- expect(subject.normalize input).to eq input
9
- end
10
-
11
- it 'turns hexcodes for fill into colors' do
12
- input = {fill: 'ffffff'}
13
- expected = {fill: Shoes::Color.new(255, 255, 255)}
14
- expect(subject.normalize input).to eq expected
15
- end
16
-
17
- it 'turns hexcodes for stroke into colors' do
18
- input = {stroke: 'ffffff'}
19
- expected = {stroke: Shoes::Color.new(255, 255, 255)}
20
- expect(subject.normalize input).to eq expected
21
- end
22
-
23
- it 'does not modify the original hash' do
24
- input = {stroke: '333333'}
25
- subject.normalize input
26
- expect(input).to eq({stroke: '333333'})
27
- end
28
- end
@@ -1,147 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Shoes::Common::Style do
4
- include_context "dsl app"
5
- let(:blue) { Shoes::COLORS[:blue] }
6
-
7
- class StyleTester
8
- include Shoes::Common::Style
9
- attr_accessor :left
10
- style_with :key, :left, :click, :strokewidth, :fill
11
- STYLES = {fill: Shoes::COLORS[:blue]}
12
-
13
- def initialize(app, styles = {})
14
- @app = app #needed for style init
15
- style_init(styles, key: 'value')
16
- @left = 15
17
- end
18
-
19
- def click(&arg)
20
- @click = arg
21
- end
22
-
23
- def click_blk
24
- @click
25
- end
26
- end
27
- subject {StyleTester.new(app)}
28
-
29
- its(:style) { should eq (initial_style) }
30
- let(:initial_style) { {key: 'value', left: 15, click: nil, strokewidth: 1, fill: blue} }
31
-
32
- describe 'reading and writing through #style(hash)' do
33
- let(:input_proc) { Proc.new {} }
34
- let(:changed_style) { {key: 'changed value'} }
35
-
36
-
37
- before :each do
38
- subject.style changed_style
39
- end
40
-
41
- it 'returns the changed style' do
42
- expect(subject.style).to eq initial_style.merge changed_style
43
- end
44
-
45
- it 'does update values for new values' do
46
- subject.style new_key: 'new value'
47
- expect(subject.style[:new_key]).to eq 'new value'
48
- end
49
-
50
- it 'reads new dimensions' do
51
- subject.left = 20
52
- expect(subject.style[:left]).to eq 20
53
- end
54
-
55
- it 'writes new dimensions' do
56
- subject.style(left: 200)
57
- expect(subject.left).to eq 200
58
- end
59
-
60
- it 'sets click' do
61
- subject.style(click: input_proc)
62
- expect(subject.click_blk).to eq input_proc
63
- end
64
-
65
- it 'sets non dimension non click style via setter' do
66
- subject.key = 'silver'
67
- expect(subject.style[:key]).to eq 'silver'
68
- end
69
-
70
- it 'gets non dimension non click style via getter' do
71
- expect(subject.key).to eq 'changed value'
72
- end
73
-
74
- # these specs are rather extensive as they are performance critical for
75
- # redrawing
76
- describe 'calling or not calling #update_style' do
77
- it 'does not call #update_style if no key value pairs changed' do
78
- expect(subject).not_to receive(:update_style)
79
- subject.style changed_style
80
- end
81
-
82
- it 'does not call #update_style if called without arg' do
83
- expect(subject).not_to receive(:update_style)
84
- subject.style
85
- end
86
-
87
- it 'does call #update_style if the values change' do
88
- expect(subject).to receive(:update_style)
89
- subject.style key: 'new value'
90
- end
91
-
92
- it 'does call #update_style if there is a new key-value' do
93
- expect(subject).to receive(:update_style)
94
- subject.style new_key: 'value'
95
- end
96
- end
97
- end
98
-
99
- describe "app-default" do
100
- it "reads app-default styles with reader" do
101
- expect(subject.strokewidth).to eq 1
102
- end
103
-
104
- it "writes app-default styles with writer" do
105
- subject.strokewidth = 5
106
- expect(subject.strokewidth).to eq 5
107
- end
108
-
109
- it "does not read 'default' styles that it doesn't support" do
110
- expect(subject).not_to respond_to :stroke
111
- end
112
-
113
- it "does not write 'default' styles that it doesn't support" do
114
- expect(subject).not_to respond_to :stroke=
115
- end
116
- end
117
-
118
- describe "style priorities" do
119
- subject {StyleTester.new(app, key: 'pumpkin')}
120
-
121
- it 'uses arguments-styles over element-styles' do
122
- expect(subject.key).to eq 'pumpkin'
123
- end
124
-
125
- it "uses element-defaults over app-defaults" do
126
- expect(subject.fill).to eq blue
127
- end
128
-
129
- #related priority specs are tested individually in spec/shared_examples/style
130
- end
131
-
132
- describe 'StyleWith' do
133
- it 'ensures that readers exist for each supported style' do
134
- subject.supported_styles.each do |style|
135
- expect(subject).to respond_to style
136
- end
137
- end
138
-
139
- it 'ensures that writers exist for each supported style' do
140
- subject.supported_styles.each do |style|
141
- expect(subject).to respond_to "#{style}="
142
- end
143
- end
144
-
145
- end
146
-
147
- end
@@ -1,36 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Shoes::Configuration do
4
- after { Shoes.configuration.reset }
5
-
6
- describe "#logger" do
7
- describe ":ruby" do
8
- before { Shoes.configuration.logger = :ruby }
9
-
10
- it "uses the Ruby logger" do
11
- expect(Shoes.logger.instance_of?(Shoes::Logger::Ruby)).to eq(true)
12
- end
13
- end
14
- end
15
-
16
- describe "backend" do
17
- include_context "dsl app"
18
-
19
- let(:dsl_object) { Shoes::Shape.new app, parent}
20
-
21
- describe "#backend_with_app_for" do
22
- it "passes app.gui to backend" do
23
- expect(Shoes.configuration.backend::Shape).to receive(:new).with(an_instance_of(Shoes::Shape), app.gui).and_call_original
24
- dsl_object
25
- end
26
-
27
- it "returns shape backend object" do
28
- expect(Shoes.configuration.backend_with_app_for(dsl_object)).to be_instance_of(Shoes.configuration.backend::Shape)
29
- end
30
-
31
- it "raises ArgumentError for a non-Shoes object" do
32
- expect { Shoes.configuration.backend_with_app_for(1..100) }.to raise_error(ArgumentError)
33
- end
34
- end
35
- end
36
- end
@@ -1,38 +0,0 @@
1
- require "pathname"
2
-
3
- describe "Shoes constants" do
4
- specify "PI equals Math::PI" do
5
- expect(Shoes::PI).to eq(Math::PI)
6
- end
7
-
8
- specify "TWO_PI equals 2 * Math::PI" do
9
- expect(Shoes::TWO_PI).to eq(2 * Math::PI)
10
- end
11
-
12
- specify "HALF_PI equals 0.5 * Math::PI" do
13
- expect(Shoes::HALF_PI).to eq(0.5 * Math::PI)
14
- end
15
-
16
- describe "DIR" do
17
- let(:shoes_home_dir) { Pathname.new(__FILE__).join("../../..").expand_path }
18
- subject { Pathname.new Shoes::DIR }
19
-
20
- it "is the shoes home directory" do
21
- expect(subject).to eq(shoes_home_dir)
22
- end
23
-
24
- it "contains lib/shoes.rb" do
25
- expect(subject.join("lib/shoes.rb")).to exist
26
- end
27
-
28
- it "contains static/shoes_icon.png" do
29
- expect(subject.join("static/shoes-icon.png")).to exist
30
- end
31
-
32
- it "remains constant when current directory changes" do
33
- Dir.chdir ".." do
34
- expect(subject).to eq(shoes_home_dir)
35
- end
36
- end
37
- end
38
- end
@@ -1,163 +0,0 @@
1
- require 'shoes/spec_helper'
2
- # NOTE: This spec is sadly circumventing the integration specs since we couldn't
3
- # figure out how to get rid of the alert - it stopped the running tests
4
-
5
- main_object = self
6
-
7
- describe Shoes::Dialog do
8
-
9
- before :each do
10
- @dialog = Shoes::Dialog.new
11
- end
12
-
13
- it 'is not nil' do
14
- expect(@dialog).not_to be_nil
15
- end
16
-
17
- describe '#alert' do
18
- it 'returns nil' do
19
- expect(@dialog.alert('something')).to be_nil
20
- end
21
- end
22
-
23
- describe '#confirm' do
24
- it 'responds to it' do
25
- expect(@dialog).to respond_to :confirm
26
- end
27
- end
28
-
29
- describe '#ask_open_file' do
30
- it 'responds to it' do
31
- expect(@dialog).to respond_to :dialog_chooser
32
- end
33
- end
34
-
35
- describe '#ask_save_file' do
36
- it 'responds to it' do
37
- expect(@dialog).to respond_to :dialog_chooser
38
- end
39
- end
40
-
41
- describe '#ask_open_folder' do
42
- it 'responds to it' do
43
- expect(@dialog).to respond_to :dialog_chooser
44
- end
45
- end
46
-
47
- describe '#ask_save_folder' do
48
- it 'responds to it' do
49
- expect(@dialog).to respond_to :dialog_chooser
50
- end
51
- end
52
-
53
- describe '#ask' do
54
- it 'responds to it' do
55
- expect(@dialog).to respond_to :ask
56
- end
57
- end
58
-
59
- describe '#ask_color' do
60
- it 'responds to it' do
61
- expect(@dialog).to respond_to :ask_color
62
- end
63
- end
64
-
65
- describe 'nothing monkey patched on to Object' do
66
- it 'is not monkey patched on to object' do
67
- expect(Object.new).not_to respond_to :alert
68
- end
69
-
70
- it 'is not monkey patched on to object' do
71
- expect(Object.new).not_to respond_to :confirm
72
- end
73
-
74
- it 'is not monkey patched on to object' do
75
- expect(Object.new).not_to respond_to :dialog_chooser
76
- end
77
-
78
- it 'is not monkey patched on to object' do
79
- expect(Object.new).not_to respond_to :ask
80
- end
81
-
82
- it 'is not monkey patched on to object' do
83
- expect(Object.new).not_to respond_to :ask_color
84
- end
85
- end
86
-
87
- describe 'the main object' do
88
- it 'knows of #alert' do
89
- expect(main_object).to respond_to :alert
90
- end
91
-
92
- it 'knows of #confirm' do
93
- expect(main_object).to respond_to :confirm
94
- end
95
-
96
- it 'knows of #confirm?' do
97
- expect(main_object).to respond_to :confirm?
98
- end
99
-
100
- it 'knows of #ask_open_file' do
101
- expect(main_object).to respond_to :ask_open_file
102
- end
103
-
104
- it 'knows of #ask_save_file' do
105
- expect(main_object).to respond_to :ask_save_file
106
- end
107
-
108
- it 'knows of #ask_open_folder' do
109
- expect(main_object).to respond_to :ask_open_folder
110
- end
111
-
112
- it 'knows of #ask_save_folder' do
113
- expect(main_object).to respond_to :ask_save_folder
114
- end
115
-
116
- it 'knows of #ask' do
117
- expect(main_object).to respond_to :ask
118
- end
119
-
120
- it 'knows of #ask' do
121
- expect(main_object).to respond_to :ask_color
122
- end
123
- end
124
-
125
- describe 'Shoes::App' do
126
- before :each do
127
- @app = Shoes::App.new
128
- end
129
-
130
- it 'knows about #alert' do
131
- expect(@app).to respond_to :alert
132
- end
133
-
134
- it 'knows about #confirm' do
135
- expect(@app).to respond_to :confirm
136
- end
137
-
138
- it 'knows about #ask_open_file' do
139
- expect(@app).to respond_to :ask_open_file
140
- end
141
-
142
- it 'knows about #ask_save_file' do
143
- expect(@app).to respond_to :ask_save_file
144
- end
145
-
146
- it 'knows about #ask_open_folder' do
147
- expect(@app).to respond_to :ask_open_folder
148
- end
149
-
150
- it 'knows about #ask_save_folder' do
151
- expect(@app).to respond_to :ask_save_folder
152
- end
153
-
154
- it 'knows about #ask_save_folder' do
155
- expect(@app).to respond_to :ask
156
- end
157
-
158
- it 'knows about #ask_save_color' do
159
- expect(@app).to respond_to :ask_color
160
- end
161
- end
162
-
163
- end