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
data/spec/shoes/image_spec.rb
DELETED
@@ -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
|
data/spec/shoes/images/shoe.jpg
DELETED
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
|
data/spec/shoes/keypress_spec.rb
DELETED
data/spec/shoes/line_spec.rb
DELETED
@@ -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
|
data/spec/shoes/link_spec.rb
DELETED
@@ -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
|