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/star_spec.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'shoes/spec_helper'
|
2
|
-
|
3
|
-
shared_examples_for "basic star" do
|
4
|
-
it "retains app" do
|
5
|
-
expect(subject.app).to eq(app)
|
6
|
-
end
|
7
|
-
|
8
|
-
it "creates gui object" do
|
9
|
-
expect(subject.gui).not_to be_nil
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
describe Shoes::Star do
|
14
|
-
include_context "dsl app"
|
15
|
-
|
16
|
-
let(:left) { 44 }
|
17
|
-
let(:top) { 66 }
|
18
|
-
let(:width) { 100 }
|
19
|
-
let(:height) { 100 }
|
20
|
-
|
21
|
-
subject { Shoes::Star.new(app, parent, left, top, 5, 50, 30) }
|
22
|
-
|
23
|
-
it_behaves_like "basic star"
|
24
|
-
it_behaves_like "object with style" do
|
25
|
-
let(:subject_without_style) { Shoes::Star.new(app, parent, left, top, 5, 50, 30) }
|
26
|
-
let(:subject_with_style) { Shoes::Star.new(app, parent, left, top, 5, 50, 30, arg_styles) }
|
27
|
-
end
|
28
|
-
it_behaves_like "object with dimensions"
|
29
|
-
it_behaves_like "movable object"
|
30
|
-
it_behaves_like 'object with parent'
|
31
|
-
end
|
@@ -1,75 +0,0 @@
|
|
1
|
-
require 'shoes/spec_helper'
|
2
|
-
|
3
|
-
describe Shoes::TextBlockDimensions do
|
4
|
-
let(:left) { 0 }
|
5
|
-
let(:top) { 10 }
|
6
|
-
let(:width) { 5 }
|
7
|
-
let(:height) { 10 }
|
8
|
-
|
9
|
-
let(:old_dimension) { Shoes::Dimensions.new(nil, left, top, width, height) }
|
10
|
-
subject { Shoes::TextBlockDimensions.new(nil, left, top, width, height) }
|
11
|
-
|
12
|
-
before(:each) do
|
13
|
-
old_dimension.absolute_left = subject.absolute_left = 0
|
14
|
-
old_dimension.absolute_top = subject.absolute_top = 0
|
15
|
-
end
|
16
|
-
|
17
|
-
describe "positions" do
|
18
|
-
it "inherits from base" do
|
19
|
-
expect(subject.absolute_right).to eq(old_dimension.absolute_right)
|
20
|
-
expect(subject.absolute_bottom).to eq(old_dimension.absolute_bottom)
|
21
|
-
end
|
22
|
-
|
23
|
-
it "overrides absolute right" do
|
24
|
-
subject.absolute_right = 200
|
25
|
-
expect(subject.absolute_right).to eq(200)
|
26
|
-
end
|
27
|
-
|
28
|
-
it "overrides absolute bottom" do
|
29
|
-
subject.absolute_bottom = 200
|
30
|
-
expect(subject.absolute_bottom).to eq(200)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
describe "calculated sizes" do
|
35
|
-
it "inherits from base" do
|
36
|
-
expect(subject.width).to eq(5)
|
37
|
-
expect(subject.height).to eq(10)
|
38
|
-
end
|
39
|
-
|
40
|
-
it "override with calculated width" do
|
41
|
-
subject.width = nil
|
42
|
-
subject.calculated_width = 200
|
43
|
-
expect(subject.width).to eq(200)
|
44
|
-
end
|
45
|
-
|
46
|
-
it "override with calculated height" do
|
47
|
-
subject.height = nil
|
48
|
-
subject.calculated_height = 200
|
49
|
-
expect(subject.height).to eq(200)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe "containing width" do
|
54
|
-
it "uses immediate width if it can" do
|
55
|
-
expect(subject.containing_width).to eq(5)
|
56
|
-
end
|
57
|
-
|
58
|
-
it "applies margins" do
|
59
|
-
subject.margin = 1
|
60
|
-
expect(subject.containing_width).to eq(3)
|
61
|
-
end
|
62
|
-
|
63
|
-
describe "with parent" do
|
64
|
-
let(:parent) { double('parent', element_width: 100,
|
65
|
-
x_dimension: double("x"),
|
66
|
-
y_dimension: double("y")) }
|
67
|
-
subject { Shoes::TextBlockDimensions.new(parent, left, top, nil, height) }
|
68
|
-
|
69
|
-
it "delegates to parent if no width of its own" do
|
70
|
-
expect(subject.containing_width).to eq(100)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
end
|
75
|
-
end
|
@@ -1,270 +0,0 @@
|
|
1
|
-
require 'shoes/spec_helper'
|
2
|
-
require 'shoes/helpers/sample17_helper'
|
3
|
-
|
4
|
-
describe Shoes::TextBlock do
|
5
|
-
include_context "dsl app"
|
6
|
-
|
7
|
-
let(:text_link) { Shoes::Link.new(app, parent, ['Hello']) }
|
8
|
-
let(:text) { [text_link, ", world!"] }
|
9
|
-
subject(:text_block) { Shoes::TextBlock.new(app, parent, text, {app: app}) }
|
10
|
-
|
11
|
-
it_behaves_like "object with style" do
|
12
|
-
let(:subject_without_style) { Shoes::TextBlock.new(app, parent, text) }
|
13
|
-
let(:subject_with_style) { Shoes::TextBlock.new(app, parent, text, arg_styles) }
|
14
|
-
end
|
15
|
-
|
16
|
-
describe "initialize" do
|
17
|
-
it "creates gui object" do
|
18
|
-
expect(text_block.gui).not_to be_nil
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe "text" do
|
23
|
-
context "with an array of [Shoes::Link, String]" do
|
24
|
-
it "sets text" do
|
25
|
-
expect(text_block.text).to eq "Hello, world!"
|
26
|
-
end
|
27
|
-
|
28
|
-
it "changes the text" do
|
29
|
-
text_block.text = "Goodbye Cruel World"
|
30
|
-
expect(text_block.text).to eq "Goodbye Cruel World"
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
context "with a single string" do
|
35
|
-
let(:text) { "Hello, world!" }
|
36
|
-
|
37
|
-
it "sets text" do
|
38
|
-
expect(text_block.text).to eq "Hello, world!"
|
39
|
-
end
|
40
|
-
|
41
|
-
it "changes the text" do
|
42
|
-
text_block.text = "Goodbye Cruel World"
|
43
|
-
expect(text_block.text).to eq "Goodbye Cruel World"
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
describe "#to_s" do
|
49
|
-
it "is the same as #text" do
|
50
|
-
text = text_block.text
|
51
|
-
expect(text_block.to_s).to eq(text)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
describe "#replace" do
|
56
|
-
it "replaces text" do
|
57
|
-
text_block.replace "Goodbye Cruel World"
|
58
|
-
expect(text_block.text).to eq("Goodbye Cruel World")
|
59
|
-
end
|
60
|
-
|
61
|
-
it "allows two arguments" do
|
62
|
-
text_block.replace "Goodbye Cruel World, ", text_link
|
63
|
-
expect(text_block.text).to eq("Goodbye Cruel World, Hello")
|
64
|
-
end
|
65
|
-
|
66
|
-
it "updates contents" do
|
67
|
-
text_block.replace("Later Gator")
|
68
|
-
expect(text_block.contents).to eq(["Later Gator"])
|
69
|
-
end
|
70
|
-
|
71
|
-
it "updates text styles" do
|
72
|
-
text_block.replace "Later Gator"
|
73
|
-
expect(text_block.text_styles).to be_empty
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
describe "#contents" do
|
78
|
-
it "returns text elements" do
|
79
|
-
expect(text_block.contents).to eql([text_link, ", world!"])
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
describe "font" do
|
84
|
-
let(:text_block) { Shoes::TextBlock.new(app, parent, ["Hello, world!"], style) }
|
85
|
-
|
86
|
-
context "with defaults" do
|
87
|
-
let(:style) { Hash.new }
|
88
|
-
|
89
|
-
it "sets the default font to Arial" do
|
90
|
-
expect(text_block.font).to eq "Arial"
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
context "with a font family string" do
|
95
|
-
let(:style) { { font: "Helvetica" } }
|
96
|
-
|
97
|
-
it "sets the font family" do
|
98
|
-
expect(text_block.font).to eq "Helvetica"
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
context "with a font family string and size with 'px'" do
|
103
|
-
let(:style) { { font: "Helvetica 33px" } }
|
104
|
-
|
105
|
-
it "sets the font family" do
|
106
|
-
expect(text_block.font).to eq "Helvetica"
|
107
|
-
end
|
108
|
-
|
109
|
-
it "sets the font size" do
|
110
|
-
expect(text_block.size).to eq 33
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
context "with a font family string and size with ' px'" do
|
115
|
-
let(:style) { { font: "Helvetica 33 px" } }
|
116
|
-
|
117
|
-
it "sets the font family" do
|
118
|
-
expect(text_block.font).to eq "Helvetica"
|
119
|
-
end
|
120
|
-
|
121
|
-
it "sets the font size" do
|
122
|
-
expect(text_block.size).to eq 33
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
context "with a quoted font family string and size with 'px'" do
|
127
|
-
let(:style) { { font: '"Comic Sans" 13px' } }
|
128
|
-
|
129
|
-
it "sets the font family" do
|
130
|
-
expect(text_block.font).to eq "Comic Sans"
|
131
|
-
end
|
132
|
-
|
133
|
-
it "sets the size" do
|
134
|
-
expect(text_block.size).to eq 13
|
135
|
-
end
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
describe "stroke" do
|
140
|
-
it "should accept a hex code" do
|
141
|
-
s = Shoes::TextBlock.new(app, parent, ["Hello, world!"], { stroke: "#fda", app: app })
|
142
|
-
color = s.style[:stroke]
|
143
|
-
expect(color.red).to eql 255
|
144
|
-
expect(color.green).to eql 221
|
145
|
-
expect(color.blue).to eql 170
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
149
|
-
describe "width" do
|
150
|
-
before(:each) do
|
151
|
-
allow(parent).to receive(:element_width) { 300 }
|
152
|
-
allow(parent).to receive(:absolute_left) { 0 }
|
153
|
-
end
|
154
|
-
|
155
|
-
context "when not explicitly set" do
|
156
|
-
subject(:text_block) { Shoes::TextBlock.new(app, parent, ["text"]) }
|
157
|
-
|
158
|
-
it "delegates to calculated width" do
|
159
|
-
subject.calculated_width = 240
|
160
|
-
expect(subject.width).to eql 240
|
161
|
-
end
|
162
|
-
|
163
|
-
it "delegates to calculated height" do
|
164
|
-
subject.calculated_height = 240
|
165
|
-
expect(subject.height).to eql 240
|
166
|
-
end
|
167
|
-
|
168
|
-
it "bases desired width off parent" do
|
169
|
-
subject.absolute_left = 20
|
170
|
-
expect(subject.desired_width).to eql 280
|
171
|
-
end
|
172
|
-
|
173
|
-
it "can base desired off explicit containing width" do
|
174
|
-
subject.absolute_left = 20
|
175
|
-
expect(subject.desired_width(1000)).to eql(980)
|
176
|
-
end
|
177
|
-
end
|
178
|
-
|
179
|
-
context "when explicitly set" do
|
180
|
-
subject(:text_block) { Shoes::TextBlock.new(app, parent, ["text"], { width: 120 }) }
|
181
|
-
|
182
|
-
it "gets returned" do
|
183
|
-
expect(subject.width).to eql 120
|
184
|
-
end
|
185
|
-
|
186
|
-
it "is used for desired width" do
|
187
|
-
subject.absolute_left = 20
|
188
|
-
expect(subject.desired_width).to eql 100
|
189
|
-
end
|
190
|
-
end
|
191
|
-
|
192
|
-
end
|
193
|
-
|
194
|
-
context "cursor management" do
|
195
|
-
let(:textcursor) { double("textcursor") }
|
196
|
-
|
197
|
-
before(:each) do
|
198
|
-
allow(app).to receive(:textcursor) { textcursor }
|
199
|
-
end
|
200
|
-
|
201
|
-
it "creates a textcursor" do
|
202
|
-
expect(subject.textcursor).to eq(textcursor)
|
203
|
-
expect(app).to have_received(:textcursor)
|
204
|
-
end
|
205
|
-
|
206
|
-
it "only creates textcursor" do
|
207
|
-
original = subject.textcursor
|
208
|
-
allow(app).to receive(:textcursor) { double("new cursor") }
|
209
|
-
|
210
|
-
expect(subject.textcursor).to eq(original)
|
211
|
-
expect(app).to have_received(:textcursor).once
|
212
|
-
end
|
213
|
-
end
|
214
|
-
|
215
|
-
context "with empty subelements" do
|
216
|
-
let!(:link) { actual_app.link('') }
|
217
|
-
let!(:span) { actual_app.span('') }
|
218
|
-
let!(:para) { actual_app.para(link, span) }
|
219
|
-
let(:actual_app) { app.app }
|
220
|
-
|
221
|
-
it "properly ignores empty element lengths in text_styles" do
|
222
|
-
text_styles = { 0...0 => [link, span] }
|
223
|
-
|
224
|
-
expect(para.text_styles).to eq(text_styles)
|
225
|
-
end
|
226
|
-
end
|
227
|
-
|
228
|
-
# Emulates samples/sample17.rb
|
229
|
-
#
|
230
|
-
# Shoes.app width: 240, height: 95 do
|
231
|
-
# para 'Testing, test, test. ',
|
232
|
-
# strong('Breadsticks. '),
|
233
|
-
# em('Breadsticks. '),
|
234
|
-
# code('Breadsticks. '),
|
235
|
-
# bg(fg(strong(ins('EVEN BETTER.')), white), rgb(255, 0, 192)),
|
236
|
-
# sub('fine!')
|
237
|
-
# end
|
238
|
-
#
|
239
|
-
context "with nested text fragments" do
|
240
|
-
let(:helper) {Sample17Helper.new(app)}
|
241
|
-
let!(:para) { helper.create_para }
|
242
|
-
|
243
|
-
it "has full text of fragments" do
|
244
|
-
expect(para.text).to eq("Testing, test, test. Breadsticks. Breadsticks. Breadsticks. EVEN BETTER.fine!")
|
245
|
-
end
|
246
|
-
|
247
|
-
it "has fragment styles" do
|
248
|
-
text_styles = {
|
249
|
-
21..33 => [helper.strong_breadsticks],
|
250
|
-
34..46 => [helper.em],
|
251
|
-
47..59 => [helper.code],
|
252
|
-
60..71 => [helper.bg, helper.fg, helper.strong, helper.ins],
|
253
|
-
72..76 => [helper.sub]
|
254
|
-
}
|
255
|
-
expect(para.text_styles).to eq(text_styles)
|
256
|
-
end
|
257
|
-
|
258
|
-
it 'sets the parent_text of the non nested texts to the para' do
|
259
|
-
expect(helper.strong_breadsticks.parent_text).to eq para
|
260
|
-
end
|
261
|
-
|
262
|
-
it 'sets the parent_text of nested fragments correctly' do
|
263
|
-
expect(helper.ins.parent_text).to eq helper.strong
|
264
|
-
end
|
265
|
-
|
266
|
-
it 'lets the nested text fragements know what their text block is' do
|
267
|
-
expect(helper.ins.text_block).to eq para
|
268
|
-
end
|
269
|
-
end
|
270
|
-
end
|
data/spec/shoes/url_spec.rb
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
require 'shoes/spec_helper'
|
2
|
-
|
3
|
-
describe 'Shoes.url' do
|
4
|
-
let(:klazz) do
|
5
|
-
Class.new(Shoes) do
|
6
|
-
include RSpec::Matchers
|
7
|
-
|
8
|
-
url '/', :index
|
9
|
-
url '/path', :path
|
10
|
-
url '/number/(\d+)', :number
|
11
|
-
url '/foo', :foo
|
12
|
-
url '/visit_me', :visit_me
|
13
|
-
|
14
|
-
def index
|
15
|
-
end
|
16
|
-
|
17
|
-
def path
|
18
|
-
end
|
19
|
-
|
20
|
-
def number(i)
|
21
|
-
end
|
22
|
-
|
23
|
-
def foo
|
24
|
-
some_method
|
25
|
-
end
|
26
|
-
|
27
|
-
def visit_me
|
28
|
-
expect(location).to eq '/visit_me'
|
29
|
-
end
|
30
|
-
|
31
|
-
def some_method
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
subject do
|
37
|
-
Shoes.app
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should call index upon startup" do
|
41
|
-
expect_any_instance_of(klazz).to receive(:index)
|
42
|
-
subject
|
43
|
-
end
|
44
|
-
|
45
|
-
it 'should receive path when visitting path' do
|
46
|
-
expect_any_instance_of(klazz).to receive(:path)
|
47
|
-
Shoes.app do visit '/path' end
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'handles the arguments given in the regexes' do
|
51
|
-
expect_any_instance_of(klazz).to receive(:number).with('7')
|
52
|
-
Shoes.app do visit '/number/7' end
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'can call methods defined in the URL class when visitting a URL' do
|
56
|
-
expect_any_instance_of(klazz).to receive(:some_method)
|
57
|
-
Shoes.app do visit '/foo' end
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'has a location method that returns the current URL' do
|
61
|
-
Shoes.app do visit('/visit_me') end
|
62
|
-
end
|
63
|
-
|
64
|
-
it 'instances report class as klazz (regression, do not ask...)' do
|
65
|
-
expect(klazz.new.class).to eq klazz
|
66
|
-
end
|
67
|
-
|
68
|
-
end
|
data/spec/shoes/widget_spec.rb
DELETED
@@ -1,70 +0,0 @@
|
|
1
|
-
require 'shoes/spec_helper'
|
2
|
-
|
3
|
-
class Smile < Shoes::Widget
|
4
|
-
def initialize(caption)
|
5
|
-
banner caption
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
class Face < Shoes::Widget
|
10
|
-
def initialize
|
11
|
-
para "Hair"
|
12
|
-
smile "Toothsome"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
describe Shoes::Widget do
|
17
|
-
let(:app) { Shoes::App.new }
|
18
|
-
|
19
|
-
it "creates dsl method on App" do
|
20
|
-
expect(app).to respond_to(:smile)
|
21
|
-
end
|
22
|
-
|
23
|
-
it "generates instances of its subclass" do
|
24
|
-
expect(app.smile("Cheese!")).to be_instance_of(Smile)
|
25
|
-
end
|
26
|
-
|
27
|
-
it "passes missing methods to app" do
|
28
|
-
expect(app).to receive(:banner).with("Pickles!")
|
29
|
-
app.smile("Pickles!")
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'sets the current slot as the parent' do
|
33
|
-
slot = nil
|
34
|
-
widget = nil
|
35
|
-
Shoes.app do
|
36
|
-
slot = instance_variable_get(:@__app__).current_slot
|
37
|
-
widget = smile 'lalala'
|
38
|
-
end
|
39
|
-
expect(widget.parent).to eq slot
|
40
|
-
end
|
41
|
-
|
42
|
-
it "allows can use other widgets from widget initialize" do
|
43
|
-
expect(app).to receive(:smile)
|
44
|
-
app.face
|
45
|
-
end
|
46
|
-
|
47
|
-
describe 'together with the URL sub system' do
|
48
|
-
let!(:klazz) do
|
49
|
-
Class.new(Shoes) do
|
50
|
-
include RSpec::Matchers
|
51
|
-
|
52
|
-
url '/', :check_smile
|
53
|
-
url '/smile', :smile
|
54
|
-
|
55
|
-
def check_smile
|
56
|
-
expect(self).to respond_to :smile
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'responds to widget defined methods like smile' do
|
62
|
-
Shoes.app
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'really smiles' do
|
66
|
-
expect_any_instance_of(Smile).to receive(:initialize)
|
67
|
-
Shoes.app do visit '/smile' end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|