under-os-ui 1.4.0
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 +7 -0
- data/README.md +26 -0
- data/lib/assets/fontawesome-webfont.ttf +0 -0
- data/lib/assets/under-os.css +115 -0
- data/lib/core/kernel.rb +16 -0
- data/lib/under-os-ui.rb +6 -0
- data/lib/under_os/app.rb +26 -0
- data/lib/under_os/config.rb +25 -0
- data/lib/under_os/history.rb +53 -0
- data/lib/under_os/page.rb +178 -0
- data/lib/under_os/page/builder.rb +96 -0
- data/lib/under_os/page/layout.rb +43 -0
- data/lib/under_os/page/matcher.rb +128 -0
- data/lib/under_os/page/stylesheet.rb +67 -0
- data/lib/under_os/parser.rb +24 -0
- data/lib/under_os/parser/css.rb +37 -0
- data/lib/under_os/parser/html.rb +97 -0
- data/lib/under_os/ui.rb +3 -0
- data/lib/under_os/ui/alert.rb +52 -0
- data/lib/under_os/ui/button.rb +42 -0
- data/lib/under_os/ui/collection.rb +65 -0
- data/lib/under_os/ui/collection/cell.rb +21 -0
- data/lib/under_os/ui/collection/delegate.rb +70 -0
- data/lib/under_os/ui/collection/item.rb +32 -0
- data/lib/under_os/ui/collection/layout.rb +43 -0
- data/lib/under_os/ui/collection/styles.rb +15 -0
- data/lib/under_os/ui/div.rb +3 -0
- data/lib/under_os/ui/form.rb +60 -0
- data/lib/under_os/ui/icon.rb +61 -0
- data/lib/under_os/ui/icon/awesome.rb +376 -0
- data/lib/under_os/ui/icon/engine.rb +9 -0
- data/lib/under_os/ui/image.rb +31 -0
- data/lib/under_os/ui/input.rb +140 -0
- data/lib/under_os/ui/label.rb +21 -0
- data/lib/under_os/ui/locker.rb +42 -0
- data/lib/under_os/ui/navbar.rb +123 -0
- data/lib/under_os/ui/progress.rb +17 -0
- data/lib/under_os/ui/scroll.rb +102 -0
- data/lib/under_os/ui/select.rb +95 -0
- data/lib/under_os/ui/sidebar.rb +45 -0
- data/lib/under_os/ui/slider.rb +37 -0
- data/lib/under_os/ui/spinner.rb +23 -0
- data/lib/under_os/ui/style.rb +21 -0
- data/lib/under_os/ui/style/fonts.rb +56 -0
- data/lib/under_os/ui/style/margins.rb +164 -0
- data/lib/under_os/ui/style/outlining.rb +170 -0
- data/lib/under_os/ui/style/positioning.rb +183 -0
- data/lib/under_os/ui/switch.rb +26 -0
- data/lib/under_os/ui/textarea.rb +19 -0
- data/lib/under_os/ui/utils/animation.rb +101 -0
- data/lib/under_os/ui/utils/commons.rb +70 -0
- data/lib/under_os/ui/utils/dimensions.rb +37 -0
- data/lib/under_os/ui/utils/events.rb +210 -0
- data/lib/under_os/ui/utils/manipulation.rb +44 -0
- data/lib/under_os/ui/utils/position.rb +21 -0
- data/lib/under_os/ui/utils/size.rb +21 -0
- data/lib/under_os/ui/utils/styles.rb +89 -0
- data/lib/under_os/ui/utils/traversing.rb +44 -0
- data/lib/under_os/ui/utils/wrap.rb +77 -0
- data/lib/under_os/ui/view.rb +31 -0
- data/spec/assets/app.css +13 -0
- data/spec/assets/test.css +7 -0
- data/spec/assets/test.html +3 -0
- data/spec/assets/test.png +0 -0
- data/spec/assets/test_page.rb +2 -0
- data/spec/under_os/page/builder_spec.rb +128 -0
- data/spec/under_os/page/layout_spec.rb +18 -0
- data/spec/under_os/page/matcher_spec.rb +260 -0
- data/spec/under_os/page/stylesheet_spec.rb +83 -0
- data/spec/under_os/page_spec.rb +5 -0
- data/spec/under_os/parser/css_spec.rb +77 -0
- data/spec/under_os/parser/html_spec.rb +152 -0
- data/spec/under_os/parser_spec.rb +16 -0
- data/spec/under_os/ui/button_spec.rb +50 -0
- data/spec/under_os/ui/collection_spec.rb +19 -0
- data/spec/under_os/ui/div_spec.rb +24 -0
- data/spec/under_os/ui/form_spec.rb +156 -0
- data/spec/under_os/ui/icon_spec.rb +57 -0
- data/spec/under_os/ui/image_spec.rb +39 -0
- data/spec/under_os/ui/input_spec.rb +109 -0
- data/spec/under_os/ui/label_spec.rb +22 -0
- data/spec/under_os/ui/locker_spec.rb +31 -0
- data/spec/under_os/ui/progress_spec.rb +31 -0
- data/spec/under_os/ui/scroll_spec.rb +75 -0
- data/spec/under_os/ui/select_spec.rb +135 -0
- data/spec/under_os/ui/sidebar_spec.rb +35 -0
- data/spec/under_os/ui/slider_spec.rb +69 -0
- data/spec/under_os/ui/spinner_spec.rb +57 -0
- data/spec/under_os/ui/style/fonts_spec.rb +111 -0
- data/spec/under_os/ui/style/margins_spec.rb +106 -0
- data/spec/under_os/ui/style/outlining_spec.rb +101 -0
- data/spec/under_os/ui/style/positioning_spec.rb +69 -0
- data/spec/under_os/ui/style_spec.rb +19 -0
- data/spec/under_os/ui/switch_spec.rb +60 -0
- data/spec/under_os/ui/textarea_spec.rb +34 -0
- data/spec/under_os/ui/utils/commons_spec.rb +81 -0
- data/spec/under_os/ui/utils/events_spec.rb +87 -0
- data/spec/under_os/ui/utils/manipulation_spec.rb +130 -0
- data/spec/under_os/ui/utils/styles_spec.rb +140 -0
- data/spec/under_os/ui/utils/traversing_spec.rb +124 -0
- data/spec/under_os/ui/utils/wrap_spec.rb +69 -0
- data/spec/under_os/ui/view_spec.rb +39 -0
- data/under-os-ui.gemspec +23 -0
- metadata +216 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
describe UnderOs::UI::Label do
|
|
2
|
+
describe '#initialize' do
|
|
3
|
+
it "should spawn new inputs" do
|
|
4
|
+
label = UnderOs::UI::Label.new
|
|
5
|
+
label.class.should == UnderOs::UI::Label
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "should wrap the UILabel class" do
|
|
9
|
+
label = UnderOs::UI::Label.new
|
|
10
|
+
label._.class.should == UILabel
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "should accept the 'text' option" do
|
|
14
|
+
label = UnderOs::UI::Label.new(text: 'label text')
|
|
15
|
+
label.text.should == 'label text'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should assign correct tag name" do
|
|
19
|
+
UnderOs::UI::Label.new.tagName.should == 'LABEL'
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
describe UnderOs::UI::Locker do
|
|
2
|
+
before do
|
|
3
|
+
@locker = UnderOs::UI::Locker.new
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
describe '#constructor' do
|
|
7
|
+
it "builds locker instances" do
|
|
8
|
+
@locker.class.should == UnderOs::UI::Locker
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "wraps plain UIView objects" do
|
|
12
|
+
@locker._.class.should == UIView
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "sets the LOCKER tag" do
|
|
16
|
+
@locker.tagName.should == "LOCKER"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "builds the dialog box inside" do
|
|
20
|
+
@locker.first('view.locker-dialog').should.not == nil
|
|
21
|
+
@locker.first('view.locker-dialog spinner').should.not == nil
|
|
22
|
+
@locker.first('view.locker-dialog label').should.not == nil
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "accepts the label text" do
|
|
26
|
+
locker = UnderOs::UI::Locker.new(text: "Syncing...")
|
|
27
|
+
locker.first('label').text.should == "Syncing..."
|
|
28
|
+
locker.hasClass('with-label').should == true
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
describe UnderOs::UI::Progress do
|
|
2
|
+
before do
|
|
3
|
+
@progress = UnderOs::UI::Progress.new
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
describe '#initialize' do
|
|
7
|
+
it "should build a spinner" do
|
|
8
|
+
@progress.class.should == UnderOs::UI::Progress
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should wrap the UIProgressView" do
|
|
12
|
+
@progress._.class.should == UIProgressView
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should have the correct tag name" do
|
|
16
|
+
@progress.tagName.should == 'PROGRESS'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should accept the 'value' option" do
|
|
20
|
+
progress = UnderOs::UI::Progress.new(value: 0.4)
|
|
21
|
+
progress.value.should == 0.4
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe '#value' do
|
|
26
|
+
it "should assign values correctly" do
|
|
27
|
+
@progress.value = 0.6
|
|
28
|
+
@progress._.progress.should == 0.6
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
describe UnderOs::UI::Scroll do
|
|
2
|
+
before do
|
|
3
|
+
@scroll = UnderOs::UI::Scroll.new
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
describe '#initialize' do
|
|
7
|
+
it 'should build an UI:Scroll object' do
|
|
8
|
+
@scroll.class.should == UnderOs::UI::Scroll
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should wrap an UIScrollView instance" do
|
|
12
|
+
@scroll._.class.should == UIScrollView
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should have the SCROLL tag" do
|
|
16
|
+
@scroll.tagName.should == 'SCROLL'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should accept the 'paging' option" do
|
|
20
|
+
scroll = UnderOs::UI::Scroll.new(paging: true)
|
|
21
|
+
scroll.paging.should == true
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe '#paging' do
|
|
26
|
+
it "should return 'false' by default" do
|
|
27
|
+
@scroll.paging.should == false
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "should to switch it on" do
|
|
31
|
+
@scroll.paging = true
|
|
32
|
+
@scroll.paging.should == true
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "should fallback to false" do
|
|
36
|
+
@scroll.paging = 'weird stuff'
|
|
37
|
+
@scroll.paging.should == false
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe "#scale" do
|
|
42
|
+
it "should allow to read it" do
|
|
43
|
+
@scroll.scale.should == 1.0
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "should allow to set it" do
|
|
47
|
+
@scroll.scale = 2.4
|
|
48
|
+
@scroll._.zoomScale.should == 1.0 # it will fall back to it
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
describe "#minScale" do
|
|
53
|
+
it "should allow to read it" do
|
|
54
|
+
@scroll._.minimumZoomScale = 1.8
|
|
55
|
+
@scroll.minScale.should == 1.8
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
it "should allow to set it" do
|
|
59
|
+
@scroll.minScale = 2.7
|
|
60
|
+
@scroll._.minimumZoomScale.should == 2.7
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
describe "#maxScale" do
|
|
65
|
+
it "should allow to read it" do
|
|
66
|
+
@scroll._.maximumZoomScale = 1.8
|
|
67
|
+
@scroll.maxScale.should == 1.8
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
it "should allow to set it" do
|
|
71
|
+
@scroll.maxScale = 2.7
|
|
72
|
+
@scroll._.maximumZoomScale.should == 2.7
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
describe UnderOs::UI::Select do
|
|
2
|
+
before do
|
|
3
|
+
@select = UnderOs::UI::Select.new
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
it "inherits fromthe UnderOs::UI::Input" do
|
|
7
|
+
(UnderOs::UI::Select < UnderOs::UI::Input).should == true
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
describe '#initialize' do
|
|
11
|
+
it "should make select instances" do
|
|
12
|
+
@select.class.should == UnderOs::UI::Select
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should wrap UIPickerView" do
|
|
16
|
+
@select._.class.should == UIPickerView
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should have tag SELECT" do
|
|
20
|
+
@select.tagName.should == 'SELECT'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should accept 'options' option" do
|
|
24
|
+
select = UnderOs::UI::Select.new(options: {
|
|
25
|
+
'1' => 'One', '2' => 'Two', '3' => 'Three'
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
select.options.should == {
|
|
29
|
+
'1' => 'One', '2' => 'Two', '3' => 'Three'
|
|
30
|
+
}
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "should accept 'value' option" do
|
|
34
|
+
select = UnderOs::UI::Select.new(value: 1)
|
|
35
|
+
select.value.should == '1'
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
describe '#optgroups' do
|
|
40
|
+
it "should return an empty list by default" do
|
|
41
|
+
@select.optgroups.should == [{}]
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it "should allow to assign groups" do
|
|
45
|
+
@select.optgroups = [
|
|
46
|
+
{'1' => 'One'}, {'2' => 'Two'}, {'3' => 'Three'}
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
@select.optgroups.should == [
|
|
50
|
+
{'1' => 'One'}, {'2' => 'Two'}, {'3' => 'Three'}
|
|
51
|
+
]
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "should convert keys to strings and skip nils" do
|
|
55
|
+
@select.optgroups = [{
|
|
56
|
+
nil => 'One', :'2' => 'Two', :'3' => nil
|
|
57
|
+
}]
|
|
58
|
+
|
|
59
|
+
@select.optgroups.should == [{'2' => 'Two'}]
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
describe '#options' do
|
|
64
|
+
it "should return an empty hash by default" do
|
|
65
|
+
@select.options.should == {}
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it "should allow to set new options" do
|
|
69
|
+
@select.options = {
|
|
70
|
+
'1' => 'One', '2' => 'Two', '3' => 'Three'
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@select.options.should == {
|
|
74
|
+
'1' => 'One', '2' => 'Two', '3' => 'Three'
|
|
75
|
+
}
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
it "should overwrite the optgroups" do
|
|
79
|
+
@select.options = {
|
|
80
|
+
'1' => 'One', '2' => 'Two', '3' => 'Three'
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@select.optgroups.should == [{
|
|
84
|
+
'1' => 'One', '2' => 'Two', '3' => 'Three'
|
|
85
|
+
}]
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
describe '#value' do
|
|
90
|
+
it "should return nil when nothing was set" do
|
|
91
|
+
@select.value.should == nil
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
it "should return an empty list if several optgroups were set" do
|
|
95
|
+
@select.optgroups = [
|
|
96
|
+
{'1' => 'One'}, {'2' => 'Two'}, {'3' => 'Three'}
|
|
97
|
+
]
|
|
98
|
+
|
|
99
|
+
@select.value.should == []
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
it "should allow to set values for single selects" do
|
|
103
|
+
@select.value = 'one'
|
|
104
|
+
@select.value.should == 'one'
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
it "should allow to set values for multi-selects" do
|
|
108
|
+
@select.optgroups = [{'1' => 'One'}, {'2' => 'Two'}]
|
|
109
|
+
@select.value = ['1', '2']
|
|
110
|
+
@select.value.should == ['1', '2']
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
it "should convert all values to strings" do
|
|
114
|
+
@select.value = 1
|
|
115
|
+
@select.value.should == '1'
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
it "should emit the 'change' event if value was changed" do
|
|
119
|
+
@changed = false
|
|
120
|
+
@select.on(:change) { @changed = true }
|
|
121
|
+
@select.value = 'new'
|
|
122
|
+
@changed.should == true
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
it "should not emit the 'change' event if the same value was assigned" do
|
|
126
|
+
@select.value = 'same'
|
|
127
|
+
|
|
128
|
+
@changed = false
|
|
129
|
+
@select.on(:change) { @changed = true }
|
|
130
|
+
@select.value = 'same'
|
|
131
|
+
|
|
132
|
+
@changed.should == false
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
describe UnderOs::UI::Sidebar do
|
|
2
|
+
before do
|
|
3
|
+
@sidebar = UnderOs::UI::Sidebar.new
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
describe '#initialize' do
|
|
7
|
+
it "should build sidebars" do
|
|
8
|
+
@sidebar.class.should == UnderOs::UI::Sidebar
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should wrap up a normal UIView" do
|
|
12
|
+
@sidebar._.class.should == UIView
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should have the 'SIDEBAR' tag" do
|
|
16
|
+
@sidebar.tagName.should == "SIDEBAR"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should accept the 'location' option" do
|
|
20
|
+
sidebar = UnderOs::UI::Sidebar.new(location: :left)
|
|
21
|
+
sidebar.location.should == :left
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe '#location' do
|
|
26
|
+
it "should return :bottom by default" do
|
|
27
|
+
@sidebar.location.should == :bottom
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "should accept other values" do
|
|
31
|
+
@sidebar.location = 'top'
|
|
32
|
+
@sidebar.location.should == :top
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
describe UnderOs::UI::Slider do
|
|
2
|
+
before do
|
|
3
|
+
@slider = UnderOs::UI::Slider.new
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
it "inherits fromthe UnderOs::UI::Input" do
|
|
7
|
+
(UnderOs::UI::Slider < UnderOs::UI::Input).should == true
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
describe '#initialize' do
|
|
11
|
+
it "should spawn new sliders" do
|
|
12
|
+
@slider.class.should == UnderOs::UI::Slider
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should wrap the UISlider class" do
|
|
16
|
+
@slider._.class.should == UISlider
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should assign correct tag name" do
|
|
20
|
+
@slider.tagName.should == 'SLIDER'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should accept the 'value' option" do
|
|
24
|
+
slider = UnderOs::UI::Slider.new(value: 0.4)
|
|
25
|
+
slider.value.should == 0.4
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should accept the 'min' option" do
|
|
29
|
+
slider = UnderOs::UI::Slider.new(min: 4)
|
|
30
|
+
slider.min.should == 4
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "should accept the 'max' option" do
|
|
34
|
+
slider = UnderOs::UI::Slider.new(max: 4)
|
|
35
|
+
slider.max.should == 4
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
describe '#value' do
|
|
40
|
+
it "should assign the value property correctly" do
|
|
41
|
+
@slider.value = 0.25
|
|
42
|
+
@slider._.value.should == 0.25
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
describe '#min' do
|
|
47
|
+
it "should assign the minimal value boundaries correctly" do
|
|
48
|
+
@slider.min = -10
|
|
49
|
+
@slider._.minimumValue.should == -10
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
it "should return the minimum value as it is" do
|
|
53
|
+
@slider.min = -20
|
|
54
|
+
@slider.min.should == -20
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
describe '#max' do
|
|
59
|
+
it "should assign the maximal value boundaries correctly" do
|
|
60
|
+
@slider.max = -10
|
|
61
|
+
@slider._.maximumValue.should == -10
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
it "should return the maximum value as it is" do
|
|
65
|
+
@slider.max = -20
|
|
66
|
+
@slider.max.should == -20
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
describe UnderOs::UI::Spinner do
|
|
2
|
+
before do
|
|
3
|
+
@spinner = UnderOs::UI::Spinner.new
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
describe 'constructor' do
|
|
7
|
+
it "should build a spinner" do
|
|
8
|
+
@spinner.class.should == UnderOs::UI::Spinner
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should wrap the UIActivityIndicatorView" do
|
|
12
|
+
@spinner._.class.should == UIActivityIndicatorView
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should have the correct tag name" do
|
|
16
|
+
@spinner.tagName.should == 'SPINNER'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should make it spin" do
|
|
20
|
+
@spinner.visible.should == true
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
describe '#show' do
|
|
25
|
+
# it "should start the spinner" do
|
|
26
|
+
# @spinner.show
|
|
27
|
+
# @spinner._.isAnimating.should == 1
|
|
28
|
+
# end
|
|
29
|
+
|
|
30
|
+
it "should return the spinner back" do
|
|
31
|
+
@spinner.should.be.same_as @spinner
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe '#hide' do
|
|
36
|
+
# it "should stop the spinner" do
|
|
37
|
+
# @spinner.hide
|
|
38
|
+
# @spinner._.isAnimating.should == 0
|
|
39
|
+
# end
|
|
40
|
+
|
|
41
|
+
it "should return the spinner instance back" do
|
|
42
|
+
@spinner.hide.should.be.same_as @spinner
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
describe '#hidden' do
|
|
47
|
+
# it "should return false when the spinner is active" do
|
|
48
|
+
# @spinner.show
|
|
49
|
+
# @spinner.hidden.should == false
|
|
50
|
+
# end
|
|
51
|
+
|
|
52
|
+
# it "should return true when the spinner is inactive" do
|
|
53
|
+
# @spinner.hide
|
|
54
|
+
# @spinner.hidden.should == true
|
|
55
|
+
# end
|
|
56
|
+
end
|
|
57
|
+
end
|