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.
- checksums.yaml +4 -4
- data/README.md +5 -200
- data/Rakefile +1 -0
- data/bin/shoes-swt +11 -0
- data/lib/shoes/swt.rb +5 -2
- data/lib/shoes/swt/animation.rb +2 -2
- data/lib/shoes/swt/app.rb +45 -50
- data/lib/shoes/swt/arc.rb +7 -7
- data/lib/shoes/swt/background.rb +1 -1
- data/lib/shoes/swt/border.rb +1 -2
- data/lib/shoes/swt/click_listener.rb +70 -0
- data/lib/shoes/swt/color.rb +5 -5
- data/lib/shoes/swt/common/clickable.rb +2 -53
- data/lib/shoes/swt/common/fill.rb +1 -1
- data/lib/shoes/swt/common/painter.rb +7 -7
- data/lib/shoes/swt/common/painter_updates_position.rb +2 -2
- data/lib/shoes/swt/common/remove.rb +2 -3
- data/lib/shoes/swt/common/resource.rb +1 -1
- data/lib/shoes/swt/common/selection_listener.rb +14 -14
- data/lib/shoes/swt/common/stroke.rb +1 -2
- data/lib/shoes/swt/common/update_position.rb +1 -1
- data/lib/shoes/swt/dialog.rb +3 -45
- data/lib/shoes/swt/disposed_protection.rb +1 -1
- data/lib/shoes/swt/download.rb +0 -1
- data/lib/shoes/swt/font.rb +4 -4
- data/lib/shoes/swt/generate-backend.rb +9 -0
- data/lib/shoes/swt/gradient.rb +17 -16
- data/lib/shoes/swt/image.rb +3 -5
- data/lib/shoes/swt/image_pattern.rb +2 -2
- data/lib/shoes/swt/input_box.rb +3 -3
- data/lib/shoes/swt/key_listener.rb +6 -6
- data/lib/shoes/swt/line.rb +4 -24
- data/lib/shoes/swt/link.rb +2 -2
- data/lib/shoes/swt/link_segment.rb +3 -3
- data/lib/shoes/swt/list_box.rb +4 -4
- data/lib/shoes/swt/mouse_move_listener.rb +6 -5
- data/lib/shoes/swt/oval.rb +2 -3
- data/lib/shoes/swt/packager.rb +82 -0
- data/lib/shoes/swt/progress.rb +2 -2
- data/lib/shoes/swt/radio.rb +0 -2
- data/lib/shoes/swt/radio_group.rb +54 -54
- data/lib/shoes/swt/rect_painter.rb +7 -7
- data/lib/shoes/swt/redrawing_aspect.rb +32 -34
- data/lib/shoes/swt/shape.rb +1 -1
- data/lib/shoes/swt/shoes_layout.rb +5 -2
- data/lib/shoes/swt/slot.rb +2 -3
- data/lib/shoes/swt/sound.rb +17 -22
- data/lib/shoes/swt/star.rb +30 -8
- data/lib/shoes/swt/swt_button.rb +3 -2
- data/lib/shoes/swt/text_block.rb +3 -3
- data/lib/shoes/swt/text_block/cursor_painter.rb +2 -2
- data/lib/shoes/swt/text_block/fitter.rb +5 -3
- data/lib/shoes/swt/text_block/painter.rb +9 -9
- data/lib/shoes/swt/text_block/text_font_factory.rb +3 -3
- data/lib/shoes/swt/text_block/text_segment.rb +9 -9
- data/lib/shoes/swt/text_block/text_segment_collection.rb +2 -0
- data/lib/shoes/swt/text_block/text_style_factory.rb +9 -3
- data/lib/shoes/swt/timer.rb +1 -1
- data/lib/shoes/swt/version.rb +1 -1
- data/shoes-swt.gemspec +7 -6
- data/spec/shoes/cli_spec.rb +2 -2
- data/spec/{swt_shoes → shoes/swt}/animation_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/app_spec.rb +36 -3
- data/spec/{swt_shoes → shoes/swt}/arc_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/background_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/border_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/button_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/check_spec.rb +1 -1
- data/spec/shoes/swt/click_listener_spec.rb +162 -0
- data/spec/{swt_shoes → shoes/swt}/color_factory_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/color_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/common/painter_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/common/remove_spec.rb +4 -11
- data/spec/{swt_shoes → shoes/swt}/configuration_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/dialog_spec.rb +1 -7
- data/spec/{swt_shoes → shoes/swt}/disposed_protection_spec.rb +0 -0
- data/spec/{swt_shoes → shoes/swt}/flow_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/font_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/gradient_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/image_pattern_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/image_spec.rb +4 -3
- data/spec/{swt_shoes → shoes/swt}/input_box_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/integration_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/key_listener_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/line_spec.rb +4 -8
- data/spec/{swt_shoes → shoes/swt}/link_segment_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/link_spec.rb +3 -10
- data/spec/{swt_shoes → shoes/swt}/list_box_spec.rb +5 -3
- data/spec/{swt_shoes → shoes/swt}/minimal.png +0 -0
- data/spec/{swt_shoes → shoes/swt}/mouse_move_listener_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/oval_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/progress_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/radio_group_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/radio_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/rect_painter_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/rect_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/shape_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/shared_examples/button.rb +0 -0
- data/spec/shoes/swt/shared_examples/clickable.rb +13 -0
- data/spec/{swt_shoes → shoes/swt}/shared_examples/movable.rb +0 -0
- data/spec/{swt_shoes → shoes/swt}/shared_examples/paintable.rb +0 -0
- data/spec/{swt_shoes → shoes/swt}/shared_examples/painter.rb +0 -0
- data/spec/{swt_shoes → shoes/swt}/shared_examples/pattern.rb +0 -0
- data/spec/{swt_shoes → shoes/swt}/shared_examples/removable.rb +1 -3
- data/spec/{swt_shoes → shoes/swt}/shared_examples/swt_app_context.rb +11 -3
- data/spec/{swt_shoes → shoes/swt}/shared_examples/visibility.rb +0 -0
- data/spec/{swt_shoes → shoes/swt}/shell_control_listener_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/slot_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/spec_helper.rb +0 -1
- data/spec/{swt_shoes → shoes/swt}/star_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/text_block/centered_text_segment_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/text_block/cursor_painter_spec.rb +8 -4
- data/spec/{swt_shoes → shoes/swt}/text_block/fitter_spec.rb +5 -5
- data/spec/{swt_shoes → shoes/swt}/text_block/painter_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/text_block/text_font_factory_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/text_block/text_segment_collection_spec.rb +7 -2
- data/spec/{swt_shoes → shoes/swt}/text_block/text_segment_spec.rb +1 -1
- data/spec/{swt_shoes → shoes/swt}/text_block_spec.rb +2 -5
- data/spec/spec_helper.rb +7 -3
- metadata +132 -331
- data/CHANGELOG +0 -84
- data/Gemfile +0 -24
- data/Guardfile +0 -11
- data/manifests/common.rb +0 -34
- data/manifests/shoes-swt.rb +0 -29
- data/spec/code_coverage.rb +0 -14
- data/spec/shoes/animation_spec.rb +0 -65
- data/spec/shoes/app_spec.rb +0 -484
- data/spec/shoes/arc_spec.rb +0 -51
- data/spec/shoes/background_spec.rb +0 -53
- data/spec/shoes/border_spec.rb +0 -47
- data/spec/shoes/builtin_methods_spec.rb +0 -110
- data/spec/shoes/button_spec.rb +0 -44
- data/spec/shoes/check_spec.rb +0 -35
- data/spec/shoes/color_spec.rb +0 -408
- data/spec/shoes/common/inspect_spec.rb +0 -26
- data/spec/shoes/common/remove_spec.rb +0 -38
- data/spec/shoes/common/style_normalizer_spec.rb +0 -28
- data/spec/shoes/common/style_spec.rb +0 -147
- data/spec/shoes/configuration_spec.rb +0 -36
- data/spec/shoes/constants_spec.rb +0 -38
- data/spec/shoes/dialog_spec.rb +0 -163
- data/spec/shoes/dimension_spec.rb +0 -407
- data/spec/shoes/dimensions_spec.rb +0 -837
- data/spec/shoes/download_spec.rb +0 -142
- data/spec/shoes/flow_spec.rb +0 -133
- data/spec/shoes/font_spec.rb +0 -37
- data/spec/shoes/framework_learning_spec.rb +0 -30
- data/spec/shoes/gradient_spec.rb +0 -32
- data/spec/shoes/helpers/fake_element.rb +0 -17
- data/spec/shoes/helpers/inspect_helpers.rb +0 -5
- data/spec/shoes/helpers/sample17_helper.rb +0 -66
- data/spec/shoes/image_spec.rb +0 -49
- data/spec/shoes/images/shoe.jpg +0 -0
- data/spec/shoes/input_box_spec.rb +0 -80
- data/spec/shoes/integration_spec.rb +0 -20
- data/spec/shoes/internal_app_spec.rb +0 -141
- data/spec/shoes/keypress_spec.rb +0 -11
- data/spec/shoes/keyrelease_spec.rb +0 -12
- data/spec/shoes/line_spec.rb +0 -49
- data/spec/shoes/link_spec.rb +0 -105
- data/spec/shoes/list_box_spec.rb +0 -74
- data/spec/shoes/logger/ruby_spec.rb +0 -8
- data/spec/shoes/logger_spec.rb +0 -45
- data/spec/shoes/oval_spec.rb +0 -24
- data/spec/shoes/point_spec.rb +0 -71
- data/spec/shoes/progress_spec.rb +0 -54
- data/spec/shoes/radio_spec.rb +0 -32
- data/spec/shoes/rect_spec.rb +0 -39
- data/spec/shoes/renamed_delegate_spec.rb +0 -70
- data/spec/shoes/shape_spec.rb +0 -95
- data/spec/shoes/shared_examples/button.rb +0 -6
- data/spec/shoes/shared_examples/changeable.rb +0 -26
- data/spec/shoes/shared_examples/clickable.rb +0 -5
- data/spec/shoes/shared_examples/common_methods.rb +0 -35
- data/spec/shoes/shared_examples/dimensions.rb +0 -32
- data/spec/shoes/shared_examples/dsl.rb +0 -44
- data/spec/shoes/shared_examples/dsl/animate.rb +0 -29
- data/spec/shoes/shared_examples/dsl/arc.rb +0 -45
- data/spec/shoes/shared_examples/dsl/background.rb +0 -26
- data/spec/shoes/shared_examples/dsl/border.rb +0 -10
- data/spec/shoes/shared_examples/dsl/button.rb +0 -5
- data/spec/shoes/shared_examples/dsl/cap.rb +0 -6
- data/spec/shoes/shared_examples/dsl/check.rb +0 -11
- data/spec/shoes/shared_examples/dsl/edit_box.rb +0 -8
- data/spec/shoes/shared_examples/dsl/edit_line.rb +0 -8
- data/spec/shoes/shared_examples/dsl/editable_element.rb +0 -29
- data/spec/shoes/shared_examples/dsl/fill.rb +0 -27
- data/spec/shoes/shared_examples/dsl/flow.rb +0 -15
- data/spec/shoes/shared_examples/dsl/gradient.rb +0 -62
- data/spec/shoes/shared_examples/dsl/image.rb +0 -21
- data/spec/shoes/shared_examples/dsl/line.rb +0 -9
- data/spec/shoes/shared_examples/dsl/nofill.rb +0 -6
- data/spec/shoes/shared_examples/dsl/nostroke.rb +0 -6
- data/spec/shoes/shared_examples/dsl/oval.rb +0 -88
- data/spec/shoes/shared_examples/dsl/pattern.rb +0 -34
- data/spec/shoes/shared_examples/dsl/progress.rb +0 -7
- data/spec/shoes/shared_examples/dsl/rect.rb +0 -92
- data/spec/shoes/shared_examples/dsl/rgb.rb +0 -26
- data/spec/shoes/shared_examples/dsl/shape.rb +0 -21
- data/spec/shoes/shared_examples/dsl/star.rb +0 -48
- data/spec/shoes/shared_examples/dsl/stroke.rb +0 -30
- data/spec/shoes/shared_examples/dsl/strokewidth.rb +0 -19
- data/spec/shoes/shared_examples/dsl/style.rb +0 -32
- data/spec/shoes/shared_examples/dsl/text_elements.rb +0 -81
- data/spec/shoes/shared_examples/dsl/video.rb +0 -5
- data/spec/shoes/shared_examples/dsl_app_context.rb +0 -8
- data/spec/shoes/shared_examples/hover_leave.rb +0 -11
- data/spec/shoes/shared_examples/parent.rb +0 -6
- data/spec/shoes/shared_examples/scroll.rb +0 -41
- data/spec/shoes/shared_examples/shared_element_method.rb +0 -60
- data/spec/shoes/shared_examples/slot.rb +0 -331
- data/spec/shoes/shared_examples/state.rb +0 -19
- data/spec/shoes/shared_examples/style.rb +0 -82
- data/spec/shoes/slot_spec.rb +0 -130
- data/spec/shoes/sound_spec.rb +0 -15
- data/spec/shoes/span_spec.rb +0 -112
- data/spec/shoes/spec_helper.rb +0 -24
- data/spec/shoes/stack_spec.rb +0 -79
- data/spec/shoes/star_spec.rb +0 -31
- data/spec/shoes/text_block_dimensions_spec.rb +0 -75
- data/spec/shoes/text_block_spec.rb +0 -270
- data/spec/shoes/url_spec.rb +0 -68
- data/spec/shoes/widget_spec.rb +0 -70
- data/spec/shoes_spec.rb +0 -44
- data/spec/swt_shoes/shared_examples/clickable.rb +0 -85
- data/spec/swt_shoes/sound.rb +0 -10
@@ -1,19 +0,0 @@
|
|
1
|
-
shared_examples_for "object with state" do
|
2
|
-
let(:input_opts) { {:state => "disabled"} }
|
3
|
-
|
4
|
-
it "should initialize" do
|
5
|
-
expect(subject.state).to eq("disabled")
|
6
|
-
end
|
7
|
-
|
8
|
-
it "should enable" do
|
9
|
-
expect(subject.gui).to receive(:enabled).with(true)
|
10
|
-
subject.state = nil
|
11
|
-
expect(subject.state).to eq(nil)
|
12
|
-
end
|
13
|
-
|
14
|
-
it "should disable" do
|
15
|
-
expect(subject.gui).to receive(:enabled).with(false)
|
16
|
-
subject.state = "disabled"
|
17
|
-
expect(subject.state).to eq("disabled")
|
18
|
-
end
|
19
|
-
end
|
@@ -1,82 +0,0 @@
|
|
1
|
-
shared_examples_for "object with style" do
|
2
|
-
|
3
|
-
def uses_app_default?(key)
|
4
|
-
if defined? self.class::STYLES
|
5
|
-
subject.style[key] && !subject.class::STYLES[key]
|
6
|
-
else
|
7
|
-
subject.style[key]
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
describe 'using app-level styles' do
|
12
|
-
|
13
|
-
it 'initially uses app defaults' do
|
14
|
-
app.style.each do |key, value|
|
15
|
-
expect(subject.style[key]).to eq(value) if uses_app_default? key
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'overwrites app defaults' do
|
20
|
-
subject.style(fill: '#fff')
|
21
|
-
expect(subject.style[:fill]).not_to eq(app.style[:fill])
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe 'using element-level styles' do
|
26
|
-
let(:arg_styles) { {jellybean: 'blueberry'} }
|
27
|
-
|
28
|
-
it 'uses element defaults' do
|
29
|
-
user_facing_app.style(subject.class, jellybean: 'pumpkin')
|
30
|
-
expect(subject_without_style.style[:jellybean]).to eq('pumpkin')
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'overwrites element defaults' do
|
34
|
-
user_facing_app.style(subject.class, jellybean: 'pumpkin')
|
35
|
-
expect(subject_with_style.style[:jellybean]).to eq('blueberry')
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
describe 'using the style method' do
|
40
|
-
|
41
|
-
it "merges new styles" do
|
42
|
-
old_style = subject.style
|
43
|
-
subject.style(left: 100, top: 50)
|
44
|
-
expect(subject.style).to eq(old_style.merge(left: 100, top: 50))
|
45
|
-
end
|
46
|
-
|
47
|
-
it 'calls update_style when the style is changed' do
|
48
|
-
allow(subject).to receive(:update_style)
|
49
|
-
subject.style left: 50
|
50
|
-
expect(subject).to have_received(:update_style)
|
51
|
-
end
|
52
|
-
|
53
|
-
it 'does not call update_style when style is called without args' do
|
54
|
-
allow(subject).to receive(:update_style)
|
55
|
-
subject.style
|
56
|
-
expect(subject).not_to have_received(:update_style)
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'does not call update_style when style is unchanged' do
|
60
|
-
allow(subject).to receive(:update_style)
|
61
|
-
old_left = subject.style[:left]
|
62
|
-
subject.style(left: old_left)
|
63
|
-
expect(subject).not_to have_received(:update_style)
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
describe 'using setters and getters' do
|
68
|
-
|
69
|
-
it 'has a style setter for all styles' do
|
70
|
-
subject.supported_styles.each do |style|
|
71
|
-
expect(subject).to respond_to("#{style}=".to_sym)
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
it 'has a style getter for all styles' do
|
76
|
-
subject.supported_styles.each do |style|
|
77
|
-
expect(subject).to respond_to("#{style}".to_sym)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
end
|
data/spec/shoes/slot_spec.rb
DELETED
@@ -1,130 +0,0 @@
|
|
1
|
-
require 'shoes/spec_helper'
|
2
|
-
|
3
|
-
describe Shoes::Slot do
|
4
|
-
include_context "dsl app"
|
5
|
-
let(:parent) { app }
|
6
|
-
|
7
|
-
let(:left) { 44 }
|
8
|
-
let(:top) { 66 }
|
9
|
-
let(:width) { 111 }
|
10
|
-
let(:height) { 333 }
|
11
|
-
let(:input_opts) { {left: left, top: top, width: width, height: height} }
|
12
|
-
subject(:slot) { Shoes::Slot.new(app, parent, input_opts) }
|
13
|
-
|
14
|
-
it_behaves_like "object with dimensions"
|
15
|
-
|
16
|
-
it_behaves_like "object with style" do
|
17
|
-
let(:subject_without_style) { Shoes::Slot.new(app, parent) }
|
18
|
-
let(:subject_with_style) { Shoes::Slot.new(app, parent, arg_styles) }
|
19
|
-
end
|
20
|
-
|
21
|
-
describe "relative dimensions from parent" do
|
22
|
-
subject { Shoes::Slot.new(app, parent, relative_opts) }
|
23
|
-
it_behaves_like "object with relative dimensions"
|
24
|
-
end
|
25
|
-
|
26
|
-
describe "negative dimensions" do
|
27
|
-
subject { Shoes::Slot.new(app, parent, negative_opts) }
|
28
|
-
it_behaves_like "object with negative dimensions"
|
29
|
-
end
|
30
|
-
|
31
|
-
describe '#clear' do
|
32
|
-
|
33
|
-
def add_text_block
|
34
|
-
Shoes::TextBlock.new app, slot, ['text']
|
35
|
-
end
|
36
|
-
|
37
|
-
before :each do
|
38
|
-
10.times do
|
39
|
-
add_text_block
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'sends remove to all children' do
|
44
|
-
subject.contents.each do |element|
|
45
|
-
expect(element).to receive(:remove).and_call_original
|
46
|
-
end
|
47
|
-
subject.clear
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'removes everything' do
|
51
|
-
subject.clear
|
52
|
-
expect(subject.contents).to be_empty
|
53
|
-
end
|
54
|
-
|
55
|
-
describe 'with a block' do
|
56
|
-
before :each do
|
57
|
-
subject.clear {add_text_block}
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'has one element afterwards' do
|
61
|
-
expect(subject.contents.size).to eq 1
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
end
|
66
|
-
|
67
|
-
describe '#remove_child' do
|
68
|
-
let(:element) {Shoes::FakeElement.new subject}
|
69
|
-
|
70
|
-
before :each do
|
71
|
-
subject.add_child element
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'removes the element' do
|
75
|
-
subject.remove_child element
|
76
|
-
expect(subject.contents).to be_empty
|
77
|
-
end
|
78
|
-
|
79
|
-
describe '2 elements' do
|
80
|
-
let(:element2) {Shoes::FakeElement.new subject}
|
81
|
-
|
82
|
-
before :each do
|
83
|
-
subject.add_child element2
|
84
|
-
subject.remove_child element
|
85
|
-
end
|
86
|
-
|
87
|
-
it 'has one element remaining' do
|
88
|
-
expect(subject.contents.size).to eq 1
|
89
|
-
end
|
90
|
-
|
91
|
-
it 'has the second element remaining' do
|
92
|
-
expect(subject.contents).to include element2
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
describe "hover" do
|
98
|
-
let(:callable) { double("block", call: nil) }
|
99
|
-
let(:block) { Proc.new { callable.call } }
|
100
|
-
|
101
|
-
it "doesn't need hover proc to be called" do
|
102
|
-
expect(callable).to_not receive(:call)
|
103
|
-
subject.mouse_hovered
|
104
|
-
end
|
105
|
-
|
106
|
-
it "calls block on mouse_hovered" do
|
107
|
-
expect(callable).to receive(:call)
|
108
|
-
|
109
|
-
subject.hover(block)
|
110
|
-
subject.mouse_hovered
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
describe "leave" do
|
115
|
-
let(:callable) { double("block", call: nil) }
|
116
|
-
let(:block) { Proc.new { callable.call } }
|
117
|
-
|
118
|
-
it "doesn't need leave proc to be called" do
|
119
|
-
expect(callable).to_not receive(:call)
|
120
|
-
subject.mouse_left
|
121
|
-
end
|
122
|
-
|
123
|
-
it "calls block on mouse_left" do
|
124
|
-
expect(callable).to receive(:call)
|
125
|
-
|
126
|
-
subject.leave(block)
|
127
|
-
subject.mouse_left
|
128
|
-
end
|
129
|
-
end
|
130
|
-
end
|
data/spec/shoes/sound_spec.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'shoes/spec_helper'
|
2
|
-
|
3
|
-
describe Shoes::Sound do
|
4
|
-
let(:parent) { double("parent") }
|
5
|
-
let(:filepath) { "../../samples/sounds/61847__simon-rue__boink-v3.wav" }
|
6
|
-
subject { Shoes::Sound.new(parent, filepath) }
|
7
|
-
|
8
|
-
its(:filepath) { should eq(filepath) }
|
9
|
-
its(:parent) { should be(parent) }
|
10
|
-
|
11
|
-
it "delegates play to gui" do
|
12
|
-
expect(subject.gui).to receive(:play)
|
13
|
-
subject.play
|
14
|
-
end
|
15
|
-
end
|
data/spec/shoes/span_spec.rb
DELETED
@@ -1,112 +0,0 @@
|
|
1
|
-
require 'shoes/spec_helper'
|
2
|
-
|
3
|
-
describe Shoes::Span do
|
4
|
-
let(:app) { Shoes::App.new }
|
5
|
-
let(:style) { {} }
|
6
|
-
let(:text) { ['test'] }
|
7
|
-
subject(:span) { Shoes::Span.new(text, style) }
|
8
|
-
|
9
|
-
describe 'span' do
|
10
|
-
include InspectHelpers
|
11
|
-
|
12
|
-
it 'sets style to Span block' do
|
13
|
-
expect(app.style[:strikethrough]).not_to be_truthy
|
14
|
-
|
15
|
-
style = { strikethrough: true }
|
16
|
-
result = app.span('test', style)
|
17
|
-
expect(result.style[:strikethrough]).to be_truthy
|
18
|
-
|
19
|
-
expect(app.style[:strikethrough]).not_to be_truthy
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'displays text for #to_s' do
|
23
|
-
expect(span.to_s).to eq(text.join)
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'displays (Shoes::Span:0x01234567 "text") for #inspect' do
|
27
|
-
expect(span.inspect).to match(/[(]Shoes::Span:#{shoes_object_id_pattern} "#{text.join}"[)]/)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
describe 'Looking up styles of the parent text' do
|
32
|
-
let(:white) {Shoes::COLORS[:white]}
|
33
|
-
let(:red) {Shoes::COLORS[:red]}
|
34
|
-
it 'does not try to merge with parent style when there are none' do
|
35
|
-
parent = double 'parent'
|
36
|
-
span.parent_text = parent
|
37
|
-
expect {span.style}.to_not raise_error()
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'merges with the styles of the parent text' do
|
41
|
-
parent = double 'parent', style: {stroke: white}
|
42
|
-
span.parent_text = parent
|
43
|
-
expect(span.style[:stroke]).to eq(white)
|
44
|
-
end
|
45
|
-
|
46
|
-
describe 'with own style' do
|
47
|
-
let(:style) {{stroke: red}}
|
48
|
-
it 'prefers own values over parent text values' do
|
49
|
-
parent = double 'parent', style: {stroke: white}
|
50
|
-
span.parent_text = parent
|
51
|
-
expect(span.style[:stroke]).to eq(red)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
describe 'setting the text block a span belongs to' do
|
57
|
-
it 'can set it' do
|
58
|
-
text_block = double 'text block'
|
59
|
-
subject.text_block = text_block
|
60
|
-
expect(subject.text_block).to eq text_block
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
describe 'code' do
|
65
|
-
it 'sets font to Lucida Console' do
|
66
|
-
result = app.code 'test'
|
67
|
-
expect(result.style[:font]).to eq(('Lucida Console'))
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
describe 'del' do
|
72
|
-
it 'sets strikethrough to true' do
|
73
|
-
result = app.del 'test'
|
74
|
-
expect(result.style[:strikethrough]).to be_truthy
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
describe 'em' do
|
79
|
-
it 'sets emphasis to true' do
|
80
|
-
result = app.em 'test'
|
81
|
-
expect(result.style[:emphasis]).to be_truthy
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
describe 'ins' do
|
86
|
-
it 'sets underline to true' do
|
87
|
-
result = app.ins 'test'
|
88
|
-
expect(result.style[:underline]).to be_truthy
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
describe 'sub' do
|
93
|
-
it 'sets rise to -10 and multiplies font size by 0.8' do
|
94
|
-
result = app.sub 'test'
|
95
|
-
expect(result.style[:rise]).to eq(-10)
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
describe 'sup' do
|
100
|
-
it 'sets rise to 10 and multiplies font size by 0.8' do
|
101
|
-
result = app.sup 'test'
|
102
|
-
expect(result.style[:rise]).to eq(10)
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
describe 'strong' do
|
107
|
-
it 'sets weight to true' do
|
108
|
-
result = app.strong 'test'
|
109
|
-
expect(result.style[:weight]).to be_truthy
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
data/spec/shoes/spec_helper.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
def it_styles_with(*styles)
|
4
|
-
supported_styles = unpack_styles(styles)
|
5
|
-
spec_styles(supported_styles)
|
6
|
-
end
|
7
|
-
|
8
|
-
def unpack_styles(styles)
|
9
|
-
supported_styles = []
|
10
|
-
styles.each do |style|
|
11
|
-
if Shoes::Common::Style::STYLE_GROUPS[style]
|
12
|
-
Shoes::Common::Style::STYLE_GROUPS[style].each{|style| supported_styles << style}
|
13
|
-
else
|
14
|
-
supported_styles << style
|
15
|
-
end
|
16
|
-
end
|
17
|
-
supported_styles
|
18
|
-
end
|
19
|
-
|
20
|
-
def spec_styles(supported_styles)
|
21
|
-
supported_styles.each do |style|
|
22
|
-
it_behaves_like "object that styles with #{style}"
|
23
|
-
end
|
24
|
-
end
|
data/spec/shoes/stack_spec.rb
DELETED
@@ -1,79 +0,0 @@
|
|
1
|
-
require 'shoes/spec_helper'
|
2
|
-
require 'shoes/helpers/fake_element'
|
3
|
-
|
4
|
-
describe Shoes::Stack do
|
5
|
-
include_context "dsl app"
|
6
|
-
|
7
|
-
subject(:stack) { Shoes::Stack.new(app, app, input_opts) }
|
8
|
-
|
9
|
-
it_behaves_like "Slot"
|
10
|
-
|
11
|
-
describe 'Context' do
|
12
|
-
|
13
|
-
class ContextObject
|
14
|
-
def initialize(app)
|
15
|
-
@app = app
|
16
|
-
end
|
17
|
-
|
18
|
-
def check_self_inside_stack
|
19
|
-
inside_stack = nil
|
20
|
-
@app.stack do inside_stack = self end
|
21
|
-
inside_stack
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'does not change the context' do
|
26
|
-
app = Shoes.app do ; end
|
27
|
-
context_object = ContextObject.new app
|
28
|
-
inside_stack = context_object.check_self_inside_stack
|
29
|
-
expect(inside_stack).to be context_object
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
describe 'positioning' do
|
34
|
-
it_behaves_like 'positioning through :_position'
|
35
|
-
it_behaves_like 'positions the first element in the top left'
|
36
|
-
it_behaves_like 'arranges elements underneath each other'
|
37
|
-
|
38
|
-
describe 'small stack height' do
|
39
|
-
let(:input_opts){{height: element.height + 10}}
|
40
|
-
it_behaves_like 'set height and contents alignment'
|
41
|
-
end
|
42
|
-
|
43
|
-
describe 'big stack height' do
|
44
|
-
let(:input_opts){{height: 1000}}
|
45
|
-
it_behaves_like 'set height and contents alignment'
|
46
|
-
end
|
47
|
-
|
48
|
-
describe 'with margin' do
|
49
|
-
let(:input_opts){{margin: 27}}
|
50
|
-
it_behaves_like 'taking care of margin'
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
describe 'scrolling' do
|
55
|
-
include_context "scroll"
|
56
|
-
subject { Shoes::Stack.new(app, parent, opts) }
|
57
|
-
|
58
|
-
context 'when scrollable' do
|
59
|
-
let(:scroll) { true }
|
60
|
-
|
61
|
-
it_behaves_like "scrollable slot"
|
62
|
-
|
63
|
-
context 'when content overflows' do
|
64
|
-
include_context "overflowing content"
|
65
|
-
it_behaves_like "scrollable slot with overflowing content"
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
context 'when slot is not scrollable' do
|
70
|
-
let(:scroll) { false }
|
71
|
-
|
72
|
-
its(:scroll) { should be_falsey }
|
73
|
-
|
74
|
-
it "initializes scroll_top to 0" do
|
75
|
-
expect(subject.scroll_top).to eq(0)
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|